Siduction Forum

Siduction Forum => Scripting & Kernelhacking => Topic started by: ralul on 2012/02/04, 13:59:47

Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/02/04, 13:59:47
Loading new broadcom-sta-5.100.82.112 DKMS files...
Building only for 3.2-3.towo.1-siduction-amd64
Building initial module for 3.2-3.towo.1-siduction-amd64
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
Done.

wl:
Running module version sanity check.
- Original module
  - No original module exists within this kernel
- Installation
  - Installing to /lib/modules/3.2-3.towo.1-siduction-amd64/updates/dkms/

do_depmod 3.2-3.towo.1-siduction-amd64

Es liegt am Makefile im /usr/src/broadcom-sta Verzeichnis:

if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then

besser wäre eine umgekehrte Logik, die dadurch rechtzeitig abbricht:

if [ "$(VERSION)" -lt "3" -a "$(PATCHLEVEL)" -lt "7" -a "$(SUBLEVEL)" -lt "33" ]; then
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: devil on 2012/02/04, 14:02:25
Quote
neues dkms für broadcom-sta - kann nicht kurze Kernelversio
towo wird schon erraten, was Du meinst...

greetz
devil
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/02/04, 14:05:49
Devil, das broadcom dkms Paket ist ganz neu bei Debian eingetrudelt!

Der Sublevel mit -a AND verbunden verursacht bei Towo Kerneln natürlich eine NULL Exception. SLH hatte so kurze Kernel Versionen vorsorglich beim Übergang 2zu3 eingeführt, weil er Linus Torwalds falsch verstanden hatte. Bei mir geht es mit einem Hand-gekürzten Makefile :# written permission of Broadcom Corporation.
#
# $Id: Makefile_kbuild_portsrc,v 1.6.54.4 2011-01-27 00:55:34 Exp $

ifneq ($(KERNELRELEASE),)

     APICHOICE := FORCE_CFG80211
     $(info CFG80211 API specified in command line)
     LINUXVER_GOODFOR_CFG80211 := TRUE
     APICHOICE := PREFER_CFG80211
     $(info CFG80211 API is prefered for this kernel version)
     APIFINAL := CFG80211

endif

EXTRA_CFLAGS :=

ifeq ($(APIFINAL),CFG80211)
 EXTRA_CFLAGS += -DUSE_CFG80211
 $(info Using CFG80211 API)
endif

ifeq ($(APIFINAL),WEXT)
 EXTRA_CFLAGS += -DUSE_IW
 $(info Using Wireless Extension API)
endif

obj-m              += wl.o

wl-objs            :=
wl-objs            += src/shared/linux_osl.o
wl-objs            += src/wl/sys/wl_linux.o
wl-objs            += src/wl/sys/wl_iw.o
wl-objs            += src/wl/sys/wl_cfg80211.o

EXTRA_CFLAGS       += -I$(src)/src/include
EXTRA_CFLAGS       += -I$(src)/src/wl/sys -I$(src)/src/wl/phy
#EXTRA_CFLAGS       += -DBCMDBG_ASSERT

#ralul
KVER = `$(ls -1 -t /lib/modules/.|grep '^3'|head -n 1)`

ifeq ($(KVER),)
KVER = $(shell uname -r)
endif

KDIR     = /lib/modules/$(KVER)/build
PWD      = $(shell pwd)

KARCH := $(shell egrep 'CONFIG_X86_(32|64)=y' $(KDIR)/.config 2>/dev/null| cut -d= -f1)
ifeq ($(KARCH),CONFIG_X86_32)
   SHIPPED=wlc_hybrid.o_i386
   $(info Kernel architecture is X86_32)
else
   KARCH := CONFIG_X86_64
   SHIPPED=wlc_hybrid.o_amd64
endif

EXTRA_LDFLAGS      := $(src)/lib/$(SHIPPED)

all:
KBUILD_NOPEDANTIC=1 make -C $(KDIR) M=$(PWD)

clean:
KBUILD_NOPEDANTIC=1 make -C $(KDIR) M=$(PWD) clean

install:
install -D -m 755 wl.ko /lib/modules/$(KVER)/kernel/drivers/net/wireless/wl.ko
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/02/05, 00:16:11
Ich glaube, dass es doch vielleicht gar nicht an der kurzen Kernelversion liegt. Es scheinen einfach die richtigen Shell-Umgebungsvariablen nicht dem Makefile übergeben zu werden. Dann ist es doch ein upstream Debian Bug des dkms-Pakets !
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: jasmineaura on 2012/10/01, 11:38:23
This issue is triggered when SUBLEVEL is blank in /lib/modules/kernel-version/Makefile (as is the case with 3.6-*). If the kernel version was 3.6.0 (SUBLEVEL = 0), this wouldn't happen.

I posted a patch to the Makefile as a workaround to this issue, on this bug (which I opened to update broadcom-dkms to 6.20.55.19): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688823#10

Of course it's only a workaround.

But the kernel bug with 3.6 still exists, even with the first stable release as of yesterday.
http://marc.info/?l=linux-wireless&m=134908356432162&w=2

Besten GruBen :)
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/10/01, 19:32:21
Yesterday I had a look at the wireless mailinglist to find something about it: There I saw your report with "towo" ! Thank you for care!

But I wonder
- why I can connect via wl.ko with siduction linux-3.6?
- but using Towos same linux/.config with Gentoo it segfaults like yours?

German: Ich stehe vollkommen auf dem Schlauch :(
And nobody has answered your message in the mailinglist yet :(
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/10/01, 20:16:07
Perhaps some simple alias-renamings in broadcom headers are possible:
In linux/include/net/cfg80211.h
I can see simple renames

net_device to wireless_dev
dev to wdev

[edit]But it is too complicated, I cannot find the points where to define aliases in the broadcom source :(
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/10/01, 20:33:15
@jasmineaura
Wpasupplicant-1.0 seems to be everywhere the same
Your broadcom-dkms
6.20.55.19 seems to be newer than mine:
5.100.82.112
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/10/01, 23:39:09
I analyzed my paradox situation:
I had vastly edited the Makefile of Debian broadcom-sta for that it uses NOT wext. This broadcom sources I copied to my Gentoo installation. But my Debian had successfully updated that broadcom-sta package. In effect I use wext on Debian and cfg80211 on Gentoo. Because the older wext method didn't change with linux-3.6 this method is working on Debian with Linux-3.6.
But not that newer method on Gentoo with Linux-3.6 any more :(

@jasmineaura, this is working with my 3 years old broadcom chip but perhaps not any more wext is usable with your newer one ....
Title: neues dkms für broadcom-sta - kann nicht kurze Kernelversio
Post by: ralul on 2012/10/23, 02:42:13
@jasmineaura, as I can see your
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688823
is not solved yet, perhaps you can use b43 with newer firmware instead of braodcom-sta module building:
http://forum.siduction.org/index.php?msg=24880#24880