在使用Beaglebone Green或Beaglebone Black的过程中,少不了调试串口,少不了串口调试终端,但每次给开发板上电后,总会出现如下图所示的登录提示。设置登录,本来是为了提高安全性,但如果我们自己开发,每次都需要输出登录名和密码(虽然在Beaglebone Green中为空),有时会觉得很麻烦,如果上电系统启动后,可以自行登录,而无需手动输入用户名和密码,也许方便很多。
在linux生态系统中,大约主要有三种init模块:Systemd系统、SysVinit和Startup系统,其中SysVinit是linux系统中,相对旧的一种,而systemd是作为SysVinit替代品,或升级版。即Systemd的核心是取代老旧的SysV init。init用来初始化你的操作系统,当你启动系统时,init负责加载需要的驱动,激活你的网络链接,启动众多的系统服务,最后进入图形登陆界面。而SysV init 是一个老旧的系统,它基本上仅运行/etc/init.d目录下的一些脚本。在linux2.6以前的版本,使用的是SysVinit机制,而在Beaglebone Green中,由于内核一般用的是linux3.8,故使用的是Systemd系统。下面逐一介绍各系统怎样配置,使其可以开机自启动,而不需要每次输入用户名和密码。下面简单介绍这两种方法的设置,使运行相应机制的linux,可以在启动上电后,自行登录运行,而无需开发者手动登录。
一 Systemd系统(Beaglebone Green)
1打开设置文件/lib/systemd/system/serial-getty@.service,在ExecStart行中添加-a root命令,如下图所示
2 重新上电后,显示如下信息,即系统进行了自动登录
二、SystemInit系统
方法一:
按照如下方法修改文件/etc/inittab
#con:2345:respawn:/sbin/getty console
con:2345:respawn:/sbin/mingetty --autologin
root console
方法二:
(1)把/etc/passwd中的root:x:0:0:root:/root:/bin/bash,改为root::0:0:root:/root:/bin/bash,(就是去掉了里面的x)
(2)把/etc/inittab中的
1:2345:respawn:/sbin/agetty
tty1 9600改为
1:2345:respawn:/root/logintest
tty1 9600(就是去执行/root/logintest)
(3)编写shell脚本
#/root/logintest
#!/bin/sh
/bin/login -f root
|