我正在尝试使用 /etc/rc.local 启动的脚本在启动期间编写一个新的 /etc/init/tty1.conf 文件。
/etc/rc.local的内容:
sh '/etc/first-boot-config.sh'
exit 0
在 first-boot-config.sh 中写入新的 tt1y.conf 文件:
mv /test/tty1.conf /etc/init/
rm /test
tty1.conf的内容(目的是自动登录界面用户):
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
#exec /sbin/getty -8 38400 tty1
exec /bin/login -f interface < /dev/tty1 > /dev/tty1 2>&1
启动过程中出现的错误:
[ 2.546557] piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!
有人知道发生了什么吗?这个错误对我来说毫无意义。在启动期间更改 tty1.conf 或更改 tty1.conf 中的一行与主机 SMBus 控制器有什么关系?
另外,有人知道有没有更简单的方法可以让用户在启动时自动登录吗?警告:这发生在第一次启动时,不能用手触摸键盘。无论解决方案是什么,都必须适合 first-boot-config.sh 脚本。我可以通过自定义 deb 包将任何文件放入文件系统,这样安装完成后它将位于文件系统上,但不是 /etc/tty1.conf,因为它已经是另一个包(upstart)的一部分。
更新:使用 Virtualbox(而不是 VMWare)时,我也收到此错误。Virtualbox 错误内容如下:
更新 2:如果我在出现错误后重新启动虚拟机并停止启动...下次启动如预期一样正常,自动登录“界面”用户并踢出其后续的自定义shell!!那么,用 rc.local 编写 tty1.conf 到底有什么问题呢?
[ 175.810366] piix4_smbus 0000:00:07.0: SMBus base address uninitialized - upgrade BIOS or use force_addr=0xaddr
答案1
所以我无法弄清楚为什么会发生此问题,但我找到了解决方法。在第一次启动时将 tty1.conf 放入 /etc/tty1.conf 的同一脚本中,我在末尾添加了“shutdown -r now”。只要系统重新启动一次(在出现错误之前或之后),所有内容(包括新的 tty1.conf 文件)都会在下次启动时按预期工作。
编辑:fkraiem 指出,当我尝试复制 tty1.conf 时,tty 尚未启动。