实现ARM——Linux的自动登录
在使用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的自动登录的更多相关文章
- Linux开机自动登录(文本模式)
• Linux系统启动登录过程 以RedHat/CentOS为例,Linux系统Level3模式下从启动到登录的整个过程大致如下: 1> 加载BIOS信息:包含了CPU/显卡/内存/硬盘/网卡等 ...
- Linux expect自动登录ssh,ftp
[http://blog.51yip.com/linux/1462.html#] #!/usr/bin/expect -f set ip 192.168.1.201 set password meim ...
- Linux实现自动登录
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: #!/usr/b ...
- arm Linux 如何自动检测并mount SD卡,以及如何得知已经mount
一.土八路做法: SD 卡一旦插入系统,内核会自动在/dev/下创建设备文件:sdcard. 但有时可能时用户在拨出卡前并没有umount的话,第二次插卡进去后系统创建的就不是sdcard设备文件了, ...
- 使用ARM模板部署自动扩展的Linux VMSS(2)
12.准备完了模板文件,我们使用Powershell来创建VMSS for Linux的自动扩展集合,首先登陆到Azure中国的ARM账号: Login-AzureRmAccount -Environ ...
- linux启动后自动登录并运行自定义图形界面程序
在<Ubuntu CTRL+ALT+F1~F6 进入命令模式后不支持中文显示的解决办法>一文中提到linux启动在以后运行一个独占显示器的图形程序的两种办法. 1.不启动xserver,使 ...
- linux ssh 不用密码自动登录的几种方法
1. 自动ssh/scp方法== A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux 在A上运 ...
- [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)
需求: 在Win7电脑上使用putty(一种ssh客户端)连接Ubuntu 工具: puttygen.exe 和 putty.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型 ...
- 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子
因为要对客户方的快30个项目进行特别有顺序的重启,所以不得不想办法写个脚本,网上看了不少段子.真是残缺的可以.没有一段是可以正常运行的.我来按顺序记录一下 脚本的本身 使用expect实现自动登录的脚 ...
随机推荐
- gitbook 入门教程之从零到壹发布自己的插件
什么是插件 Gitbook 插件是扩展 Gitbook 功能的最佳方式,如果 Gitbook 没有想要的功能或者说网络上也没有现成的解决方案时,那么只剩下自食其力这条道路,让我们一起来自力更生开发插件 ...
- 快学Scala 第十三课 (类型层级,对象相等性)
Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...
- Django默认权限机制介绍及实践
演示Django版本为当前最新版本v2.2 当Django配置文件中的INSTALL_APPS包含了django.contrib.auth时,就默认启用了一个简单的权限系统,提供了为用户或组分配权限的 ...
- 定期从Docker上部署的MySQL备份数据
前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依 ...
- 【Java】web实现图片在线预览
一.场景还原 用户上传了一张图片,已有服务器保存路径,现由于系统配置无法直接通过图片URL打开预览图片,需实现点击预览将图片显示在浏览器上. 二.实现方法 html: <a href=" ...
- android 6.0导航栏 NavigationBar影响视图解决办法
在开发app的时候会遇到有些测试手机没有物理按钮,比如最近在做的一个app在小米手机上运行显示效果很好,但是在华为P7手机上显示就乱了,底部的NavigationBar直接覆盖在主视图上,导致按钮无法 ...
- SpringBoot系列:Spring Boot使用模板引擎Thymeleaf
一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在jav ...
- Vue核心知识——computed和watch的细节全面分析
computed和watch的区别 computed特性 1.是计算值,2.应用:就是简化tempalte里面{{}}计算和处理props或$emit的传值,computed(数据联动).3.具有缓存 ...
- sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'
在使用 Linux 的过程中,有时候需要临时获取 root 权限来执行命令时,一般通过在命令前添加 sudo 来解决. 但是第一次使用 sudo 时,有可能会得到这样一个错误提示 xxx is not ...
- django-orm框架表单的增删改查
08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject dja ...