LoginSignup
0
0

More than 5 years have passed since last update.

mac で BeagleBoneBlack(BBB) に Debian(8.8) をのせて WiFi (WN-G300UA)だけで運用するまで

Last updated at Posted at 2017-07-17

WiFiデバイスについて

色々と試したのですが、今のところ
Debian8.8 (Linux beaglebone 4.4.54-ti-r93 #1 SMP Fri Mar 17 13:08:22 UTC 2017 armv7l GNU/Linux)
では
I/O DATA WN-G300UA
で動作しています。
ELECOM WDC-150SU2MBK
は安定して動作しません。
BUFFALO WLI-UC-GNM2S
は特別にドライバを入れることなく動作しますが
とても熱くなるのでオススメできません。

以上からWiFiデバイスとしてはI/O DATA WN-G300UAをドライバを入れて使うのが良いです。

p.s.
I/O DATA WN-G300UAでも長時間セッションを張ったままだとセッションが切れるようです。WiFiの暗号鍵の更新時にそれが起こるようです。
ConnManでの暗号鍵更新時間の変更はどうやるのか、わかる方、教えてください。

下記、最新ドライバーインストールの部分で

# cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/

を追加したらセッションが切れなくなったようです。
しばらく様子見です。

BeagleBone Black用のDebianイメージの取得

https://beagleboard.org/latest-images

Jessie IoT (non-GUI) for BeagleBone via microSD card
にあるリンク先からイメージをダウンロードし展開してマイクロSDに入れます。

まずmacにunxzコマンドが入っていない場合はmacのターミナルから

$ brew install xz

として取得します。
そして、

$ wget https://debian.beagleboard.org/images/bone-debian-8.7-iot-armhf-2017-03-19-4gb.img.xz
$ unxz bone-debian-8.7-iot-armhf-2017-03-19-4gb.img.xz

で展開されたイメージが出来上がります。

マイクロSDカード(クラス10の4G以上のもの)をmacに挿入

ここらあたりのものを使いました。
http://amzn.asia/d14dMgl
普通に挿入

マイクロSDカードのフォーマット(必要なら)

ディスクユーティリティ.appを使う。
APPLE SD Card Reader Mediaのメディアを選択
消去をクリックしてから名前を適当に、フォーマットをMS-DOS(FAT)にして消去ボタンをクリック

SD書き込みソフトをmacにインストール

展開したイメージをマイクロSDカードに書き込む

上記のアプリを使います。(アプリケーションフォルダー内のEtcher.app)
まず書き込むimgファイルを選択、
次にSDカードを選択、
そして書き込み実行です。
終了時にmacがSDカードをマウントしようと試みますがフォーマットが違うので失敗しますが、これは正常です。
SDカードを抜き取ります。

BBBを最新Debianで起動

電源off状態のBBBにイメージの書き込まれたマイクロSDカードを挿入し、有線LANケーブルも接続、BBBのブートボタン(SDカードの近くの黒いボタン)を押した状態でMACとBBBをUSBで接続しBBBを起動します。ユーザーLEDが点滅したらブートボタンを離します。
これはSDカード内のイメージを使った起動です。(まだBBB内蔵フラッシュには書き込まれません)
しばらくしてからmacターミナルから次のコマンドを実行しシリアル接続用のデバイスを確認します。(tty.Bluetooth〜の方ではありません!)

$ ls -al /dev/tty.*
crw-rw-rw-  1 root  wheel   20,   0  7 12 03:06 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw-  1 root  wheel   20,  70  7 22 21:33 /dev/tty.usbmodem1425

そしてそのデバイス名を使ってscreenコマンドでシリアル接続をします。

$ screen /dev/tty.usbmodem1425

ログイン名はdebian
パスワードはtemppwd
です。

次にvim等のエディタで/boot/uEnv.txtを編集($ sudo vim /boot/uEnv.txt)しSDカードからブートした場合に内蔵フラッシュにシステムが書き込まれるように

##enable BBB: eMMC Flasher:
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

##enable BBB: eMMC Flasher:
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

に変更します。そして、

# shutdown -h now

でシステムを停止します。

内蔵フラッシュ(eMMC)への書き込み

停止確認後に電源ボタンを押します。
今度はシステムが立ち上がった後に自動的にシステムを内蔵フラッシュに書き込みます。
しばらくの間、ユーザーLEDが左右に揺れるように点滅し、最後に4つ共に光った後に自動的にシステムが停止します。
それを確認してマイクロSDを抜きます。

内蔵フラッシュからの起動(通常の起動)

そして、LANケーブルを接続し電源ボタンを押します。
起動後にはLAN経由でアクセスできるようになっていますが、DHCPでの割り当てのためにIPアドレスが確認できませんので、一旦、screenコマンドで接続します。
接続後、

$ ifconfig

で割り当てられたIPアドレスを確認します。(eth0の部分)
ここで、一旦ログアウトして、LAN経由で接続しなおしても良いです。
その場合は、割り当てられたIPアドレス(例えば192.168.0.152だとします)で
macのターミナルから、

$ slogin debian@192.168.0.152

です。このIPを使う接続が初めての場合、sshによるメッセージが最初に表示されますので、yesと答えてから続けます。

ここからDebianの設定

ホスト名の確認と変更(例えばbbb01に変える)

$ sudo hostname
beaglebone
$ sudo hostname bbb01

/etc/hostname を次のように編集する

bbb01

/etc/hosts の127.0.1.1の行を次のように編集する

127.0.1.1 bbb01

ホスト名が設定されたことを確認

$ sudo hostname
bbb01

ローカル時間の設定(Asia/Tokyo)

$ sudo dpkg-reconfigure tzdata

アップデート(時間がかかりますので気長に待ちます)

sudo apt-get update
sudo apt-get upgrade

node-redのアップデート(これも時間がかかります。実験中なのでオススメしません。飛ばしてください。)

$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y build-essential nodejs
$ hash -r
$ sudo npm i -g --unsafe-perm node-red
$ sudo npm install -g --unsafe-perm node-red-node-beaglebone

WN-G300UA の場合

まず安定したドライバに変更する(必須)
参考:https://adamscheller.com/systems-administration/rtl8192cu-fix-wifi/
参考:https://github.com/pvaret/rtl8192cu-fixes

$ sudo apt-get install --reinstall linux-headers-$(uname -r) build-essential dkms git
$ git clone https://github.com/pvaret/rtl8192cu-fixes.git
$ sudo su
# dkms add ./rtl8192cu-fixes
# dkms install 8192cu/1.10
# depmod -a
# cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/ 
# cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/
# modprobe 8192cu

WLI-UC-GNM2S の場合

特にドライバをインストールする必要はないようですが、とても熱くなります。
現時点ではオススメできません。

WDC-150SU2MBK の場合

安定して動作するドライバが見つかりません。
諦めて他のデバイスを使いましょう!

WiFiの設定(固定ローカルIP)

WiFiデバイスをボードのUSBに挿入する。
iwconfigを実行して次のようにデバイスが認識できていることを確認する。

# iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

connmanctlを実行して次のように入力(connmanctl>の行)
servicesを入力すると自分の環境から使えるssid(この例ではlaksmi-mac-net)とそのサービス名であるwifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_pskが表示される。以降の設定ではこの長いサービス名を指定して設定することになる。
この例では最後の2つのコマンドconfig...でWiFiの固定IP、mask,gatewayとnameserversを設定している。以下の例ではIPが192.168.0.30, maskが255.255.255.0, gatewayが192.168.0.1でnameserversを192.168.0.20に設定した。
設定が終わったらexitでconnmanctlから抜ける。

# connmanctl
connmanctl> tether wifi disable
Error disabling wifi tethering: Already disabled
connmanctl> enable wifi
Error wifi: Already enabled
connmanctl> scan wifi
Scan completed for wifi
connmanctl> services
*AO Wired                ethernet_544a16ee3115_cable
    laksmi-mac-net       wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk
connmanctl> agent on
Agent registered
connmanctl> connect wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk
Agent RequestInput wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk
  Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? ここでパスフレーズを入力
Connected wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk
connmanctl> config wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk --ipv4 manual 192.168.0.30 255.255.255.0 192.168.0.1
connmanctl> config wifi_bc5c4c88ea50_6c616b736d692d6d61632d6e6574_managed_psk --nameservers 192.168.0.20
connmanctl> exit

次のコマンドでWiFiが接続されていることを確認する

# iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"laksmi-mac-net"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 80:EA:96:EF:F8:CC   
          Bit Rate:144.4 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=-45 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 34:76:c5:8e:ac:8b  
          inet addr:192.168.0.30  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::3676:c5ff:fe8e:ac8b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:4213 errors:0 dropped:12 overruns:0 frame:0
          TX packets:13766 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:554275 (541.2 KiB)  TX bytes:18624957 (17.7 MiB)

ここまで確認できたら以下のようにシャットダウンします。

# sudo shutdown -h now

停止を確認して有線LANケーブルを抜いて電源ボタン(NICコネクタすぐ横の黒いボタン)を押して再び起動させる。
電源を入れてしばらくするとWiFiデバイスの青色LEDが点滅し、さらに時間が経つとWiFi経由でmacのターミナルからWiFi経由でログインすることができるようになっているはずです。

WiFi経由でのログイン

$ slogin debian@192.168.0.30

WiFi経由で外部から色々と

まずはmacのsafariからWeb接続してみよう。
このページではBeageBone Blackの端子情報等が書かれています。
ブラウザで192.168.0.30を指定して接続してみる。
最初の起動は多少の時間がかかるかもしれない。
スクリーンショット 2017-07-18 21.46.41.png

次にnode-redを開いてみよう。
最近のDebianではあらかじめポートを指定した接続でnode-redが起動するようにあらかじめ設定されている。
ブラウザで192.168.0.30:1880を指定して接続してみる。
起動は多少の時間がかかる。
スクリーンショット 2017-07-18 21.49.30.png

その他、Debianの設定など

ユーザー追加してSUDO可能に

$ sudo adduser <username>
$ sudo gpasswd -a <username> sudo

一旦ログアウトして、新しく作ったユーザーでログインしてみましょう!
そして、そろそろユーザーdebianのパスワードのtemppwdも変更しておきましょう。

$ sudo passwd debian

emacs24

$ sudo apt-get install emacs24-nox emacs24-el

zsh

$ sudo apt-get install zsh

各ユーザー毎に

$ wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
$ chsh

シェルは/bin/zshを指定

~/.zshrcを編集して最後に

alias ll="ls -al"

などと書いておくと嬉しいかも。
一旦ログアウトして再びログインするとzshになっています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0