標籤:easyarm 周立功 i.mx287
0 前言 前段時間購買了周立功的EasyARM i.mx287開發板,加之前3個月工作內容也和linux有關,就藉助周立功的EasyARM總結Linux開發過程中的若干注意點。 本文說明在ubuntu中安裝tftp伺服器的詳細步驟,在ubuntu中編寫一個讓LED閃爍的指令碼,使用串口登入EasyARM,在EasyARM中通過busybox的tftp指令獲得主機中的指令檔,增加可執行權之後運行,最終LED燈間隔閃爍。
1 安裝tftp 【1】建立目錄,並修改許可權 在使用者目錄中建立一個名為tftpboot的檔案夾,並修改許可權。該目錄中放置所有需通過tftp交換的檔案,可稱為tftp根目錄。 mkdir tftpboot chmod -R 777 tftpboot
【2】安裝tftp、tftpd 開始安裝之前,請先更新軟體源 sudo apt-get update 安裝tftp、tftpd和 sudo apt-get install tftpd tftp xinetd 其中tftp為用戶端, tftp為伺服器端,xinetd為linux超級守護進程。
【3】修改設定檔 在/etc/xinetd.d/下建立一個tftpd的設定檔sudo vi /etc/xinetd.d/tftp
service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/<user>/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4} server_args = -s /home/<user>/tftpboot
指定tftp根目錄,通過tftp交換的檔案均放置於該目錄中。
【4】重新運行xinetdsudo /etc/init.d/xinetd restart 【5】檢查配置成功 如下輸出說明控制台工作正常 sudo netstat -a | grep tftp# 返回結果,運行正常udp 0 0 *:tftp *:*
2 使用tftp 【在ubuntu中】 【1】編寫指令碼——blink.sh
#!/bin/shLEDFILE=/sys/class/leds/led-err/brightnessfor i in $( seq 1 10 )do echo 1 >$LEDFILE sleep 1 echo 0 >$LEDFILE sleep 1 echo "LED Blink!"done
【2】複製到tftp根目錄中 cp blink ~/tftpboot
【在EasyARM中】 【1】設定IP地址,並嘗試ping通ubuntu 如果尚未設定IP地址,可通過ifconfig設定目標板的IP地址,需要保證目標板和虛擬機器在同一個網段中。 ifconfig eth0 192.168.1.211 此時主機的IP地址為192.168.1.106,那麼可在虛擬中嘗試ping通主機 ping 192.168.1.106 -c 4
【2】獲得檔案 tftp -g -r blink.sh 192.168.1.106 【說明】 【1】EasyARM中採用BusyBox工具箱,該工具箱中的tftp指令和debian/ubuntu中的並不相同。 【2】-g 參數代表獲得,-r參數代表遠程主機,blink.sh為檔案名稱,此時ARM和ubuntu主機中的檔案名稱相同。192.168.1.106為tftp伺服器位址。更多閱讀參考資料【2】中的博文。
【3】修改執行許可權並執行 chmod a+x blink.sh ./blink.sh
3 總結 【1】在ARM中busybox指令和ubuntu中的指令存在差異。 【2】tftp -g -r <File Name> <IP Address> 在ARM中獲得遠程主機中的檔案。
4 參考資料【1】Ubuntu下tftp服務搭建【2】Busybox下tftp命令使用詳解【3】Shell指令碼中迴圈語句for,while,until用法【4】Linux 超級守護進程 xinetd