由于寒假要留校做大创项目,用到的开发板是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