7 某專案RCS內容解析

2021-07-25 14:55:02 字數 3654 閱讀 2351

[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,...