在装有 Lubuntu 18.04 的旧笔记本电脑上,我sisfb
运行正常。它根本没有被列入黑名单,并且在启动时加载。
问题是sisfb
通常在 中被列入黑名单/lib/modprobe.d/fbdev-blacklist.conf
。虽然我可以注释掉该行,但每当udev
使用每周 GUI 更新提醒更新包时,/lib/modprobe.d/fbdev-blacklist.conf
都会被覆盖。虽然我可以使用chattr +i /lib/modprobe.d/fbdev-blacklist.conf
来阻止更新覆盖文件,但这会导致udev
更新失败,从而导致apt full-upgrade
失败。由于笔记本电脑是供计算机新手使用的,因此这不是一个可行的方法。
如何sisfb
在启动时正确加载?
答案1
您可以通过创建简单的 bash 脚本并通过 cron 运行它或将其添加为 systemd 单元来解决此问题。
#!/bin/bash
SLEEP_TIME=30 # how often do the checks
BL="/lib/modprobe.d/fbdev-blacklist.conf"
while [ true ]; do
SISFB_BL=`grep "blacklist sisfb" $BL`
if [[ "$SISFB_BL" ]]; then
# sisfb un-blacklist
sed -i '/blacklist sisfb/d' /lib/modprobe.d/fbdev-blacklist.conf
else
echo "[ ok ] sisfb blacklist not found"
fi
sleep $SLEEP_TIME
done
将其保存为 /opt/sisfb_blacklist_watcher.sh
并在 root 上添加到 cron 中:
sudo-i crontab -e
@reboot /opt/sisfb_blacklist_watcher.sh &> /dev/null &
答案2
来自ServerFault:
这个答案:
apt-get install -o Dpkg::Options::="--force-confold" --force-yes -y udev
不过,请阅读答案下面的评论。它表明--force-yes
有时这是一个极端的选择,尽管它没有清楚地解释。
这里有更好的 ServerFault 答案:
本答案:
您可以从 apt 向 dpkg 传递选项。您可能感兴趣的是 --force-confold 选项。命令如下所示:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
设置
--force-confdef
完成后,如果配置文件没有被编辑过,apt-get 仍然会更新它,同时--force-confold
会保留已编辑的配置文件而不询问。为了使其永久生效,您还可以在 apt.conf 文件中设置以下选项:
Dpkg::Options { "--force-confdef"; "--force-confold"; }