实现ARM-linux自动登录
一、前言
在使用linux系统嵌入式开发时,往往需要设备自动启动,而绕过linux的登录系统。有很多方法,在这里说我自己做的方法,直接修改登录的程序源代码:
二、更新mingetty
1.到网站http://www.filewatcher.com/m/mingetty-1.07.tar.gz.13435-0.html下载mingetty-1.07.tar.gz
2.解压:tar -zxvf mingetty-1.07.tar.gz 。进入到解压后的目录
3.修改mingetty.c中的代码
更改mingetty的代码需要进行两步操作。
第352行的char *logname, *s;
更改为char *logname = "root", *s;
把第409-415行注释
/* if (autologin) {
do_prompt (0);
printf ("login: %s (automatic login)/n", autologin);
logname = autologin;
} else
while ((logname = get_logname ()) == 0)
/* do nothing */ /*; */
(4)修改makefile
CC=arm-none-linux-gnueabi-gcc
(5)编译生成mingetty
[root@localhost mingetty-1.07]# make
(6)更新mingetty
将生成的mingetty程序拷贝到根文件系统的/sbin目录下
mingetty的源码更改就完成了。
三、更新login
(1) 到网站http://www.filewatcher.com/_/?q=util-linux-2.13-pre7.tar.bz2下载源代码
(2)解压源码包
tar -xf util-linux-2.13-pre7.tar.bz2
解压后的文件夹为util-linux-2.13-pre7,进入到解压缩的文件夹内
其中login的源码的目录为util-linux-2.13-pre7/login-utils
login-utils文件中不存在make文件,因此,需要自己编写编译命令来生成login。
(3)修改login.c中的代码
把344行的passwd_req = 1;
更改为passwd_req = 0;
在文件中添加locale.h头文件
#include <locale.h>
(4)编译生成login
[root@localhost login-utils]# arm-none-linux-gnueabi-gcc -o login login.c ../lib/setproctitle.c checktty.c -Wall -lcrypt -I ../include/
(6)更新login
将生成的login 程序拷贝到根文件系统的/bin目录下,结束。
四、修改inittab文件
将跟文件系统/etc/inittab文件中的最后的登录语句#S2:2345:respawn:/sbin/getty 115200 ttyS2
改为:S2:2345:respawn:/sbin/mingetty ttyS2
将修改后的根文件系统重新下载到系统中,系统启动时就会直接登录。不需要输入用户名及密码了。