broadcom bcm4313 wifi chipset on Asus Eee PC Seashell not working (CentOS 7)
Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
#
# Makefile fragment for Linux 2.6
# Broadcom 802.11abg Networking Device Driver
#
# Copyright (C) 2015, Broadcom Corporation. All Rights Reserved.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# $Id: Makefile_kbuild_portsrc 580354 2015-08-18 23:42:37Z $
ifneq ($(KERNELRELEASE),)
LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" -o "$(VERSION)" -ge "3" ]; then \
echo TRUE; \
else \
echo FALSE; \
fi \
))
LINUXVER_WEXT_ONLY:=$(strip $(shell \
if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \
echo FALSE; \
else \
echo TRUE; \
fi \
))
ifneq ($(API),)
ifeq ($(API), CFG80211)
APICHOICE := FORCE_CFG80211
$(info CFG80211 API specified in command line)
else
ifeq ($(API), WEXT)
APICHOICE := FORCE_WEXT
$(info Wireless Extension API specified in command line)
else
$(error Unknown API type)
endif
endif
else
ifeq ($(LINUXVER_GOODFOR_CFG80211),TRUE)
APICHOICE := PREFER_CFG80211
$(info CFG80211 API is prefered for this kernel version)
else
ifeq ($(LINUXVER_WEXT_ONLY),TRUE)
APICHOICE := FORCE_WEXT
$(info Wireless Extension is the only possible API for this kernel version)
else
APICHOICE := PREFER_WEXT
$(info Wireless Extension API is prefered for this kernel version)
endif
endif
endif
ifeq ($(APICHOICE),FORCE_CFG80211)
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
$(error CFG80211 is specified but it is not enabled in kernel)
endif
endif
ifeq ($(APICHOICE),FORCE_WEXT)
APIFINAL := WEXT
endif
ifeq ($(APICHOICE),PREFER_CFG80211)
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
ifneq ($(CONFIG_WIRELESS_EXT),)
APIFINAL := WEXT
else
$(warning Neither CFG80211 nor Wireless Extension is enabled in kernel)
endif
endif
endif
ifeq ($(APICHOICE),PREFER_WEXT)
ifneq ($(CONFIG_WIRELESS_EXT),)
APIFINAL := WEXT
else
ifneq ($(CONFIG_CFG80211),)
APIFINAL := CFG80211
else
$(warning Neither CFG80211 nor Wireless Extension is enabled in kernel)
endif
endif
endif
endif
#Check GCC version so we can apply -Wno-date-time if supported. GCC >= 4.9
empty:=
space:= $(empty) $(empty)
GCCVERSIONSTRING := $(shell expr `$(CC) -dumpversion`)
#Create version number without "."
GCCVERSION := $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f1 -d.)
GCCVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f2 -d.)
GCCVERSION += $(shell expr `echo $(GCCVERSIONSTRING)` | cut -f3 -d.)
# Make sure the version number has at least 3 decimals
GCCVERSION += 00
# Remove spaces from the version number
GCCVERSION := $(subst $(space),$(empty),$(GCCVERSION))
# Crop the version number to 3 decimals.
GCCVERSION := $(shell expr `echo $(GCCVERSION)` | cut -b1-3)
GE_49 := $(shell expr `echo $(GCCVERSION)` \>= 490)
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_hybrid.o
EXTRA_CFLAGS += -I$(src)/src/include -I$(src)/src/common/include
EXTRA_CFLAGS += -I$(src)/src/wl/sys -I$(src)/src/wl/phy -I$(src)/src/wl/ppr/include
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include
#EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR
ifeq "$(GE_49)" "1"
EXTRA_CFLAGS += -Wno-date-time
endif
EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped
KBASE ?= /lib/modules/`uname -r`
KBUILD_DIR ?= $(KBASE)/build
MDEST_DIR ?= $(KBASE)/kernel/drivers/net/wireless
# Cross compile setup. Tool chain and kernel tree, replace with your own.
CROSS_TOOLS = /path/to/tools
CROSS_KBUILD_DIR = /path/to/kernel/tree
all:
KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd`
cross:
KBUILD_NOPEDANTIC=1 make CROSS_COMPILE=${CROSS_TOOLS} -C $(CROSS_KBUILD_DIR) M=`pwd`
clean:
KBUILD_NOPEDANTIC=1 make -C $(KBUILD_DIR) M=`pwd` clean
install:
install -D -m 755 wl.ko $(MDEST_DIR)
The Makefile is for Kernel 2.6 - that's all I understand.
And when I run make, I get these error messages:
Code:
/usr/src/broadcom4313/src/shared/linux_osl.c: In function ‘osl_getcycles’:
/usr/src/broadcom4313/src/shared/linux_osl.c:935:2: error: implicit declaration of function ‘rdtscl’ [-Werror=implicit-function-declaration]
rdtscl(cycles);
^
cc1: some warnings being treated as errors
make[2]: *** [/usr/src/broadcom4313/src/shared/linux_osl.o] Error 1
make[1]: *** [_module_/usr/src/broadcom4313] Error 2
make: *** [all] Error 2
... on a sidenote, centos 7 is definitely the wrong distro for this legacy minilaptop.
i suggest switching to antiX or some puppy derivate before even trying to fix your wifi issues.
I'll try out CentOS 6.10. There is an How To https://wiki.centos.org/HowTos/Lapto...eless/Broadcom
which might help. At the moment I have CentOS 7.5 installed and it doesn't work. I want a RedHat-based distribution to get familiar with rpm, yum and so on.
I now have installed CentOS 6.10 (2.6.32-754). But I have a different problem as the one in the link above (Step 3a). This is what happens, when I run make:
Code:
# make -C /lib/modules/`uname -r` /build/ M=`pwd`
make: Entering directory `/lib/modules/2.6.32-754.e16.i686'
make: *** No rule to make target `/build/'. Stop.
make: Leaving directory `/lib/modules/2.6.32-754.e16.i686'
I don't know if compiling was necessary, but I succeded (as I think). I now want to get started with network manager 0.8.1 and if I will also have success with this version of network manager, I will report. Connecting with this version of network manager to wifi means editing the file /etc/NetworkManager/system-connections/wifi-wlan0. Wish me luck!
it would appear compiling WAS necessary for centos, i stand corrected.
although this just confirms my previous advice that centos isn't the right distro for this hardware.
but, since you WANT to continue using something redhat-like on it, you chose the hard and rocky road.
On my Asus Eee PC Seashell 1015PEM with CentOS 6.10 and detected wifi chip I have NetworkManager 0.8.1. This is my wifi-config-file in /etc/NetworkManager/system-connections/
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.