W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Hallo liebe Community!
      Ich hab vor kurzem Suse 12.3 installiert und mir den Kernel 3.10.5 aus den Suse Repositories geholt. Das würde auch gut funktionieren allerdings braucht mein Notebook einen Treiber von Broadcom fürs wlan. Da es den aber noch nicht vorkompiliert gibt für den 3.10er Kernel hab ich mir das "broadcom-wl-5.100.82.112-11.38.src.rpm" Packet zum selber bauen von der Packmanseite geholt. Wenn ich das jetzt mit

      Quellcode

      1. rpmbuild --rebuild broadcom-wl-5.100.82.112-11.38.src.rpm

      bauen will bricht der ganze Spaß ab mit folgender Meldung:

      Quellcode

      1. rpmbuild --rebuild broadcom-wl-5.100.82.112-11.38.src.rpm
      2. Installing broadcom-wl-5.100.82.112-11.38.src.rpm
      3. .
      4. .
      5. .
      6. gcc -Wp,-MD,/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/.wl_linux.o.d -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.7/include -I/usr/src/linux-3.10.5-1.g4e0ffc2/arch/x86/include -Iarch/x86/include/generated -I/usr/src/linux-3.10.5-1.g4e0ffc2/include -Iinclude -I/usr/src/linux-3.10.5-1.g4e0ffc2/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-3.10.5-1.g4e0ffc2/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-3.10.5-1.g4e0ffc2/include/linux/kconfig.h -I/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-than=2048 -Wno-unused-but-set-variable -fomit-frame-pointer -fasynchronous-unwind-tables -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DUSE_IW -I/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/include -I/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys -I/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/phy -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(wl_linux)" -D"KBUILD_MODNAME=KBUILD_STR(wl)" -c -o /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/.tmp_wl_linux.o /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c
      7. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c: In function 'wl_tkip_printstats':
      8. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:2970:7: warning: passing argument 1 of 'wl->tkipmodops->print_stats' from incompatible pointer type [enabled by default]
      9. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:2970:7: note: expected 'struct seq_file *' but argument is of type 'char *'
      10. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:2973:4: warning: passing argument 1 of 'wl->tkipmodops->print_stats' from incompatible pointer type [enabled by default]
      11. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:2973:4: note: expected 'struct seq_file *' but argument is of type 'char *'
      12. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c: In function 'wl_reg_proc_entry':
      13. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3180:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]
      14. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3180:22: warning: assignment makes pointer from integer without a cast [enabled by default]
      15. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3185:16: error: dereferencing pointer to incomplete type
      16. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3186:16: error: dereferencing pointer to incomplete type
      17. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3187:16: error: dereferencing pointer to incomplete type
      18. cc1: some warnings being treated as errors
      19. make[3]: *** [/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.o] Error 1
      20. make[2]: *** [_module_/home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default] Error 2
      21. make[1]: *** [sub-make] Error 2
      22. make: *** [all] Error 2
      23. make: Leaving directory `/usr/src/linux-3.10.5-1.g4e0ffc2-obj/x86_64/default'
      24. error: Bad exit status from /var/tmp/rpm-tmp.qS8yeb (%build)
      25. RPM build errors:
      26. Bad exit status from /var/tmp/rpm-tmp.qS8yeb (%build)

      (die Punkte hab ich eingefügt weil sonst zu lang)
      Hat jemand soviel Ahnung von der Materie dass er mir sagen kann warum die Aufrufe aus der wl_linux.c zu Fehlern führen bzw. wie man diese beheben kann?
      Hier noch mein System:

      Quellcode

      1. uname -r
      2. 3.10.5-1.g4e0ffc2-desktop

      Quellcode

      1. cat /etc/SuSE-release
      2. openSUSE 12.3 (x86_64)
      3. VERSION = 12.3
      4. CODENAME = Dartmouth

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Meschi schrieb:

      .... bricht der ganze Spaß ab mit folgender Meldung:

      Quellcode

      1. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c: In function 'wl_reg_proc_entry':
      2. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3180:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]
      3. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3180:22: warning: assignment makes pointer from integer without a cast [enabled by default]
      4. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3185:16: error: dereferencing pointer to incomplete type
      5. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3186:16: error: dereferencing pointer to incomplete type
      6. /home/christoph/rpmbuild/BUILD/broadcom-wl-5.100.82.112/obj/default/src/wl/sys/wl_linux.c:3187:16: error: dereferencing pointer to incomplete type


      Hat jemand soviel Ahnung von der Materie dass er mir sagen kann warum die Aufrufe aus der wl_linux.c zu Fehlern führen


      Wie bei so vielen externen Kernelmodulen, baut auch dieses aufgrund einiger ziemlich tiefgreifender Änderungen im /proc-Dateisystem des Kernels, die in 3.10 eingeflossen sind, nicht mehr.

      Meschi schrieb:


      bzw. wie man diese beheben kann?

      Drei Möglichkeiten:

      1) Man ist Kernelentwickler oder zumindest gut genug in C-Programmierung und schreibt sich selbst einen Patch (den man ggf. auch veröffentlicht)

      2) Wenn man nicht gerade Kernelentwickler ist, dann kann man nur hoffen, daß man mittels $SUCHMASCHINE oder direkt bei den üblichen Verdächtigen (= Unstable-/Entwicklungszweige der Distros bzw. Distros mit Rolling Release) einen passenden Patch für 3.10 findet (siehe 1).

      3) Ansonsten darf man noch auf den Hersteller hoffen, daß der einen aktualisierten Treiber herausbringt, ggf. kann man ihn ja auch anschreiben.

      Besonders bei Letzterem wünsche ich viel Spaß, vielleicht kommt da sogar etwas bei raus, die Hoffnung stirbt bekanntlich zuletzt.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Rain_Maker schrieb:

      […]
      3) Ansonsten darf man noch auf den Hersteller hoffen, daß der einen aktualisierten Treiber herausbringt, ggf. kann man ihn ja auch anschreiben.

      Besonders bei Letzterem wünsche ich viel Spaß, vielleicht kommt da sogar etwas bei raus, die Hoffnung stirbt bekanntlich zuletzt.

      Das dürfte dann ein sehr langwieriger Tod der Hoffnung werden.

      Nur so aus Interesse nebenbei:

      Meschi schrieb:

      […]allerdings braucht mein Notebook einen Treiber von Broadcom fürs wlan.

      Um welche Karte, welchen Chip handelt es sich genau, könntest du dazu mal die Ausgabe von

      Quellcode

      1. /sbin/lspci -nnk | grep -i -A2 net

      hier vorführen?

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      tomfa schrieb:


      Nur so aus Interesse nebenbei:

      Um welche Karte, welchen Chip handelt es sich genau, könntest du dazu mal die Ausgabe von

      Quellcode

      1. /sbin/lspci -nnk | grep -i -A2 net

      hier vorführen?


      Jepp, mittlerweile gibt es immer mehr Karten, die auch von b43/brcmsmac/bcma unterstützt werden, also zuerst nachsehen, ob es nicht eine freie Alternative gibt.

      Sollte es wirklich keinen freien Treiber geben, dann habe ich vielleicht (ich kann noch nichts versprechen, da es wohl ein nettes Stück Arbeit ist, die ich mir nur im absoluten Notfall machen will, vor allem um einen proprietären Treiber zurecht zu flicken) einen weiteren Pfeil im Köcher.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Hmm ok, c und c++ kenn ich mich zwar halbwegs vernünftig aus aber mal eben so einen Patch schreiben ... das kann dauern, hab ich noch nie gemacht :)

      Hier der Output vom Kommando:

      Quellcode

      1. /sbin/lspci -nnk | grep -i -A2 net
      2. 03:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8131 Gigabit Ethernet [1969:1063] (rev c0)
      3. Subsystem: Acer Incorporated [ALI] Device [1025:042b]
      4. Kernel driver in use: atl1c
      5. 05:00.0 Network controller [0280]: Broadcom Corporation BCM43225 802.11b/g/n [14e4:4357] (rev 01)
      6. Subsystem: Foxconn International, Inc. T77H103.00 Wireless Half-size Mini PCIe Card [105b:e021]
      7. ff:00.0 Host bridge [0600]: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers [8086:2c62] (rev 02)


      Vielleicht ist folgende Anmerkung hilfreich: Ich hatte den Broadcom Treiber unter dem 3.7er Kernel bereits erfolgreich nachinstalliert was super funktioniert hat (Packman Repo). Die W-Lan Module die Suse 12.3 mitgebracht hat gingen bei mir nicht. Ich hab also die Module b43 und brcmsmac nach der Suse-Installation geblacklistet (hätte ich nicht machen brauchen, hab erst später gemerkt dass das bei der Installation vom Broadcom Treiber automatisch geschieht). Also falls jemand Ideen hat für andere Treiber hat, nur zu :) Hatte mir den Broadcom Treiber nur deshalb ausgesucht weil ich da sicher bin dass er zumindest unter Kernel 3.7 läuft.

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Also zumindest behauptet modinfo, daß auch in 3.10.X bcma/brcmsmac für diese Karte zuständig ist.

      Quellcode

      1. modinfo bcma
      2. filename: /lib/modules/3.10.5-1.g4e0ffc2-desktop/kernel/drivers/bcma/bcma.ko
      3. license: GPL
      4. description: Broadcom's specific AMBA driver
      5. srcversion: 65C8A3FD0888E963203EE25
      6. alias: pci:v000014E4d00004727sv*sd*bc*sc*i*
      7. alias: pci:v000014E4d00004359sv*sd*bc*sc*i*
      8. alias: pci:v000014E4d00004358sv*sd*bc*sc*i*
      9. [b]alias: pci:v000014E4d00004357sv*sd*bc*sc*i*[/b]
      10. alias: pci:v000014E4d00004353sv*sd*bc*sc*i*
      11. alias: pci:v000014E4d00004331sv*sd*bc*sc*i*
      12. alias: pci:v000014E4d0000A8D8sv*sd*bc*sc*i*
      13. alias: pci:v000014E4d00000576sv*sd*bc*sc*i*
      14. depends:
      15. intree: Y
      16. vermagic: 3.10.5-1.g4e0ffc2-desktop SMP preempt mod_unload modversions 686
      17. modinfo brcmsmac
      18. filename: /lib/modules/3.10.5-1.g4e0ffc2-desktop/kernel/drivers/net/wireless/brcm80211/brcmsmac/brcmsmac.ko
      19. [b]firmware: brcm/bcm43xx_hdr-0.fw
      20. firmware: brcm/bcm43xx-0.fw[/b]
      21. license: Dual BSD/GPL
      22. description: Broadcom 802.11n wireless LAN driver.
      23. author: Broadcom Corporation
      24. srcversion: 04A591CE11253EC58950CDE
      25. alias: bcma:m04BFid0812rev18cl*
      26. alias: bcma:m04BFid0812rev17cl*
      27. alias: bcma:m04BFid0812rev11cl*
      28. depends: mac80211,bcma,brcmutil,cfg80211,cordic
      29. intree: Y
      30. vermagic: 3.10.5-1.g4e0ffc2-desktop SMP preempt mod_unload modversions 686
      Das Paket "kernel-firmware" ist installiert und die beiden Dateien

      "/lib/firmware/brcm/bcm43xx_hdr-0.fw"

      bzw.

      "/lib/firmware/brcm/bcm43xx-0.fw"

      sind vorhanden?

      Wenn ja, dann von Hand die Module bcma bzw. brcmsmac laden und sehen, was sich tut.

      Quellcode

      1. # modprobe brcmsmac -v
      2. dmesg | tail -n 50
      3. iwconfig
      Es kann durchaus sein, daß besagter Treiber in 3.10 besser funktioniert, zumindest sollte man es versuchen, bevor man sich diesen Binärklotz von wl.ko ins System klatscht.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Super Tipp, danke Rain_maker!
      Das Packet "kernel-firmware" und die beiden Dateien waren alle da und modprobe lädt auch das Modul und anschließend geht das W-Lan.
      Es gab zwei Probleme bei mir die bewirkt haben, dass das brcmsmac Modul nicht automatisch lädt:

      1. Problem
      Die Installation des Broadcom-Treibers unter Kernel 3.7. Da hatte ich wie unten beschrieben ja einmal per Hand die
      "/etc/modprobe.d/50-blacklist.conf"
      editiert und damit das brcmsmac Modul geblacklistet.
      Außerdem hatte ich das "broadcom-wl" Paket noch nicht wieder deinstalliert und das erstellt seinerseits das File
      "/etc/modprobe.d/50-broadcom-wl-blacklist.conf"
      wo das Modul (und noch einige andere W-Lan Module) ebenfalls geblacklistet wird. Ich hatte also das Modul gleich zweimal geblacklistet was mir jetzt im Nachhinein auch völlig klar ist dass das nicht klappen konnte. Ich habe also erst mal das Blacklisting wieder aufgehoben.

      2. Problem
      Danach wurde das brcmsmac Modul immer noch nicht automatisch geladen beim Neustart. Daher hab ich einfach einen Eintrag bei Yast unter
      "System->Editor für etc/sysconfig->System->Kernel->MODULES_LOADED_ON_BOOT"
      mit dem Inhalt "brcmsmac" erstellt. Damit geht das W-Lan jetzt auch nach Neustart direkt.

      Das Verhalten bei 2.ist das Einzige was mir ein bisschen unklar bleibt: Warum lädt Suse "brcmsmac" nicht automatisch nach dem Entfernen der Blacklisteinträge? Hatte eigentlich erwartet, dass die W-Lan Module zur "Grundausstattung" gehören. Problem ist auf jeden Fall gelöst für mich, wer jedoch auf das broadcom Modul angewiesen ist der muss einen Patch schreiben :D. Danke an alle!

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      Schaue sicherheitshalber mal nach, ob irgendwo noch ein blacklist-Eintrag vorhanden ist.

      Quellcode

      1. grep -rE 'bcma|brcmsmac' /etc/modprobe.d/
      Falls da nichts vorhanden ist, dann hast Du das Pech, daß in diesem Fall udev die Karte nicht automatisch aktiviert.

      Normalerweise ist udev für diese Aufgabe zuständig, aber in wenigen Fällen kann das mal schiefgehen.

      Weitere Möglichkeit, es wurde der Karte ein anderes Modul zugeordnet, hier sollte man in /etc/udev/rules.d nachsehen.

      Quellcode

      1. grep -r MODALIAS /etc/udev/rules.d/


      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K

      AW: W-lan Treiber broadcom-wl lässt sich nicht bauen unter Kernel 3.10.5

      In Anbetracht dieses Threads

      linuxforen.de/forums/showthread.php?t=275551

      und der Tatsache, daß auch die entsprechenden Dateien aus /etc/modprobe.d mittlerweile in der initrd landen

      Quellcode

      1. lsinitrd /boot/initrd-$(uname -r)|grep modprobe\.d
      dürften die alten Blacklisting-Einträge trotz Entfernens nach der Installation des 3.10er Kernels noch in der initrd vorhanden sein.

      Ergo, auch hier die initrd neu bauen (siehe verlinkter Thread), erst dann sind die alten Blacklisting-Einträge auch wirklich weg.

      Sollte seit Installation des 3.10.5er-Kernels ein Kernelupdate (oder ein Update des Pakets "udev") erfolgt sein, dann hat sich das erledigt, denn genau bei solchen Updates wird anschließend automatisch "mkinitrd" ausgeführt.

      Greetz,

      RM
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 4.19.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K