Opensuse 12.3 + Broadcom wifi

 ( steelmann | 2013. április 2., kedd - 3:05 )

Jelenleg Opensuse 12.2 op. rendszer használok egy kopott 64 bites DELL-1501-es laptopon. Kíváncsiságból arra vetemedtem, hogy külön partícióra feltettem a nemrég megjelent 12.3-as verziót. Mint kiderült, szerencsém volt, hogy nem az éles rendszert frissítettem be, a wifi driverrel akadt egy kis probléma. Egy Wireless 1390 WLAN Minicard csücsül a gépben Broadcom BCM4311-es chipkészlettel. A telepítő készlettel nem települ föl a drivere, de a 12.2 esetében sem, de parancssorból egyszerűen felrakható. A 12.3 esetében ez csak félig működik. Két sorról van szó mindössze:

1 sudo zypper install b43-fwcutter
2 sudo /usr/sbin/install_bcm43xx_firmware

A folyamat rendben lefutott, a driver rendben települt, és már működött is a wifi. Rendben is volt az első újraindításig. Újraindítás után nem kapcsolódott, pedig a Network Managerben látszólag minden rendben van. A 2. parancs megismétel, wifi megint működik, majd újraindítás után kezdődik a folyamat elölről.
Azt hiszem a felszínes linux tudásom kevés hozzá, hogy egyedül megoldjam a problémát, mivel a google által nyújtott lehetőségeket kihasználva sem sikerült előrébb jutnom.
Amennyiben valaki tudja a megoldást, szívesen megköszönném neki a segítséget.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ha jól gondolom, annyi történik, hogy a második paranccsal töltöd le a wireless eszköznek a saját firmware-ét. Tehát nem elég, hogy a kernel tudja kezelni az interface-t, magának a wireless interface-nek a mikrokontrollerébe is le kell előbb tölteni azt a firmware-t, amelyik az interface mikrokontrollerében fut majd.

Mindösszesen annyit kellene csinálni, hogy a második parancsot a /etc/rc.d/rc.local nevű scriptbe írod, persze sudo nélkül, hiszen eleve root joggal fog futni az a script. Tegyük hozzá, nincs SuSE-m, így aztán elnézést, ha másképp kell automatikusan a boot folyamat végén saját scriptet futtatni.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ahogy locsemege is írta...
nano wifi_start.sh

#!/bin/sh
/usr/sbin/install_bcm43xx_firmware

chown root:root wifi_start.sh
chmod 0750 wifi_start.sh
mv wifi_start.sh /etc/init.d/
ln -s /etc/init.d/wifi_start.sh /etc/init.d/rc3.d/S99wifi_start.sh

Nem tudom suse-nél melyik az alapértelmezett futási szint, ha az 5-ös, akkor:
ln -s /etc/init.d/wifi_start.sh /etc/init.d/rc5.d/S99wifi_start.sh

üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

off

Nem értek a SuSE-hoz, fogalmam sincs, hogy SysVinit, Upstart vagy Systemd az, amit használ. Fedorán már efféle initscript-ek nincsenek, azok az idők elmúltak. Fogalmam sincs persze, hogy a Systemd visszafelé kompatibilis-e annyira, hogy működne ez így, vagy sem.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

en inkabb brcmfmac brcmsmac modulokat hasznalnek a kernelbol

de a legjobb megoldas az sta driver a broadcom oldalarol

A firmware-t mindenképp le kell tölteni az interface-nek. Esetleg az általad javasolt modulok ezt is megteszik? Megnéztem Fedorán az illető csomag rövid leírását:

b43-fwcutter.x86_64 : Firmware extraction tool for Broadcom wireless driver

Tehát ez nem a wireless kernel modul, hanem az a valami, ami a wireless interface-be belepaszírozza azt a bináris állományt, ami majd ott futni fog. A kernel oldali modul ettől független, s azzal a kérdezőnek nincs baja, a kernele automatikusan felismerte a device-t, s az működött is. Maga az interface volt halott, amíg nem volt programja, ami futott volna.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

3 driverrel is meghajthatod ezt a kartyat...

1. amit te hasznalsz: b43 <<== ehhez kell a firmwarecutter, hogy a /lib/firmware ala megcsinald a kartya firmware-et.

2. brcmsmac/brcmfmac <<== ehhez is kell firmware nyilvan, ami benne lesz egy linux-firmware nevu csomagban (vagy valami ilyesmi a neve)

3. wl <<== ez a Broadcom hivatalos STA drivere (honlaprol letolt -> installal -> orul [valoszinu lesz a repodban is: broadcom-sta vagy valami ilyesmi... dkms source driver])

a legjobb nyilvan az STA driver, de ha nem akarsz DKMS-t, akkor brcmsmac/brcmfmac (en pl. ezt hasznalom); nem olyan gyors, mint wl, de nekem tokeletesen eleg.

es nyilvan, ha wl a modulod blacklistre kell tenned a b43-at meg brcmsmac/brcmfmac-et

a tobbit kitalalod

Először is köszönök mindenkinek minden segítséget és elnézést kérek a későinek tűnő reakcióért, de Torontóból írok, az időeltolódás miatt van. Jelenleg csak annyi időm volt, hogy végigfussam az összes hozzászólást, majd meló után ásnám bele magam mélyebben.
Mindenesetre én sem ültem a babérjaimon várva a sült galambot. Rájöttem, hogy újraindítás után nem kell megismételni a "sudo /usr/sbin/install_bcm43xx_firmware" parancsot, elegendő helyette a "modprobe b43", viszont újraindítás után ezt is meg kell ismételni, hogy betöltődjön a driver.
Mindenképpen köszönöm az összefoglalókat a kártya meghajtás lehetséges módjaira vonatkozóan, valószínűleg a "sima" b43 drivernél maradok, az én vasam linux alatt elég "kényes" wifi területen és eddigi tapasztalataim szerint ez minden körülmények között működött.
Lehetséges azt megoldani, hogy a "modprobe b43" parancsot automatikusan végrehajtsa az op. rendszer a bootolás után?

nem tom SUSE-n hogy megy de ha van /etc/modules file-od
akkor abba ird bele a vegere hogy:

b43

Köszönöm a segítséget, a probléma megoldódott: A (brcmsmac/brcmfmac és wl) blacklistre kerültek (köszönöm, hogy felhívtad a figyelmem a blacklist-re) és megtörtént a "csoda". Most már újraindítás után is betöltődik a b43 driver és csatlakozik is automatikusan.