Last active
March 29, 2025 06:40
-
-
Save xiaket/30d7a94e8b81c224fc09e78c8ca532fb to your computer and use it in GitHub Desktop.
Script to build broadcom-wl driver on Chimera Linux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
cd $(dirname $0) ; CWD=$(pwd) | |
PRGNAM=broadcom-wl | |
VERSION=${VERSION:-6.30.223.271} | |
BUILD=${BUILD:-1} | |
TAG=${TAG:-_SBo} | |
PKGTYPE=${PKGTYPE:-tgz} | |
KERNEL=${KERNEL:-$( uname -r )} | |
IFNAME=${IFNAME:-wlan} | |
if [ -z "$ARCH" ]; then | |
case "$( uname -m )" in | |
i?86) ARCH=i586 ;; | |
arm*) ARCH=arm ;; | |
*) ARCH=$( uname -m ) ;; | |
esac | |
fi | |
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then | |
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" | |
exit 0 | |
fi | |
TMP=${TMP:-/tmp/SBo} | |
PKG=$TMP/package-$PRGNAM | |
OUTPUT=${OUTPUT:-/tmp} | |
case "$ARCH" in | |
i?86) | |
SRCNAM=hybrid-v35-nodebug-pcoem | |
;; | |
x86_64) | |
SRCNAM=hybrid-v35_64-nodebug-pcoem | |
;; | |
*) | |
echo "$ARCH is not supported..." | |
exit 1 | |
;; | |
esac | |
set -e | |
rm -rf $PKG | |
mkdir -p $TMP $PKG $OUTPUT | |
cd $TMP | |
rm -rf $PRGNAM-$VERSION | |
mkdir $PRGNAM-$VERSION | |
cd $PRGNAM-$VERSION | |
tar xvf $CWD/$SRCNAM-$( echo $VERSION | tr . _ ).tar.gz | |
chown -R root:root . | |
find -L . \ | |
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ | |
-o -perm 511 \) -exec chmod 755 {} \; -o \ | |
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ | |
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; | |
patch -p2 < $CWD/patches/000-remove-time_date-macros.patch || exit 1 | |
patch -p1 < $CWD/patches/001-null-pointer-fix.patch || exit 1 | |
patch -p1 < $CWD/patches/002-rdtscl.patch || exit 1 | |
patch -p1 < $CWD/patches/003-linux47.patch || exit 1 | |
patch -p1 < $CWD/patches/004-linux48.patch || exit 1 | |
patch -p1 < $CWD/patches/005-debian-fix-kernel-warnings.patch || exit 1 | |
patch -p1 < $CWD/patches/006-linux411.patch || exit 1 | |
patch -p1 < $CWD/patches/007-linux412.patch || exit 1 | |
patch -p1 < $CWD/patches/008-linux415.patch || exit 1 | |
patch -p1 < $CWD/patches/009-fix_mac_profile_discrepancy.patch || exit 1 | |
patch -p1 < $CWD/patches/010-linux56.patch || exit 1 | |
patch -p1 < $CWD/patches/011-linux59.patch || exit 1 | |
patch -p1 < $CWD/patches/012-linux517.patch || exit 1 | |
patch -p1 < $CWD/patches/013-linux518.patch || exit 1 | |
patch -p1 < $CWD/patches/014-linux414.patch || exit 1 | |
patch -p1 < $CWD/patches/015-linux600.patch || exit 1 | |
patch -p1 < $CWD/patches/016-linux601.patch || exit 1 | |
patch -p1 < $CWD/patches/017-linux612.patch || exit 1 | |
patch -p1 < $CWD/patches/018-linux613.patch || exit 1 | |
# See https://lkml.org/lkml/2019/3/1/643 | |
sed -i bak 's/get_ds()/KERNEL_DS/g' src/wl/sys/wl_iw.c | |
sed -i bak 's/get_ds()/KERNEL_DS/g' src/wl/sys/wl_cfg80211_hybrid.c | |
env -u ARCH make -C /usr/src/linux-headers-$KERNEL M=$(pwd) clean | |
env -u ARCH make -C /usr/src/linux-headers-$KERNEL M=$(pwd) | |
mkdir -p /lib/modules/$KERNEL/extra | |
cp ${PKG}/wl.ko /lib/modules/$KERNEL/extra | |
modprobe -r b43 bcma brcm80211 | |
modprobe wl |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment