Hello,
I want to use a Speedtouch 330 ADSL modem with a ASUS WL-500gP router
running OpenWrt embedded distribution. To be more precise I'm running
Kamikaze version, which comes with kernel-2.6.19.2.
I've compiled everything I though was necessary as a module:
hotplug2 - 0.9-1
kmod-atm - 2.6.19.2-brcm47xx-1
kmod-usb-core - 2.6.19.2-brcm47xx-1
kmod-usb-speedtouch - 2.6.19.2-brcm47xx-1
kmod-usb-uhci - 2.6.19.2-brcm47xx-1
udevtrigger - 106-1
My modem is a black one, so it's rev. 4.0:
[EMAIL PROTECTED]:~# awk '/4061/ { print $5 }' /proc/bus/usb/devices
4.00
I've uploaded the firmware in the right location:
[EMAIL PROTECTED]:~# ls -al /lib/firmware/
-rw-r--r-- 1 root root 935 Jan 1 00:12 speedtch-1.bin
-rw-r--r-- 1 root root 775545 Jan 1 00:12 speedtch-2.bin
At boot time I get the following messages:
ssb: Core 3 found: USB 1.1 Hostdev (cc 0x808, rev 0x02, vendor 0x4243)
[...]
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
[...]
USB Universal Host Controller Interface driver v3.0
PCI: Enabling device 0000:00:03.0 (0000 -> 0001)
PCI: Fixing up device 0000:00:03.0
uhci_hcd 0000:00:03.0: UHCI Host Controller
uhci_hcd 0000:00:03.0: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:03.0: irq 6, io base 0x00000100
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
PCI: Enabling device 0000:00:03.1 (0000 -> 0001)
PCI: Fixing up device 0000:00:03.1
uhci_hcd 0000:00:03.1: UHCI Host Controller
uhci_hcd 0000:00:03.1: new USB bus registered, assigned bus number 2
uhci_hcd 0000:00:03.1: irq 6, io base 0x00000120
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usbcore: registered new interface driver speedtch
Here is the output from lspci:
[EMAIL PROTECTED]:~# lspci
00:00.0 Host bridge: Broadcom Corporation BCM4704 PCI to SB Bridge
00:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One
54g] 802.11g Wireless LAN Controller (rev 02)
00:03.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 61)
00:03.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 61)
00:03.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 63)
[EMAIL PROTECTED]:~# lspci -s 00:03.0 -G -v
Trying method 1......cannot open /sys/bus/pci...No.
Trying method 2......using /proc/bus/pci...OK
Decided to use Linux-proc
00:03.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 61) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
Flags: bus master, medium devsel, latency 22, IRQ 6
I/O ports at 0100 [size=32]
Capabilities: [80] Power Management version 2
[EMAIL PROTECTED]:~# lspci -s 00:03.1 -G -v
Trying method 1......cannot open /sys/bus/pci...No.
Trying method 2......using /proc/bus/pci...OK
Decided to use Linux-proc
00:03.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1
Controller (rev 61) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller
Flags: bus master, medium devsel, latency 22, IRQ 6
I/O ports at 0120 [size=32]
Capabilities: [80] Power Management version 2
The modules look like this:
[EMAIL PROTECTED]:~# lsmod
Module Size Used by Tainted: P
speedtch 10000 0
usbatm 13952 1 speedtch
uhci_hcd 18480 0
ath_pci 68288 0
wlan_xauth 480 0
wlan_wep 4320 0
wlan_tkip 9984 0
wlan_ccmp 5856 0
wlan_acl 2208 0
ath_rate_sample 8000 1 ath_pci
ath_hal 222016 2 ath_pci,ath_rate_sample
wlan_scan_sta 8224 0
wlan_scan_ap 2720 0
wlan 135488 9
ath_pci,wlan_xauth,wlan_wep,wlan_tkip,wlan_ccmp,wlan_acl,ath_rate_sample,wlan_scan_sta,wlan_scan_ap
ip_conntrack_tftp 1680 0
ip_nat_irc 960 0
ip_conntrack_irc 2832 1 ip_nat_irc
ip_nat_ftp 1696 0
ip_conntrack_ftp 4016 1 ip_nat_ftp
ppp_async 9504 0
ppp_generic 20480 1 ppp_async
slhc 5472 1 ppp_generic
crc_ccitt 1024 1 ppp_async
br2684 5616 0
atm 43056 2 usbatm,br2684
usbcore 102016 4 speedtch,usbatm,uhci_hcd
switch_robo 4048 0
switch_core 5056 1 switch_robo
diag 7696 0
But when I plugin the modem I get the following messages:
[EMAIL PROTECTED]:~# dmesg | tail
usb 1-2: new full speed USB device using uhci_hcd and address 2
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: reset full speed USB device using uhci_hcd and address 2
speedtch 1-2:1.0: speedtch_find_firmware: no stage 1 firmware found!
As you can see from above, I'm using hotplug2 instead of udev, because I
think it's better fitted for the an embedded environment. But I also
think this is the source of my problems. Now I've done some research
about hotplug2 on OpenWrt and here is what I've found.
First, in /etc/init.d/boot there are some lines that starts hotplug2 as
a daemon at boot time;
/sbin/hotplug2 --persistent --max-children 1 &
echo /sbin/hotplug-call > /proc/sys/kernel/hotplug
The script /sbin/hotplug-call is called whenever the kernel detects a
new device. Now I've modified this script to get some debugging messages.
# begin /sbin/hotplug-call
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
export HOTPLUG_TYPE="$1"
# bypass the normal hotplug path for firmware loading
# would otherwise cause problems with drivers like bcm43xx
[ "$HOTPLUG_TYPE" = "firmware" -a "$ACTION" = "add" ] && {
echo "/sbin/hotplug-call :: $FIRMWARE :: $DEVPATH">>/var/log/mesaje
[ -f "/lib/firmware/$FIRMWARE" ] && {
echo "/sbin/hotplug-call :: /lib/firmware/$FIRMWARE
exists">>/var/log/mesaje
echo 1 > "/sys$DEVPATH/loading"
cp "/lib/firmware/$FIRMWARE" "/sys$DEVPATH/data"
echo 0 > "/sys$DEVPATH/loading"
}
exit 0
}
. /etc/functions.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOGNAME=root
USER=root
export PATH LOGNAME USER
[ \! -z "$1" -a -d /etc/hotplug.d/$1 ] && {
for script in $(ls /etc/hotplug.d/$1/* 2>&-); do (
[ -f $script ] && . $script
); done
}
# end /sbin/hotplug-call
After plugging the modem I get the following output in the file
/var/log/mesaje:
[EMAIL PROTECTED]:~# cat /var/log/mesaje
/sbin/hotplug-call :: speedtch-1.bin.4.00 :: /class/firmware/1-2:1.0
/sbin/hotplug-call :: speedtch-1.bin.4 :: /class/firmware/1-2:1.0
/sbin/hotplug-call :: speedtch-1.bin :: /class/firmware/1-2:1.0
/sbin/hotplug-call :: /lib/firmware/speedtch-1.bin exists
So everything looks fine, except the files in /sys are not created and
the firmware is not copied there.
/sys/class/firmware/1-2:1.0/loading - does not exists
The rules for hotplug2 are stored in the file /etc/hotplug2.rules, which
contains the following lines:
# begin /etc/hotplug2.rules,
DEVICENAME ~~ (tun|tap[0-9]) {
makedev /dev/net/%DEVICENAME% 0644
next
}
DEVPATH is set {
makedev /dev/%DEVICENAME% 0644
}
MODALIAS is set {
exec /sbin/modprobe -q %MODALIAS% ;
}
# end /etc/hotplug2.rules
I guess these rules should be responsible for loading the firmware, but
I don't see how they are doing it. I'm inexperienced with both udev and
hotplug2, so I don't know how these rules should look like.
If you can help me, please drop me a line.
Here is the same problem on openwrt forum:
http://forum.openwrt.org/viewtopic.php?id=10204
Here is hotplug2 homepage:
http://isteve.bofh.cz/~isteve/hotplug2/
Thank you,
Radu.
Liste de diffusion modem ALCATEL SpeedTouch USB
Pour se désinscrire : mailto:[EMAIL PROTECTED]