sddm的奇怪问题
在新的笔记本上头安装好Arch后,最近几次突然出现了个奇怪的问题:
系统检查完成后,sddm总是起不来。但系统是已经启动成功的,因为我可以切换到tty界面进行操作。但尝试在tty界面输入sddm,却给我返回错误:
Failed to read display number from pipe但是,通过systemctl restart sddm重启一次服务,却又可以正常启动了,直到下一次重新启动需要再进行一次这个步骤。
真是头一次遇到这种问题……

后来在Archlinuxcn的群组里搜索了一番,看到了一个解释,说是熵不够。可以通过命令
cat /proc/sys/kernel/random/entropy_avail来查看熵值。想要sddm启动需要差不多2000的样子。
我照做了。然后得到了刚启动时候的熵值:20
虽然到了也没明白为什么sddm启动要检查熵,但是这很明显差得太多了,那问题应该就是这里了。
有没有什么办法能提高熵的值呢?还真有。
pacman -S rng-tools
systemctl enable rngd重启。
真好,刚启动就2700多了呢。
但是,对sddm启动的解决卵用也没有…

后来又看到一个,大概意思就是:
kabylake架构的CPU,要把驱动加入内核
来试一下:
- 安装intel驱动:
pacman -S xf86-video-intel - 编辑
/etc/mkinitcpio.conf,在MODULES=的括号内增加intel_agp i915 - 重新生成initramfs。以防万一,先不做覆盖:
mkinitcpio -c /etc/mkinitcpio.conf -g /boot/linux-i915.img - 重新启动。在grub处按 e 编辑启动项,将
initramfs-linux.img位置更改为linux-i915.img,按F10启动
啊…终于成功了。虽然熵才30多,但sddm也终于能一次起来了。
既然启动成功了,就可以把这个自定义的名称更改成initramfs-linux.img并覆盖原先的镜像了。不过为了安全,把原先镜像做个备份大概也是有必要的。
不过,虽然解决这个问题了,但我到底也没闹清楚为什么这种架构的CPU要启用KMS,更不明白为啥提高熵也能解决一部分sddm卡住的问题…
不过还行,从解决到现在,驱动啥的都滚了几个版本了,找时间去掉这俩模块再试一下

