Module Raspberry Pi零作为读写大容量存储器

Module Raspberry Pi零作为读写大容量存储器,module,raspberry-pi-zero,Module,Raspberry Pi Zero,我正在尝试使用dwc2和g_mass_storage(使用可用的最后一张Raspbian图像)将Raspberry Pi Zero设置为大容量存储器。 我用dd创建了数据存储文件,用mkdosfs将其制作成FAT32 fs。 我找了很多东西。我花了一些时间来理解应该在/etc/modprobe.d/g_mass_storage.conf 它最终出现在ubuntu中。我的问题是:它处于只读模式 我试图将ro选项设置为y或n,但对行为没有任何影响。我更改了文件(777)的权限,但没有更改任何内容。

我正在尝试使用
dwc2
g_mass_storage
(使用可用的最后一张Raspbian图像)将Raspberry Pi Zero设置为大容量存储器。 我用
dd
创建了数据存储文件,用
mkdosfs
将其制作成FAT32 fs。 我找了很多东西。我花了一些时间来理解应该在
/etc/modprobe.d/g_mass_storage.conf
它最终出现在ubuntu中。我的问题是:它处于只读模式

我试图将
ro
选项设置为
y
n
,但对行为没有任何影响。我更改了文件(777)的权限,但没有更改任何内容。 以下是我的
/etc/modprobe.d/g_mass_storage.conf
文件的当前内容:

options g_mass_storage file=/piusb.bin stall=0 removable=y ro=n
以下是ubuntu中的
dmesg

[Today and now]usb 1-1.2: new high-speed USB device number 28 using ehci-pci
[  +0,299994] usb 1-1.2: device descriptor read/64, error -71
[  +0,959969] usb 1-1.2: device descriptor read/64, error -71
[  +0,187918] usb 1-1.2: new high-speed USB device number 29 using ehci-pci
[  +0,113925] usb 1-1.2: New USB device found, idVendor=0525, idProduct=a4a5
[  +0,000007] usb 1-1.2: New USB device strings: Mfr=3, Product=4, SerialNumber=0
[  +0,000004] usb 1-1.2: Product: Mass Storage Gadget
[  +0,000003] usb 1-1.2: Manufacturer: Linux 4.19.118+ with 20980000.usb
[  +0,001467] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[  +0,000246] usb-storage 1-1.2:1.0: Quirks match for vid 0525 pid a4a5: 10000
[  +0,000283] scsi host9: usb-storage 1-1.2:1.0
[  +1,009528] scsi 9:0:0:0: Direct-Access     Linux    File-Stor Gadget 0419 PQ: 0 ANSI: 2
[  +0,001079] sd 9:0:0:0: Attached scsi generic sg5 type 0
[  +0,001699] sd 9:0:0:0: Power-on or device reset occurred
[  +0,001211] sd 9:0:0:0: [sde] 67108864 512-byte logical blocks: (34.4 GB/32.0 GiB)
[  +0,000672] sd 9:0:0:0: [sde] Write Protect is on
[  +0,000016] sd 9:0:0:0: [sde] Mode Sense: 0f 00 80 00
[  +0,000740] sd 9:0:0:0: [sde] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  +0,005478]  sde:
[  +0,002735] sd 9:0:0:0: [sde] Attached SCSI removable disk

如何获得读/写大容量存储器?

我重现了您的问题。我在Raspberry Pi Zero W上的模块
g_acm_ms
上遇到了类似的问题。如果在
/etc/modprobe.d/
中配置模块,则系统会忽略参数
ro=0
。这可能是由于内核模块的初始化顺序。我通过将模块添加到黑名单并在
/etc/rc.local
中编写初始化来解决这个问题。因此,我设法获得了读/写大容量存储器的仿真

所有步骤:

  • 创建并格式化文件:
    # dd bs=1M if=/dev/zero of="/piusb.bin" count=2048
    # mkdosfs "/piusb.bin"
    
  • 将模块load=dwc2,g_acm_ms添加到
    /boot/cmd_line.txt
    的末尾(在
    rootwait
    之后)
  • /boot/config.txt
  • 在启动时防止模块初始化:
    $ echo "blacklist g_acm_ms" | sudo tee -a "/etc/modprobe.d/blacklist-g_acm_ms.conf"
    
  • 在上面的
    /etc/rc.local
    中添加初始化
    退出0
    # nano /etc/rc.local
    
  • 添加字符串:
    /sbin/modprobe file=/piusb.bin removable=y ro=0 stall=0
    
  • 重新启动系统:
    # reboot -h
    

  • 注意:如果您不想使用USB进行控制台输出,您可以使用
    g_mass_storage
    而不是
    g_acm_ms

    我重现了您的问题。我在Raspberry Pi Zero W上的模块
    g_acm_ms
    上遇到了类似的问题。如果在
    /etc/modprobe.d/
    中配置模块,则系统会忽略参数
    ro=0
    。这可能是由于内核模块的初始化顺序。我通过将模块添加到黑名单并在
    /etc/rc.local
    中编写初始化来解决这个问题。因此,我设法获得了读/写大容量存储器的仿真

    所有步骤:

  • 创建并格式化文件:
    # dd bs=1M if=/dev/zero of="/piusb.bin" count=2048
    # mkdosfs "/piusb.bin"
    
  • 将模块load=dwc2,g_acm_ms添加到
    /boot/cmd_line.txt
    的末尾(在
    rootwait
    之后)
  • /boot/config.txt
  • 在启动时防止模块初始化:
    $ echo "blacklist g_acm_ms" | sudo tee -a "/etc/modprobe.d/blacklist-g_acm_ms.conf"
    
  • 在上面的
    /etc/rc.local
    中添加初始化
    退出0
    # nano /etc/rc.local
    
  • 添加字符串:
    /sbin/modprobe file=/piusb.bin removable=y ro=0 stall=0
    
  • 重新启动系统:
    # reboot -h
    

  • 注意:如果您不想使用USB进行控制台输出,您可以使用
    g_mass_storage
    而不是
    g_acm_ms

    我不知道它是否改变了什么,但我正在用“USB”端口为pi zero供电,这意味着当我将其插入计算机时,它将启动。我使用外部电源进行测试,它只删除了
    错误-71
    我不知道它是否改变了某些内容,但我正在使用“usb”端口为pi zero通电,这意味着当我将其插入计算机时,它将启动。我使用外部电源进行了测试,它只删除了
    错误-71