bcm43xx & udev ?
George Gernas
mariok at platon.ee.duth.gr
Sun Feb 19 07:32:46 EET 2006
Καλημέρα,
Προσπαθώ να κάνω την wireless κάρτα ενός Apple Powerbook (BCM4306) να
λειτουργήσει αλλά χωρίς επιτυχία μέχρι στιγμής. Ο kernel που
χρησιμοποιώ είναι 2.6.16-rc2. Το πρόβλημα είναι πως ενώ ο driver
φορτώνει κανονικά και βλέπει την κάρτα δεν μπορώ να καταφέρω να περάσω
με το udev
το αντίστοιχο firmware. Επειδή η διανομή που χρησιμοποιώ είναι CRUX-PPC
και δεν χρησιμοποιώ scripts από κάποια απο τις πιο γνωστές διανομές
ούτε και κάποιο packet management system οτι βρήκα σχετικά με αυτό το
πρόβλημα δεν με κάλυψε γιατί αναφερόταν συνήθως σε διανομές RedHat ,
SuSE , Debian κλπ. Παραθέτω παρακάτω σχετικό outpout από το σύστημα
μου.
lspci:
------
0001:10:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g
Wireless LAN Controller (rev 03)
firmware.sh:
------------
#!/bin/sh
# directory of the firmware files
FIRMWARE_DIR=/lib/firmware
# mountpoint of sysfs
SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts)
#
# What to do with this firmware hotplug event?
#
case "$ACTION" in
add)
if [ ! -e $SYSFS/$DEVPATH/loading ]; then
sleep 1
fi
if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then
echo 1 > $SYSFS/$DEVPATH/loading
cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data
echo 0 > $SYSFS/$DEVPATH/loading
else
echo -1 > $SYSFS/$DEVPATH/loading
fi
;;
remove)
;;
*)
echo "Firmware '$ACTION' event not supported"
exit 1
;;
esac
udevmonitor:
------------
udevmonitor prints the received event from the kernel [UEVENT]
and the event which udev sends out after rule processing [UDEV]
UEVENT[1140320372.570642] add@/class/firmware/0001:10:12.0
UEVENT[1140320372.602994] remove@/class/firmware/0001:10:12.0
/etc/udev/rules.d/udev.rules:
-----------------------------
# firmware loader
ACTION=="add", SUBSYSTEM=="firmware", RUN+="/usr/bin/firmware.sh"
dmesg:
------
bcm43xx driver
PCI: Enabling device 0001:10:12.0 (0004 -> 0006)
bcm43xx: Chip ID 0x4306, rev 0x3
bcm43xx: Number of cores: 5
bcm43xx: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled
bcm43xx: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled
bcm43xx: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 2, Type 2, Revision 2
bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
bcm43xx: Radio turned off
bcm43xx: Radio turned off
.
.
.
bcm43xx: PHY connected
bcm43xx: Error: Microcode "bcm43xx_microcode5.fw" not available or load
failed.
bcm43xx: PHY connected
bcm43xx: Error: Microcode "bcm43xx_microcode5.fw" not available or load
failed.
ifconfig eth1 up:
-----------------
bcm43xx: Error: Microcode "bcm43xx_microcode5.fw" not available or load
failed.
SIOCSIFFLAGS: No such file or directory
iwconfig:
---------
eth1 IEEE 802.11b/g ESSID:off/any Nickname:"Broadcom 4306"
Mode:Managed Access Point: FF:FF:FF:FF:FF:FF Bit Rate:1
Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
ls -la /sys/class/firmware/:
----------------------------
total 0
drwxr-xr-x 2 root root 0 2006-02-19 06:35 .
drwxr-xr-x 29 root root 0 2006-02-19 06:11 ..
-rw-r--r-- 1 root root 4096 2006-02-19 06:15 timeout
To script firmware.sh είναι κάποιας άλλη διανομής και απ' ότι πρόσεξα
προσπαθεί να γράψει το αρχείο /lib/firmware/bcm43xx_microcode5.fw στο
/sys/class/firmware/0001:10:12.0/data που στο δικό μου σύστημα δεν
υπάρχει. Είναι φυσιολογικό να μην υπάρχει το
/sys/class/firmware/0001:10:12.0 ; Έχει κανείς καμια ιδέα για το τι
μπορεί να φταίει;
Γιώργος
More information about the Linux-greek-users
mailing list