讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

2021-03-19 22:30:11 15点赞 31收藏 24评论

创作立场声明:非专业人士创作,大佬轻拍

前言

前段时间在油管上看到某播主演示Pop!_OS的的入坑视频,来了兴致,因为我从没有试过在物理机上安装桌面版Linux OS。正好家里有一堆闲置的二奶机,都是之前在网上淘来玩NAS和软路由的,出也出不掉,放着吃灰太可惜。于是我决定动手体验一把这个基于Ubuntu开发的热门操作系统。结果安装过程一波三折,实在想要吐槽一番。

硬件配置

老实说,这次安装踩的坑,并不能让Pop!_OS来背锅。我在操作过程中才逐渐意识到,是硬件问题带来的麻烦。

先来看下奇怪的配置:

  • CPU:Intel® Pentium® Gold G5400

  • 核显:Intel® Graphics UHD 610

  • 主板:ECS H310CH5-TI4

  • 内存:Sumsang DDR3L 4G 1600MHz 两条

  • 硬盘:Intel® SATA3.0 SSD DC S3710 400GB

  • 硬盘:Intel® M.2 SSD Optane M10 2280 16GB

  • 风扇:ID-COOLING IS-25i 超薄散热器

  • 电源:DC电源适配器 19V-6.32A 5.5mm*2.5mm

  • 机箱:立人U3全铝合金ITX机箱

  • 显示器:13.3吋便携式1080p显示器

这个组合做主力机性能拉胯,做二奶机又功能过剩。只因为当初在张大妈上中了垃圾佬们的毒,为了攒出一台能跑虚拟机的NAS,收了一堆破烂。拼拼凑凑的就整出了这么个缝合怪。

其中的坑王当属ECS(精英)主板。这个冷门型号目前在X宝和X鱼上已经踪迹全无,官网上连用户手册都没有,可查信息的只有相近型号H310CH5-TI/TI2。当初买它只是因为要适配现成的CPU和Optane SSD,何况新板价格只有三百出头,还能使用DDR三代内存。唯一可见的不足之处就是没有PCIE扩展槽。

真·丐中丐真·丐中丐

那么不可见的不足之处呢?

咳!咳!

且听我慢慢道来。

第一回合:安装

去年玩虚拟机时,曾经尝试在这台机器上安装Proxmox VE 6.2,打算配置成Ceph集群的节点。但是不论怎样制作Live USB installer,如何进行开机设置,都无法进入正常的安装界面:最终只会显示一块大白屏,无法进行任何操作。我想这大概是系统的BUG吧,也就没继续找原因了。最后是采用了官网的解决办法,即在Debian 10的基础上升级换核成PVE:

Install Proxmox VE on Debian Buster

就在我已经忘记当年这茬破事,兴致勃勃地开始安装Pop!_OS时,它又开始作妖了!

系统版本选择Pop!_OS 20.04 LTS,制作完安装U盘并启动后,桌面是这样的:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

难道是USB镜像没写好?我又换遍了Rufus,Etcher, UltroISO等工具,然并卵...

一筹莫展之际,发现这个光板桌面可以晃出来鼠标箭头,并且能打开右键菜单!

仔细观察了右键菜单的显示设置后,我发现一些端倪:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

默认为双屏显示?并且主屏是这个什么内置显示器(Built-in display)?

于是我切回单屏模式,并且设置另一块显示器(HBT 15.6")为主屏,桌面显示就恢复了正常!不但上方出现了“Activity”栏,而且中间跳出了“Installer”界面:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

具体安装步骤,网上有很多教程。可以参考这篇:

How to Install POP OS 20.04 LTS

只说下我的分区模式,因为想充分利用两块SSD硬盘,所以选择了自定义分区(Custom)

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

m.2接口的Optane Nvme全部划为根目录分区“/”,SATA接口的Intel S3710全部划为家目录分区“/home”,没有设置引导分区“/boot”和交换分区“swap”。我知道更合理的分区方案有很多,这里只选取了最简单的一种。

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

安装完成。

第一回合:小胜!

第二回合:继续安装

重启电脑,加载完成,进入...what the hell?

熟悉的桌面,熟悉的味道熟悉的桌面,熟悉的味道

并且我发现更棘手的是,这回连鼠标箭头都没了!没有了右键菜单,就连各种组合快捷键都没用!唯一有反应的是“Ctrl+Alt+Del”,会弹出一个提示窗口,大概是说“gnome-initial-setup”运行中,60秒以后关机。

我仔细琢磨了一下是怎么回事:系统安装完成后重启,肯定要进行初始设置(包括账户密码等等),即运行上文所说的“gnome-initial-setup”,界面应该是这样的:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

但是这个界面去哪里了呢?

不出意外的话,应该是跑去了那块并不存在的幽灵显示器——“Built-in display”

虽然我在安装界面下重置了单主屏模式,但安装时U盘引导的彼系统非此系统。在重新加载硬盘后,新装系统又变回了双屏模式,而且幽灵显示器是默认的主屏。这时候作为副屏的外接显示器,就无法显示初始设置界面,也无法进行鼠标操作。

不过,此时能够通过“Ctrl+Alt+F3/4...”方式切入TTY命令行终端,但因为没有账户密码能够登录,所以依然无法操作。

为了验证猜测,我又重启电脑。从安装U盘启动后,进入桌面的调试窗口(Ctrl+T),输入xrandr --listmonitors,输出结果如下:

zurica@pop-os:~$ xrandr --listmonitors
Monitors: 2
0: +*eDP-1 1920/519x1080/324+0+0 eDP-1
1: +HDMI-1 1920/344x1080/193+1920+0 HDMI-1

看来标*的eDP-1就是这块幽灵显示器没跑了,那么它从何而来呢?

我翻阅了相关型号主板的用户手册,发现ECS H310CH5-TI系列是定位为一体机(All-In-One)使用的低端主板。这也是版型设计为Thin-ITX(高度25mm)和不带PCIE扩展槽的原因。主板上自带30Pin的LVDS插针,用于连接一体机和瘦客户端的显示器。大概LVDS显示输出是默认开启的。

操作系统可能把LVDS接口错误识别成了eDP接口操作系统可能把LVDS接口错误识别成了eDP接口

罪魁祸首找到了,该如何解决呢?

说明书上没有提到任何禁用LVDS输出的方法:主板上找不到相应的跳线开关,而BIOS中也没有LVDS的设置选项。所以只能从软件层面想办法了。

我在官网上找到了一篇解决类似问题的教程:

Create a User If Initial User Setup Fails in Pop!_OS - System76 Support

简单说来就是在初始设置失败的情况下创建用户:

1)开进按ESC键进入恢复模式(recovery mode);

2)使用fsck选项设置根目录“/”为可读写;

3)选择进入“root”提示符的命令行。接下来就能为所欲为了:可以设置root密码passwd root,也可以创建新用户adduser xxx并且添加到sudoer列表usermod -aG sudo xxx;

4) 最后一步很重要。按"Ctrl+D"回到菜单,然后选择“resume”回到正常启动模式。

这下登录界面就能正常显示了,输入3)中设置的用户密码,即可正常进入桌面。然后显示设置成为单屏模式并选择主屏。

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

第二回合:小胜!

第三回合:再次安装

纳尼?不是已经安装好了吗?

呵呵,当我再次重启电脑时,桌面又变成了这样:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

想太简单了!

哪有那么容易?哪有那么容易?

好在我尝试点击鼠标或者Enter键,盲输密码,也还能登录桌面。接着我在“设置”菜单的“用户”项下选择了“自动登录”,但这种解决方式终归不太完美。

继续研究后,我发现原先安装的分区和引导方式,可以进行调整优化。因为硬盘分区时没有设置“/boot”,也没有建立GPT分区表,所以系统默认使用MBR方式引导。恰巧主板BIOS也设置了Legacy启动模式,因此系统才能顺利启动。

于是我将系统又重新安装了一遍,这次使用如下分区方式:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

  • "/boot/efi":/dev/nvme0n1p1 512MB FAT32 (需要新建GPT分区表)

  • "/":/dev/nvme0n1p2 剩余空间 EXT4

  • "/home":/dev/sda1 剩余空间 EXT4

  • "/recovery":/dev/sda2 4GB FAT32

然后在BIOS中将启动模式调整为UEFI。

再次重启电脑,进行账户设置。

这次按ESC键,系统不能再进入GRUB菜单下的recovery mode了,取而代之的是systemd-boot引导的启动菜单:

类似这样类似这样

在此菜单下选择recovery mode,其实就是进入上一步重装时预留的“/recovery”分区了(相当于在硬盘上的保留的安装镜像,作用和Live USB一样)。

由于没有GRUB菜单,要获得root权限只能另辟蹊径。

再次参考官网教程:

Change Your Password in Pop!_OS - System76 Support

1)启动进入recovery模式,打开终端窗口(Ctrl+T)

2)查看并挂载已安装系统的根目录“/”分区:

lsblk

sudo mount /dev/nvme0n1p2 /mnt

3)切换到已安装系统的根目录“/”:

sudo chroot /mnt

4)此时获得了已安装系统的root权限,设置密码:

passwd root

5)关机重启。在桌面登录界面(同样是全灰屏),通过“Ctrl+Alt+F3/4...”方式切入TTY终端命令行。输入root和密码,然后创建新用户和密码,并添加到sudoer列表(见上文)。

6)切换到新用户su - xxx,输入startx,进入新用户的桌面环境。同样进行单屏模式设置并选择主屏。

重启电脑。

虽然心怀侥幸,但我还是看到了灰茫茫一片的登录界面~~

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

第三回合:小败!

第四回合:干掉那块显示器!

显然,不干掉幽灵显示器,桌面问题就无法圆满解决。

我在Ubuntu论坛上寻找解决办法,发现有不少笔记本用户都碰到过类似情形。有的笔记本原生显示器坏了,或者单纯只想用外接显示器,都需要禁用掉笔记本主板上的LVDS或者eDP输出。

修改GRUB配置文件/etc/default/grub看来是没用了。

修改X server的配置现在看来可行,但是输入xrandr --output eDP-1 --off --output HDMI-1 --auto这样的命令又没有结果,并且即便成功了,也只能是临时性的设置更改。

一番检索之后找到有帮助的帖子三篇:

Permanently disable second screen

RHEL 7.4 - How to disable LVDS display output?

how do I prevent Xorg using my Linux laptop's display panel?

并且我还仔细阅读了ArchLinux官网上关于xorg配置文件的说明:

xorg.conf(5) - Arch manual pages

最终采用如下办法:

1)在/etc/X11/xorg.conf.d/下创建配置文件Display.conf

2)在配置文件中写入:

Section "Monitor"
Identifier "Built-in Display"
Option "Ignore" "true"
EndSection
Section "Monitor"
Identifier "External Display"
Option "Primary" "true"
EndSection
Section "Device"
Identifier "Intel Graphics UHD 610"
Driver "intel"
Option "Monitor-eDP1" "Built-in Display"
Option "Monitor-HDMI1" "External Display"
EndSection

重启之后,出现了久违的登陆界面:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

之后我又修改了配置文件,并反复尝试数次,发现一些关键点:

  • 幽灵显示器的Option键值"Ignore""true"写成"Enable""false"是没用的

  • 显卡Device驱动程序Driver的键值只能写intel,写Xorg自带驱动modesetting也没用

  • 显示器名称只能写eDP1和HDMI1,虽然之前用xrandr查看的名称是eDP-1和HDMI-1

  • Identifier值可以自定义

确定配置文件生效后,又在终端窗口查看了一下,幽灵显示器确实是消失了:

zurica@pop-os:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
HDMI1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1920x1080 60.00 + 60.00* 59.94
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1280x800 59.91
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
720x480 60.00 59.94
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)

第四回合,小胜!

第五回合:尾声

还没结束,是因为又出了一点新状况:

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

绿色方块矩阵,这是什么鬼?

虽然换壁纸能消除,但是再启动又会出现。

这次很快就找到了原因,问题出在intel的驱动上。

因为驱动程序包xserver-xorg-video-intel过于老旧,甚至连官方都不建议使用:The use of this driver is discouraged if your hw is new enough (ca. 2007 and newer). You can try uninstalling this driver and let the server use its builtin modesetting driver instead.

网上的建议大都是一删了之:sudo apt purge xserver-xorg-video-intel

但我不能删啊,不然登录界面灰屏的问题又不能解决了。

最后还是找到了其他解决办法:

Bug #1864778 “Intel Drivers Artifacts after Mesa-Dev Update” : Bugs : xserver-xorg-video-intel package : Ubuntu

在/etc/X11/xorg.conf.d/或/usr/share/X11/xorg.conf.d/下创建配置文件20-intel.conf:

Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "uxa"
EndSection

起作用的一行是Option "AccelMethod" "uxa",将默认的加速方式 sna(Sandybridge's New Acceleration)改成了 uxa(Unified Acceleration Architecture)

不过该配置文件虽然消除了绿码,但灰屏问题又重新出现,可能是跟之前创建的Display.conf有冲突。于是我将两个配置文件整合在一起,并且删掉了无需设置的默认字段:

Section "Monitor"
Identifier "Built-in Display"
Option "Ignore" "true"
EndSection
Section "Device"
Identifier "Intel Graphics"
Driver "Intel"
Option "AccelMethod" "uxa"
Option "Monitor-eDP1" "Built-in Display"
EndSection

再次重启,进入桌面。

这次是真的一点问题都没有了!

据说使用 intel 驱动和 uxa 方式会有显示性能损失,不过只要能解决BUG就OK。

第五回合:完胜!

终章

经过这一番漫长的折腾(大概一周时间,因为只能在晚上查资料和调试),我对Pop!_OS是又爱又恨——没想到装个系统需要这么肝。好在结局是完美的,也学到了不少东西。剩下的事情,就是继续折腾了!

PS:再次表示灰色登录界面不能忍!推荐一个美化工具,适用于Pop!_OS和Ubuntu 20.04及以上版本

gdm-background

讲讲安装Pop!_OS的奇葩事——干掉一块幽灵显示器

展开 收起
24评论

  • 精彩
  • 最新
  • 第一次听说这发行版,有什么优点啊

    校验提示文案

    提交
    Linux发行版太多了,优点基本都是粉丝在吹,我也没研究过

    校验提示文案

    提交
    收起所有回复
  • 为了300块钱的板子折腾了一星期?

    校验提示文案

    提交
    全套加起来大概一千多吧

    校验提示文案

    提交
    但是问题出在板子上啊

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 刚在老本装了个乌班图桌面版,还是卡,没办法准备换回xp,放弃了

    校验提示文案

    提交
    Pop OS比Ubuntu要精简一些,可能会好点

    校验提示文案

    提交
    Ubuntu用的是gnome,对硬件要求不算低,建议你用xubuntu,或者lubuntu,或者linux lite,或者sparky。看看楼主,因为爱折腾才踏进Linux的坑。我的老本装的sparky,关机速度超快,5秒,但Linux lite的驱动支持可能更全一些。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 逆向思维的话,把edp视频端口转出来?

    校验提示文案

    提交
    很难,因为不知道针脚定义,怕烧屏

    校验提示文案

    提交
    收起所有回复
  • 目测esir的粉

    校验提示文案

    提交
    [高兴] 嗯,用的他的软路由固件

    校验提示文案

    提交
    收起所有回复
  • 问下这个主板支持6代CPU 吗

    校验提示文案

    提交
    不支持ZSBD

    校验提示文案

    提交
    收起所有回复
  • 不懂这么小众的系统有什么用途

    校验提示文案

    提交
  • zurica

    作者
    我是装着玩的,不过有人是拿来做生产工具的

    校验提示文案

    提交
    生产工具要什么桌面 [观察]

    校验提示文案

    提交
    生产工具不是都拿来做server的

    校验提示文案

    提交
    收起所有回复
  • 第一次听说这个发行版,有什么特色吗? 也是debian系的?

    校验提示文案

    提交
  • 从北京来带着爱

    校验提示文案

    提交
  • 版主,刚搞了和你一样的主板。网上资料确实少,不知道能不能魔改BIOS.

    校验提示文案

    提交
  • 终归在xorg配置里搞的,pop os的上游Ubuntu是有可能换Wayland的。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
31
扫一下,分享更方便,购买更轻松