> > There's also http://www.speedtouch.co.uk/products/faq.asp?ProductID=471. > Probably > you want the "Driver for 8M lines". > >> Any ideas where the new firmware is? Do I need a new firmware extractor too? > > I've no idea where the "extended reach" driver went. Since I downloaded it > without having to agree to any licence conditions etc (the download doesn't > contain a licence either) I will send the firmware to anyone who asks, unless > Thomson asks me to stop. >
Thanks for that, not that it made any difference. > > I'd guess you have some script on your system, maybe a hotplug script, > that is removing the modules. One thought is that the device reset > may be being misinterpreted by some script as device removal, and > is triggering unloading of the modules. > Well, this lead me to thinking that it might be a udev problem, so I did some (exhaustive) tests and I have tracked the problem down not to udev (directly) as to the usb_endpoint changes which were put in the kernel by GKH and chums. The problem occurs with kernel 2.6.18+, and it works as follows. If I trace the udev events on 2.6.17.X after the box has booted the following (abbreviated) device events occur in the udev log. SEQNUM=1052 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2 SEQNUM=1053 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (uhci-hcd) SEQNUM=1054 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (uhci-hcd) SEQNUM=1055 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (uhci-hcd) SEQNUM=1056 ACTION=add DEVPATH=/class/usb_device/usbdev1.2 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2 run_program: '/sbin/modprobe pci:v00001106d00003038sv00000925sd00001234bc0Csc03i00' (uhci-hcd) run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 1052, pid [3895] exit with 0, 1 seconds old run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) SEQNUM=1057 ACTION=add DEVPATH=/module/usbatm SUBSYSTEM=module SEQNUM=1058 ACTION=add DEVPATH=/module/speedtch SUBSYSTEM=module SEQNUM=1059 ACTION=add DEVPATH=/bus/usb/drivers/speedtch SUBSYSTEM=drivers run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00'(speedtch) udev_done: seq 1057, pid [3903] exit with 0, 0 seconds old udev_done: seq 1058, pid [3904] exit with 0, 0 seconds old udev_done: seq 1059, pid [3906] exit with 0, 0 seconds old SEQNUM=1060 ACTION=add DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-1.bin.4.00 run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 1053, pid [3897] exit with 0, 1 seconds old run_program: '/lib/udev/firmware_helper' run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 1055, pid [3899] exit with 0, 2 seconds old run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 1054, pid [3898] exit with 0, 2 seconds old run_program: '/lib/udev/firmware_helper' returned with status 0 udev_done: seq 1060, pid [3909] exit with 0, 1 seconds old udev_done: seq 1056, pid [3911] exit with 0, 2 seconds old SEQNUM=1061 ACTION=remove DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-1.bin.4.00 SEQNUM=1062 ACTION=add DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-2.bin.4.00 udev_done: seq 1061, pid [3913] exit with 0, 0 seconds old run_program: '/lib/udev/firmware_helper' run_program: '/lib/udev/firmware_helper' returned with status 0 udev_done: seq 1062, pid [3914] exit with 0, 1 seconds old This is the 'good kernel' which seems to work with any recent udev (I tried versions from 088 to 104) and a really basic set of rules. The only peculiarity I can see is that the kernel tries to remove the firmware after adding it. I am not sure why this should happen, but it seems like a bug. Now moving onto 2.6.18+ the events generated by the kernel are rather different. SEQNUM=948 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2 SEQNUM=949 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/usbdev1.2_ep00 SEQNUM=950 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (speedtch) SEQNUM=951 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0/usbdev1.2_ep81 SEQNUM=952 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (speedtch) SEQNUM=953 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2 MODALIAS=usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00 (speedtch) SEQNUM=954 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep05 SEQNUM=955 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep85 SEQNUM=956 ACTION=add DEVPATH=/class/usb_device/usbdev1.2 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2 run_program: '/sbin/modprobe pci:v00001106d00003038sv00000925sd00001234bc0Csc03i00' (uhci_hcd) run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 948, pid [4219] exit with 0, 0 seconds old run_program: '/sbin/modprobe pci:v00001106d00003038sv00000925sd00001234bc0Csc03i00' (uhci_hcd) run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 949, pid [4221] exit with 0, 0 seconds old SEQNUM=957 ACTION=add DEVPATH=/module/usbatm udev_done: seq 957, pid [4229] exit with 0, 0 seconds old SEQNUM=958 ACTION=add DEVPATH=/module/speedtch udev_done: seq 958, pid [4231] exit with 0, 0 seconds old SEQNUM=959 ACTION=add DEVPATH=/bus/usb/drivers/speedtch udev_done: seq 959, pid [4233] exit with 0, 0 seconds old SEQNUM=960 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=961 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=962 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=963 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0/usbdev1.2_ep81 SEQNUM=964 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0/usbdev1.2_ep81 SEQNUM=965 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=966 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=967 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=968 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=969 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=970 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=971 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep05 SEQNUM=972 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep85 SEQNUM=973 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep05 SEQNUM=974 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep85 run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 950, pid [4222] exit with 0, 1 seconds old run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' SEQNUM=975 ACTION=add DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-1.bin.4.00 run_program: '/lib/udev/firmware_helper' run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 952, pid [4223] exit with 0, 1 seconds old udev_done: seq 953, pid [4224] exit with 0, 1 seconds old udev_done: seq 960, pid [4239] exit with 0, 1 seconds old run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe' returned with status 0 run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe' returned with status 0 run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) udev_done: seq 951, pid [4235] exit with 0, 1 seconds old udev_done: seq 961, pid [4240] exit with 0, 1 seconds old udev_done: seq 962, pid [4242] exit with 0, 1 seconds old run_program: '/sbin/modprobe usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe --remove usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe --remove usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/lib/udev/firmware_helper' returned with status 0 SEQNUM=976 ACTION=remove DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-1.bin.4.00 udev_done: seq 975, pid [4237] exit with 0, 1 seconds old SEQNUM=977 ACTION=add DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-2.bin.4.00 run_program: '/sbin/modprobe --remove usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) run_program: '/sbin/modprobe --remove usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) udev_done: seq 976, pid [4256] exit with 0, 0 seconds old run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 954, pid [4243] exit with 0, 2 seconds old run_program: '/sbin/modprobe' returned with status 0 udev_done: seq 955, pid [4244] exit with 0, 2 seconds old run_program: '/sbin/modprobe --remove usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00' (speedtch) SEQNUM=978 ACTION=remove DEVPATH=/class/firmware/1-2:1.0 PHYSDEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.0 FIRMWARE=speedtch-2.bin.4.00 run_program: '/lib/udev/firmware_helper' returned with status 0 udev_done: seq 977, pid [4257] exit with 0, 1 seconds old SEQNUM=979 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=980 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=981 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=982 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=983 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=984 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=985 ACTION=add DEVPATH=/class/atm/speedtch0 SEQNUM=986 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep06 SEQNUM=987 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep07 SEQNUM=988 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.1/usbdev1.2_ep87 SEQNUM=989 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep05 SEQNUM=990 ACTION=remove DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep85 SEQNUM=991 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:07.2/usb1/1-2/1-2:1.2/usbdev1.2_ep05 ... ad infinitum, but in no particular order. You will notice that udev unloads speedtch shortly after loading it, which is what you diagnosed, but the real question is why. It seems that in 2.6.18+, not only are spurious firmware removal events sent, but spurious usb_endpoint removal events are created too. These occur sometimes before and sometimes after add events, causing an unpredictable splurge of module loads and unloads. Clearly the usb_endpoint changes have room for improvement. Obviously I am unloading speedtch in response to an event which I had not forseen when I wrote the udev rules some months ago, so as a quick bodge I have stopped the speedtch module from being unloaded by using a wrapper script. This has allowed me to use 2.6.19.1 and connect successfully. When the usb_endpoint code has matured I'll have a look at the usb_endpoint events that the kernel puts out and update my udev rules to suit, unless in the meantime someone can provide some example rules which work with 2.6.18+. Many thanks for your help in debugging this little horror. Regards, Steve. Liste de diffusion modem ALCATEL SpeedTouch USB Pour se désinscrire : mailto:[EMAIL PROTECTED]
