这是我自己坑出来的"ubuntu不能检测到扩展副屏、双屏"的可能原因与解决办法,不确定对所有人有用。
首先,我笔记本安装ubutnu18.04并使用有一段时间了,这期间肯定有更新/boot/grub/grub.cfg这个文件,第一次连接外屏时系统会自动检测到外屏:
。。。
期间使用外屏一直没问题,只要在第一次连接时选择好显示模式,拔掉再插入时自动按上次的连接设置进行显示输出,不用重新设置,相当于热拔插。
。。。
今天本来要修改/boot/grub/grub.cfg文件使ubuntu开机引导同一磁盘另一个分区的win10系统,因为之前我将机械硬盘上的ubuntu+win10双系统使用dd文件系统拷贝(连同各分区uuid一起拷贝,不用修改/etc/fstab)到固态硬盘并重建grub开机引导后,开机后能进入ubuntu系统但丢失了windows的引导启动项,但win10所在的系统盘分区肯定都是完整并可用的。
参考了ubuntu下 修复win10引导,执行了"
sudo grub-mkconfig -o /boot/grub/grub.cfg
",期望系统会自动找到之前的windows分区并全部重新创建启动项,但关机后开机仍直接进入ubuntu系统且未出现让选择启动引导的紫屏界面,并且,刚刚还在使用的外屏此时却检测不到了!
这是一个简单的对比试验,肯定是/boot/grub/grub.cfg这个文件的改动使原本能检测到并正常连接的外屏不能检测到,另外,我的联想G510的F10调低亮度、F11调高亮度的功能键也失效了!
幸好我在重生成/boot/grub/grub.cfg启动配置文件之前备份了一下,将备份的grub.cfg还原,关机再开机,此时成功检测并连接到外屏,同时F10、F11功能键也能使用了。
使用Beyond Compare对比了重生成的grub启动配置文件(下图上)和原来正常工作的grubu启动配置文件(下图下),共产生了三处差异:
都是将原来的
linux /boot/vmlinuz-5.3.0-61-generic root=UUID=506abb6c-f338-4c00-8f75-5d4c35f6a70d ro quiet splash $vt_handoff
与
linux /boot/vmlinuz-5.3.0-59-generic root=UUID=506abb6c-f338-4c00-8f75-5d4c35f6a70d ro quiet splash $vt_handoff
重生成为:
linux /boot/vmlinuz-5.3.0-61-generic root=UUID=506abb6c-f338-4c00-8f75-5d4c35f6a70d ro quiet splash nomodeset $vt_handoff
与
linux /boot/vmlinuz-5.3.0-59-generic root=UUID=506abb6c-f338-4c00-8f75-5d4c35f6a70d ro quiet splash nomodeset $vt_handoff
就是增加了"nomodeset"字样,这就是使系统检测不到外屏并使F10、F11功能键失效的罪魁祸首了,如果没有备份/boot/grub/grub.cfg,那将文件中的这几行的"nomodeset"去掉应该就可以了。
至于ubuntu引导win10,后面我继续折腾吧。
20200702:
今天更新了内核文件:
显示"Generating grub configuration file",果不其然修改了/boot/grub/grub.cfg启动文件,并且偷摸地又增加了如上所属的"nomodeset"参数,观察到的现象是笔记本调节亮度的功能键没效了,tweaks安装的hide top bar扩展的动画过渡没有了,将/boot/grub/grub.cfg文件备份后删掉"nomodeset"参数,重启,解决。