第三章續:簡單總結第三章中出現的命令!
1) root@EasyARM-iMX257 ~# ddif=/dev/zero of=/dev/shm/disk bs=1024 count=10240
dd:是linux下非常有用,我覺得有必要積累下來。它是用來指定大小的拷貝一個文件,並在拷貝的同時進行指定的轉換。
其參數:
if=輸入的文件(或設備名稱);
of=輸出的文件(或設備的名稱);
ibs=bytes一次讀入bytes個字節,即指定一個塊大小爲bytes個字節。
obs=bytes一次輸出bytes個字節,即指定一個塊大小爲bytes個字節。
bs=bytes同時設置/寫緩存區的字節數;
count=blocks只拷貝輸入的blocks塊;
說了這些命令可能大家還是不理解/dev/zero,它是linux下一個特殊的設備,永遠輸出0的一個設備文件,它可作爲輸入全爲空的文件,因此可以用來創建新文件和已覆蓋的方式清除舊文件。
這樣,這就命令的意思就很清晰:用一個輸出爲0的輸入設備,創建一個每次輸出1024bytes,總共輸出10240bytes(10M)。
注意:單位問題:bs=1024=1k=2b=1024c=512w;
Eg: dd if=/dev/zero of=/dev/shm/disk bs=1kcount=10240;
ddif=/dev/zero of=/dev/shm/disk bs=2b count=10240;一個意思。
當然我們也可以用dd命令備份eg:#dd if=/dev/hdb of=/dev/hdd,即把/dev/hdb備份到/dev/hdd。
2) root@EasyARM-iMX283 ~# insmod /root/demos/g_file_storage.kostall=0 file=/dev/shm/disk removable=1
當我們執行完1)命令上,會生成一個10M文件,爲剛生成輸出的10M文件加載驅動。
Insmod:是加載動態模塊的命令;
命令格式:isnmod[-fkmpsvxX][-o <模塊命令>][模塊文件][符號名稱=符號值]
-fkmpsvxX這些都是insmod命令的一些參數,代表什麼意思在此就在贅述。/root/demos/g_file_storage.ko就是模塊驅動,file=/dev/shm/disk就是模塊文件,也就我們就是要給它加載模塊驅動,而stall=0、removable=1就是[符號名稱=符號值],說實話,這兩個參數具體的我也太懂。
呼喚大神來具體解釋。注:想要卸載該模塊,用rmmod代替insmod即可。
3) root@EasyARM-iMX283 ~# mount/dev/shm/disk /mnt
mount命令:這句命令的意思是把剛纔前面創建的這個loop類型文件掛載到/mnt目錄下,文檔已經講得很清楚了,Mount命令在NFS掛載會詳細的總結一下。
4) root@EasyARM-iMX283 ~#echo 1>/sys/class/leds/led-err/brightness #控制LED點亮
echo命令本意是查看命令的意思,在這裏與重定向符號“>” 配合使用,從而將1重定向到控制LED燈的操作接口。
Eg:創建一個文件的方法
root@EasyARM-iMX283 ~# > emptyfile //創建一個名爲emptyfile的文件
root@EasyARM-iMX283 ~# echo“Only one line in file” > emptyfile //創建一個名爲emptyfile的文件,並寫入Only one line infile。
這樣就應該很清楚echo 1>/sys/class/leds/led-err/brightness #控制LED點亮這句話的意思,文檔中操作蜂鳴器、LCD背光的程序跟這個類似。
如何在C應用程序裏實現對LED的控制呢?
直接調用系統函數eg:system(“echo 1>/sys/class/leds/user-led/brightness”);
5) root@EasyARM-iMX283 ~# cat/sys/class/backlight/mxs-bl/brightness
cat 命令顯示文件內容。
從此以外,可用cat file0 file0 file1 file2file3 > file //將file0 1 2 3文件的內容輸入到file,有點合併的意思。
6) root@EasyARM-iMX283 ~# date 2014.05.07-10:30:10 #設置系統時間
root@EasyARM-iMX283~# hwclock -w #將時間寫入RTC
這是一個寫入時間,並且將時間保存在RTC內的命令,沒什麼可說的,但是需要注意,有的網友在輸入hwclock –w時會出現hwclock:can’n open/dev/misc/rtc’: No such file or directory
這種情況出現一般是因爲內核RTC沒有配置,在linux內核文件下輸入make menuconfig 配置內核Device→Driver→RealTime Clock→Freescale MXS series RTC 選中,編譯內核,燒寫下載即可。
2、關於文檔的第四章
l 關於ssh,我已經在對應用程序的開發模式,已經說得很清楚了,只要網絡設置好,以ssh登陸開發板是非常方便的。
l 關於NFS自己的總結
NFS服務器設置步驟(在linux主機終端輸入命令):
a) 建立共享文件夾:mkdir /home/vmuser/EasyARM-iMX283
b) 設置共享目錄:sudo vi /etc/exports加入:/home/vmuser/EasyARM-iMX283 *(rw,sync,no_root_squash)
c) 使設置生效 重新開啓 sudo/etc/init.d/nfs-kernel-server restart
NFS開發板設置步驟(在開發板串口終端輸入命令):
a) 新建掛載點eg:開發板中已經有mnt/nfs目錄,直接掛在即可。
b) 掛載共享目錄mount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs -o nolock
c) 訪問共享目錄cd /mtn/nfs,用ls –l查看
d) 卸載掛載點:umount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs -a nolock
umount /mnt/nfs 命令也可。
在linux主機中掛載跟這個比較類似,不再另行總結。
在此介紹幾個命令:
a) 設置共享目錄時:sudo vi /etc/exports加入:/home/vmuser/EasyARM-iMX283 *(rw,sync,no_root_squash)
i. 客戶端主機地址 ,表示所有主機
ii. rw 可讀寫 (ro只讀 ),sync 設置NFS服務器 同步寫磁盤(不會輕易丟失數據),
iii. no_root_squash :允許超級用戶的權限
b) mount –t nfs 192.168.2.10:/home/vmuser/EasyARM-iMX283/mnt/nfs -o nolock
i. -t nfs指定文件系統的類型,通常不用指定,但NFS需指定;
ii. 由於nfs mount 默認選項包括文件鎖,有時掛載時會出現:Mount:mounting 192.168.2.10:/home/vmuser/EasyARM-iMX283 /mnt/nfs failed :Connection refused 需要加上-o nolock即可解決這一問題;
iii. 192.168.2.10:/home/vmuser/EasyARM-iMX283就是掛載目標;
iv. /mnt/nfs則是掛載目錄。
注意:nfs掛載命令是在網絡配置好,且linux開啓nfs服務之後才能做的事,開發板和linux相互ping通纔可以進行nfs掛載。
l 關於tftp的總結
iMX283開發板是不支持tfpt的,我目前沒有實現tftp下載東西到開發板。但是這裏面有幾個命令還是需要總結一下的:
vmuser@Linux-host~$ sudo chmod -R 777 /tftpboot
vmuser@Linux-host~$ sudo chown -R nobody /tftpboot
a) 這裏chmod 命令可以改變文件或目錄的訪問權,該命令有兩種用法。一種是包含字母和操
作符表達式的文字設定法;另一種是包含數字的數字設定法。
在總結這個之前,必須要說一下:
u 表示“用戶(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶”,即與文件屬主有相同組ID的所有用戶。
o 表示“其他(others)用戶”。
a 表示“所有(all)用戶”。它是系統默認值。
在linux終端輸入:ls –l可查看文件屬性:
Eg:-rw-rw-r-- 1vmuser vmuser 39 7月 31 10:37 test.sh ①
第1個rw就表示是u的權限,第2個rw就表示是g的權限,第3個r就表示是o的權限。r表示可讀,w表示可寫,x表示可執行。+可添加某個權限。-可取消某個權限。
i. 文字設定法:以①爲Eg:將g加上對test.sh寫和執行權限,u和g權限不變:chmod o+wx test.sh
ls –l查看權限::-rw-rw-rwx 1vmuser vmuser 39 8月 8 13:16 test.sh
ii. 數字設定法:
0表示沒有權限,1表示可執行權限,2表示可寫權限,4表示可讀權限,然後將其相加。所以數字屬性的格式應爲3個從0到7的八進制數,其順序是(u)(g)(o)。
以①Eg:將o加上對test.sh寫和執行權限,u和g權限不變:chmod 667 test.sh
第一個6代表u是讀寫權限,第二個6代表g是讀寫權限,7表示o是可讀可寫可執行的權限。
這樣就很容易解釋文檔中:vmuser@Linux-host ~$ sudochmod -R 777 /tftpboot這句命令的意思了,注意:其中-R表示遞歸。
注意:chown 用來改變文件的所有者,在此不再詳細解釋。