为什么用 rc.local 覆盖 tty1.conf 会导致“主机 SMBus 控制器未启用!”在启动过程中挂起?

为什么用 rc.local 覆盖 tty1.conf 会导致“主机 SMBus 控制器未启用!”在启动过程中挂起?

我正在尝试使用 /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!

http://imgur.com/WB7ATsT

有人知道发生了什么吗?这个错误对我来说毫无意义。在启动期间更改 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 尚未启动。

相关内容