OpenWrt Forum Archive

Topic: USB Audio not working in 10.03 Broadcom Backfire on Asus WL-500gP V2

The content of this topic has been archived on 20 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Completely failing to get Audio working on any Backfire builds on the Asus WL-500gP V2.  I've tried three different types of USB DACs with both ALSA and OSS.  USB Storage is working fine, so the problems seem specifically audio related.  I can also get any of these devices working with a regular Linux distribution, so they are Linux compatible.  I'm not sure if I'm missing something obvious or what's important to submit, so wanted to post here before I opened any bugs.  The 2.4 and 2.6 kernels do fail in different ways, so I've highlighted the differences below.  Any help would be appreciated.

[size=20]2.6 kernel, brcm47xx builds[/size]
Tried the 10.03 build as well as RC3

The 2.6 builds seem to have been compiled with something missing and you get a laundry list of unknown symbol errors upon plugging in any audio device.  Below is the dmesg output and a full list of installed modules.  In this case ALSA is installed instead of OSS/kmod-usb-audio, but the errors are the same with either sound library.  Additionally kmod-alsa appears to be missing from the packages directory for this build.

root@OpenWrt:~# dmesg
Linux version 2.6.32.10 (openwrt@wrt1.marcant.net) (gcc version 4.3.3 (GCC) ) #20 Tue Apr 6 15:53:48 CEST 2010
CPU revision is: 00029029 (Broadcom BCM3302)
ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x14, vendor 0x4243)
ssb: Core 1 found: Fast Ethernet (cc 0x806, rev 0x09, vendor 0x4243)
ssb: Core 2 found: MIPS 3302 (cc 0x816, rev 0x08, vendor 0x4243)
ssb: Core 3 found: USB 2.0 Host (cc 0x819, rev 0x02, vendor 0x4243)
ssb: Core 4 found: MEMC SDRAM (cc 0x80F, rev 0x04, vendor 0x4243)
ssb: Core 5 found: IEEE 802.11 (cc 0x812, rev 0x0D, vendor 0x4243)
ssb: Core 6 found: Roboswitch (cc 0x81C, rev 0x02, vendor 0x4243)
ssb: Found rev 0 PMU (capabilities 0x04A63400)
ssb: Initializing MIPS core...
ssb: set_irq: core 0x0806, irq 4 => 4
ssb: set_irq: core 0x0816, irq 5 => 2
ssb: set_irq: core 0x0812, irq 2 => 5
ssb: after irq reconfiguration
ssb: core 0x0800, irq : 2(S)  3* 4  5  6  D  I 
ssb: core 0x0806, irq : 2(S)  3  4* 5  6  D  I 
ssb: core 0x0816, irq : 2(S)* 3  4  5  6  D  I 
ssb: core 0x0819, irq : 2(S)  3  4  5  6* D  I 
ssb: core 0x080f, irq : 2(S)  3  4  5  6  D  I*
ssb: core 0x0812, irq : 2(S)  3  4  5* 6  D  I 
ssb: core 0x081c, irq : 2(S)  3  4  5  6  D  I*
ssb: Sonics Silicon Backplane found at address 0x18000000
Serial init done.
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal   0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00002000
On node 0 totalpages: 8192
free_area_init_node: node 0, pgdat 8029e7d0, node_mem_map 81000000
  Normal zone: 64 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 8128 pages, LIFO batch:0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 bytes
Memory: 29524k/32768k available (2322k kernel code, 3244k reserved, 357k data, 136k init, 0k highmem)
Hierarchical RCU implementation.
NR_IRQS:128
console [ttyS0] enabled
Calibrating delay loop... 239.10 BogoMIPS (lpj=478208)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
msgmni has been set to 57
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
serial8250: ttyS0 at MMIO 0xb8000300 (irq = 3) is a 16550A
serial8250: ttyS1 at MMIO 0xb8000400 (irq = 3) is a 16550A
serial8250.0: ttyS0 at MMIO 0xb8000300 (irq = 3) is a 16550A
serial8250.0: ttyS1 at MMIO 0xb8000400 (irq = 3) is a 16550A
flash init: 0x1c000000 0x02000000
Physically mapped flash: Found 1 x16 devices at 0x0 in 16-bit bank
Physically mapped flash: Found an alias at 0x800000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1000000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1800000 for the chip at 0x0
 Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Flash device: 0x800000 at 0x1fc00000
bootloader size: 131072
Creating 4 MTD partitions on "Physically mapped flash":
0x000000000000-0x000000020000 : "cfe"
0x000000020000-0x0000007f0000 : "linux"
0x0000000fa400-0x0000007f0000 : "rootfs"
mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
mtd: partition "rootfs" set to be root filesystem
mtd: partition "rootfs_data" created automatically, ofs=2D0000, len=520000 
0x0000002d0000-0x0000007f0000 : "rootfs_data"
0x0000007f0000-0x000000800000 : "nvram"
b44.c:v2.0
eth0: Broadcom 44xx/47xx 10/100BaseT Ethernet 90:e6:ba:43:6d:71
BCM47xx Watchdog Timer enabled (30 seconds, nowayout)
TCP westwood registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
Freeing unused kernel memory: 136k freed
Please be patient, while OpenWrt loads ...
diag: Detected 'ASUS WL-500g Premium V2'
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
roboswitch: Probing device eth0: found a 5325! It's a 5350.
b44: eth0: powering down PHY
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: powering down PHY
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: powering down PHY
mini_fo: using base directory: /
mini_fo: using storage directory: /overlay
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: powering down PHY
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: powering down PHY
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
device eth0.0 entered promiscuous mode
device eth0 entered promiscuous mode
br-lan: port 1(eth0.0) entering forwarding state
Generic kernel compatibility enabled based on linux-next next-20100113
cfg80211: Calling CRDA to update world regulatory domain
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
cfg80211: World regulatory domain updated:
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
b43-phy0: Broadcom 5354 WLAN found (core revision 13)
phy0: Selected rate control algorithm 'minstrel'
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]
Broadcom 43xx-legacy driver loaded [ Features: PLID, Firmware-ID: FW10 ]
PPP generic driver version 2.4.2
snd: Unknown symbol input_allocate_device
snd: Unknown symbol input_unregister_device
snd: Unknown symbol input_free_device
snd: Unknown symbol input_register_device
snd: Unknown symbol input_set_capability
snd: Unknown symbol input_event
snd_hwdep: Unknown symbol snd_info_register
snd_hwdep: Unknown symbol snd_info_create_module_entry
snd_hwdep: Unknown symbol snd_info_free_entry
snd_hwdep: Unknown symbol snd_unregister_oss_device
snd_hwdep: Unknown symbol snd_register_oss_device
snd_hwdep: Unknown symbol snd_ctl_register_ioctl
snd_hwdep: Unknown symbol snd_card_file_add
snd_hwdep: Unknown symbol snd_iprintf
snd_hwdep: Unknown symbol snd_major
snd_hwdep: Unknown symbol snd_unregister_device
snd_hwdep: Unknown symbol snd_device_new
snd_hwdep: Unknown symbol snd_ctl_unregister_ioctl
snd_hwdep: Unknown symbol snd_lookup_oss_minor_data
snd_hwdep: Unknown symbol snd_lookup_minor_data
snd_hwdep: Unknown symbol snd_card_file_remove
snd_hwdep: Unknown symbol snd_register_device_for_dev
snd_seq_device: Unknown symbol snd_info_register
snd_seq_device: Unknown symbol snd_info_create_module_entry
snd_seq_device: Unknown symbol snd_info_free_entry
snd_seq_device: Unknown symbol snd_seq_root
snd_seq_device: Unknown symbol snd_iprintf
snd_seq_device: Unknown symbol snd_device_new
snd_rawmidi: Unknown symbol snd_info_register
snd_rawmidi: Unknown symbol snd_seq_device_new
snd_rawmidi: Unknown symbol snd_info_free_entry
snd_rawmidi: Unknown symbol snd_unregister_oss_device
snd_rawmidi: Unknown symbol snd_register_oss_device
snd_rawmidi: Unknown symbol snd_ctl_register_ioctl
snd_rawmidi: Unknown symbol snd_card_file_add
snd_rawmidi: Unknown symbol snd_iprintf
snd_rawmidi: Unknown symbol snd_major
snd_rawmidi: Unknown symbol snd_oss_info_register
snd_rawmidi: Unknown symbol snd_unregister_device
snd_rawmidi: Unknown symbol snd_device_new
snd_rawmidi: Unknown symbol snd_ctl_unregister_ioctl
snd_rawmidi: Unknown symbol snd_lookup_oss_minor_data
snd_rawmidi: Unknown symbol snd_lookup_minor_data
snd_rawmidi: Unknown symbol snd_info_create_card_entry
snd_rawmidi: Unknown symbol snd_card_file_remove
snd_rawmidi: Unknown symbol snd_register_device_for_dev
snd_rawmidi: Unknown symbol snd_device_register
snd_timer: Unknown symbol snd_info_register
snd_timer: Unknown symbol snd_info_create_module_entry
snd_timer: Unknown symbol snd_info_free_entry
snd_timer: Unknown symbol snd_iprintf
snd_timer: Unknown symbol snd_ecards_limit
snd_timer: Unknown symbol snd_oss_info_register
snd_timer: Unknown symbol snd_unregister_device
snd_timer: Unknown symbol snd_device_new
snd_timer: Unknown symbol snd_register_device_for_dev
snd_pcm: Unknown symbol snd_info_register
snd_pcm: Unknown symbol snd_info_create_module_entry
snd_pcm: Unknown symbol snd_timer_notify
snd_pcm: Unknown symbol snd_timer_interrupt
snd_pcm: Unknown symbol snd_info_free_entry
snd_pcm: Unknown symbol snd_add_device_sysfs_file
snd_pcm: Unknown symbol snd_info_get_str
snd_pcm: Unknown symbol snd_ctl_register_ioctl
snd_pcm: Unknown symbol snd_card_file_add
snd_pcm: Unknown symbol snd_iprintf
snd_pcm: Unknown symbol snd_major
snd_pcm: Unknown symbol snd_unregister_device
snd_pcm: Unknown symbol snd_timer_new
snd_pcm: Unknown symbol snd_device_new
snd_pcm: Unknown symbol snd_ctl_unregister_ioctl
snd_pcm: Unknown symbol snd_lookup_minor_data
snd_pcm: Unknown symbol snd_info_create_card_entry
snd_pcm: Unknown symbol snd_device_free
snd_pcm: Unknown symbol snd_card_file_remove
snd_pcm: Unknown symbol snd_register_device_for_dev
snd_pcm: Unknown symbol snd_device_register
snd_pcm: Unknown symbol snd_info_get_line
snd_mixer_oss: Unknown symbol snd_info_register
snd_mixer_oss: Unknown symbol snd_info_free_entry
snd_mixer_oss: Unknown symbol snd_info_get_str
snd_mixer_oss: Unknown symbol snd_unregister_oss_device
snd_mixer_oss: Unknown symbol snd_ctl_find_id
snd_mixer_oss: Unknown symbol snd_register_oss_device
snd_mixer_oss: Unknown symbol snd_card_file_add
snd_mixer_oss: Unknown symbol snd_mixer_oss_notify_callback
snd_mixer_oss: Unknown symbol snd_iprintf
snd_mixer_oss: Unknown symbol snd_cards
snd_mixer_oss: Unknown symbol snd_ctl_notify
snd_mixer_oss: Unknown symbol snd_oss_info_register
snd_mixer_oss: Unknown symbol snd_lookup_oss_minor_data
snd_mixer_oss: Unknown symbol snd_info_create_card_entry
snd_mixer_oss: Unknown symbol snd_card_file_remove
snd_mixer_oss: Unknown symbol snd_ctl_find_numid
snd_mixer_oss: Unknown symbol snd_info_get_line
snd_pcm_oss: Unknown symbol snd_pcm_lib_read
snd_pcm_oss: Unknown symbol snd_pcm_hw_param_first
snd_pcm_oss: Unknown symbol snd_info_register
snd_pcm_oss: Unknown symbol snd_pcm_kernel_ioctl
snd_pcm_oss: Unknown symbol snd_info_free_entry
snd_pcm_oss: Unknown symbol snd_pcm_format_unsigned
snd_pcm_oss: Unknown symbol _snd_pcm_hw_params_any
snd_pcm_oss: Unknown symbol snd_info_get_str
snd_pcm_oss: Unknown symbol snd_interval_refine
snd_pcm_oss: Unknown symbol snd_pcm_format_physical_width
snd_pcm_oss: Unknown symbol snd_pcm_format_little_endian
snd_pcm_oss: Unknown symbol snd_unregister_oss_device
snd_pcm_oss: Unknown symbol snd_pcm_format_silence_64
snd_pcm_oss: Unknown symbol snd_pcm_open_substream
snd_pcm_oss: Unknown symbol snd_register_oss_device
snd_pcm_oss: Unknown symbol snd_pcm_lib_readv
snd_pcm_oss: Unknown symbol snd_card_file_add
snd_pcm_oss: Unknown symbol snd_pcm_lib_writev
snd_pcm_oss: Unknown symbol snd_mixer_oss_ioctl_card
snd_pcm_oss: Unknown symbol snd_iprintf
snd_pcm_oss: Unknown symbol snd_pcm_format_linear
snd_pcm_oss: Unknown symbol snd_pcm_mmap_data
snd_pcm_oss: Unknown symbol snd_oss_info_register
snd_pcm_oss: Unknown symbol snd_pcm_hw_param_last
snd_pcm_oss: Unknown symbol snd_pcm_hw_param_value
snd_pcm_oss: Unknown symbol snd_pcm_format_signed
snd_pcm_oss: Unknown symbol snd_lookup_oss_minor_data
snd_pcm_oss: Unknown symbol snd_pcm_hw_refine
snd_pcm_oss: Unknown symbol snd_info_create_card_entry
snd_pcm_oss: Unknown symbol snd_pcm_format_big_endian
snd_pcm_oss: Unknown symbol snd_pcm_notify
snd_pcm_oss: Unknown symbol snd_pcm_release_substream
snd_pcm_oss: Unknown symbol snd_pcm_lib_write
snd_pcm_oss: Unknown symbol snd_card_file_remove
snd_pcm_oss: Unknown symbol snd_pcm_format_set_silence
snd_pcm_oss: Unknown symbol snd_info_get_line
snd_pcm_oss: Unknown symbol snd_pcm_format_width
ip_tables: (C) 2000-2006 Netfilter Core Team
NET: Registered protocol family 24
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
nf_conntrack version 0.5.0 (463 buckets, 1852 max)
CONFIG_NF_CT_ACCT is deprecated and will be removed soon. Please use
nf_conntrack.acct=1 kernel parameter, acct=1 nf_conntrack module option or
sysctl net.netfilter.nf_conntrack_acct=1 to enable it.
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci_hcd ssb0:1: SSB OHCI Controller
ohci_hcd ssb0:1: new USB bus registered, assigned bus number 1
ohci_hcd ssb0:1: irq 6, io mem 0x18003000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd ssb0:1: SSB EHCI Controller
ohci_hcd ssb0:1: new USB bus registered, assigned bus number 2
ohci_hcd ssb0:1: irq 6, io mem 0x18003800
ohci_hcd ssb0:1: USB 0.0 started, EHCI 1.00
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb 2-1: new high speed USB device using ohci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 2 ports detected
usb 2-1.1: new full speed USB device using ohci_hcd and address 3
usb 2-1.1: configuration #1 chosen from 1 choice

2.6 installed packages:

alsa-lib - 1.0.21a-1
alsa-utils - 1.0.21-1
base-files - 42-r20728
busybox - 1.15.3-2
crda - 1.1.0-2
dnsmasq - 2.52-2
dropbear - 0.52-4
firewall - 1-10
hotplug2 - 1.0-beta-1
iptables - 1.4.6-2
iptables-mod-conntrack - 1.4.6-2
iptables-mod-nat - 1.4.6-2
iw - 0.9.19-1
kernel - 2.6.32.10-1
kmod-b43 - 2.6.32.10+2010-03-24-5
kmod-b43legacy - 2.6.32.10+2010-03-24-5
kmod-cfg80211 - 2.6.32.10+2010-03-24-5
kmod-crc-ccitt - 2.6.32.10-1
kmod-crypto-aes - 2.6.32.10-1
kmod-crypto-arc4 - 2.6.32.10-1
kmod-crypto-core - 2.6.32.10-1
kmod-diag - 2.6.32.10-6
kmod-fs-ext2 - 2.6.32.10-1
kmod-fs-mbcache - 2.6.32.10-1
kmod-fs-vfat - 2.6.32.10-1
kmod-ipt-conntrack - 2.6.32.10-1
kmod-ipt-core - 2.6.32.10-1
kmod-ipt-nat - 2.6.32.10-1
kmod-ipt-nathelper - 2.6.32.10-1
kmod-mac80211 - 2.6.32.10+2010-03-24-5
kmod-nls-base - 2.6.32.10-1
kmod-ppp - 2.6.32.10-1
kmod-pppoe - 2.6.32.10-1
kmod-scsi-core - 2.6.32.10-1
kmod-sound-core - 2.6.32.10-1
kmod-switch - 2.6.32.10-3
kmod-usb-core - 2.6.32.10-1
kmod-usb-ohci - 2.6.32.10-1
kmod-usb-storage - 2.6.32.10-1
kmod-usb2 - 2.6.32.10-1
libc - 0.9.30.1-42
libgcc - 4.3.3+cs-42
libiptc - 1.4.6-2
liblua - 5.1.4-6
libncurses - 5.7-2
libnl-tiny - 0.1-1
libpthread - 0.9.30.1-42
librt - 0.9.30.1-42
libuci - 12012009.5-1
libuci-lua - 12012009.5-1
libxtables - 1.4.6-2
lua - 5.1.4-6
luci - 0.9.0-1
luci-admin-core - 0.9.0-1
luci-admin-full - 0.9.0-1
luci-admin-mini - 0.9.0-1
luci-app-firewall - 0.9.0-1
luci-app-initmgr - 0.9.0-1
luci-cbi - 0.9.0-1
luci-core - 0.9.0-1
luci-http - 0.9.0-1
luci-i18n-english - 0.9.0-1
luci-ipkg - 0.9.0-1
luci-lmo - 0.9.0-1
luci-nixio - 0.9.0-1
luci-sgi-cgi - 0.9.0-1
luci-sys - 0.9.0-1
luci-theme-base - 0.9.0-1
luci-theme-openwrt - 0.9.0-1
luci-uci - 0.9.0-1
luci-uvl - 0.9.0-1
luci-web - 0.9.0-1
mtd - 12
nvram - 5
opkg - 513-2
ppp - 2.4.4-5
ppp-mod-pppoe - 2.4.4-5
uci - 12012009.5-1
udevtrigger - 106-1
uhttpd - 7
wireless-tools - 29-4
wpad-mini - 20100309-1

[size=20]2.4 kernel, brcm-2.4 builds[/size]
Tried 10.03 and RC3, also tried compiling from svn.
2.4 Backfire is failing identically to the way the 2.4 Kamikaze builds are failing. 

OSS
Appears to work according to dmesg after installing kmod-sound-core and kmod-usb-audio in addition to the other core USB packages, checking the contents of /dev/sound reveals the expected dsp and mixer contents.  However no sound comes out of the system when actually attempting to play audio.  The behavior is exactly what's described in this older thread:
https://forum.openwrt.org/viewtopic.php?id=14548

Note the solution in that thread was to use ALSA, but ALSA isn't working for other reasons, below.

ALSA
ALSA also installs correctly.  After installing the core USB packages, kmod-sound-core, kmod-alsa, and kmod-alsa-utils, everything looks correct.  dmesg output looks good, aplay -l shows the USB sound device, etc.  However as soon as you attempt to play audio it fails, and then re-running dmesg gives this error:

ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub

To be clear, I'm not using a USB hub, it seems that either the two USB ports on the WL-500gPV2 are actually a hub or the USB modules aren't seeing them correctly.

Further details on this issue and previous run-ins can be read about here:
A change fixing this only for the x86 arch:  https://dev.openwrt.org/changeset/5847
These two pages also mention this error:
http://oldwiki.openwrt.org/UsbAudioHowto.html
http://www.nslu2-linux.org/wiki/Periphe … dioAdapter
However, both pages seem to indicate this is only a problem for USB 1.0 audio devices.  At least two of the three USB audio devices I tested were verified to be USB 2.0.

Anyway, based on the fact that it seemed to be fixable via a kernel flag, I went ahead and set up a build environment.  I added CONFIG_USB_EHCI_SPLIT_ISO=y to ~/backfire/target/linux/brcm-2.4/config-default.  Unfortunately that didn't make any difference, so I'm guessing there are other parts of the source tree to modify....

More Detailed output for ALSA:

dmesg after attempting to play audio (no ohci/uhci modules installed in this instance, only USB2):

root@OpenWrt:~# dmesg
CPU revision is: 00029029
Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes.
Primary data cache 16kB, 2-way, linesize 16 bytes.
Linux version 2.4.37.9 (lee@lee-dev) (gcc version 3.4.6 (OpenWrt-2.0)) #3 Sun Apr 11 00:19:35 MYT 2010
Setting the PFC to its default value
Determined physical RAM map:
 memory: 02000000 @ 00000000 (usable)
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
CPU: BCM5354 rev 3 at 240 MHz
Using 120.000 MHz high precision timer.
Calibrating delay loop... 238.38 BogoMIPS
Memory: 30456k/32768k available (1440k kernel code, 2312k reserved, 100k data, 84k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
Checking for 'wait' instruction...  unavailable.
POSIX conformance testing by UNIFIX
PCI: no core
PCI: Fixing up bus 0
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Registering mini_fo version $Id$
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0xb8000300 (irq = 3) is a 16550A
ttyS01 at 0xb8000400 (irq = 3) is a 16550A
b44.c:v0.93 (Mar, 2004)
PCI: Setting latency timer of device 00:01.0 to 64
eth0: Broadcom 47xx 10/100BaseT Ethernet 90:e6:ba:43:6d:71
Physically mapped flash: Found an alias at 0x800000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1000000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1800000 for the chip at 0x0
 Amd/Fujitsu Extended Query Table v1.1 at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x800000 at 0x1c000000
bootloader size: 131072
Physically mapped flash: Filesystem type: squashfs, size=0x1e1ae3
Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00020000 : "cfe"
0x00020000-0x007f0000 : "linux"
0x0009b800-0x00280000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x007f0000-0x00800000 : "nvram"
0x00280000-0x007f0000 : "rootfs_data"
sflash: found no supported devices
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 84k freed
diag: Detected 'ASUS WL-500g Premium V2'
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
roboswitch: Probing device eth0: found a 5325! It's a 5350.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
mini_fo: using base directory: /
mini_fo: using storage directory: /overlay
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
jffs2.bbc: SIZE compression mode activated.
b44: eth0: Link is up at 100 Mbps, full duplex.
b44: eth0: Flow control is off for TX and off for RX.
eth0.0: add 01:00:5e:00:00:01 mcast address to master interface
SCSI subsystem driver Revision: 1.00
eth0.1: add 01:00:5e:00:00:01 mcast address to master interface
eth0.0: dev_set_promiscuity(master, 1)
device eth0 entered promiscuous mode
device eth0.0 entered promiscuous mode
br-lan: port 1(eth0.0) entering learning state
br-lan: port 1(eth0.0) entering forwarding state
br-lan: topology change detected, propagating
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
PCI: Setting latency timer of device 00:05.0 to 64
PCI/DMA
wl0: wlc_attach: chiprev 3 coreunit 0 corerev 13 cccap 0x104007ea maccap 0x30482205 band 2.4G, phy_type 5 phy_rev 0 ana_rev 6
wl0: Broadcom BCM4318 802.11 Wireless Controller 4.150.10.5
ip_tables: (C) 2000-2002 Netfilter core team
SB USB20H init
SB COREREV: 2
SB USB20H resetting
USB20H fcr: 0x64
USB20H shim cr: 0x8f7
PCI: Setting latency timer of device 00:03.1 to 64
ehci_hcd 00:03.1: PCI device 14e4:471a
ehci_hcd 00:03.1: irq 6, pci mem b8003800
usb.c: new USB bus registered, assigned bus number 1
ehci_hcd 00:03.1: illegal capability!
ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4
hub.c: USB hub found
hub.c: 2 ports detected
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 336 bytes per conntrack
hub.c: new USB device 00:03.1-1, assigned address 2
hub.c: USB hub found
hub.c: 2 ports detected
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
hub.c: new USB device 00:03.1-1.1, assigned address 3
usb.c: USB device 3 (vend/prod 0xd8c/0xc) is not claimed by any active driver.
usb.c: registered new driver snd-usb-audio
hub.c: new USB device 00:03.1-1.2, assigned address 4
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: SanDisk   Model: Cruzer Blade      Rev: 8.02
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 3907583 512-byte hdwr sectors (2001 MB)
sda: Write Protect is off
Partition check:
 /dev/scsi/host0/bus0/target0/lun0: p1 p2 p3
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 4
ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub
ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub
ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub
ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub
ALSA usbaudio.c:875: cannot submit datapipe for urb 0, error -89: enable CONFIG_USB_EHCI_SPLIT_ISO to play through a hub




aplay -l output:
root@OpenWrt:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: default [C-Media USB Headphone Set  ], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

(Last edited by ldolse on 11 Apr 2010, 05:53)

Update.. 

I compiled brcm47xx from svn myself, including all the USB/Audio modules necessary in the build process.  Built this way all the unknown symbol errors in the official 10.03 builds went away, and audio is working.  Note I could only get it working with OSS (kmod-usb-audio) since kmod-alsa isn't among the packages available for brcm47xx builds.....

One really odd bit of behavior.  I was using MPD to play audio.  Before launching MPD the USB sound device and a memory stick with my audio data had already been plugged in and recognized according to dmesg, etc.  fdisk showed that the USB storage was located at /dev/sda1, which I succesfully mounted, and in fact configured MPD to use as both the location for it's database files and the location of the music library.  Right after launching MPD and it successfully initialized the USB audio device the USB storage changed from /dev/sda1 to /dev/sdb1.  Of course I needed to remount the new device location.  I haven't yet set up automount, but I'm a bit concerned that this will make automounting a bit difficult....


All that said, I'd love to get this working on the 2.4 kernel, at least until Bug 6907 affecting wireless on the WL-500gpv2 gets resolved.  Anyone have any ideas on how to make it work?

(Last edited by ldolse on 11 Apr 2010, 12:43)

Hi,

I'm experiencing the same problem. I'd suggest you report this issue on dev.openwrt.org so we'd be able to see the progress.

So I switched back to the 8.09.2 where everything works

Apart from the problem. I have almost the same hardware as you do - 8MB flash, 200Mhz brcm processor (I've got an old wgt634u). First of all it wasn't even possible to install mpd because the kernel is so fat that there is no space left and mpd + alsa adds lots of dependencies. How did you solve this?

Second problem is that there is not enough processor power for the mpd to work. Yes, 200Mhz is not enough! After I switched to OSS I was able to play mp3 with something like 20 per cent idleness. But as far as I connect with a client to the mpd it laggs like sht. Does mpd work for you well?

OK, I'm using an older version of the mpd shipped with the 8.09.2 maybe there are some performance improvements with the newer mpd build.

ps Most probably mpd compiled without alsa support should solve the problem with the lack of space for the mpd installation becase alsa takes lots of space.

I assume you're running 8.09.2 on a 2.6 kernel, correct?  Unfortunately I need the BRCM 2.4 kernel to get wireless to work, and the 2.4 kernel is failing in the same way for both 8.09.2 Kamikaze and Backfire.  Running mpd .14 was also a problem for me, before the Backfire candidates were out I'd been considering using the nslu2 Optware repository, as its got .15.9.  Unfortunately none of the binaries on optware are stripped of extra junk, so there is no way to squeeze them into 8 megs, you need to do the full external storage setup.

I was also having the space problems you're mentioning with MPD and backfire, not only does it require ALSA, but for some reason it requires libspeex, mdnsresponder, OpenSSL, and a lot of other libraries rarely required in real life.  All together it blows past the 8meg limit, but just slides under it with 2.4.  For some reason it came in under 8 megs when I compiled my own build and used the repository to install mpd.  I want audiofile support as well though, so I'm currently recompiling as I write this.  Once the build environment is created it's not that difficult to tweak...

CPU wise things seems ok.  Running OSS and decoding MP3 I'm at 46% CPU (maybe 240 Mhz makes a difference).  Most of my stuff is AIFF, so I'm hoping that will be even less CPU, since it's all IO instead of decompression.

I'll open a bug for the symbols issue at least, I'll wait for some more feedback on the other issues.

Tickets:
Unknown Symbols errors: https://dev.openwrt.org/ticket/7140
MPD dependencies/size:  https://dev.openwrt.org/ticket/7142


Update:
Running my new build with usb audio, usb storage, and mpd built in.  The total build size is 4.7MB with most of the same features as the official mpd package, I just only explicitly enabled libaudiofile and disabled alsa-lib.  I forgot to enable ffmpeg though, and that takes a fair bit of space, will need to rebuild it.  Will probably add mpc as well.  CPU utilization playing AIFF is 34%.


Packages installed:

root@OpenWrt:~# opkg list-installed
base-files - 42-r20769
busybox - 1.15.3-2
crda - 1.1.0-2
dnsmasq - 2.52-2
dropbear - 0.52-4
fdisk - 2.13.0.1-4
firewall - 1-10
glib2 - 2.22.2-1
hotplug2 - 1.0-beta-1
iptables - 1.4.6-2
iptables-mod-conntrack - 1.4.6-2
iptables-mod-nat - 1.4.6-2
iw - 0.9.19-1
kernel - 2.6.32.10-1
kmod-b43 - 2.6.32.10+2010-03-24-5
kmod-b43legacy - 2.6.32.10+2010-03-24-5
kmod-cfg80211 - 2.6.32.10+2010-03-24-5
kmod-crypto-aes - 2.6.32.10-1
kmod-crypto-arc4 - 2.6.32.10-1
kmod-crypto-core - 2.6.32.10-1
kmod-diag - 2.6.32.10-6
kmod-fs-ext2 - 2.6.32.10-1
kmod-fs-hfsplus - 2.6.32.10-1
kmod-fs-vfat - 2.6.32.10-1
kmod-ipt-conntrack - 2.6.32.10-1
kmod-ipt-core - 2.6.32.10-1
kmod-ipt-nat - 2.6.32.10-1
kmod-ipt-nathelper - 2.6.32.10-1
kmod-mac80211 - 2.6.32.10+2010-03-24-5
kmod-nls-base - 2.6.32.10-1
kmod-nls-cp437 - 2.6.32.10-1
kmod-nls-iso8859-1 - 2.6.32.10-1
kmod-nls-utf8 - 2.6.32.10-1
kmod-scsi-core - 2.6.32.10-1
kmod-sound-core - 2.6.32.10-1
kmod-switch - 2.6.32.10-3
kmod-usb-audio - 2.6.32.10-1
kmod-usb-core - 2.6.32.10-1
kmod-usb-ohci - 2.6.32.10-1
kmod-usb-storage - 2.6.32.10-1
kmod-usb-storage-extras - 2.6.32.10-1
kmod-usb2 - 2.6.32.10-1
libaudiofile - 0.2.6-2
libc - 0.9.30.1-42
libcurl - 7.19.6-1
libext2fs - 1.41.11-1
libflac - 1.1.2-1
libgcc - 4.3.3+cs-42
libiconv - 1.11-1
libid3tag - 0.15.1b-3
libintl - 0.17-1
libiptc - 1.4.6-2
liblua - 5.1.4-6
libmad - 0.15.1b-3
libmms - 0.5-1
libnl-tiny - 0.1-1
libogg - 1.1.4-2
libopenssl - 0.9.8m-3
libpthread - 0.9.30.1-42
librt - 0.9.30.1-42
libshout - 2.2.2-1
libsqlite3 - 3.6.20-2
libuci - 12012009.5-1
libuci-lua - 12012009.5-1
libvorbis - 1.2.3-1
libvorbisidec - 1.0.2+svn14261-1
libxtables - 1.4.6-2
lua - 5.1.4-6
luci - 0.9.0-1
luci-admin-core - 0.9.0-1
luci-admin-full - 0.9.0-1
luci-admin-mini - 0.9.0-1
luci-app-firewall - 0.9.0-1
luci-app-initmgr - 0.9.0-1
luci-cbi - 0.9.0-1
luci-core - 0.9.0-1
luci-http - 0.9.0-1
luci-i18n-english - 0.9.0-1
luci-ipkg - 0.9.0-1
luci-light - 0.9.0-1
luci-lmo - 0.9.0-1
luci-nixio - 0.9.0-1
luci-sgi-cgi - 0.9.0-1
luci-sys - 0.9.0-1
luci-theme-base - 0.9.0-1
luci-theme-openwrt - 0.9.0-1
luci-theme-openwrtlight - 0.9.0-1
luci-uci - 0.9.0-1
luci-uvl - 0.9.0-1
luci-web - 0.9.0-1
mpd - 0.15.8-2
mtd - 12
nvram - 5
opkg - 513-2
uci - 12012009.5-1
udevtrigger - 106-1
uhttpd - 7
wireless-tools - 29-4
wpad-mini - 20100309-1
zlib - 1.2.3-5

MPD --version output:

root@OpenWrt:~# mpd --version
mpd (MPD: Music Player Daemon) 0.15.8 

Copyright (C) 2003-2007 Warren Dukes <warren.dukes@gmail.com>
Copyright (C) 2008 Max Kellermann <max@duempel.org>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Supported decoders:

[mad] mp3 mp2
[vorbis] ogg oga
[flac] flac
[audiofile] wav au aiff aif

Supported outputs:

shout null fifo oss httpd 

Supported protocols:

file:// http:// lastfm:// mms:// mmsh:// mmst:// mmsu://

(Last edited by ldolse on 11 Apr 2010, 18:28)

I was looking at the wrong stats before, memory instead of CPU.  Playback with AIFF is ~6-8% CPU, with mp3 it's ~30% CPU.  FLAC interestingly enough is almost the same as AIFF.

Top with mp3:

CPU:  26% usr   3% sys   0% nic  67% idle   0% io   2% irq   0% sirq
Load average: 0.17 0.64 1.25 1/38 1237
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 1217  1214 root     S    12664  43%  23% mpd 
 1218  1214 root     S    12664  43%   4% mpd 
 1215  1214 root     S    12664  43%   3% mpd 
 1213     1 root     S    12664  43%   1% mpd 
 1237  1230 root     R     1360   5%   1% top 
 1214  1213 root     S    12664  43%   0% mpd 
  907     1 root     S     1464   5%   0% /usr/sbin/uhttpd -f -h /www -r OpenWr
 1021     1 root     S     1372   5%   0% udhcpc -t 0 -i eth0.1 -b -p /var/run/
  307     1 root     S     1368   5%   0% syslogd -C16 
    1     0 root     S     1364   5%   0% init       
 1230  1229 root     S     1364   5%   0% -ash 
  281     1 root     S     1364   5%   0% init       
  309     1 root     S     1348   5%   0% klogd 
 1071     1 root     S     1348   5%   0% watchdog -t 5 /dev/watchdog 
 1229   900 root     S     1200   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
  900     1 root     S     1144   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
 1025     1 nobody   S      908   3%   0% /usr/sbin/dnsmasq -K -D -y -Z -b -E -
  323     1 root     S      772   3%   0% /sbin/hotplug2 --override --persisten
 1185     2 root     SW       0   0%   0% [usb-storage]
    3     2 root     SW       0   0%   0% [ksoftirqd/0]

Top with AIFF:

CPU:   3% usr   3% sys   0% nic  82% idle   7% io   2% irq   0% sirq
Load average: 0.44 0.56 1.14 1/38 1237
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 1217  1214 root     S    12664  43%   4% mpd 
 1215  1214 root     S    12664  43%   1% mpd 
 1218  1214 root     S    12664  43%   1% mpd 
 1237  1230 root     R     1360   5%   1% top 
 1213     1 root     S    12664  43%   0% mpd 
    3     2 root     SW       0   0%   0% [ksoftirqd/0]
   59     2 root     SW       0   0%   0% [kswapd0]
 1214  1213 root     S    12664  43%   0% mpd 
  907     1 root     S     1464   5%   0% /usr/sbin/uhttpd -f -h /www -r OpenWr
 1021     1 root     S     1372   5%   0% udhcpc -t 0 -i eth0.1 -b -p /var/run/
  307     1 root     S     1368   5%   0% syslogd -C16 
    1     0 root     S     1364   5%   0% init       
 1230  1229 root     S     1364   5%   0% -ash 
  281     1 root     S     1364   5%   0% init       
  309     1 root     S     1348   5%   0% klogd 
 1071     1 root     S     1348   5%   0% watchdog -t 5 /dev/watchdog 
 1229   900 root     S     1200   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
  900     1 root     S     1144   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
 1025     1 nobody   S      908   3%   0% /usr/sbin/dnsmasq -K -D -y -Z -b -E -
  323     1 root     S      772   3%   0% /sbin/hotplug2 --override --persisten

Top with FLAC:

Mem: 28608K used, 1168K free, 0K shrd, 300K buff, 13756K cached
CPU:   4% usr   4% sys   0% nic  77% idle  10% io   2% irq   0% sirq
Load average: 0.24 0.42 0.43 1/38 2999
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
 2954  2952 root     S    13204  44%   5% mpd 
 2953  2952 root     S    13204  44%   2% mpd 
 2955  2952 root     S    13204  44%   1% mpd 
 2999  1373 root     R     1360   5%   1% top 
 2951     1 root     S    13204  44%   0% mpd 
 2931     2 root     SW       0   0%   0% [usb-storage]
 2952  2951 root     S    13204  44%   0% mpd 
 1017     1 root     S     1464   5%   0% /usr/sbin/uhttpd -f -h /www -r OpenWr
 1069     1 root     S     1368   5%   0% udhcpc -t 0 -i eth0.1 -b -p /var/run/
 1373  1372 root     S     1368   5%   0% -ash 
  307     1 root     S     1368   5%   0% syslogd -C16 
    1     0 root     S     1364   5%   0% init       
  281     1 root     S     1364   5%   0% init       
  309     1 root     S     1348   5%   0% klogd 
 1061     1 root     S     1348   5%   0% watchdog -t 5 /dev/watchdog 
 1372  1010 root     S     1220   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
 1010     1 root     S     1144   4%   0% /usr/sbin/dropbear -p 22 -P /var/run/
 1038     1 nobody   S      912   3%   0% /usr/sbin/dnsmasq -K -D -y -Z -b -E -
  323     1 root     S      772   3%   0% /sbin/hotplug2 --override --persisten
    3     2 root     SW       0   0%   0% [ksoftirqd/0]

(Last edited by ldolse on 14 Apr 2010, 01:37)

Hello, would it be possible to upload your Firmware with included mpd?

Thank you very much!

I second that. Please send us the image that includes MPD and  dependencies


the list of packages/dependancies would also be enough.

(Last edited by jtonk on 6 Oct 2010, 17:36)

I now extended the space of my flash by using a usb stick. So I do not have any problems regarding install "big" software anymore.

smile

Hello community,

Has someone a package with enabled ffmpeg for mpd?

I would need it, because I get errors if I want to compile mpd on my openwrt Router sad

Thank you very much!

The discussion might have continued from here.