Date: Mon, 5 Apr 2021 10:56:38 +0200 From: Hans Petter Selasky <hps@selasky.org> To: Ben Woods <woodsb02@freebsd.org>, freebsd-usb@freebsd.org Subject: Re: mount_msdosfs not working for USB device SparkFun Pro nRF52840 Mini Message-ID: <ec8f2a1a-534d-1af0-64be-8a1cf842a574@selasky.org> In-Reply-To: <dde56279-b27c-4b16-a154-c3bfe177be4b@www.fastmail.com> References: <dde56279-b27c-4b16-a154-c3bfe177be4b@www.fastmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 4/5/21 8:03 AM, Ben Woods wrote: > Hi FreeBSD USB peeps, > > I recently bought myself a small bluetooth development board to tinker with - a SparkFun Pro nRF52840 Mini: > https://www.sparkfun.com/products/15025 > > But I am having difficulty mounting the mass storage device it presents when in bootloader mode (accessible by double tapping the reset button). In this mode it presents 3 devices at once - a USB serial (CDC), a DFU (device firmware upgrade) and a mass-storage device (MSD). > > When I attempt to mount the FAT32 formatted mass storage device I get the error: > mount_msdosfs: /dev/da1: Invalid argument > > I suspect the issue is a USB quirk, and I may just need to use usbconfig with the right command to fix it. I'm hoping someone is able to help me get this mounting, or troubleshoot further? > > Cheers, > Ben > > --- Output below from bootloader mode --- > > # camcontrol devlist > <Generic- SD/MMC CRW 1.00> at scbus0 target 0 lun 0 (pass0,da0) > <SparkFun nRF525840 Mini 1.0> at scbus1 target 0 lun 0 (pass1,da1) > > # ls -lah /dev/da1* > crw-r----- 1 root operator 0xc9 5 Apr 13:56 /dev/da1 > > # mount -t msdosfs /dev/da1 /mnt > mount_msdosfs: /dev/da1: Invalid argument > > # mount -t msdosfs /dev/msdosfs/NRF52BOOT /mnt > mount_msdosfs: /dev/msdosfs/NRF52BOOT: Invalid argument > > # fstyp -lu /dev/da1 > msdosfs NRF52BOOT > > # file -s /dev/da1 > /dev/da1: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "UF2 UF2 ", root entries 64, sectors 7998 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 32, sectors/track 1, heads 1, serial number 0x420042, label: "NRF52BOOT ", FAT (16 bit) > > # dmesg > ugen0.10: <Adafruit Industries Bluefruit nRF52840 DFU> at usbus0 > umodem0 on uhub1 > umodem0: <Bluefruit Serial> on usbus0 > umodem0: data interface 1, has no CM over data, has no break > umass1 on uhub1 > umass1: <Bluefruit UF2> on usbus0 > umass1: SCSI over Bulk-Only; quirks = 0x0000 > umass1:1:1: Attached to scbus1 > da1 at umass-sim1 bus 1 scbus1 target 0 lun 0 > da1: <SparkFun nRF525840 Mini 1.0> Removable Direct Access SCSI-2 device > da1: Serial Number C1599CE596019A19 > da1: 1.000MB/s transfers > da1: 3MB (8000 512 byte sectors) > da1: quirks=0x2<NO_6_BYTE> > > # usbconfig -d 0.10 dump_all_desc > ugen0.10: <Adafruit Industries Bluefruit nRF52840 DFU> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) > > bLength = 0x0012 > bDescriptorType = 0x0001 > bcdUSB = 0x0200 > bDeviceClass = 0x00ef <Miscellaneous device> > bDeviceSubClass = 0x0002 > bDeviceProtocol = 0x0001 > bMaxPacketSize0 = 0x0040 > idVendor = 0x1b4f > idProduct = 0x5284 > bcdDevice = 0x0100 > iManufacturer = 0x0001 <Adafruit Industries> > iProduct = 0x0002 <Bluefruit nRF52840 DFU> > iSerialNumber = 0x0003 <C1599CE596019A19> > bNumConfigurations = 0x0001 > > Configuration index 0 > > bLength = 0x0009 > bDescriptorType = 0x0002 > wTotalLength = 0x0062 > bNumInterfaces = 0x0003 > bConfigurationValue = 0x0001 > iConfiguration = 0x0000 <no string> > bmAttributes = 0x0080 > bMaxPower = 0x0032 > > Additional Descriptor > > bLength = 0x08 > bDescriptorType = 0x0b > bDescriptorSubType = 0x00 > RAW dump: > 0x00 | 0x08, 0x0b, 0x00, 0x02, 0x02, 0x02, 0x01, 0x00 > > > Interface 0 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0000 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0001 > bInterfaceClass = 0x0002 <Communication device> > bInterfaceSubClass = 0x0002 > bInterfaceProtocol = 0x0001 > iInterface = 0x0004 <Bluefruit Serial> > > Additional Descriptor > > bLength = 0x05 > bDescriptorType = 0x24 > bDescriptorSubType = 0x00 > RAW dump: > 0x00 | 0x05, 0x24, 0x00, 0x20, 0x01 > > > Additional Descriptor > > bLength = 0x05 > bDescriptorType = 0x24 > bDescriptorSubType = 0x01 > RAW dump: > 0x00 | 0x05, 0x24, 0x01, 0x00, 0x01 > > > Additional Descriptor > > bLength = 0x04 > bDescriptorType = 0x24 > bDescriptorSubType = 0x02 > RAW dump: > 0x00 | 0x04, 0x24, 0x02, 0x02 > > > Additional Descriptor > > bLength = 0x05 > bDescriptorType = 0x24 > bDescriptorSubType = 0x06 > RAW dump: > 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01 > > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0081 <IN> > > Interface 1 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0001 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0002 > bInterfaceClass = 0x000a <CDC-data> > bInterfaceSubClass = 0x0000 > bInterfaceProtocol = 0x0000 > iInterface = 0x0000 <no string> > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0002 <OUT> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0040 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 1 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0082 <IN> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0040 > bInterval = 0x0000 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > > Interface 2 > bLength = 0x0009 > bDescriptorType = 0x0004 > bInterfaceNumber = 0x0002 > bAlternateSetting = 0x0000 > bNumEndpoints = 0x0002 > bInterfaceClass = 0x0008 <Mass storage> > bInterfaceSubClass = 0x0006 > bInterfaceProtocol = 0x0050 > iInterface = 0x0005 <Bluefruit UF2> > > Endpoint 0 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0003 <OUT> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0040 > bInterval = 0x0001 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > > Endpoint 1 > bLength = 0x0007 > bDescriptorType = 0x0005 > bEndpointAddress = 0x0083 <IN> > bmAttributes = 0x0002 <BULK> > wMaxPacketSize = 0x0040 > bInterval = 0x0001 > bRefresh = 0x0000 > bSynchAddress = 0x0000 > Try to clean the volume with fsck_msdosfs first. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ec8f2a1a-534d-1af0-64be-8a1cf842a574>