9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫ppt課件_第1頁
9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫ppt課件_第2頁
9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫ppt課件_第3頁
9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫ppt課件_第4頁
9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫ppt課件_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、啟動腳本教學回顧n shell語法n 管道、重定向n 變量n 結(jié)構(gòu)性語句教學內(nèi)容n 啟動腳本的寫法教學要求n 熟悉掌握啟動腳本的寫法shell 函數(shù)在shell程序中, 常常把完成固定功能、且多次使用的一組命令語句封裝在一個函數(shù)里,每當要使用該功能時只需調(diào)用該函數(shù)名即可。 函數(shù)在調(diào)用前必須先定義,即在順序上函數(shù)說明必須放在調(diào)用程序的前面。 調(diào)用程序可傳遞參數(shù)給函數(shù), 函數(shù)可用return語句把運行結(jié)果返回給調(diào)用程序。 函數(shù)只在當前shell中起作用, 不能輸出到子Shell中。shell 函數(shù)函數(shù)定義格式:shell 函數(shù)function_name ( ) command1 commandn

2、function function_name ( ) command1 commandn 方式一:方式一:方式二:方式二:函數(shù)的所有標準輸出都傳遞給了主程序的變量獲取函數(shù)的返回的狀態(tài)shell 函數(shù)調(diào)用value_name=function_name arg1 arg2 函數(shù)調(diào)用格式函數(shù)調(diào)用格式:function_name arg1 arg2 echo $?方式方式1:方式方式2:函數(shù)變量作用域n 全局作用域:在腳本的其他任何地方都能夠訪問該變量。n 局部作用域:只能在聲明變量的作用域內(nèi)訪問。n 聲明局部變量的格式:n local variable_name =value函數(shù)變量作用域#! /

3、bin/bash#echo lclavariable in function1 = $lclvariableecho Gblvariable in function1 = $Gblvariablescope() local lclvariable=1 Gblvariable=2 echo lclavariable in function2 = $lclvariable echo Gblvariable in function2 = $Gblvariablescopeecho lclavariable in function3 = $lclvariableecho Gblvariable in

4、function3 = $Gblvariable啟動腳本設(shè)計啟動腳本n 內(nèi)核掛載根文件系統(tǒng)后,執(zhí)行第一個用戶程序(/sbin/init),init進程就是1號進程,是所有其他進程的祖先進程。n init進程根據(jù)/etc下的配置文件(inittab等來啟動其他進程,初始化系統(tǒng)。n 在嵌入式中,配置文件是要自己編寫的。inittabn init進程讀取/etc/inittab文件:uinittab文件安裝規(guī)定格式編寫,根據(jù)上面的inittab文件的規(guī)則:u首先執(zhí)行/etc/init.d/rcS腳本文件u然后執(zhí)行一個shell程序/bin/bashrcSn /etc/init.d/rcS是init進

5、程啟動的第一個腳本程序,也叫做系統(tǒng)初始化腳本,該腳本主要完成以下任務(wù):n 掛載其他文件系統(tǒng)n 啟動mdev程序來管理設(shè)備文件n 配置網(wǎng)絡(luò)等n 下面給出一個比較好的rcS腳本寫法:包含文件腳本函數(shù)check_status的作用是檢測上一個程序執(zhí)行的退出狀態(tài)。看看是否是正常退出。掛載所有文件系統(tǒng)檢測狀態(tài)啟動mdev設(shè)置HOSTNAME設(shè)置loop網(wǎng)絡(luò)ip該循環(huán)的作用是執(zhí)行/etc/init.d/start/目錄下的所有腳本文件。fstabn /bin/mount -a 的意思是掛載文件/etc/fstab中設(shè)置的所有設(shè)備u第1列是需要掛載的文件系統(tǒng)或存儲設(shè)備u第2列是掛載點u第3列指定文件系統(tǒng)或分

6、區(qū)的類型u第4列為掛載選項,udefaults: rw, suid, dev, exec, auto, nouser, and async.u第5列為dump選項,設(shè)置是否讓備份程序dump備份文件系統(tǒng),0為忽略,1為備份。u第6列為fsck選項,告訴fsck程序以什么順序檢查文件系統(tǒng),0為忽略。mdevn mdev是busybox下的udev的精簡版,適合在嵌入式系統(tǒng)下管理設(shè)備n mdev 有兩個主要的應(yīng)用n 系統(tǒng)啟動時創(chuàng)建設(shè)備文件n 動態(tài)生成設(shè)備文件mdevn 系統(tǒng)初始化腳本中一個完整的使用mdev 的代碼片段1 mount -t tmpfs mdev /dev2 mkdir /dev/p

7、ts3 mount -t devpts devpts /dev/pts4 mount -t sysfs sysfs /sys5 echo /bin/mdev /proc/sys/kernel/hotplug6 mdev -s配置網(wǎng)絡(luò)腳本n 我們將配置網(wǎng)卡eth0的腳本放在/etc/init.d/start/目錄下,文件名為network。n 該腳本如下:首先包含兩個文件其中/etc/network.conf文件的內(nèi)容如下:主要是設(shè)置變量profilen init程序通過啟動/etc/init.d/rcS腳本程序來進行一系列的初始化工作n 然后啟動一個shell(/bin/sh)。n 啟動/bi

8、n/sh程序時,sh程序會讀取/etc/profile作為shell的環(huán)境變量配置文件n 啟動腳本編寫好后,啟動的信息如下:用戶登陸n 在上面的inittab文件中,init啟動的最后任務(wù)是啟動定一個shell(/bin/sh)。n 我們可以將其改成最后一個啟動的是一個登陸程序。bashn getty會啟動login啟動進行登陸n 當?shù)顷懗晒?bin/bash程序n bash是gun的一個軟件,也是我們常用的命令行shell,代碼可以在上下載。tar zxvf bash-4.0.tar.gzcd bash-4.0./configure -host=arm-linuxmakecp bash /home/sice/rootf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論