Linux Mass Storage内核模块g_mass_storage与FAT一起使用

时间:2015-06-29 15:03:11

标签: linux macos linux-kernel fat usb-mass-storage

我目前正在配置便携式(基于嵌入式Linux的)设备,一旦插入计算机,该设备就会成为大容量存储提供商。 大容量存储介质必须与Windows和Mac兼容,因此我选择FAT作为文件系统(文件分配表)。

使用 mkdosfs

生成FAT

连接到计算机时,我现在面临以下问题:

: - 想要总是修理驱动器,如果我允许它这样做它会回来没有发现错误....

苹果: - 安装后驱动器安装稍微停留一段时间后可以再次消失。这最终会定期尝试重新安装以便再次卸载。 此外,我在dmesg

中看到以下行
USBMSC Identifier (non-unique) 0x00000000 0xXXXX 0x300 0x100, 2

如果我插入Windows机器并使用FAT(FAT 32)格式化外露的驱动器,Win和Mac盒子都对设备上的FAT系统感到满意。 这对我来说意味着mkdosfs不能产生有效的FAT,虽然它知道它是一个产生的vfat ......

是否有任何类似的问题让这种跨操作系统兼容性工作?我无法相信我是唯一一个面临这个问题的人。

这是我的g_mass_storage内核模块的设置例程:

内核

modprobe libcomposite
cd /sys/kernel/config/usb_gadget

mkdir -p usbdisk

cd usbdisk

echo 0xXXXX > idVendor
echo 0x0300 > idProduct
echo 0x0100 > bcdDevice
echo 0x0200 > bcdUSB


mkdir -p strings/0x409

echo "42" > strings/0x409/serialnumber
echo "Spam and Eggs Inc." > strings/0x409/manufacturer
echo "My awesome Product" > strings/0x409/product


mkdir -p functions/mass_storage.usb0

echo 0 > functions/mass_storage.usb0/stall
echo 0 > functions/mass_storage.usb0/lun.0/cdrom
echo 0 > functions/mass_storage.usb0/lun.0/ro
echo 0 > functions/mass_storage.usb0/lun.0/nofua
echo "/dev/mmcblk0p1" > functions/mass_storage.usb0/lun.0/file


mkdir -p configs/c.1/strings/0x409


echo "My Mass Storage" > configs/c.1/strings/0x409/configuration
echo 500 > configs/c.1/MaxPower
ln -s functions/mass_storage.usb0 configs/c.1

echo ci_hdrc.0 > UDC

格式

我尝试了以下方案:

使用支持文件fdisk和mkdosfs http://www.linux-usb.org/gadget/file_storage.html

在最新版本中,我使用块设备(SD卡)分区和格式 它与

mkdosfs -n LABEL -F 32 /dev/mmcblk0p1

0 个答案:

没有答案