嵌入式-第一季-第18課
第十八課 開發板安裝準備
一.問題
- 嵌入式系統需要安裝在開發板的什麼位置?
nand flash
- 需要安裝的嵌入式linux系統可以分為幾個部分?
- 把嵌入式linux系統安裝到nandflash的具體步驟是什麼?
二.嵌入式系統
- Bootloader
- Linux核心
- 檔案系統
三.系統安裝步驟
- 系統安裝輔助軟體,dd命令/windows燒寫軟體------SD卡----USB下載線(嵌入式linux系統)----開發板的nandflash
- 軟體部分
dd:進行檔案的複製,在複製的同時,可以進行格式轉換
例如:dd iflag=dsync oflag=dsync if =xx.bin of=/dev/sdb seek=1
dd 命令名
iflag=dsync 讀取檔案時,採用同步方式
oflag=dsync 寫入檔案時,採用同步方式
if =xx.bin 要複製的檔名
of=/dev/sdb 檔案被複制到的裝置,/dev/sdb表示sd卡
seek=1 sd卡的第一個扇區
- 硬體準備
(1)SD卡不能小於4GB,必須使用讀卡器,即使你的
(2)必須使用標準的SD卡,不能使用TF卡+套卡。
(3)連線好串列埠和電源,擺正開發板是SD卡啟動。
注意:設定虛擬機器選項要在虛擬機器啟動之前完成,這裡為了使得在主介面的下面有相應的usb插入圖示,我們要在啟動虛擬機器之前設定USB驅動裝置,設定了自動顯示後,將在圖下面顯示響應的標識。下圖的左數第六個標誌就是。
本節課和上一節課看似簡單,但是我卻在學習過程中遇到了好多的問題。首先就是配套課程中的usb轉串列埠(232)軟體是不能用的。我試過從網上下載,用驅動精靈來搜尋,但是都是不行的。於是,我直接向相關的廠家要了軟體,還別說,真好使。走了一些彎路,也學到了許多。在本節課中,我遇到的問題是,
延伸:
modprobe(選項)(引數)
選項
-a或--all:載入全部的模組;
-c或--show-conf:顯示所有模組的設定資訊;
-d或--debug:使用排錯模式;
-l或--list:顯示可用的模組;
-r或--remove:模組閒置不用時,即自動解除安裝模組;
-t或--type:指定模組型別;
-v或--verbose:執行時顯示詳細的資訊;
-V或--version:顯示版本資訊;
-help:顯示幫助。
引數
模組名:要載入或移除的模組名稱。
例項
檢視modules的配置檔案:
modprobe -c
這裡,可以檢視modules的配置檔案,比如模組的alias別名是什麼等。會列印許多行資訊,例如其中的一行會類似如下:
alias symbol:ip_conntrack_unregister_notifier ip_conntrack
列出核心中所有已經或者未掛載的所有模組:
modprobe -l
這裡,我們能檢視到我們所需要的模組,然後根據我們的需要來掛載;其實modprobe -l讀取的模組列表就位於/lib/modules/`uname -r`目錄中;其中uname -r是核心的版本,例如輸出結果的其中一行是:
/lib/modules/2.6.18-348.6.1.el5/kernel/net/netfilter/xt_statistic.ko
掛載vfat模組:
modprobe vfat
這裡,使用格式modprobe 模組名來掛載一個模組。掛載之後,用lsmod可以檢視已經掛載的模組。模組名是不能帶有後綴的,我們通過modprobe -l所看到的模組,都是帶有.ko或.o字尾。
移除已經載入的模組:
modprobe -r 模組名
這裡,移除已載入的模組,和rmmod功能相同
linux下無法識別u盤
經常會遇到Linux下無法識別u盤的情況,這裡做一下記錄:
1.在虛擬機器(vbox)中無法識別u盤
vbox和宿主機對u盤的使用時獨佔的(即在某一時間只有二者之一能訪問u盤,而不能同時訪問),遇到vbox中的linux無法識別u盤的情況時以下可以參考:
1>保證在宿主機下能對u盤進行訪問,這樣保證宿主機的u盤驅動沒有問題
2>需要在vbox下進行訪問時,進入虛擬機器中的linux系統,然後在選單欄 裝置->分配usb裝置 下找到相應的usb裝置並勾選
這時一般來說就可以識別u盤了,如果還是沒有成功識別,這說明虛擬機器下所裝的linux缺失了usb的相關驅動(這種情況來自於綠色版虛擬機器,可以補裝usb驅動或者使用安裝版的虛擬機器)。
2.在實際linux系統下無法識別u盤
在實際的linux系統下無法識別u盤時,可以參考以下流程:
1>插入u盤
2>#fdisk -l /dev/sd* 或者 #df
這時如果看到相應的u盤,那麼u盤已經被正確識別;如果看不到那麼執行接下來的操作。
3>#lsmod
執行上述命令檢視 usb-storage scsi_mod sd_mod 模組是否已經被新增,如果沒有找到上述模組,執行#modprobe [module] 進行新增。
4>建立掛載點,如/mnt/usb,執行#mount /dev/sda /mnt/usb
有的系統需要指出掛載的檔案型別,執行#mount -t vfat /dev/sda /mnt/usb