在使用Linux系统嵌入式开发时,往往需要设备绕过Linux的登录系统使其自动启动,比如我们常用的SSH客户端等。网上确实有很多方法,不知道是因为我们的ARM9板子是私人订制的缘故还是什么原因,试了很多方法都不行,只有一种方法可行,特此记录。

一、更新mingetty:

  1、到网站http://www.filewatcher.com/m/mingetty-1.07.tar.gz.13435-html下载mingetty-1.07.tar.gz;

  2、解压:tar -zxvf mingetty-1.07.tar.gz,进入解压后的目录;

  3、修改mingetty.c中的代码,仅需两步:

  (1)第352行的 char *logname,*s  更改为 char *logname = "root",*s;

  (2)把第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-lonux-gnueabi-gcc;(此处应是交叉编译的安装路径)

  5、编译生成mingetty:# make;

  6、更新mingetty程序拷贝到根文件系统的 /sbin 目录下,mingetty的源码就更改完成了。

二、更新login:

  1、到网站:http://www.filewatcher.com/_/?q=util-linux-2.13-pre7.tar.bz2下载源代码;

  2、解压: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;

  3、修改login.c中的代码:

  (1)把第344行的 passwd_req = 1 更改为 passwd_req = 0;

  (2)在文件中添加 locale.h 头文件: #include <locale.h>;

  4、编译生成 login :

  # arm-none-linux-gnueabi-gcc -o login login.c  ../lib/setproctitle.c checktty.c  -Wall  -lcrypt  -I  ../inlucde/ ;  

  5、更新 login :

  将生成的 login 程序拷贝到根文件系统的 /bin 目录下。

三、修改 inittab 文件:

  将根文件系统 /etc/inittab 文件中的最后的登录语句 #S2:2345:respawn:/sbin/getty 115200 ttyS2 改为 S2:2345:respawn:/sbin/mingetty ttyS2;

  将修改后的根文件系统重新下载到系统中,系统启动时就会直接登录,不需要输入用户名和密码了。

  

转载于:https://www.cnblogs.com/ys6738-4271-3931/p/5637932.html

实现ARM——Linux的自动登录相关推荐

  1. linux 命令行模式自动登录,实现linux的自动登录--命令行模式启动

    linux的登录主要是由两个文件在控制,/usr/sbin/getty来获得用户名,并进行检查用户名是否存在,然后将用户名传递给/usr/bin/login来获取用户输入密码和检查密码是否正确. 所以 ...

  2. Linux Ubuntu 自动登录

    我一直在用Ubuntu发型版本的Linux系统,很喜欢把它做得更加的方便易用,特别是Ubuntu的Server版本,因为没有Desktop的 GUI界面,也没有自动登录设置,无法通过简单的点击鼠标方式 ...

  3. linux expect自动登录ssh,ftp

    expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及 什么是正确的应答.它是一种可以提供& ...

  4. linux sshd自动登录,SSH自动登录的几种方法

    1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110; A和B的系统都是Linux 在A ...

  5. linux 取消自动登录,通过GUI启用或禁用Ubuntu 18.04系统自动登录

    有些 Ubuntu 用户只是个人使用电脑,所以每次登录 Ubuntu 18.04 LTS 系统时都要输入设置时的身份验证信息觉得非常的麻烦,下面我们有两种方法可以让你启用与禁用 Ubuntu 18.0 ...

  6. linux 开机自动登录i3wm

    最近在我的物理机上打算使用archlinux当主力机.但是因为我这台笔记本电脑最近刚发布的,安装archlinux无法正确识别笔记本电脑自带的键盘. 只能外接usb键盘,或者使用蓝牙键盘了.因为我的u ...

  7. linux lightdm自动登录,设置了XFCE/lightDM启用自动登录,还是需要'点击'登录两字才能进入桌面...

    xtricman 说:建议管理员移动至其他发行版 建议登录进桌面后贴一下本次启动的lightdm服务日志 你看你做的跟英文版 Wiki描述不一致,你不会添加用户到组的时候连#都输入了吧,你看不懂Wik ...

  8. [转]linux 下自动登录到ftp

    2019独角兽企业重金招聘Python工程师标准>>> . 建立一个文本文件,例如文件名是ftp.txt,其内容如下: open 192.168.1.100 /*用open连接远程服 ...

  9. linux开机到登陆的流程图,Linux开机自动登录root,并启动应用程序

    只需要修改etc目录下的inittab文件和init.d路径下的rcS文件. 在inittab文件中选择执行以下两句 #采用界面登陆 ::askfirst:/sbin/getty 115200 con ...

最新文章

  1. 实现BFS之“营救”
  2. go get报错unrecognized import path “golang.org/x/net/context”…
  3. 泥浆配制_朝政泥浆——广西田阳县百东河水库溢洪道穿越钻泥浆配制简述(3)...
  4. python序列类型有_Python序列类型
  5. python单例_Python - 单例模式(Singleton)
  6. killall 后面信号_Linux 下使用 killall 命令终止进程的 8 大用法
  7. autohotkey编写windows脚本实现test.lab试验数据快速导出
  8. 地铁 java_怎么用Java编写一个地铁售票机的程序?
  9. vue学习代码理解v-for数组遍历和对象遍历以及事件处理
  10. 数据库系统概念中文版pdf
  11. Effective STL中文版 译序
  12. 箭头函数写法_初探ES6:箭头函数
  13. macOS Big Sur 11.6 (20G165) 虚拟机 IOS 镜像
  14. c# sqlite 批量修改
  15. excel按某个字符将一个单元格拆分成多个单元格
  16. gitee搭建个人博客教程
  17. python判别性别的代码_学习文章—(Python实践)Python实现手机号自动判断男女性别...
  18. ae无法连接ame_怎么我的AE无法连接media encoder?如何解决AE链接不了media encoder的问题?求教谢谢...
  19. 如何将IE 11 改为 IE 8
  20. sql 开发html,uap开发sql

热门文章

  1. Linux内核补丁升级
  2. LUA脚本调用C场景,使用C API访问脚本构造的表
  3. javascript黑魔法
  4. JQuery Event属性说明
  5. TF31003:您的用户帐户没有连接到 Team Foundation Server 的权限
  6. 各种边缘检测算法效果对比-差分运算法、Sobel、Scharr、Laplace(拉普拉斯)、Roberts、Canny
  7. java instanceof用法_Java基础高频面试题汇总(1.4W字详细解析)
  8. OVS搭建虚拟机全过程(四十五)
  9. C++ 构造函数初始化列表
  10. C/C++循环输入问题