CentOS7.1 NUC5CPYHのwifiを使うぞ!

 2015-12-03
素のCentOS7.1では、所謂ドライバが当たらなくてwifiが使えませんでした。
iwlwifiというステキグッズを導入してwifiでwifiできるようにwifiする。
 

前提

  • NUC5CPYH
    intelの製品ページによると インテル® Wireless-AC 3165 M.2 2230 というシロモノが使われているらしい
    インテル® NUC キット NUC5CPYH ミニ PC
    http://www.intel.co.jp/content/www/jp/ja/nuc/nuc-kit-nuc5cpyh.html

  • ネットワークインターフェースが認識されていない
    % ip a
    1: lo: mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    2: enp3s0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:ae:ed:77:4d:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.64.30/24 brd 192.168.64.255 scope global enp3s0
    valid_lft forever preferred_lft forever
    enp3s0は有線のether、loはループバックですね。


Kernelを更新してからiwlwifiを導入する

自力でKernelをコンパイルする気力のある人はこれでもいいかも! 私はガッツが足りなかったので、elrepoのkernel-mlに更新してやってみましたが、安定性に難ありとのことだったので、元のKernelに戻してから、後述のbackportsでのiwlwifi導入に切り替えました。
なのでこの場では非推奨の手順とします。CentOS7.1標準のKernelで、Backportsを用いてのiwlwifi導入を推奨します。
というか自分がやった手順を時系列通りに書いておきたいだけデス。

非推奨の手順(´・ω・`)↓
  1. Kernelをelrepoのkernel-mlに更新する
    Kernel4.3になるよ

  2. ドライバの入手
    iwlwifiのページ(下記)から Intel® Wireless 3165 (starting from firmware X.XX.13.0 and kernel 4.1) と書いてあるものをgetしてくる。
    en:users:drivers:iwlwifi [Linux Wireless]
    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware
    # cd /usr/local/src
    # wget "https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode-15.227938.0.tgz"

    # tar xzvf ./iwlwifi-7265-ucode-15.227938.0.tgz
    iwlwifi-7265-ucode-15.227938.0/
    iwlwifi-7265-ucode-15.227938.0/README.iwlwifi-7265-ucode
    iwlwifi-7265-ucode-15.227938.0/iwlwifi-7265-15.ucode
    iwlwifi-7265-ucode-15.227938.0/iwlwifi-7265D-15.ucode
    iwlwifi-7265-ucode-15.227938.0/LICENSE.iwlwifi-7265-ucode
    実際に搭載されているのはIntel Wireless-AC 3165らしいけど、それは無いので似たようなやつにする。
    同様に、kernel4.3用は無いので、4.2用を使ってみる。HAHAHA.

  3. ドライバのインストール
    展開したREADMEによるとファイルをコピーするだけらしい。
    Installation of the firmware is simply:
    % cp iwlwifi-7265-15.ucode /lib/firmware
    % cp iwlwifi-7265D-15.ucode /lib/firmware
    # cp iwlwifi-7265*ucode /lib/firmware

    # reboot
    % ip a
    1: lo: mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    2: enp3s0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:ae:ed:77:4d:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.64.30/24 brd 192.168.64.255 scope global enp3s0
    valid_lft forever preferred_lft forever
    3: wlp2s0: mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 34:02:86:58:36:1c brd ff:ff:ff:ff:ff:ff
    以上でwlp2s0というインターフェスが見えてめでたしめでたし・・・ではない。

  4. dmesgでのエラーの痕跡を探る
    dmesgを確認してみるとiwlwifiでエラーが出ているみたい。
    % dmesg | grep iwlwifi
    [ 3.330037] iwlwifi 0000:02:00.0: enabling device (0000 -> 0002)
    [ 3.340847] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-7265D-17.ucode failed with error -2
    [ 3.340860] iwlwifi 0000:02:00.0: Falling back to user helper
    [ 63.338745] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-7265D-16.ucode failed with error -2
    [ 63.338760] iwlwifi 0000:02:00.0: Falling back to user helper
    どうやら、iwlwifi-7265D-17.ucode → iwlwifi-7265D-16.ucode → iwlwifi-7265D-15.ucode と順番に読み込んでいって、さっき入れたiwlwifi-7265D-15.ucodeを見つけてエラーが止まってるっぽい。

    だったらsymlinkで偽名使わせればいいんじゃね? どうせKernel4.3用のドライバは今はないのでどうしようもないし・・
    # ln -s /lib/firmware/iwlwifi-7265D-15.ucode  /lib/firmware/iwlwifi-7265D-17.ucode

    # reboot

    再起動後、確認↓
    % dmesg | grep iwlwifi
    [ 3.377975] iwlwifi 0000:02:00.0: enabling device (0000 -> 0002)
    [ 3.389032] iwlwifi 0000:02:00.0: loaded firmware version 15.227938.0 op_mode iwlmvm
    [ 3.416379] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 3165, REV=0x210
    [ 3.421568] iwlwifi 0000:02:00.0: L1 Disabled - LTR Disabled
    [ 3.421746] iwlwifi 0000:02:00.0: L1 Disabled - LTR Disabled
    [ 3.529252] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
    [ 3.627699] iwlwifi 0000:02:00.0 wlp2s0: renamed from wlan0
    Kernel4.3用のドライバがリリースされたら早めに入れ替えることにして、とりあずこのままでいいや。エラーが出ないのはいいことだ(?)

↑ここまで非推奨の手順(´・ω・`)


backportsでのiwlwifiの導入

さて最初の方に書いた通り、elrepoのkernel-mlは安定性がアレっぽいので、取りやめにする。代わりにbackportsでのiwlwifi導入を試す。
  1. kernelをCentOS7.1標準に戻す (非推奨の手順をやってしまった人)
    kernelを元に戻すと、iwlwifiがkernelに読み込まれなくなって(?) wifiが使えなくなる。
    # ip a
    1: lo: mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    2: enp3s0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:ae:ed:77:4d:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.64.30/24 brd 192.168.64.255 scope global enp3s0
    valid_lft forever preferred_lft forever

  2. backportsでiwlwifiを入れる
    # cd /usr/local/src
    # wget "http://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.2.6/backports-4.2.6-1.tar.xz"
    # tar xvf ./backports-4.2.6-1.tar.xz

    # cd backports-4.2.6-1
    # make defconfig-iwlwifi
    # make install
    :
    :
    depmod will prefer updates/ over kernel/ -- OK!
    Note:
    You may or may not need to update your initramfs, you should if
    any of the modules installed are part of your initramfs. To add
    support for your distribution to do this automatically send a
    patch against "update-initramfs.sh". If your distribution does not
    require this send a patch with the '/usr/bin/lsb_release -i -s'
    ("CentOS Linux") tag for your distribution to avoid this warning.

    Your backported driver modules should be installed now.
    Reboot.
    make installはちょっと時間がかかってましたが、待ってたら勝手に完了してた。

  3. wifiデバイスの確認
    wlp2s0がwifiとして認識されているものの、管理なしとなっている
    % nmcli d
    デバイス タイプ 状態 接続
    enp3s0 ethernet 接続済み enp3s0
    lo loopback 管理無し --
    wlp2s0 wifi 管理無し --

    wifiのスキャンもできない
    % nmcli d wifi rescan
    エラー: Wi-Fi デバイスが見つかりませんでした。

  4. NetworkManager-wifiのインストール
    nmcliコマンド自体は使えるけど、wifiだけなぜか使えない場合は、NetworkManager-wifiというのが入ってないことが多いらしい。
    # yum install NetworkManager-wifi

    # reboot
    なぜか?rebootが必要だった

  5. wifiの接続
    NetworkManager-wifiを入れると、wifiのスキャンができるようになった
    # nmcli d wifi rescan

    % nmcli d wifi
    * SSID モード CHAN レート 信号 バー セキュリティ
    ****** インフラ 13 54 Mbit/s 99 ▂▄▆█ WPA1 WPA2
    ****** インフラ 1 54 Mbit/s 20 ▂___ WPA1
    ****** インフラ 13 54 Mbit/s 27 ▂___ WEP
    ****** インフラ 1 54 Mbit/s 37 ▂▄__ WPA1 WPA2
    ****** インフラ 11 54 Mbit/s 17 ▂___ WPA2
    ****** インフラ 11 54 Mbit/s 17 ▂___ WPA1
    ****** インフラ 10 54 Mbit/s 14 ▂___ WEP
    ****** インフラ 13 54 Mbit/s 22 ▂___ WPA1 WPA2
    ****** インフラ 11 54 Mbit/s 19 ▂___ WPA2
    ****** インフラ 9 54 Mbit/s 17 ▂___ WPA1 WPA2
    ****** インフラ 13 54 Mbit/s 14 ▂___ WPA2
    ****** インフラ 10 54 Mbit/s 14 ▂___ WPA1 WPA2
    ****** インフラ 11 54 Mbit/s 12 ▂___ WPA1
    ****** インフラ 11 54 Mbit/s 12 ▂___ WPA1
    ****** インフラ 9 54 Mbit/s 17 ▂___ WEP
    ****** インフラ 11 54 Mbit/s 14 ▂___ WEP
    ****** インフラ 13 54 Mbit/s 12 ▂___ WEP
    -- インフラ 13 54 Mbit/s 25 ▂___ --

    wifiのAPの設定はコマンドラインからぽちっと入力するだけ
    % nmcli d wifi connect ******** password ********
    Device 'wlp2s0' successfully activated with '********-****-****-****-************'.
    一旦接続されるとOS再起動後も自動で接続しに行ってくれます。



参考資料
http://superuser.com/questions/889295/intel-wireless-wifi-driver-for-linux-on-dell-inspiron-17-7746-early-2015-cent
I do not recommend updating CentOS 7 to kernel-ml, as it has a lot of stability issues that can result (specifically, virtualization is not functioning properly).
パパ色々: CentOS7 で nmcli を使ったWiFi接続できた @NUC5PPYH http://papairoiro.blogspot.jp/2015/08/centos7-nmcli-wifi-nuc5ppyh.html

 
 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/215-25b59836
≪ トップページへこのページの先頭へ  ≫