【wifi driver設定】

  • Posted on: 21 November 2017
  • By: maho

CentOS7のWifiドライバーをインストールする。

PC:CentOS7

  1. ルートでログインし、任意のディレクトリを作成し、そこへ移動する。
    # mkdir hybrid-wl
    # cd hybrid-wl



  2. BCM4312のディレクトリ作成・移動する。
    # mkdir BCM4312
    # cd BCM4312


  3. 「hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz」を展開し、中身を確認する。
    # tar xvf ../hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
    # ls
    Makefile lib src


  4. CentOSのディスクのパッケージに移動し、必要なrpmファイルをインストールする。
    # cd /run/media/root/CentOS\ 7\ x86_64/Packages/
    # rpm -ivh kernel-headers-3.10.0-514.el7.x86_64.rpm kernel-devel-3.10.0-514.el7.x86_64.rpm gcc-4.8.5-11.el7.x86_64.rpm cpp-4.8.5-11.el7.x86_64.rpm glibc-devel-2.17-157.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm glibc-headers-2.17-157.el7.x86_64.rpm
    # rpm -ivh patch-2.7.1-8.el7.x86_64.rpm


  5. 先程の作業ディレクトリに移動し、 patchファイルを適用する。
    # cd /root/hybrid-wl/BCM4312
    # patch -p1 <../wl-kmod-kernel_4.7_IEEE80211_BAND_to_NL80211_BAND.patch


  6. エディターでshファイルを以下のように編集する。
    # vi ../bcm4312-patch-script.sh
    !/bin/bash

    sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
    sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c

    sed -i 's/ sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c

    sed -i 's/ sed -i 's/ >= KERNEL_VERSION(4, 7, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c


  7. 7と同じファイルの権限を変更・実行する。
    # chmod 755 !$
    (!$はその直前に編集されたファイルを示す)
    # ../bcm4312-patch-script.sh


  8. makefileをbuildディレクトリに作成する。
    # make -C /lib/modules/`uname -r`/build/ M=`pwd`


  9. 現在の作業ディレクトリを確認し、wl.coファイルを先程のextraディレクトリにコピーする。
    # ls
    Makefile Module.symvers built-in.o lib modules.order src wl.ko wl.mod.c wl.mod.o wl.o
    # cp wl.ko /lib/modules/3.10.0-514.el7.x86_64/extra/


  10. カーネルモジュールの依存関係を更新し、カーネルモジュールの読み込みを行う。
    # depmod -a
    # grep wl.ko /lib/modules/3.10.0-514.el7.x86_64/modules.dep
    extra/wl.ko: kernel/net/wireless/cfg80211.ko kernel/net/rfkill/rfkill.ko
    # modprobe wl


  11. モジュールリストを確認し、wlの欄に表示があれば完成
    # lsmod |grep wl
    # ifconfig