Slackware 10.2 Hotplug Firmware Download - ti_usb_3410_5052
I am trying to get a MultiModem GPRS Modem to work on a 2.6.12 kernel with Slackware 10.2. There is a hotplug script (placed in /etc/hotplug.d/usb/) with the installation and it appears to be called and the module (ti_usb_3410_5052.ko) is loaded into the kernel when the device is plugged in, but there is an error at some point when loading the module resulting in the following error (dmesg):
usb1-6: ti_reqest_and_download_firmware - no firmware image found I traced through the ti_usb_3410_5052.c driver and found that the call to request_firmware() returns an error value of -5. request_firmware() is located in the module firmware_class.ko. I think it may be failing on call to "kobject_hotplug(&class_dev->kobj, KOBJ_ADD);" in firmware_class.c -- but I'm not 100% sure. I have tried placing the firmware files in both: /lib/firmware /usr/lib/hotplug/firmware Neither location has solved the problem. Any insight would be very very much appreciated. Thanks, Kevin. |
YOu need to be sure that hotplug firmware loading is enabled in your kernel configuration. Can you post the contents of the script in /etc/hotplug.d/usb for me?
|
/etc/hotplug.d/usb/ti_usb_3410_5052.hotplug :
#!/bin/bash # # TI 3410/5052 USB Serial Driver Hotplug # # Copyright (C) 2004 Texas Instruments # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # For questions or problems with this driver, contact Texas Instruments # technical support, or Al Borchers <alborchers@steinerpoint.com>, or # Peter Berger <pberger@brimson.com>. # BOOT_CONFIG=1 ACTIVE_CONFIG=2 if [[ "$ACTION" != "add" ]] then exit fi CONFIG_PATH=/sys${DEVPATH%/?*}/bConfigurationValue if [[ 0`cat $CONFIG_PATH` -ne $BOOT_CONFIG ]] then exit fi PRODUCT=${PRODUCT%/?*} # delete version VENDOR_ID=`printf "%d" 0x${PRODUCT%/?*}` PRODUCT_ID=`printf "%d" 0x${PRODUCT#*?/}` PARAM_PATH=/sys/module/ti_usb_3410_5052/parameters function scan() { s=$1 shift for i do if [[ $s -eq $i ]] then return 0 fi done return 1 } IFS=$IFS, if (scan $VENDOR_ID 1105 1760 `cat $PARAM_PATH/vendor_3410` && scan $PRODUCT_ID 13328 61704 61705 61712 61713 61714 `cat $PARAM_PATH/product_3410`) || (scan $VENDOR_ID 1105 `cat $PARAM_PATH/vendor_5052` && scan $PRODUCT_ID 20562 20818 20570 20575 `cat $PARAM_PATH/product_5052`) then echo $ACTIVE_CONFIG > $CONFIG_PATH fi |
Thanks, I'm working/helping with a hotplug.d hook such as this and wanted to see what another implementation of it looked like. I've only seen one other example, besides what I worked out.
Did you check your kernel config. |
In .config:
... CONFIG_HOTPLUG=y ... # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=m ... I believe with these settings that the HOTPLUG FIRMWARE is set up to be supported in my kernel. Any luck on your end? Kevin |
Maybe you need to compile it statically(y) or youz may need to manually load the firmware-loading module for it to work.
|
All times are GMT -5. The time now is 12:49 PM. |