[root@(none)init.d]#cat rcs
#後面一般為注釋的內容
#!/bin/sh
此句含義:
#! /bin/sh 是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面跟的是解釋此指令碼的shell的路徑。如果指令碼中沒有宣告,則指令碼將在使用者預設的shell中執行。使用者預設的shell環境是在/etc/passwd中定義:比如passwd檔案第一行中 root:x:0:0:root:/root:/bin/bash,最後的/bin/bash說明root使用者的預設shell是/bin/bash。雖然#! /bin/sh 可有可無,所以建議就把"#!/bin/sh"當成c 語言的main函式一樣,寫shell必須有,以使shell程式更嚴密。
ifconfig eth0 192.168.7.104//配置網絡卡ip
mount -a
此句含義:
mount -a 是自動掛載 /etc/fstab 裡面的東西。
不過這東西開機時已經掛載了,你如果沒有修改 fstab 增加新的東西那就肯定沒輸出。 mount -a 會忽略所有已經完成的操作,也就是開機時 fstab 已經掛載後,而且你沒有修改 fstab 。你再執行 mount -a ,他會自動忽略全部 fstab 內容。
/etc/fstab的內容如下:
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
. /etc/init.d/init.sh
#udisk auto mount
mount -t sysfs sysfs /sys
此句含義:
sysfs是一種基於ram的檔案系統,它提供了一種用於向使用者空間展現核心空間裡的物件、屬性和鏈結。sysfs與kobject層次緊密相連,它將kobject層次關係表現出來,使得使用者空間可以看見這些層次關係。
在控制台輸入命令「mount -t sysfs sysfs /sys」,就可以在/sys目錄下看到這些層次關係了。
mount -t tmpfs mdev /dev
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
//命令核心在增刪裝置時執行 /sbin/mdev ,使裝置節點檔案會被建立和刪除。
此句含義:
嵌入式裝置上使用mdev來管理動態節點,
方法也很簡單,就是在rcs指令碼中加入下面一句,將使用者空間的應用程式路徑傳遞給核心,
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
//掃瞄並建立節點,這一步可不能少
此句含義:
執行mdev -s
:以『-s』為引數呼叫位於 /sbin目錄寫的mdev(其實是個鏈結,作用是傳遞引數給/bin目錄下的busybox程式並呼叫它),mdev掃瞄 /sys/class 和 /sys/block 中所有的類裝置目錄,如果在目錄中含有名為「dev」的檔案,且檔案中包含的是裝置號,則mdev就利用這些資訊為這個裝置在/dev 下建立裝置節點檔案。一般只在啟動時才執行一次 「mdev -s」。
mdev可以通過proc和sys檔案系統來動態整理出註冊的裝置,進而到/dev/下生成他們對應的節點,
使用該功能之前必須mount上proc和sys檔案系統,然後簡單的執行下面的一句就彎成了:
mdev -s
rm -rf /usr/local/dbus-1.0.2/var/run/dbus/pid
/usr/local/dbus-1.0.2/bin/dbus-daemon --system &
echo 1000 > /sys/class/net/can0/tx_queue_len
//設定波特率為1m
echo 64 > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio64/direction
echo "rising" > /sys/class/gpio/gpio64/edge
cd /opt/bin
./custombutton -qws & //後台執行 qt程式
custombutton
sleep 1 //睡眠1秒
./emb -qws & //後台執行 qt程式
emb/usr/local/sbin/sshd &
mount /dev/mmcblk0p1 /mnt
以下是系統初始化指令碼中乙個典型的使用mdev 的**片段:
[1] mount -t tmpfs mdev /dev
[2] mkdir /dev/pts
[3] mount -t devpts devpts /dev/pts
[4] mount -t sysfs sysfs /sys
[5] echo /bin/mdev > /proc/sys/kernel/hotplug
[6] mdev -s
簡單說明一下上面的**:
[1]確保 /dev 是 tmpfs 檔案系統(假設檔案系統在 flash 外執行)。
[2] 建立/dev/pts 掛載點
[3] 在 /dev/pts 掛載 devpts 檔案系統
[4]你必須在執行mdev 前掛載 /sys 。
[5] 命令核心在增刪裝置時執行 /bin/mdev ,使裝置節點檔案會被建立和刪除。
[6] 設定mdev,讓它在系統啟動時建立所有的裝置節點。
完成以上6步驟,即可實現乙個對mdev 更完整的安裝
開始某專案的研發c
以前自己做專案,都是快速實現功能,並沒有從設計模式或者頂層上去考慮,這樣的好處是進展快,原型出來的快,不足是擴充套件性 復用性不好。當初第乙個專案從學習c 到開發完成,用了三個月,在專案中學習能夠直奔主題,完全以功能的實現為主。這次的專案有乙個主負責人負責框架的編寫,但我覺得,有時候為了物件導向而物...
python 閱讀github上某專案所得總結
有如下例子程式 a 1,2,3 b 1,2,3 if isinstance a,list,tuple print 1.ok else print 1.error if isinstance b,list,tuple print 2.ok else print 2.error if isinstanc...
某專案的小教訓和經驗總結
1 下劃線問題 標籤只有在加真實鏈結後,才會出現下劃線,我說我這裡沒下劃線,客戶說他那有,原來是加上實際位址後才顯示,用text decoration解決。2 css檔案組織問題 一開始以為是個小專案,10個頁面左右,於是為了進度,乾脆把css寫在head裡,最多top和bottom抽取做個css,...