| Summary: | Firmware loading error | ||
|---|---|---|---|
| Product: | Busybox | Reporter: | marco <marco_cantu_ranzani> |
| Component: | Networking | Assignee: | unassigned |
| Status: | NEW --- | ||
| Severity: | minor | CC: | busybox-cvs |
| Priority: | P5 | Keywords: | FIXME |
| Version: | 1.19.x | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Linux | ||
| Host: | Target: | ||
| Build: | |||
| Attachments: |
HOTPLUG.LOG
etc |
||
Created attachment 5981 [details]
etc
|
Created attachment 3848 [details] HOTPLUG.LOG Busybox 1.19.2 Architecture ARM 920T cpu (s3c2440) - mini2440 Kernel 2.6.32.2 (sources provided by arm9.net) Kernel cross compiled with arm-gcc 4.3.2 (sources provided by arm9.net) (arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2008q3-72) 4.3.2) Busybox cross compiled by buildroot 2011.08 (arm-gcc 4.6.1, uclibc 0.9.32) I've find a lot of forum that discuss about this problem, but I not find a solution for this system! in /lib/ I have firmware/rt2870.bin hotplug/firmware/rt2870.bin and I also try to echo "/sbin/mdev" > /proc/sys/kernel/hotplug Thanks in advance! ************************************* BUG? ********************************* ------------------------- usb 1-1: default language 0x0409 usb 1-1: udev 3, busnum 1, minor = 2 usb 1-1: New USB device found, idVendor=148f, idProduct=3070 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1: Product: 802.11 n WLAN usb 1-1: Manufacturer: Ralink usb 1-1: SerialNumber: 1.0 usb 1-1: uevent usb 1-1: usb_probe_device usb 1-1: configuration #1 chosen from 1 choice usb 1-1: adding 1-1:1.0 (config #1, interface 0) usb 1-1:1.0: uevent usbserial_generic 1-1:1.0: usb_probe_interface usbserial_generic 1-1:1.0: usb_probe_interface - got id rt2800usb 1-1:1.0: usb_probe_interface rt2800usb 1-1:1.0: usb_probe_interface - got id phy1: Selected rate control algorithm 'minstrel' Registered led device: rt2800usb-phy1::radio Registered led device: rt2800usb-phy1::assoc Registered led device: rt2800usb-phy1::quality drivers/usb/core/inode.c: creating file '003' hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002 s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3a66000,0xa300,0x0000,0x0001,c3a55da0,0004) rt2800usb 1-1:1.0: firmware: requesting rt2870.bin phy1 -> rt2x00lib_request_firmware: Error - Failed to request Firmware. ********************************************************************************************* Kernel .config: # # Automatically generated make config: don't edit # Linux kernel version: 2.6.32.2 # Wed Nov 9 17:40:50 2011 # CONFIG_ARM=y CONFIG_HAVE_PWM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_GENERIC_GPIO=y CONFIG_NO_IOPORT=y CONFIG_GENERIC_HARDIRQS=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_ARCH_HAS_CPUFREQ=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y ... # # GCOV-based kernel profiling # # CONFIG_SLOW_WORK is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_BLOCK=y # CONFIG_LBDAF is not set # CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_INTEGRITY is not set ... # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" # CONFIG_DEVTMPFS is not set # CONFIG_STANDALONE is not set CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set # CONFIG_MTD_TESTS is not set # CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_CMDLINE_PARTS=y # CONFIG_MTD_AFS_PARTS is not set # CONFIG_MTD_AR7_PARTS is not set ... # # SCSI Transports # # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_DH is not set # CONFIG_SCSI_OSD_INITIATOR is not set # CONFIG_ATA is not set # CONFIG_MD is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # CONFIG_VETH is not set # CONFIG_PHYLIB is not set CONFIG_NET_ETHERNET=y CONFIG_MII=y # CONFIG_AX88796 is not set # CONFIG_SMC91X is not set CONFIG_DM9000=y CONFIG_DM9000_DEBUGLEVEL=4 # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set # CONFIG_ETHOC is not set # CONFIG_SMC911X is not set # CONFIG_SMSC911X is not set # CONFIG_DNET is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set # CONFIG_IBM_NEW_EMAC_RGMII is not set # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_EMAC4 is not set # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set # CONFIG_B44 is not set # CONFIG_KS8842 is not set # CONFIG_KS8851_MLL is not set # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set CONFIG_WLAN=y # CONFIG_WLAN_PRE80211 is not set CONFIG_WLAN_80211=y # CONFIG_LIBERTAS is not set # CONFIG_LIBERTAS_THINFIRM is not set CONFIG_AT76C50X_USB=m CONFIG_USB_ZD1201=m CONFIG_USB_NET_RNDIS_WLAN=m CONFIG_RTL8187=m # CONFIG_MAC80211_HWSIM is not set # CONFIG_P54_COMMON is not set CONFIG_ATH_COMMON=m CONFIG_AR9170_USB=m # CONFIG_HOSTAP is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set CONFIG_RT2X00=m CONFIG_RT2500USB=m CONFIG_RT73USB=m CONFIG_RT2800USB=m CONFIG_RT2X00_LIB_USB=m CONFIG_RT2X00_LIB=m CONFIG_RT2X00_LIB_HT=y CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2X00_LIB_CRYPTO=y CONFIG_RT2X00_LIB_LEDS=y # CONFIG_RT2X00_DEBUG is not set # CONFIG_WL12XX is not set # CONFIG_IWM is not set ... ---------------- in util-linux/medv.c ??? ----------------------- at line 481 /* For the full gory details, see linux/Documentation/firmware_class/README * * Firmware loading works like this: * - kernel sets FIRMWARE env var * - userspace checks /lib/firmware/$FIRMWARE * - userspace waits for /sys/$DEVPATH/loading to appear * - userspace writes "1" to /sys/$DEVPATH/loading * - userspace copies /lib/firmware/$FIRMWARE into /sys/$DEVPATH/data * - userspace writes "0" (worked) or "-1" (failed) to /sys/$DEVPATH/loading * - kernel loads firmware into device */ static void load_firmware(const char *firmware, const char *sysfs_path) { int cnt; int firmware_fd, loading_fd, data_fd; /* check for /lib/firmware/$FIRMWARE */ xchdir("/lib/firmware"); firmware_fd = xopen(firmware, O_RDONLY); /* in case we goto out ... */ data_fd = -1; /* check for /sys/$DEVPATH/loading ... give 30 seconds to appear */ xchdir(sysfs_path); for (cnt = 0; cnt < 30; ++cnt) { loading_fd = open("loading", O_WRONLY); if (loading_fd != -1) goto loading; sleep(1); } goto out; loading: /* tell kernel we're loading by "echo 1 > /sys/$DEVPATH/loading" */ if (full_write(loading_fd, "1", 1) != 1) goto out; /* load firmware into /sys/$DEVPATH/data */ data_fd = open("data", O_WRONLY); if (data_fd == -1) goto out; cnt = bb_copyfd_eof(firmware_fd, data_fd); /* tell kernel result by "echo [0|-1] > /sys/$DEVPATH/loading" */ if (cnt > 0) full_write(loading_fd, "0", 1); else full_write(loading_fd, "-1", 2); out: if (ENABLE_FEATURE_CLEAN_UP) { close(firmware_fd); close(loading_fd); close(data_fd); } } --------------------------------- HOTPLUG env logging ----------------------------------------- echo "/home/myscript.sh" > /proc/sys/kernel/hotplug myscript.sh ------------------- #!/bin/sh set >> /home/hotplug.log exit 0 ------------------- -------------- hotplug.log ----------------------------------------- ACTION=add BASH=/bin/sh BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="1") ACTION=add BASH=/bin/sh BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=([0]="1") BASH_ARGV=([0]="usb") BASH_CMDS=() BASH_LINENO=([0]="0") BASH_SOURCE=([0]="/home/myscript.sh") BASH_VERSINFO=([0]="4" [1]="1" [2]="9" [3]="2" [4]="release" [5]="arm-unknown-linux-gnu") BASH_VERSION='4.1.9(2)-release' BUSNUM=001 DEVICE=/proc/bus/usb/001/003 DEVNAME=bus/usb/001/003 DEVNUM=003 DEVPATH=/devices/platform/s3c2410-ohci/usb1/1-1 DEVTYPE=usb_device DIRSTACK=() EUID=0 GROUPS=() HOME=/ HOSTNAME=mini2440 HOSTTYPE=arm IFS=' ' MACHTYPE=arm-unknown-linux-gnu MAJOR=189 MINOR=2 OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/sbin:/bin:/usr/sbin:/usr/bin POSIXLY_CORRECT=y PPID=5 PRODUCT=148f/3070/101 PS4='+ ' PWD=/ SEQNUM=391 SHELL=/bin/sh SHELLOPTS=braceexpand:hashall:interactive-comments:posix SHLVL=1 SUBSYSTEM=usb TERM=dumb TYPE=0/0/0 UID=0 _=/bin/sh BASH_ARGV=([0]="usb") BASH_CMDS=() BASH_LINENO=([0]="0") BASH_SOURCE=([0]="/home/myscript.sh") BASH_VERSINFO=([0]="4" [1]="1" [2]="9" [3]="2" [4]="release" [5]="arm-unknown-linux-gnu") BASH_VERSION='4.1.9(2)-release' DEVICE=/proc/bus/usb/001/003 DEVPATH=/devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0 DEVTYPE=usb_interface DIRSTACK=() EUID=0 GROUPS=() HOME=/ HOSTNAME=mini2440 HOSTTYPE=arm IFS=' ' INTERFACE=255/255/255 MACHTYPE=arm-unknown-linux-gnu MODALIAS=usb:v148Fp3070d0101dc00dsc00dp00icFFiscFFipFF OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/sbin:/bin:/usr/sbin:/usr/bin POSIXLY_CORRECT=y PPID=5 PRODUCT=148f/3070/101 PS4='+ ' PWD=/ SEQNUM=392 SHELL=/bin/sh SHELLOPTS=braceexpand:hashall:interactive-comments:posix SHLVL=1 SUBSYSTEM=usb TERM=dumb TYPE=0/0/0 UID=0 _=/bin/sh ... MORE IN ATTACHMENT