在使用Linux系统嵌入式开发时,每每须要设备绕过Linux的登陆系统使其自动启动,好比咱们经常使用的SSH客户端等。网上确实有不少方法,不知道是由于咱们的ARM9板子是私人订制的缘故仍是什么缘由,试了不少方法都不行,只有一种方法可行,特此记录。html
1、更新mingetty:linux
一、到网站http://www.filewatcher.com/m/mingetty-1.07.tar.gz.13435-html下载mingetty-1.07.tar.gz;网站
二、解压:tar -zxvf mingetty-1.07.tar.gz,进入解压后的目录;spa
三、修改mingetty.c中的代码,仅需两步:htm
(1)第352行的 char *logname,*s 更改成 char *logname = "root",*s;开发
(2)把第409-415行注释掉,以下代码:get
/* if (autologin) {源码
do_prompt(0);it
printf("login:%s(automatic login)\n",autologin);编译
logname = autologin;
}else
while((logname = get_logname()) == 0)
/* do nothing */ /* ; */
四、修改 makefile:
CC = arm-none-lonux-gnueabi-gcc;(此处应是交叉编译的安装路径)
五、编译生成mingetty:# make;
六、更新mingetty程序拷贝到根文件系统的 /sbin 目录下,mingetty的源码就更改完成了。
2、更新login:
一、到网站:http://www.filewatcher.com/_/?q=util-linux-2.13-pre7.tar.bz2下载源代码;
二、解压:tar -jxvf util-linux-2.13-pre7.tar.bz2,解压后的文件夹为 util-linux-2.13-pre7,进入此目录,其中login的源码目录为 util-linux-2.13-pre7/login-utils,然而 login-utils 文件中不存在make 文件,所以须要本身编写命令生成 login;
三、修改login.c中的代码:
(1)把第344行的 passwd_req = 1 更改成 passwd_req = 0;
(2)在文件中添加 locale.h 头文件: #include <locale.h>;
四、编译生成 login :
# arm-none-linux-gnueabi-gcc -o login login.c ../lib/setproctitle.c checktty.c -Wall -lcrypt -I ../inlucde/ ;
五、更新 login :
将生成的 login 程序拷贝到根文件系统的 /bin 目录下。
3、修改 inittab 文件:
将根文件系统 /etc/inittab 文件中的最后的登陆语句 #S2:2345:respawn:/sbin/getty 115200 ttyS2 改成 S2:2345:respawn:/sbin/mingetty ttyS2;
将修改后的根文件系统从新下载到系统中,系统启动时就会直接登陆,不须要输入用户名和密码了。