I'm running a headless FreeBSD 11 box at home. Now, I'd like to use the server as a music player as well. As the interface worked without a problem on all other OS's I tried it (including Linux), I thought about giving it a shot on FreeBSD as well. Unfortunately this did not work out as expected. I followed https://www.freebsd.org/doc/handbook/sound-setup.html to the letter but the device is not recognized properly.
I'm using a generic kernel:
As you can see, the device is not attached:
Searching this forum lead me to statements that similar devices appear to work but no instructions on how it was done, leading me to assume the instructions from The Handbook should suffice.
Does anyone have experience with and/or thoughts to share on how to debug/rectify this? Or is this a lost cause for now requiring special driver support? I'm stumped by the system's refusal to add the device in the first place.
I'm looking forward to any pointers. Thanks!
Oh, and just in case a developer sees this and would like to help, here's the output of
I'm using a generic kernel:
Code:
❯ uname -a
FreeBSD vandusen.home.lan 11.0-RELEASE-p9 FreeBSD 11.0-RELEASE-p9 #0: Tue Apr 11 08:48:40 UTC 2017
root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
dmesg
yields minimal information:
Code:
[3438] usb_alloc_device: set address 3 failed (USB_ERR_TIMEOUT, ignored)
[3439] ugen1.3: <PreSonus Audio> at usbus1
/var/log/messages
has some more information:
Code:
Jun 23 16:12:40 vandusen kernel: [3439] ugen1.3: <PreSonus Audio> at usbus1
Jun 23 16:12:40 vandusen root: Unknown USB device: vendor 0x194f product 0x0301 bus uhub1
Jun 23 16:12:40 vandusen last message repeated 2 times
As you can see, the device is not attached:
Code:
❯ pciconf -lv
hostb0@pci0:0:0:0: class=0x060000 card=0x00000000 chip=0x01508086 rev=0x09 hdr=0x00
vendor = 'Intel Corporation'
device = 'Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller'
class = bridge
subclass = HOST-PCI
pcib1@pci0:0:1:0: class=0x060400 card=0x330b103c chip=0x01518086 rev=0x09 hdr=0x01
vendor = 'Intel Corporation'
device = 'Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port'
class = bridge
subclass = PCI-PCI
pcib2@pci0:0:6:0: class=0x060400 card=0x330b103c chip=0x015d8086 rev=0x09 hdr=0x01
vendor = 'Intel Corporation'
device = 'Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port'
class = bridge
subclass = PCI-PCI
ehci0@pci0:0:26:0: class=0x0c0320 card=0x330d103c chip=0x1c2d8086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
class = serial bus
subclass = USB
pcib3@pci0:0:28:0: class=0x060400 card=0x330d103c chip=0x1c108086 rev=0xb5 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 1'
class = bridge
subclass = PCI-PCI
pcib4@pci0:0:28:4: class=0x060400 card=0x330d103c chip=0x1c188086 rev=0xb5 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 5'
class = bridge
subclass = PCI-PCI
pcib5@pci0:0:28:6: class=0x060400 card=0x330d103c chip=0x1c1c8086 rev=0xb5 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 7'
class = bridge
subclass = PCI-PCI
pcib6@pci0:0:28:7: class=0x060400 card=0x330d103c chip=0x1c1e8086 rev=0xb5 hdr=0x01
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family PCI Express Root Port 8'
class = bridge
subclass = PCI-PCI
ehci1@pci0:0:29:0: class=0x0c0320 card=0x330d103c chip=0x1c268086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family USB Enhanced Host Controller'
class = serial bus
subclass = USB
pcib7@pci0:0:30:0: class=0x060401 card=0x330d103c chip=0x244e8086 rev=0xa5 hdr=0x01
vendor = 'Intel Corporation'
device = '82801 PCI Bridge'
class = bridge
subclass = PCI-PCI
isab0@pci0:0:31:0: class=0x060100 card=0x00000000 chip=0x1c548086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = 'C204 Chipset Family LPC Controller'
class = bridge
subclass = PCI-ISA
atapci0@pci0:0:31:2: class=0x01018f card=0x330d103c chip=0x1c008086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 0-3)'
class = mass storage
subclass = ATA
atapci1@pci0:0:31:5: class=0x010185 card=0x330d103c chip=0x1c088086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '6 Series/C200 Series Chipset Family Desktop SATA Controller (IDE mode, ports 4-5)'
class = mass storage
subclass = ATA
bge0@pci0:3:0:0: class=0x020000 card=0x2133103c chip=0x165f14e4 rev=0x00 hdr=0x00
vendor = 'Broadcom Limited'
device = 'NetXtreme BCM5720 Gigabit Ethernet PCIe'
class = network
subclass = ethernet
bge1@pci0:3:0:1: class=0x020000 card=0x2133103c chip=0x165f14e4 rev=0x00 hdr=0x00
vendor = 'Broadcom Limited'
device = 'NetXtreme BCM5720 Gigabit Ethernet PCIe'
class = network
subclass = ethernet
xhci0@pci0:4:0:0: class=0x0c0330 card=0x1996103c chip=0x00141912 rev=0x03 hdr=0x00
vendor = 'Renesas Technology Corp.'
device = 'uPD720201 USB 3.0 Host Controller'
class = serial bus
subclass = USB
none0@pci0:1:0:0: class=0x088000 card=0x3381103c chip=0x3306103c rev=0x05 hdr=0x00
vendor = 'Hewlett-Packard Company'
device = 'Integrated Lights-Out Standard Slave Instrumentation & System Support'
class = base peripheral
vgapci0@pci0:1:0:1: class=0x030000 card=0x3381103c chip=0x0533102b rev=0x00 hdr=0x00
vendor = 'Matrox Electronics Systems Ltd.'
device = 'MGA G200EH'
class = display
subclass = VGA
none1@pci0:1:0:2: class=0x088000 card=0x3381103c chip=0x3307103c rev=0x05 hdr=0x00
vendor = 'Hewlett-Packard Company'
device = 'Integrated Lights-Out Standard Management Processor Support and Messaging'
class = base peripheral
uhci0@pci0:1:0:4: class=0x0c0300 card=0x3381103c chip=0x3300103c rev=0x02 hdr=0x00
vendor = 'Hewlett-Packard Company'
device = 'Integrated Lights-Out Standard Virtual USB Controller'
class = serial bus
subclass = USB
Searching this forum lead me to statements that similar devices appear to work but no instructions on how it was done, leading me to assume the instructions from The Handbook should suffice.
Does anyone have experience with and/or thoughts to share on how to debug/rectify this? Or is this a lost cause for now requiring special driver support? I'm stumped by the system's refusal to add the device in the first place.
/dev/ugen1.3
does exist but apparently FreeBSD doesn't have an idea what to do with it.I'm looking forward to any pointers. Thanks!
Oh, and just in case a developer sees this and would like to help, here's the output of
usbconfig -d 1.3 dump_all_config_desc
Code:
ugen1.3: <AudioBox USB PreSonus Audio> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0108
bNumInterfaces = 0x0005
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0080
bMaxPower = 0x00fa
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x00ff <Vendor specific>
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0001
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x0b
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x0b, 0x24, 0x01, 0x00, 0x01, 0x35, 0x00, 0x03,
0x08 | 0x02, 0x03, 0x04
Additional Descriptor
bLength = 0x0c
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x0c, 0x24, 0x02, 0x09, 0x01, 0x06, 0x01, 0x02,
0x08 | 0x03, 0x00, 0x00, 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x0c, 0x01, 0x01, 0x00, 0x09,
0x08 | 0x00
Additional Descriptor
bLength = 0x0c
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x0c, 0x24, 0x02, 0x05, 0x01, 0x01, 0x00, 0x02,
0x08 | 0x03, 0x00, 0x00, 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x08, 0x01, 0x03, 0x00, 0x05,
0x08 | 0x00
Interface 2
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0002
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Interface 2 Alt 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0002
bAlternateSetting = 0x0001
bNumEndpoints = 0x0001
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x24, 0x01, 0x05, 0x01, 0x01, 0x00
Additional Descriptor
bLength = 0x0e
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x0e, 0x24, 0x02, 0x01, 0x02, 0x03, 0x18, 0x02,
0x08 | 0x44, 0xac, 0x00, 0x80, 0xbb, 0x00
Endpoint 0
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0009 <ADAPT-ISOCHRONOUS>
wMaxPacketSize = 0x0126
bInterval = 0x0001
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00
Interface 3
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0003
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Interface 3 Alt 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0003
bAlternateSetting = 0x0001
bNumEndpoints = 0x0001
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0002
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x24, 0x01, 0x0c, 0x01, 0x01, 0x00
Additional Descriptor
bLength = 0x0e
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x0e, 0x24, 0x02, 0x01, 0x02, 0x03, 0x18, 0x02,
0x08 | 0x44, 0xac, 0x00, 0x80, 0xbb, 0x00
Endpoint 0
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0082 <IN>
bmAttributes = 0x000d <SYNC-ISOCHRONOUS>
wMaxPacketSize = 0x0126
bInterval = 0x0001
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00
Interface 4
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0004
bAlternateSetting = 0x0000
bNumEndpoints = 0x0002
bInterfaceClass = 0x0001 <Audio device>
bInterfaceSubClass = 0x0003
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Additional Descriptor
bLength = 0x07
bDescriptorType = 0x24
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x07, 0x24, 0x01, 0x00, 0x01, 0x41, 0x00
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x06, 0x24, 0x02, 0x01, 0x01, 0x00
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x24
bDescriptorSubType = 0x02
RAW dump:
0x00 | 0x06, 0x24, 0x02, 0x02, 0x02, 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x01, 0x03, 0x01, 0x02, 0x01,
0x08 | 0x00
Additional Descriptor
bLength = 0x09
bDescriptorType = 0x24
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x09, 0x24, 0x03, 0x02, 0x04, 0x01, 0x01, 0x01,
0x08 | 0x00
Endpoint 0
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0003 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0010
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x25, 0x01, 0x01, 0x01
Endpoint 1
bLength = 0x0009
bDescriptorType = 0x0005
bEndpointAddress = 0x0084 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0010
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x25
bDescriptorSubType = 0x01
RAW dump:
0x00 | 0x05, 0x25, 0x01, 0x01, 0x03