本節書摘來異步社群《嵌入式 linux應用程式開發标準教程(第2版)》一書中的第2章,第2.4節,作者:華清遠見嵌入式教育訓練中心,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
嵌入式 linux應用程式開發标準教程(第2版)
1.實驗目的
在linux下安裝一個完整的軟體(嵌入式linux的必備工具——交叉編譯工具),掌握linux常見指令,學會設定環境變量,同時搭建起嵌入式linux的交叉編譯環境(關于交叉編譯的具體概念在本書後面會詳細講解),為今後的實驗打下良好的基礎。
2.實驗内容
在linux中解壓cross-3.3.2.tar.bz2,并添加到系統環境變量中去。
3.實驗步驟
(1)将CD光牒中的cross-3.3.2.tar.bz2複制到windows下的任意盤中。
(2)重新開機機器轉到linux下,并用普通使用者身份登入。
(3)打開“終端”,并切換到超級使用者模式下。
(4)檢視cross-3.3.2.tar.bz2所在的windows下對應分區的格式,并記下其檔案裝置名稱,如“/dev/hda1”等。
(5)使用mkdir指令在“/mnt”建立子目錄作為挂載點。
(6)挂載windows相應分區。
注意
由于ntfs格式在linux的早期版本中是不安全的,隻能讀,不能寫,是以最好把檔案放到fat32格式的檔案系統中。
(7)進入挂載目錄,檢視是否确實挂載上。
(8)在/usr/local下建一個名為arm的目錄。
(9)将cross-3.3.2.tar.bz2複制到剛剛建立的目錄中。
若cross-3.3.2.tar.bz2在目前目錄中,則可将指令簡寫為:cp ./cross-3.3.2.tar.bz2 /usr/local/arm。
(10)将目前工作目錄轉到“/usr/local/arm”下。
指令為:cd /usr/local/arm
boll想一想
為什麼要将此目錄建立在“/usr/local”下?
(11)解壓縮該軟體包。
指令為:tar jxvf cross-3.3.2.tar.bz2
(12)将此目錄下的/bin目錄添加到環境變量中去。
指令為:export path=/usr/local/arm/3.3.2/bin :$path
0162注意
用此方法添加的環境變量在掉電後會丢失,是以,可以在“/etc/bashrc”的最後一行添加以上指令。
(13)檢視該路徑是否已添加到環境變量中。
指令為:echo $path
4.實驗結果
成功搭建了嵌入式linux的交叉編譯環境,熟悉linux下常用指令,如su、mkdir、mount、cp、tar等,并學會添加環境變量,同時對linux的目錄結構有了更進一步的了解。
2.4.2 定制linux系統服務
通過定制linux系統服務,進一步了解linux的守護程序,能夠更加熟練運用linux操作基本指令,同時也加深對init程序的了解和掌握。
檢視linux系統服務,并定制其系統服務。
(1)檢視系統的預設運作級别。
指令為:cat /etc/inittab(假設目前運作級别為n)
(2)進入相應級别的服務腳本目錄,檢視哪些服務是系統啟動的獨立運作的服務,并做下記錄。
指令為:cd /etc/rc.d/rcn.d
(3)利用指令檢視系統開機自啟動服務,與上次檢視結果進行比較,找出其中的差別,并思考其中的原因。
指令為:chkconfig –list
(4)記錄chkconfig –list指令中由xinet管理的服務,并将其中啟動的服務做下記錄。
(5)進入xinet配置管理的相應目錄,檢視是否與chkconfig –list所得的結果相吻合,并檢視相應腳本檔案。
指令為:cd /etc/xinetd.d
(6)将sshd服務停止。
指令為:service sshd stop
(7)将sshd服務設定為開機不啟動。
指令為:chkconfig –level n sshd stop
(8)檢視該設定是否生效。
(9)檢視系統中所有服務及其端口号清單。
指令為:cat /etc/services
(10)将sshd服務端口号改為4022。
指令為:vi /etc/services
(11)重新開機sshd服務,驗證所改的端口号是否生效。
指令為:service sshd start
(12)重新開機linux系統,驗證所改的服務開機啟動是否生效。
4.實驗結果分析
本實驗通過驗證linux系統服務的啟動狀态,進一步明确linux系統服務啟動的流程,更深入地了解了linux系統操作。
本實驗還通過定制linux系統服務sshd的開機啟動狀态和端口号,熟悉了linux的系統定制步驟。