嵌入式Linux啟動配置檔案及指令碼

2021-06-06 17:34:17 字數 3353 閱讀 1617

使用busybox製作根檔案系統時,/etc目錄非常重要,它包含了嵌入式linux啟動所需的配置檔案及指令碼.由於init程序,或者說linuxrc程式會解析inittab檔案,因此就從/etc/inittab檔案開始說起.

(1)檔案/etc/inittab

該檔案是init程序需要解析的檔案,它的每個條目都是乙個指令碼或可執行程式,詳見部落格"inittab檔案".

:

:sysinit:

/etc/init.d/rcs

::respawn:

-/bin/login

::ctrlaltdel:

/bin/umount -a -r

(2)檔案/etc/init.d/rcs

該檔案的功能主要有兩個,乙個是將不同的檔案系統掛載到根檔案系統下的某個目錄內;二是新建kernel所需的目錄,這些目錄都是kernel執行過程中所必須的.

#

!/bin/sh

/bin/mount -n -t ramfs ramfs /var #在不同的目錄內掛載不同的檔案系統

/bin/mount -n -t ramfs ramfs /tmp

/bin/mount -n -t sysfs none

/sys

/bin/mount -n -t ramfs none

/dev

#在不同的目錄內新建資料夾

/bin/mkdir /var/tmp

/bin/mkdir /var/modules

/bin/mkdir /var/run

/bin/mkdir /var/

log#在不同的目錄內遞迴新建資料夾

/bin/mkdir -p /dev/pts

/bin/mkdir -p /dev/shm

/sbin/mdev -s

/bin/mount -a                     #當執行命令"mount -a"時,系統會自動讀取配置檔案fstab.

echo /sbin/mdev >

/proc/sys/kernel/hotplug

(3)檔案/etc/fstab

在檔案/etc/init.d/rcs中執行mount –a時,就會按照檔案/etc/fstab內容掛載相應的檔案系統.

proc        /proc       proc      defaults   0 0

none

/dev/pts    devpts    mode=0622  0 0

tmpfs       /dev/shm    tmpfs     defaults   0 0

<1>fstab檔案的格式:

device mount point filesystem parameters dump fsck

proc    /proc      proc    defaults   0    0

<2>檔案/etc/fstab就是使用mount將裝置載入到系統的某個載入點所需執行的命令內容,將這些內容都寫到/etc/fstab裡,使得系統一啟動就主動載入.

<3>引數dump的值表示是否允許使用dump命令進行系統備份.dump命令會根據對/etc/fstab的設定值,去選擇是否要將該分割槽進行備份.0表示不要dump備份,1或2表示要進行dump備份.

<4>引數fsck的值表示是否允許以fsck檢驗分區內的檔案系統是否完整.其中,根檔案系統必須進行檢驗,其它檔案系統可以不需要檢驗.0表示不要檢驗,1或2表示要進行檢驗.

(4)檔案/etc/passwd

當使用者以telnet或ssh登入主機時,系統會出現一login畫面來輸入賬號,此時輸入賬號和密碼後,linux會執行以下動作:

<1>先找/etc/passwd內是否有該賬號,如果有,則將該賬號與對應的uid(user id)和gid(group id)讀出,並將該賬號的家目錄與shell設定也一起讀出.

<2>核對密碼表,此時linux會進入/etc/shadow中查詢對應的賬號與uid,然後核對已輸入的密碼與裡面的密碼是否一致.

<3>若一切相符,就進入shell控制階段.

下面就來分別簡述這兩個檔案的含義.

<1>/etc/passwd

root:x:0:0:root:

/root:

/bin/sh

該檔案的構造如上所示,每一行都表示乙個賬號,有幾行就表示系統中有幾個賬號.注意,裡面的很多賬號都是系統必須使用的,稱作系統賬號.在每個linux系統中都會有第一行,就是root系統管理員行,每行有7個部分,用":"隔開.

1、賬號名稱:root表示預設的系統管理員的賬號名稱.

2、密碼:x表示密碼已經移動到shadow這個加密後的檔案中了.

3、uid:當uid=0時,表示root

4、gid:與/etc/group有關,用於規範使用者組.

5、使用者資訊說明欄:用於解釋該賬號的意義.

6、家目錄:使用者的家目錄.root使用者的家目錄就是/root.

7、shell:預設使用/bin/bash來執行命令.

<2>/etc/shadow

root:

$1$hneu8jpc$ryztn856szio.lcn2bzuz0:14880:0:99999:7:::

該檔案屬於加密檔案,每個賬號的密碼均在該檔案中,這裡不再贅述.

(5)/etc/profle

echo

echo -n "processing /etc/profile... "

# no-op

echo "done"

echo

path=

/bin:

/sbin:

/usr/bin:

/usr/sbin

export ld_library_path=

/lib:

/usr/lib

嵌入式QT 配置檔案

在嵌入式qt中,常常需要儲存使用者的操作習慣 ps 在開機重啟時,需要顯示重啟以前的狀態,這就需要將用到配置檔案,將相關引數儲存下來,也就是說保留配置檔案。考慮到系統呼叫等操作,可以將其分為讀,寫兩個操作。步驟1 建立結構體struct,將需要用到儲存的引數一條條歸類好,對應乙個個模組 ps typ...

嵌入式linux啟動流程

s3c6410 map io裡面呼叫 mach s3c6410下的cpu.c中 各個成員函式在不同時期被呼叫 1.init machine 在 arch arm kernel setup.c 中被 customize machine 呼叫,放在 arch initcall 段裡面,會自動按順序被呼叫...

嵌入式linux核心啟動流程

核心構成分析 uimage構成 arm linux核心映像uimage生成過程 u boot認為zimage為自解壓檔案 zimage decompress code head.s misc.s compressed vmlinux vmlinux vmlinux init arch arm ker...