1. 程式人生 > >嵌入式-第一季-第18課

嵌入式-第一季-第18課

第十八課 開發板安裝準備

一.問題

  1. 嵌入式系統需要安裝在開發板的什麼位置?

nand flash

  1. 需要安裝的嵌入式linux系統可以分為幾個部分?
  2. 把嵌入式linux系統安裝到nandflash的具體步驟是什麼?

二.嵌入式系統

  1. Bootloader
  2. Linux核心
  3. 檔案系統

三.系統安裝步驟

  1. 系統安裝輔助軟體,dd命令/windows燒寫軟體------SD----USB下載線(嵌入式linux系統)----開發板的nandflash
  2. 軟體部分

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. 硬體準備

(1)SD卡不能小於4GB,必須使用讀卡器,即使你的

PC自帶了SD卡槽

(2)必須使用標準的SD卡,不能使用TF+套卡。

(3)連線好串列埠和電源,擺正開發板是SD卡啟動。

注意:設定虛擬機器選項要在虛擬機器啟動之前完成,這裡為了使得在主介面的下面有相應的usb插入圖示,我們要在啟動虛擬機器之前設定USB驅動裝置,設定了自動顯示後,將在圖下面顯示響應的標識。下圖的左數第六個標誌就是。

 

本節課和上一節課看似簡單,但是我卻在學習過程中遇到了好多的問題。首先就是配套課程中的usb轉串列埠(232)軟體是不能用的。我試過從網上下載,用驅動精靈來搜尋,但是都是不行的。於是,我直接向相關的廠家要了軟體,還別說,真好使。走了一些彎路,也學到了許多。在本節課中,我遇到的問題是,

linux系統的usb驅動問題。

 

延伸:

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