ARM学习之实现开机自动登录以及修改开机启动项

2019-07-13 07:00发布

由于寒假要留校做大创项目,用到的开发板是ZLG的imx280a,开始学习ARM,做个记录方便查看。今天做的是实现开机自动登录以及修改开机启动项。 一,开机自动登录。 1.首先我们在/bin目录下创建一个名为autologin的可执行文件(注意这里的/bin目录和autologin都是根据个人设定的,只要你能记住路径和文件名称即可。可执行文件没有后缀名,如果文件里边的内容是用C语言编写的,要根据自己的系统的交叉编译链生成可执行的二进制文件,例如arm-linux-gcc autologin.c -o autologin(跟开发板的交叉编译工具链同步),如果只是shell语句,直接在vi编辑器中编辑即可)。用vi autologin创建文件,并给文件添加可执行权限chmod +x /bin/autologin。autologin里的内容如下: #!/bin/sh   /bin/login -f root 2.然后,我们要找到开发板文件系统关于登录那部分的文件。我们要修改/etc/inittab里的内容。修改前的内容如下: root@EasyARM-iMX28x /etc# cat inittab # see busybox-1.00rc2/examples/inittab for more examples ::sysinit:/etc/rc.d/rcS ::respawn:/sbin/getty -L ttyAM0  115200 vt100 ::sysinit:/etc/rc.d/rc_gpu.S ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/rc.d/rcS stop ::restart:/sbin/init 这里我们要把第四行修改成我们需要的: root@EasyARM-iMX28x /etc# cat inittab # see busybox-1.00rc2/examples/inittab for more examples ::sysinit:/etc/rc.d/rcS ::respawn:/sbin/getty -n -l /bin/autologin 115200 ttyAM0 vt100 ::sysinit:/etc/rc.d/rc_gpu.S ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/rc.d/rcS stop ::restart:/sbin/init 3.修改完成后,“:wq”保存,然后同步文件后(sync)重启即可。 root@EasyARM-iMX28x ~# sync 二、去掉开机登录密码。 要把/etc/passwd中的root:x:0:0:root:/root:/bin/sh,改为root::0:0:root:/root:/bin/sh,就可以了,就是去掉了里面的x,这样root用户就不用密码了。

三、修改开机启动项。 我们需要将要执行的代码放到/etc/profile文件的末尾,这样就可以实现开机启动了。注意这样实现的话一旦发现程序卡死,是可以CTRl+C终止程序的哦。
我这里以打印hello为例说明一下,以下是profile里的内容: root@EasyARM-iMX28x /etc# cat profile PATH=/iptables/bin:/iptables/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/lib/bin test_value=`/bin/cat /sys/devices/platform/zlg-systemType/board_name` if [ $test_value = "287B" ] then echo "this board is EasyARM-iMX287B" export HOSTNAME="EasyARM-iMX287B" fi if [ $test_value = "280" ] then echo "this board is EasyARM-iMX280A" export HOSTNAME="EasyARM-iMX280" fi if [ $test_value = "283" ] then echo "this board is EasyARM-iMX283" export HOSTNAME="EasyARM-iMX283" fi #PS1='[u@h W]# ' PS1='[u@$HOSTNAME W]# ' export PATH alias ll='ls -l' alias la='ll -a' export PS1='u@h w# ' export PS2='> ' export PS3='? ' export PS4='[$LINENO]+' export GST_PLUGIN_PATH=/usr/lib/fsl_mm_linux/lib/gstreamer-0.10 export TSLIB_PLUGINDIR=/usr/lib/ts/ export TSLIB_CONFFILE=/etc/ts.conf export TSLIB_TSDEVICE=/dev/input/ts0 export TSLIB_CALIBFILE=/etc/pointercal export QT_QWS_FONTDIR=/usr/lib/fonts export QWS_MOUSE_PROTO=Tslib:/dev/input/ts0 echo "hello" 然后执行sync命令同步文件,重启系统
以下是成功后的现象: login[1148]: root login on 'ttyAM0' BusyBox v1.20.2 () built-in shell (ash) Enter 'help' for a list of built-in commands. this board is EasyARM-iMX280A hello root@EasyARM-iMX28x ~#

最后分享几个感觉参考的感觉有用的博客链接吧 1.http://blog.csdn.net/andylauren/article/details/52006456 2.http://alphamailpost.blog.163.com/blog/static/201118081201252854211596/ 3.http://www.360doc.com/content/10/0322/07/496343_19728307.shtml 4.http://blog.csdn.net/u014213012/article/details/72772061 5.http://blog.csdn.net/u013359794/article/details/46895979 上边5个基本和我说的差不多,有些介绍的比我详细一些,下边的2个是关于ARM文件系统启动过程的说明,感觉很有用。 1.http://blog.csdn.net/c19911027/article/details/46467995 2.http://blog.csdn.net/u011150719/article/details/42713747