लिनक्स USB मास स्टोरेज एमुलेशन


3

मेरा उद्देश्य एक Linux वातावरण में स्थानीय रूप से USB डिवाइस का अनुकरण करना है। मेरा मतलब है कि मैं रूट यूजर वर्कस्पेस के अंदर एक USB डिवाइस के रूप में एक स्थानीय बैकिंग स्टोरेज फाइल (dd के साथ) माउंट करना चाहता हूं।

Google खोज के बाद, मुझे लिनक्स USB गैजेट एपीआई और मास स्टोरेज फंक्शन: http://www.linux-usb.org/gadget/file_storage.html मिला । लेकिन यह स्पष्ट नहीं है: ऐसा लगता है कि यह केवल लिनक्स होस्ट और अन्य कंप्यूटर (लिनक्स, विंडोज या मैक) के बीच यूएसबी कनेक्शन के साथ क्लाइंट / सर्वर के रूप में कार्य कर सकता है।

मैंने अनुकूलित 3.16.7 कर्नेल के साथ एक डेबियन जेसी पर एक POC सेट करना शुरू किया, लेकिन मैं निम्नलिखित त्रुटि का सामना कर रहा हूं "insmod: 'g_mass_storage.ko' नहीं डाल सकता: ऐसा कोई उपकरण नहीं है" जब मैं g_mass_storage मॉड्यूल को लोड करने का प्रयास करता हूं ।

क्या किसी ने इस तरह के सामान का अनुभव किया है? धन्यवाद।

मैथ्यु


बस फ़ाइल के रूप में स्थानीय फ़ाइल बढ़ते काम नहीं करेगा? USB भाग की आवश्यकता है?
Xen2050

हां USB भाग की आवश्यकता है क्योंकि हम एक सॉफ्टवेयर का उपयोग करते हैं जिसमें USB भंडारण की आवश्यकता होती है। मैं एक इम्यूलेशन के साथ USB डिवाइस की आवश्यकता को बायपास करना चाहता हूं।
मथिउ

आपको dummy_hcdपहले लोड करने की आवश्यकता है , और आपको इसके विकल्प के लिए एक बैकिंग फ़ाइल ( truncate/ fallocate/ ddया इसके साथ बनाएँ ) निर्दिष्ट करने की आवश्यकता होगी । के साथ उनके विकल्प देखें । Btw के बजाय बेहतर उपयोग । g_mass_storagefilemodinfomodprobeinsmod
टॉम यान

जवाबों:


1

टॉम यान,

आपके उपयोगी उत्तर के लिए धन्यवाद। मैंने डमी-एचसीडी मॉड्यूल को सफलतापूर्वक लोड किया। फिर, g_mass_storage मॉड्यूल के मोडप्रोजे:

modprobe g_mass_storage file=/root/myUSBStorage/mass_storage.img stall=0 removable=y iSerialNumber=1234567890

मेरे पास अब निम्नलिखित dmesg है:

[  205.564158] g_mass_storage gadget: Mass Storage Function, version: 2009/09/11    
[  205.564164] g_mass_storage gadget: Number of LUNs=1    
[  205.564170]  lun0: LUN: removable file: /root/mass_storage.img    
[  205.564191] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11    
[  205.564194] g_mass_storage gadget: g_mass_storage ready    
[  205.780209] usb 3-1: new high-speed USB device number 2 using dummy_hcd    
[  205.952109] usb 3-1: New USB device found, idVendor=0525, idProduct=a4a5    
[  205.952124] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3    
[  205.952133] usb 3-1: Product: Mass Storage Gadget    
[  205.952140] usb 3-1: Manufacturer: Linux 3.11.0-15-generic with dummy_udc    
[  205.952145] usb 3-1: SerialNumber: 1234567890    
[  205.956075] g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage    
[  206.020057] usb-storage 3-1:1.0: USB Mass Storage device detected    
[  206.020255] usb-storage 3-1:1.0: Quirks match for vid 0525 pid a4a5: 10000    
[  206.020477] scsi3 : usb-storage 3-1:1.0    
[  206.020856] usbcore: registered new interface driver usb-storage    
[  207.036061] scsi 3:0:0:0: Direct-Access     Linux    File-Stor Gadget 0311 PQ: 0 ANSI: 2    
[  207.036807] sd 3:0:0:0: Attached scsi generic sg2 type 0    
[  207.076081] sd 3:0:0:0: [sdb] 8192 512-byte logical blocks: (4.19 MB/4.00 
MiB)    
[  207.088158] sd 3:0:0:0: [sdb] Write Protect is off    
[  207.088174] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00    
[  207.100210] sd 3:0:0:0: [sdb] Write cache: enabled, read cache: enabled, 
doesn't support DPO or FUA
[  207.180419]  sdb: sdb1    
[  207.268281] sd 3:0:0:0: [sdb] Attached SCSI removable disk

FYI करें, मुझे उत्सर्जन के अंदर विभाजन तालिका और फाइल सिस्टम बनाना था। मैं अब सफल मीडिया को माउंट कर सकता हूं।

mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sdb1 on /mnt type vfat (rw)

मैथ्यु

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.