知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

实现ARM-linux自动登录

发布时间:2014-09-05 14:59:09作者:知识屋

实现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
将修改后的根文件系统重新下载到系统中,系统启动时就会直接登录。不需要输入用户名及密码了。
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜