FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Raspbian JessieでBUFFALO WI-U2-433DMを使用する

2016年1月18日


今更ながらRaspberry Pi 2 Model B を購入した。
有線LANの固定IP化とWiFiアダプタ設定に非常に手こずったので忘れないように少しまとめておく。 なお、SDカードへのイメージ書き込み等はWindows10が稼働しているPCでの作業を前提にまとめる。

なお、Raspbian Jessie 環境にてIP固定化または無線LAN子機が認識しない事で参照している人は、後半に内容を記しているので前半はスルーしてもらって構いません。

今回 Raspberry Pi 2 等購入した物

Raspberry Pi2 Model B
アクリルケース
(ヒートシンク付き)
SW付きUSBケーブル
USB充電器
(スマホの充電にも使用したかったので今回は敢えてQuick Charge 2.0対応を購入)
Micro SD 8GB
Micro SD 16GB
Micro SD 32GB
BUFFALO WI-U2-433DM
PiFi DAC+

今回 micro SDカードを複数購入しているが特に深い意味は無く単に色々とRaspberry Pi向けにリリースされているOSを試したかったからである。
またケースについては当初スペーサー対応だけにしようかとも考えたがモジュールカードを載せる事も考えて今回のケースに決定した。ただ、ケースを組むのは簡単だったが・・・ケースの保護シールを剥がすのは非常に大変だった。自分の場合は最初に各パーツの端の部分をカッターナイフで軽く捲るようにして剥がしその後は手で剥きとるように剥がしていった。

OSのインストール

今回OSはRaspbian Jessie(Debian 8)を使用する事にした。


まずOSのイメージファイルをここからダウンロードする。
ダウンロードのページには、Jessie Lite や 前バージョンである Wheezy もあるが今回は Lite でない方のJessieをダウンロードする。

20160118190956

ダウンロードが完了したらイメージファイルを任意の場所に展開し、SDカードに書き込む。
今回は USB Image Tool を使用してSDカードに書き込んだ。DDで書き込んでも全く問題なし。各自の使い慣れたツールでイメージファイルを書き込めれば良い。

SDカードにイメージが書き込めればボリュームラベルがbootのドライブがあるはずなのでその中にある config.txt を編集する。
オーバースキャン設定と編集箇所はモニターの解像度とMPEG-4とVC-1ライセンス情報の設定。
10行目の行頭のコメントアウト文字を削除しオーバースキャンを行わないようにする。
21および22行目の行頭コメントアウト文字を削除し現在使用しているモニターの解像度を設定する。

   1: # For more options and information see
   2: # http://www.raspberrypi.org/documentation/configuration/config-txt.md
   3: # Some settings may impact device functionality. See link above for details
   4:  
   5: # uncomment if you get no picture on HDMI for a default "safe" mode
   6: #hdmi_safe=1
   7:  
   8: # uncomment this if your display has a black border of unused pixels visible
   9: # and your display can output without overscan
  10: disable_overscan=1
  11:  
  12: # uncomment the following to adjust overscan. Use positive numbers if console
  13: # goes off screen, and negative if there is too much border
  14: #overscan_left=16
  15: #overscan_right=16
  16: #overscan_top=16
  17: #overscan_bottom=16
  18:  
  19: # uncomment to force a console size. By default it will be display's size minus
  20: # overscan.
  21: framebuffer_width=1929
  22: framebuffer_height=1080

ライセンス情報は末尾に追加する。
なお、ライセンス購入にはCPUのシリアルナンバーが必要になる。

設定が終わったらイメージを書き込んだSDカードをRaspberry Piに差し込んで起動する。

Raspbianに限らずSDカードへの書き込みに失敗していると起動に失敗するのでその時はSDカードへのイメージファイルの書き込みを再度行う。

インストール後の設定

正常に起動したら自動でXまで起動しているはずなので初期設定を行う。
◆ Raspbrry Pi Configuration を起動する(raspi-config の GUI版)

2016-01-18 19.41.19

◆  Systemタブの【Expand Filesystem】 をクリックする。(SDカードの残容量全てを/に割り当て直す)

◆ Systemタブの Boot: 部の設定を 【To Desktop】 から 【To CLI】 に変更する。

◆ Systemタブの Auto Login:部のチェックを外す。

◆ Locationタブの【Set Timezone】をクリックしタイムゾーンを[Asia – Tokyo]に設定する。

ここまで設定したらダイアログのOKボタンをクリックする。再起動するかと聞いてくるのでここで一度再起動する。(Yesをクリックする)

2016-01-18 19.44.13

再起動したら一度 pi でログインしIPアドレスをifconfigで確認する。
確認したらlogoutする。以後はsshでWindows側から操作する。

teratrem等のソフトで先ほど確認したIPアドレスに接続する。

念のため df コマンドで残容量が / に割り当てられたか確認する。

pi@raspberrypi:~ $ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 15294864 3346796 11270688 23% /
devtmpfs 242588 0 242588 0% /dev
tmpfs 246892 0 246892 0% /dev/shm
tmpfs 246892 4544 242348 2% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 246892 0 246892 0% /sys/fs/cgroup
/dev/mmcblk0p1 61384 20296 41088 34% /boot
tmpfs 49380 0 49380 0% /run/user/1000
pi@raspberrypi:~ $

今回は16GのSDカードを使用しているので残容量が / に祭割り当てられている事が確認できる。

raspi-config で再度システムの設定を行う。(初めからX上のターミナルでこれを行っても構わない)

◆ 2 Change User Password で pi ユーザーのパスワードを変更する。

◆ 5 Internationalisation Options の I1 Change Locale を選択する。

1) ja_JP.UTF-8 UTF-8 を選択して<OK>でEnterする。

raspbian_Change Locale

2) 規定のLocaleを聞いてくるので en_GB.UTF-8のままにする。

ここでja_JP.UTF-8を選択してしまうと以後コンソール上で日本語が文字化けをしてしまう。

◆ 8 Overclock で Overclock設定を行う。(お好みで)

raspbian_overclock_setting

Overclockを行う場合は、USB電源およびケーブルが2Aを確実に供給できる物を使用する事。
未対応品を使用している場合Raspberry Piの動作が不安定になる恐れあり。

◆ 9 Advanced Options の A5 Device Tree を選択し <Yes> でEnterする。

ここまで設定したら<Finish>を選択する。その時に再起動するかと聞いてくるので再起動する。Overclock設定などのconfig.txtに設定される項目を反映させるためにも再起動する。

再起動したら再びsshでログインしシステムのUpdateを行い再起動する。

今回は面倒なので再起動までコマンド指定する。

pi@raspberrypi:~ $ sudo -s
root@raspberrypi:/home/pi# aptitude update && aptitude –y upgrade && rpi-update && reboot

再起動するまで気長に待つ。

Firmware updateを行う rpi-update コマンドに関しては、X上のコンソールで行うとなぜか自分の環境では失敗してしまった。但しCLIおよびssh接続では正常に行えた。

再起動したら現在DHCPによる自動振り分けになっている有線LANのIPアドレスのIP固定化を行う。

ただその前に vim を普段利用している人は先に vim をインストールしておく

有線LANのIP固定化

設定を行うために /etc/network/interfaces を開くと

   1: # interfaces(5) file used by ifup(8) and ifdown(8)
   2:  
   3: # Please note that this file is written to be used with dhcpcd
   4: # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
   5:  
   6: # Include files from /etc/network/interfaces.d:
   7: source-directory /etc/network/interfaces.d
   8:  
   9: auto lo
  10: iface lo inet loopback
  11:  
  12: iface eth0 inet manual
  13:  
  14: allow-hotplug wlan0
  15: iface wlan0 inet manual
  16:     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  17:  
  18: allow-hotplug wlan1
  19: iface wlan1 inet manual
  20:     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

4行目に固定IPは /etc/dhcpcd.conf でといきなり記載されている。
で、man dhcpcd.conf を見ているとある程度進んだところに static value に関する説明がありその説明をそのまま使用してしまって問題ないようであるから今回はこの説明内容を利用して有線LANの固定IP化を行う事にする。

static value
Configures a static value. If you set ip_address then dhcpcd
will not attempt to obtain a lease and just use the value for the
address with an infinite lease time.

Here is an example which configures a static address, routes and
dns.
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Here is an example for PPP which gives the destination a default
route. It uses the special destination keyword to insert the
destination address into the value.
interface ppp0
static ip_address=
destination routers

/etc/dhcpcd.conf を開き末尾に説明の内容を自分の環境に合わせた内容で追加する。

pi@raspberrypi:~ $ sudo vi /etc/dhcpcd.conf

# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
~ 中略 ~
# Static IP Address Setting#
# アドレスの設定は各自の環境に合わせて変える
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

設定を加えたら内容を保存しシステムを再起動する。
設定が正しければ設定したIP Addressにsshでログインできるはずである。

日本語表示対応

ここまで来たらWiFi設定の前に日本語環境設定がまだなのでここで行っておく。
まずはフォント等をインストールする。個人的にデスクトップ環境にXFCEを使用したいので今回はそれもインストールする。

最初に japanese を検索キーにしてパッケージを調べる。

pi@raspberrypi:~ $ sudo -s
root@raspberrypi:/home/pi# aptitude search japanese
v fonts-japanese-gothic -
v fonts-japanese-mincho -
p latex-cjk-japanese - Japanese module of LaTeX CJK
p latex-cjk-japanese-wadalab - type1 and tfm DNP Japanese fonts for latex
p libunicode-japanese-perl - module for converting Japanese encodings
p task-japanese - Japanese environment
p task-japanese-desktop - Japanese desktop
p task-japanese-gnome-desktop - Japanese GNOME desktop
p task-japanese-kde-desktop - Japanese KDE desktop
p tegaki-zinnia-japanese - Japanese handwriting model for Zinnia
p texlive-lang-japanese - TeX Live: Japanese
v ttf-japanese-gothic -
v ttf-japanese-mincho -
p xfonts-intl-japanese - International fonts for X -- Japanese
p xfonts-intl-japanese-big - International fonts for X -- Japanese big
root@raspberrypi:/home/pi#

日本語関連のフォントパッケージが表示される。
今回はこの中から
fonts-japanese-gothic, fonts-japanese-mincho
task-japanese, task-japanese-desktop
ttf-japanese-gothic, ttf-japanese-mincho
xfonts-intl-japanese, xfonts-intl-japanese-big
をインストールする(必要ない物もあるかもしれないが・・・)。
またしても一気にインストールしたいのでパッケージ名を羅列した状態でコマンド実行する。

root@raspberrypi:/home/pi# aptitude -y install xfce4 fonts-japanese-gothic fonts-japanese-mincho task-japanese task-japanese-desktop ttf-japanese-gothic ttf-japanese-mincho xfonts-intl-japanese xfonts-intl-japanese-big jfbterm ibus-anthy anthy

インストールが終了するまで気長に待つ。
インストールが完了したら再度 raspi-config で Locale 設定を行う。

root@raspberrypi:/home/pi# raspi-config

◆ 5 Internationalisation Option の I1 Change Locale を選ぶ。
◆ 前に設定する項目は選んでいるので<OK>でEnterする。
◆ 今度は ja_JP.UTF-8 を選択し<OK>でEnterする。
◆ <Finish>でEnterし終了する。

終了したら一度再起動する。再起動後にXを立ち上げるとデスクトップが日本語化されている。

2016-01-18 23.07.02 2016-01-18 23.19.25
日本語化設定前 日本語化設定後

WiFi設定・・・の前に kernel のビルド

ようやくWiFi関連の設定である。
今回はBUFFALOのWI-U2-433DMを使用するのだがUSBポートに挿してもコマンドをたたいても反応しない。理由は単純でドライバーが無いからである。なのでドライバーを何処からか持ってくるか自分でコンパイルしてインストールすれば使用できるはずである。
今回は自分でドライバーをコンパイルしてインストールする事にする。

まずはデバイスがポートに挿してある事が認識されているか確認する。

pi@raspberrypi:~ $ sudo lsusb
Bus 001 Device 006: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 005: ID 1a81:2010 Holtek Semiconductor, Inc.
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
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.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $

一応、BUFFALOの製品が挿してある事は認識している。(赤字部分)

ドライバーのコンパイルの前にビルド済みの kernel source が必要になるがパッケージとしてどれになるのかいまいち不安な部分もあったので今回は自前で一度カーネルのビルドを行う事にした。

なお、kernel のビルド方法については labs.beatcraft.comRaspberry Pi 2 kernel セルフコンパイル を参照して kernel のビルドを行った。


まずは必要なパッケージのインストールを行う。

root@raspberrypi:/home/pi# aptitude -y install bc ncurses-dev git

パッケージのインストールが完了したら /usr/src に移動し source ファイルを git で 取得する

root@raspberrypi:/usr/src# git clone --depth 1 https://github.com/raspberrypi/linux.git -b rpi-4.1.y

root@raspberrypi:/usr/src# git clone --depth 1 https://github.com/raspberrypi/firmware.git

コンパイル自体の時間がかかるのでカーネルコンパイルについてはssh経由で無く直接ログインして作業を行う。(夜間に作業をさせておいても静かだから睡眠の邪魔になる事もないし・・・それ以前にクロスコンパイル環境を構築しとけよって声も・・・)

kernel のビルドをするにあたり /usr/src/linux に移動する

root@raspberrypi:/usr/src/# cd linux

現在使用している kernel 設定を流用ししつ新しい機能の設定を行う

root@raspberrypi:/usr/src/linux# modprobe configs
root@raspberrypi:/usr/src/linux# zcat /proc/config.gz > .config
root@raspberrypi:/usr/src/linux# cp ../firmware/extra/Module7.symvers Module.symvers

root@raspberrypi:/usr/src/linux# make oldconfig

kernel のバージョンが同一であったため今回は設定について聞かれる事無く終了。

後は、ビルドと /boot への配置を行い再起動までするようにコマンドを打ち(数時間のレベルで)気長に待つ。

root@raspberrypi:/usr/src/linux# make zImage && make modules && make dtbs && make modules_install && cp arch/arm/boot/dts/*.dtb /boot/ && cp arch/arm/boot/dts/overlays/*.dtb /boot/overlays/ && cp arch/arm/boot/dts/overlays/README /boot/overlays/ && cp /boot/kernel7.img /boot/kernel7.img.old && scripts/mkknlimg arch/arm/boot/zImage /boot/kernel7.img && reboot

再起動させたら念のためにXを起動してマウスが反応するか確認する。

WiFi 子機のドライバービルド

今回は BUFFALO WI-U2-433DM を使用するためのドライバービルドを行うが同じ症状の場合でも同様のやり方で対応できると思う。

まずは WI-U2-433DM をUSBポートに挿して反応するか見てみる。
挿しただけでは何も起きない。念のためにコマンドを打ってみる。

root@raspberrypi:/home/pi# lsusb
Bus 001 Device 006: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 005: ID 1a81:2010 Holtek Semiconductor, Inc.
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
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.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

デバイスが挿してある事は認識している

root@raspberrypi:/home/pi# ifup wlan0
wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return code 1
Failed to bring up wlan0.

ドライバーが無い状態でデバイスを起動しようとしているのでエラーが帰ってくる。
確認はここまでとしドライバーの source をダウンロードしてビルドする。なお今回は、/usr/src にドライバーの source を取得して作業を行う。

まずドライバーの source を取得するに当たってこの WI-U2-433DM が使用しているデバイスについは Realtec の RTL8812AU を使用しているらしい。で、このチップ用のLinux ドライバーの source は 有志によって git に公開されておりそこからダウンロードする事が出来る。

root@raspberrypi:/usr/src# git clone https://github.com/gnab/rtl8812au.git

git から source を取得したら Makefile の修正を行う。
修正箇所は
52行目のCONFIG_PLATFORM_I386_PC = y を n に変更し
58行目のCONFIG_PLATFORM_ARM_RPI = n を y に変更する

root@raspberrypi:/usr/src/rtl8812au# vi Makefile

CONFIG_PLATFORM_I386_PC = n             <----- n に変更
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_ARM_RPI = y          <------ y に変更
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n

修正したら保存する。
修正が完了したら install.sh に実行権限を与えて install.sh にビルドとドライバーのインストールを行わせる。

root@raspberrypi:/usr/src/rtl8812au# chmod +x install.sh
root@raspberrypi:/usr/src/rtl8812au# ./install.sh

終了するまでしばし待つ。
最後に Do you wish to activate the module now? (y/n) と聞いてくるので y を入力する。
y を入力して Enter した際に WI-U2-433DM の青色のLEDが点滅していたら正常に終了と判断して良いとと思う。

念のために ifconfig コマンドで wlan0 の項目が追加されている事も確認する。

WiFi アクセス設定

ドライバーを入れただけでは、まだネットワークに接続できていないのでその設定を行う。

なお、SSIDやパスワードを自分が知っている環境前提で進める。
接続先やハッシュ化されたパスワードは /etc/wpa_supplicant/wpa_supplicant.conf に記入していくがその情報は wpa_passphrase コマンドを利用して作成する。

接続先 SSID: raspi-net
パスワード: raspberrypi

とした場合、まず wpa_passphrase で

pi@raspberrypi:~ $ sudo wpa_passphrase raspi-net raspiraspi
network={
         ssid="raspi-net"
         #psk="raspiraspi"
         psk=7597e8247768577fe2f3c87bfab3ee53a650d55f23d8c32e37037ea7dc7b3da3
}

と作成しそれをコピーしておく。(もしくはコンソールをもう1つ立ち上げて表示させておく)
今度はその内容を wpa_supplicant.conf に貼り付けて追加の情報を追加していく。
その際、ハッシュ化前のパスワードは削除しておく。

pi@raspberrypi:~ $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1network={
         ssid="raspi-net"
         #psk="raspiraspi"    <--- 削除する
         psk=7597e8247768577fe2f3c87bfab3ee53a650d55f23d8c32e37037ea7dc7b3da3
        proto=WPA2                   <--- 追加
        key_mgmt=WPA-PSK       <--- 追加
        pairwise=TKIP CCMP       <--- 追加
        group=TKIP CCMP          <--- 追加
}

編集が終わったら保存をしデバイスを再度立ち上げて見る。今度は設定したアクセスポイントに接続しているのでWI-U2-433DM の LED が点滅しているはずである。

スポンサーサイト

コメント

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。