在使用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;

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

  

实现ARM——Linux的自动登录的更多相关文章

  1. Linux开机自动登录(文本模式)

    • Linux系统启动登录过程 以RedHat/CentOS为例,Linux系统Level3模式下从启动到登录的整个过程大致如下: 1> 加载BIOS信息:包含了CPU/显卡/内存/硬盘/网卡等 ...

  2. Linux expect自动登录ssh,ftp

    [http://blog.51yip.com/linux/1462.html#] #!/usr/bin/expect -f set ip 192.168.1.201 set password meim ...

  3. Linux实现自动登录

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: #!/usr/b ...

  4. arm Linux 如何自动检测并mount SD卡,以及如何得知已经mount

    一.土八路做法: SD 卡一旦插入系统,内核会自动在/dev/下创建设备文件:sdcard. 但有时可能时用户在拨出卡前并没有umount的话,第二次插卡进去后系统创建的就不是sdcard设备文件了, ...

  5. 使用ARM模板部署自动扩展的Linux VMSS(2)

    12.准备完了模板文件,我们使用Powershell来创建VMSS for Linux的自动扩展集合,首先登陆到Azure中国的ARM账号: Login-AzureRmAccount -Environ ...

  6. linux启动后自动登录并运行自定义图形界面程序

    在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使 ...

  7. linux ssh 不用密码自动登录的几种方法

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

  8. [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)

    需求: 在Win7电脑上使用putty(一种ssh客户端)连接Ubuntu 工具: puttygen.exe 和 putty.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型 ...

  9. 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子

    因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚 ...

随机推荐

  1. gitbook 入门教程之从零到壹发布自己的插件

    什么是插件 Gitbook 插件是扩展 Gitbook 功能的最佳方式,如果 Gitbook 没有想要的功能或者说网络上也没有现成的解决方案时,那么只剩下自食其力这条道路,让我们一起来自力更生开发插件 ...

  2. 快学Scala 第十三课 (类型层级,对象相等性)

    Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...

  3. Django默认权限机制介绍及实践

    演示Django版本为当前最新版本v2.2 当Django配置文件中的INSTALL_APPS包含了django.contrib.auth时,就默认启用了一个简单的权限系统,提供了为用户或组分配权限的 ...

  4. 定期从Docker上部署的MySQL备份数据

    前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依 ...

  5. 【Java】web实现图片在线预览

    一.场景还原 用户上传了一张图片,已有服务器保存路径,现由于系统配置无法直接通过图片URL打开预览图片,需实现点击预览将图片显示在浏览器上. 二.实现方法 html: <a href=" ...

  6. android 6.0导航栏 NavigationBar影响视图解决办法

    在开发app的时候会遇到有些测试手机没有物理按钮,比如最近在做的一个app在小米手机上运行显示效果很好,但是在华为P7手机上显示就乱了,底部的NavigationBar直接覆盖在主视图上,导致按钮无法 ...

  7. SpringBoot系列:Spring Boot使用模板引擎Thymeleaf

    一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...

  8. Vue核心知识——computed和watch的细节全面分析

    computed和watch的区别 computed特性 1.是计算值,2.应用:就是简化tempalte里面{{}}计算和处理props或$emit的传值,computed(数据联动).3.具有缓存 ...

  9. sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'

    在使用 Linux 的过程中,有时候需要临时获取 root 权限来执行命令时,一般通过在命令前添加 sudo 来解决. 但是第一次使用 sudo 时,有可能会得到这样一个错误提示 xxx is not ...

  10. django-orm框架表单的增删改查

    08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject dja ...