Linux Mastering Development

USB hard drive on OTG not mounted in Arch Linux

I am trying to mount a USB hard drive (Seagate Backup Plus) via the USB OTG port of my Wandboard on Arch Linux ARM. When I plug in the drive the pilot light flashes several times and Arch Linux finds the device, but finds it as a USB hub:

[ 1912.431400] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[ 1912.452800] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[ 1912.458503] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[ 1912.466803] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1912.474060] usb usb1: Product: EHCI Host Controller
[ 1912.478967] usb usb1: Manufacturer: Linux 5.8.7-1-ARCH ehci_hcd
[ 1912.484916] usb usb1: SerialNumber: ci_hdrc.0
[ 1912.489891] hub 1-0:1.0: USB hub found
[ 1912.493807] hub 1-0:1.0: 1 port detected

Is there a way I can have Linux recognize the HDD as a block device so that I can then mount it?

I would be happy to supply any further information.

Progress report:
In continuing my research I find that the g_mass_storage module
is in my device tree. Am I right in assuming that I wouldn’t need to recompile Arch ARM in order to use the USB HDD as a storage device, since I already have this module? However I would need help with how to go about enabling the module at boot time in order to be able to mount the HDD.
Below is the output of modinfo on the module:

[alarm@alarm ~]$ modinfo g_mass_storage
filename:       /lib/modules/5.8.7-1-ARCH/kernel/drivers/usb/gadget/legacy/g_mas                    s_storage.ko.gz
license:        GPL
author:         Michal Nazarewicz
description:    Mass Storage Gadget
depends:        usb_f_mass_storage,libcomposite
intree:         Y
name:           g_mass_storage
vermagic:       5.8.7-1-ARCH SMP preempt mod_unload modversions ARMv7 p2v8
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           file:names of backing files or devices (array of charp)
parm:           ro:true to force read-only (array of bool)
parm:           removable:true to simulate removable media (array of bool)
parm:           cdrom:true to simulate CD-ROM instead of disk (array of bool)
parm:           nofua:true to ignore SCSI WRITE(10,12) FUA bit (array of bool)
parm:           luns:number of LUNs (uint)
parm:           stall:false to prevent bulk stalls (bool)

Leave a Reply

Your email address will not be published. Required fields are marked *