linux 開發板(Linux USB Gadget) 類比u盤__PHP

來源:互聯網
上載者:User

前幾天,搞了 hid裝置,通過usb hid裝置和windows進行通訊。現在開始搞這個 mass storge

首先說明 環境:linux版本:3.15        使用開發板:SAMa5d3        編譯環境:ubuntu 12.04

1、首先配置核心,見下圖

進入        

Device Drivers  --->  

選擇進入

 [*] USB support  --->

再選擇最後一項進入

 <*>   USB Gadget Support  ---> 

選擇編譯成模組,儲存退出。

        USB Peripheral Controller  --->                                                               
  │ │                              <M>   USB Gadget Drivers                                                                          
  │ │                              < >     USB functions configurable through configfs                                                  
  │ │                              < >     Gadget Zero (DEVELOPMENT)                                                                    
  │ │                              < >     Ethernet Gadget (with CDC Ethernet support)                                                   
  │ │                              < >     Network Control Model (NCM) support                                                         
  │ │                              < >     Gadget Filesystem                                                                           
  │ │                              < >     Function Filesystem                                                                         
  │ │                              <M>     Mass Storage Gadget              



會在driver/usb/gadget/目錄下產生以下的ko檔案:


-rw-rw-r-- 1 a_tu a_tu 11253  2月 10 18:03 drivers/usb/gadget/g_mass_storage.ko
-rw-rw-r-- 1 a_tu a_tu 49265  2月 10 18:03 drivers/usb/gadget/libcomposite.ko
-rw-rw-r-- 1 a_tu a_tu 57658  2月 10 18:03 drivers/usb/gadget/usb_f_mass_storage.ko

如果你是用的2.6.3的核心,核心配置與前面的除了最後一項不同,其餘一樣。最後一項選擇:

 <M>     File-backed Storage Gadget   

則產生的ko檔案為:

drivers/usb/gadget/g_file_storage.ko


把這些驅動檔案和核心拷貝到開發板中。

2、對開發板的操作

首先建立一個鏡像類比隨身碟

#dd if=/dev/zero of=vfat.img bs=1M count=20    //製作一個fat格式的鏡像檔案,在主機上、開發板上做都可以

然後 mkdir vfat_mount_point//建立掛載點

mkfs.vfat    vfat.img//格式化做出的鏡像  (如果你的開發板沒有mkfs命令,可以將sd卡插入虛擬機器,在虛擬機器的ubuntu下執行)當然如果這一步,沒有做也沒有關係,等windows發現新可行動裝置的時候,會提示你要格式化裝置,這時,會提示你選擇格式化的格式,選擇預設,格式化就ok了。

最後執行指令碼 storage.sh 。把這些命令寫成一個指令碼很方便,不用一條條的輸入,你還可以將這個指令碼寫的 /etc/init.d/rcS/這個開機檔案中,讓它每次開機都自己運行。指令碼內容如下。提醒,下面命令要按順序寫

losetup /dev/loop0 vfat.img          //將鏡像與loop0建立串連
insmod gadgetfs.ko
insmod libcomposite.ko
insmod usb_f_mass_storage.ko
mount /dev/loop0 vfat_mount_point     //掛載掛載點
insmod g_mass_storage.ko  file=/dev/loop0 stall=0 removable=1


執行完指令碼之後,核心提示資訊g_mass_storage gadget: g_mass_storage ready,說明你已經成功了,插上usb裝置。windows會提示你發現新的可行動裝置。

一切完成之後,驗證是否正確。發現在windows下寫入檔案或者建立檔案夾。在開發板的掛載點的檔案夾中能同步到windows的資訊。而在開發板中建立的檔案或檔案夾,需要拔下裝置,重連之後才能同步到windows的可行動裝置中。

可能還有地方有問題沒有發現,希望高手指點更正。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.