[elrepo] problem building kmod-wl on Centos6.3 with Elrepo-kernel-ml.De

Alan Bartlett ajb at elrepo.org
Tue Jan 15 14:07:15 EST 2013


Hi Johan,

On 14 January 2013 11:23, Johan Vermeulen <jvermeulen at cawdekempen.be> wrote:
>
> I was able to build the wl-kmod with the latest Centos standard kernel
> successfully, and I will follow your advise and use this kernel on our
> machines.

That is good news. Thank you for sharing. The wl-kmod*nosrc.rpm
package that we provide (blame Broadcom for their ridiculous licensing
of their source tarball) has generated the kmod-wl*rpm package which
should now survive future kernel updates.

> I did however first wanted to test the updated Elrepo-ml-kernel:
>
> Linux localhost.localdomain 3.7.2-1.el6.elrepo.x86_64 #1 SMP Fri Jan 11
> 21:38:01 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
> [root at localhost ~]#

Understood.

> I again tried building the wl kmod module with the same wl-kmod-nosrc.rpm
> and the same hybrid-prtsrc...tar.gz ( that didn't change, did it? )

No change -- as far as I am aware, Broadcom have not released a newer
source tarball. [1]

Everything is fine up to this point:

>   CC [M]
> /home/caw/rpmbuild/BUILD/wl-kmod-5_100_82_112/src/wl/sys/wl_linux.o
> /home/caw/rpmbuild/BUILD/wl-kmod-5_100_82_112/src/wl/sys/wl_linux.c:43:24:
> error: asm/system.h: No such file or directory

I stop looking at the output once the first error message is seen.

I have experimented . . .

[quote]
[ajb at Duo2 kernels]$ pwd
/usr/src/kernels
[ajb at Duo2 kernels]$ ls -1
2.6.32-279.19.1.el6.x86_64
3.0.58-1.el6.elrepo.x86_64
3.7.2-1.el6.elrepo.x86_64
[ajb at Duo2 kernels]$ find -type f -name system.h | sort
./2.6.32-279.19.1.el6.x86_64/arch/x86/include/asm/system.h
./2.6.32-279.19.1.el6.x86_64/include/asm-generic/system.h
./3.0.58-1.el6.elrepo.x86_64/arch/x86/include/asm/system.h
./3.0.58-1.el6.elrepo.x86_64/include/asm-generic/system.h
[ajb at Duo2 kernels]$
[/quote]

Hmm. A possible error in the kernel-ml-devel building process? The
experiments continued . . .

[quote]
[ajb at Build64R6 tmp]$ ll
total 81836
-rw-rw-r--.  1 ajb ajb   135396 Jan 14 21:16 config-3.7.2-x86_64
drwxrwxr-x. 24 ajb ajb     4096 Jan 14 21:32 linux-3.7.2
-rw-rw-r--.  1 ajb ajb 83625776 Jan 14 21:08 linux-3.7.2.tar.bz2
drwxrwxr-x.  5 ajb ajb     4096 Jan 14 21:35 v5_100_82_112
[ajb at Build64R6 tmp]$
[/quote]

I had the extracted Linux kernel source into the 'linux-3.7.2'
directory. The 'config-3.7.2-x86_64' file was copied into that
directory as '.conf'. The following sequence was performed: 'make
silentoldconfig; make bzImage; make prepare'.

I had extracted the Broadcom sources into the 'v5_100_82_112'
directory. The Broadcom 'Makefile' was edited, replacing all
references to '/lib/modules/`uname -r`/build' with the explict full
pathname to the 'linux-3.7.2' directory. Here follows what I
subsequently observed . . .

[quote]
[ajb at Build64R6 v5_100_82_112]$ make clean
KBUILD_NOPEDANTIC=1 make -C /home/ajb/tmp/linux-3.7.2 M=`pwd` clean
make[1]: Entering directory `/home/ajb/tmp/linux-3.7.2'
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
make[1]: Leaving directory `/home/ajb/tmp/linux-3.7.2'
[ajb at Build64R6 v5_100_82_112]$ make
KBUILD_NOPEDANTIC=1 make -C /home/ajb/tmp/linux-3.7.2 M=`pwd`
make[1]: Entering directory `/home/ajb/tmp/linux-3.7.2'
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
  LD      /home/ajb/tmp/v5_100_82_112/built-in.o
  CC [M]  /home/ajb/tmp/v5_100_82_112/src/shared/linux_osl.o
  CC [M]  /home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.o
/home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.c:43:24: error:
asm/system.h: No such file or directory
/home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.c:388: error: unknown
field ‘ndo_set_multicast_list’ specified in initializer
/home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.c:388: warning:
initialization from incompatible pointer type
make[2]: *** [/home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.o] Error 1
make[1]: *** [_module_/home/ajb/tmp/v5_100_82_112] Error 2
make[1]: Leaving directory `/home/ajb/tmp/linux-3.7.2'
make: *** [all] Error 2
[ajb at Build64R6 v5_100_82_112]$
[/quote]

And there is the same error:

"/home/ajb/tmp/v5_100_82_112/src/wl/sys/wl_linux.c:43:24: error:
asm/system.h: No such file or directory"

Which pleases me. For it confirms that there is no mishap in the
building of the kernel-ml-devel package.

Let's see what 'system.h' files exist in the Linux kernel source tree . . .

[quote]
[ajb at Build64R6 v5_100_82_112]$ cd ../linux-3.7.2
[ajb at Build64R6 linux-3.7.2]$ find -type f -name system.h | sort
./arch/arm/include/asm/system.h
./arch/arm/mach-gemini/include/mach/system.h
./arch/arm/mach-shmobile/include/mach/system.h
./arch/cris/include/arch-v10/arch/system.h
./arch/cris/include/arch-v32/arch/system.h
./arch/mips/include/asm/dec/system.h
./tools/perf/util/include/asm/system.h
./tools/power/cpupower/bench/system.h
[ajb at Build64R6 linux-3.7.2]$
[/quote]

A few. But none relevant to our x86 architecture.

So my conclusion is that the kernel-ml package is too new for the
Broadcom source package . . . which is another way of saying that the
currently available Broadcom source package is too old for a modern
3.7.x Linux kernel.

My suggestion is to report this problem to Broadcom (and suggest that
they revise the ridiculous license at the same time as they fix this
build defect). [1]

[quote]
Support questions for the latest version of these drivers may be
directed to linux-wlan-client-support-list at broadcom.com.
[/quote]

Alan.

[1] http://www.broadcom.com/support/802.11/linux_sta.php


More information about the elrepo mailing list