ARM學習之實現開機自動登錄以及修改開機啓動項

由於寒假要留校做大創項目,用到的開發板是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








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章