Raspberry Pi B+ と Arch Linux ARM で無線LAN (PLANEX GW-USNANO2A) を使う

諸事情あって、Raspberry Pi を無線LANに接続して使うことになったのでそのセットアップをだらだら書きます。

ここまで作ってある環境など

http://blog.ksswre.net/2015/09/raspberry-pi-b-arch-linux-arm.html

  • ArchLinux ARM
    • uname -srvmo
      Linux 4.1.6-2-ARCH #1 PREEMPT Sat Aug 22 12:17:40 MDT 2015 armv6l GNU/Linux
  • 無線LANアダプタ

とりあえず本体に装着してみる

全体的な流れはここを参考に。
https://wiki.archlinuxjp.org/index.php/%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A

USB 接続なので、とりあえずここに書かれてるように lsusb してみる。一応認識はしている。
% lsusb
Bus 001 Device 005: ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 004: ID 04d9:1818 Holtek Semiconductor, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

手動でドライバをインストールする

次にドライバが必要な感じなので、ドライバを探す。
ソースどこか忘れちゃったけど、どうやら 8192cu ってドライバでOKらしい(?)。

Arch Linux では AUR にあるっぽい。 yaourt で入るが、Arch Linux ARM では yaourt は使えない。
また、AUR のパッケージ名が 8192cu-dkms なので注意。
https://aur.archlinux.org/packages/8192cu-dkms/

AURパッケージを Arch Linux ARM から使う。

そこで、ここを参考に AUR から .tar.gz を落としてきて、tar xvf で解凍、makepkg -Acs で無理矢理パッケージを作る。
http://raspberrypi.stackexchange.com/questions/510/how-do-i-install-packages-from-the-aur

makepkg -Acs はパッケージを作りつつ依存パッケージを解決し、カレントディレクトリにパッケージ .tar.xz を作る。作ったパッケージは pacman -U でインストール可能。

てことで、作ったパッケージをインストール。
インストール時に、8192cu モジュールを modprobe しているようです。
起動時に自動で読み込むようにしとこうね。
% sudo vim /etc/modules-load.d/raspberrypi.conf

8192cu

あとはパッケージのインストールができればOKだね。
% sudo pacman -U 8192cu-dkms/8192cu-dkms-v4.0.2_9000-8-any.pkg.tar.xz
パッケージをロード...
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) 8192cu-dkms-v4.0.2_9000-8

合計インストール容量:  5.16 MiB

:: インストールを行いますか? [Y/n]
(1/1) キーリングのキーを確認                              [###############################] 100%
(1/1) パッケージの整合性をチェック                        [###############################] 100%
(1/1) パッケージファイルのロード                          [###############################] 100%
(1/1) ファイルの衝突をチェック                            [###############################] 100%
(1/1) 空き容量を確認                                      [###############################] 100%
(1/1) インストール 8192cu-dkms                            [###############################] 100%
Creating symlink /var/lib/dkms/8192cu/v4.0.2_9000/source ->
                 /usr/src/8192cu-v4.0.2_9000

DKMS: add completed.
Error! echo
Your kernel headers for kernel 4.1.5-1-ARCH cannot be found at
/usr/lib/modules/4.1.5-1-ARCH/build or /usr/lib/modules/4.1.5-1-ARCH/source.
Error! echo
Your kernel headers for kernel 4.1.5-1-ARCH cannot be found at
/usr/lib/modules/4.1.5-1-ARCH/build or /usr/lib/modules/4.1.5-1-ARCH/source.
エラー: コマンドの実行に失敗しました

モジュールのインストール失敗。しかし、パッケージのインストールは成功した扱いになっている。いろいろ検索をかけてみる。
途中こんなページを見かけたので linux-headers パッケージを入れたが、改善せず。
https://bbs.archlinux.org/viewtopic.php?id=184572

結局

再起動したらウマいこといった。
% sudo pacman -U 8192cu-dkms/8192cu-dkms-v4.0.2_9000-8-any.pkg.tar.xz
パッケージをロード...
警告: 8192cu-dkms-v4.0.2_9000-8 は最新です -- 再インストール
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (1) 8192cu-dkms-v4.0.2_9000-8

合計インストール容量:  5.16 MiB
最終的なアップグレード容量:  0.00 MiB

:: インストールを行いますか? [Y/n]
(1/1) キーリングのキーを確認                              [###############################] 100%
(1/1) パッケージの整合性をチェック                        [###############################] 100%
(1/1) パッケージファイルのロード                          [###############################] 100%
(1/1) ファイルの衝突をチェック                            [###############################] 100%
(1/1) 空き容量を確認                                      [###############################] 100%
8192cu, v4.0.2_9000: added

------------------------------
Deleting module version: v4.0.2_9000
completely from the DKMS tree.
------------------------------
Done.
(1/1) 再インストール 8192cu-dkms                          [###############################] 100%

Creating symlink /var/lib/dkms/8192cu/v4.0.2_9000/source ->
                 /usr/src/8192cu-v4.0.2_9000

DKMS: add completed.

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area.......
make KERNELRELEASE=4.1.6-2-ARCH CROSS_COMPILE= -C /usr/lib/modules/4.1.6-2-ARCH/build M=/var/lib
/dkms/8192cu/v4.0.2_9000/build modules..........................................................................................................................................................
................................................................................................
................
cleaning build area.......
Kernel cleanup unnecessary for this kernel.  Skipping...

DKMS: build completed.

8192cu:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /usr/lib/modules/4.1.6-2-ARCH/kernel/drivers/net/wireless/

depmod......

DKMS: install completed.

キレそう。

wifi-menu も通った。なんやねん。
% ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    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
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1
000
    link/ether b8:27:eb:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 14189sec preferred_lft 14189sec
    inet6 2001:a453:3240:9c00:ba27:ebff:fece:eded/64 scope global mngtmpaddr dynamic
       valid_lft 14390sec preferred_lft 12590sec
    inet6 fe80::ba27:ebff:fece:eded/64 scope link
       valid_lft forever preferred_lft forever
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:22:cf:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.21/24 brd 192.168.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 2001:a453:3240:9c00:222:cfff:fef5:9c97/64 scope global mngtmpaddr dynamic
       valid_lft 14390sec preferred_lft 12590sec
    inet6 fe80::222:cfff:fef5:9c97/64 scope link
       valid_lft forever preferred_lft forever

ちなみに modprobe -r 8192cu すると、wlan0 の表示が消えた。ちゃんとドライバが動作してるっぽい。

コメント

  1. 失礼致します。アマゾンでの出品者林遠と申します。ブログを拝見しました。弊社のラズベリーパイのカメラブログ記事を書きしてくれませんか。こちらは無料でサンプルを提供します。メールはjp02@vertue.cnです。御返事お待ちしております。どうぞよろしくお願いします。

    返信削除

コメントを投稿

このブログの人気の投稿

インターネット共有のための sysctl での設定に躓いた

ISUCON 7 予選に参加した話