WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Wireless driver for Broadcom BCM43228  (Read 3573 times)

Offline M4

  • Newbie
  • *
  • Posts: 2
Wireless driver for Broadcom BCM43228
« on: June 04, 2014, 05:02:12 AM »
Hi guys,

I have a laptop with an Intel HD4400 video card and a Broadcom BCM43228 wireless card.
As per Intel's requirements (https://01.org/linuxgraphics/downloads/2014/2014q1-intel-graphics-stack-release), I upgraded my kernel to 3.13.6, installed the driver and now my video card is working.

My next problem is that I need the wl module for my wireless card. I tried to use the module included in the wl-modules extension (from the repository), but I got a invalid vermagic error (and rightfully so).

I downloaded the Broadcom driver (http://www.broadcom.com/support/802.11/linux_sta.php), but I don't know what extensions I need to make it.

Could you please help me out with a hint?

Best regards,
M4

« Last Edit: June 04, 2014, 06:13:47 AM by M4 »

Offline bmarkus

  • Administrator
  • Hero Member
  • *****
  • Posts: 7183
    • My Community Forum
Re: Wireless driver for Broadcom BCM43228
« Reply #1 on: June 04, 2014, 05:08:52 AM »
If you are using a custom kernel, use modules built with your own kernel includin wl, alsa, etc. Modules in repo will not work due to different kernel version.
Béla
Ham Radio callsign: HA5DI

"Amateur Radio: The First Technology-Based Social Network."

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14761
Re: Wireless driver for Broadcom BCM43228
« Reply #2 on: June 04, 2014, 07:49:05 AM »
I downloaded the Broadcom driver...but I don't know what extensions I need to make it.

See: http://tinycorelinux.net/5.x/x86/tcz/src/wl/compile_wl_new

Offline M4

  • Newbie
  • *
  • Posts: 2
Re: Wireless driver for Broadcom BCM43228
« Reply #3 on: June 05, 2014, 04:09:36 AM »
Hi Juanito,

I tried the instructions as described in the link and everything worked beautifully.
For the second attempt I replaced linux-3.8.13-patched with the kernel I want to use (linux-3.13.6) and I receive the following error(s) when I attempt to make the wl module:

Code: [Select]
make: Entering directory `/usr/src/linux-3.13.6'
CFG80211 API specified in command line
Using CFG80211 API
  CC [M]  /usr/src/hybrid_wl/src/wl/sys/wl_linux.o
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c: In function 'wl_tkip_printstats':
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3246:7: warning: passing argument 1 of 'wl->tkipmodops->print_stats' from incompatible pointer type [enabled by default]
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3246:7: note: expected 'struct seq_file *' but argument is of type 'char *'
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3249:4: warning: passing argument 1 of 'wl->tkipmodops->print_stats' from incompatible pointer type [enabled by default]
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3249:4: note: expected 'struct seq_file *' but argument is of type 'char *'
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c: In function 'wl_reg_proc_entry':
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3470:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3470:22: warning: assignment makes pointer from integer without a cast [enabled by default]
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3475:16: error: dereferencing pointer to incomplete type
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3476:16: error: dereferencing pointer to incomplete type
/usr/src/hybrid_wl/src/wl/sys/wl_linux.c:3477:16: error: dereferencing pointer to incomplete type
cc1: some warnings being treated as errors
make[1]: *** [/usr/src/hybrid_wl/src/wl/sys/wl_linux.o] Error 1
make: *** [_module_/usr/src/hybrid_wl] Error 2
make: Leaving directory `/usr/src/linux-3.13.6'

This seems to be the function that's causing the error:

Code: [Select]
static int
wl_reg_proc_entry(wl_info_t *wl)
{
char tmp[32];
sprintf(tmp, "%s%d", HYBRID_PROC, wl->pub->unit);
if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) {
WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp));
ASSERT(0);
return -1;
}
wl->proc_entry->read_proc = wl_proc_read;
wl->proc_entry->write_proc = wl_proc_write;
wl->proc_entry->data = wl;
return 0;
}

Is there anything I can do about this? Note: my knowledge of C and C++ is nearly laughable.

Thanks.

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 14761
Re: Wireless driver for Broadcom BCM43228
« Reply #4 on: June 05, 2014, 04:23:18 AM »
The problem seems to be that linux kernel development proceeds much faster than broadcom's diver release cycle - if you look at:

http://tinycorelinux.net/5.x/x86/tcz/src/wl/compile_wl

you can see that 11 patches were required for their previous driver release.

I'd recommend that you take a look at the latest debian experimental release (or similar) driver and see if they've patched up to 3.13.6