嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
[9構(gòu)建嵌入式linux系統(tǒng)項目-啟動腳本的編寫
啟動腳本 教學回顧 shell語法 管道、重定向 變量 結(jié)構(gòu)性語句 教學內(nèi)容 啟動腳本的寫法 教學要求 熟悉掌握啟動腳本的寫法 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中。 函數(shù)定義格式: 函數(shù)變量作用域 全局作用域:在腳本的其他任何地方都能夠訪問該變量。 局部作用域:只能在聲明變量的作用域內(nèi)訪問。 聲明局部變量的格式: local variable_name =value 函數(shù)變量作用域 #! /bin/bash # echo "lclavariable in function1 = $lclvariable" echo "Gblvariable in function1 = $Gblvariable" scope() { local lclvariable=1 Gblvariable=2 echo "lclavariable in function2 = $lclvariable" echo "Gblvariable in function2 = $Gblvariable" } scope echo "lclavariable in function3 = $lclvariable" echo "Gblvariable in function3 = $Gblvariable" 啟動腳本 設(shè)計啟動腳本 內(nèi)核掛載根文件系統(tǒng)后,執(zhí)行第一個用戶程序(/sbin/init),init進程就是1號進程,是所有其他進程的祖先進程。 init進程根據(jù)/etc下的配置文件(inittab等)來啟動其他進程,初始化系統(tǒng)。 在嵌入式中,配置文件是要自己編寫的。 inittab init進程讀取/etc/inittab文件: rcS /etc/init.d/rcS是init進程啟動的第一個腳本程序,也叫做系統(tǒng)初始化腳本,該腳本主要完成以下任務(wù): 掛載其他文件系統(tǒng) 啟動mdev程序來管理設(shè)備文件 配置網(wǎng)絡(luò)等 下面給出一個比較好的rcS腳本寫法: fstab /bin/mount -a 的意思是掛載文件/etc/fstab中設(shè)置的所有設(shè)備 mdev mdev是busybox下的udev的精簡版,適合在嵌入式系統(tǒng)下管理設(shè)備 mdev 有兩個主要的應(yīng)用 系統(tǒng)啟動時創(chuàng)建設(shè)備文件 動態(tài)生成設(shè)備文件 mdev 系統(tǒng)初始化腳本中一個完整的使用mdev 的代碼片段 配置網(wǎng)絡(luò)腳本 我們將配置網(wǎng)卡eth0的腳本放在/etc/init.d/start/目錄下,文件名為network。 該腳本如下: profile init程序通過啟動/etc/init.d/rcS腳本程序來進行一系列的初始化工作 然后啟動一個shell(/bin/sh)。 啟動/bin/sh程序時,sh程序會讀取/etc/profile作為shell的環(huán)境變量配置文件 啟動腳本編寫好后,啟動的信息如下: 用戶登陸 在上面的inittab文件中,init啟動的最后任務(wù)是啟動定一個shell(/bin/sh)。 我們可以將其改成最后一個啟動的是一個登陸程序。 bash getty會啟動login啟動進行登陸 當?shù)顷懗晒?bin/bash程序 bash是gun的一個軟件,也是我們常用的命令行shell,代碼可以在上下載。 從虛擬機中,拷貝登陸root所需要的相關(guān)文件拷貝到根文件系統(tǒng)中 $ sudo cp /etc/{group,gshadow,passwd,shadow} /home/sice/rootfs/etc 開發(fā)板啟動信息如下: 課堂小結(jié) 思考題 作業(yè)題 * func2.sh Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2
總結(jié)
以上是生活随笔為你收集整理的嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux抓post命令,Linux 使
- 下一篇: 端口映射工具linux,Linux下端口