Linux下通過OTG把板卡上的一個磁碟或檔案對應成PC機上的一個移動磁碟

來源:互聯網
上載者:User

標籤:style   io   使用   sp   on   檔案   bs   ad   linux   

我們經常會把手機或其他電子裝置插入PC機來進行一些檔案的互傳,當把手機插入PC機時,會看到PC上出現了一個移動磁碟,但具體在Linux下如何?,現把方法介紹如下,至於詳細的原理這裡就不介紹了,因為我也只是知其然不知其所以然。好了廢話不多少,現介紹如下:
1、首先,想在PC機上看到Linux板卡上的磁碟,首先你的這個Linux板卡需要支援OTG且廠商已經提供好相應驅動,我這裡用的是i.mx6平台,OTG驅動都已經配置好了。
2、其次,編譯核心相應模組,需要的模組為:
Location:                                                                                                                                                                                                                          
  │     -> Device Drivers                                                                                                                                                                                                                
  │       -> USB support (USB_SUPPORT [=y])                                                                                                                                                                                              
  │         -> USB Gadget Support (USB_GADGET [=y])                                                                                                                                                                                      
   -> USB Gadget Drivers (<choice> [=m])
->File-backed Storage Gadget(USB_FILE_STORAGE [=m])
3、將要使用的核心模組名為 g_file_storage.ko,使用方法如下
~# modprobe g_file_storage  file=/root/block
4、注意最好用modprobe來載入該驅動模組,因為該驅動模組會有一些關聯模組,手動一個一個載入太麻煩。該模組參數為 “file=”後緊跟你希望PC機上能看到的檔案名稱,主要該檔案在PC機端看到時,會把該檔案當做一個獨立的移動磁碟。比如你的Linux板卡上有一個SD卡,在Linux上的裝置檔案檔案為/dev/mmcblk1,那希望在PC機上看到該SD卡的操作為:
~# modprobe g_file_storage  file=/dev/mmcblk1
注意,不要把/dev/mmcblk1寫成/dev/mmcblk1p1,不然在PC機上會把mmcblk1p1這個SD卡的分區當做一個新的移動磁碟,重新分區格式化,這樣就導致Linux一側和PC側兩邊看到的檔案不一致了。
5、當然你也可以直接把一個檔案掛載成PC端的一個磁碟,
先用dd命令建立一個空白檔案:
~# dd if=/dev/zero of=/root/block  bs=1M  count=100
把該檔案推送為PC端的一個可移動磁碟:
~#modprobe g_file_storage  file=/root/block
這樣PC端就可以看到一個100M大小的可移動磁碟了,格式化之後就可以直接存取了,和直接掛載SD卡的方法相比的話,就是無法再Linux端掛載該block檔案後實現和PC端一樣的訪問,因為在Linux一側,該block檔案掛載是直接當做一個磁碟分割掛載,在PC一側,該block檔案是當做一個可移動磁碟來重新分區之後掛載得到的一個新分區而已,兩邊有一個MBR的位移的差距。當然如何兩邊都不掛載檔案系統,只是當做一個裝置檔案來直接讀寫的話,是可以實現相互連訊的。

Linux下通過OTG把板卡上的一個磁碟或檔案對應成PC機上的一個移動磁碟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.