LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware 10.2 Hotplug Firmware Download - ti_usb_3410_5052 (https://www.linuxquestions.org/questions/slackware-14/slackware-10-2-hotplug-firmware-download-ti_usb_3410_5052-a-531149/)

kevinuu 02-21-2007 05:02 PM

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.

gnashley 02-22-2007 10:21 AM

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?

kevinuu 02-22-2007 11:11 AM

/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

gnashley 02-22-2007 02:09 PM

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.

kevinuu 02-22-2007 02:58 PM

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

gnashley 02-23-2007 02:24 AM

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.