2014年12月14日日曜日

Intel Edison の初期設定

 前回,Edison の yocto linux (firmware?) の更新(強制 flash も)と書いた。 その続きである。
今回はEdison module の使い方や初期設定について書こう。

1. サーバーとしての初期設定
 ログインできるようになれば,何はさておきサーバーとしての初期設定が必要になる。 初期設定は root で以下のコマンドを実行する。
   # configure_edison --setup
コマンドを実行すると,device password(root のパスワード),device 名(コンピュータ名)や,WiFi の設定ができる。 ここで password を設定しておかないと WiFi の設定をしていても安全上の問題から WiFi にはつないでくれない。 また,ここでの WiFi の設定は DHCP による接続のみである。 固定 IP での接続は別のところで設定が必要である。

 WiFi の設定をした場合は以下のコマンドでネットワークデバイスの確認をしておこう。
   # ifconfig
通常は,lo0usb0wlan0 の3つが表示されるはずである。 ここで wlan0 が無線LANを表す。
 ちなみに configure_edison は firmware (yocto linux) のアップデートも可能みたい。

2. タイムゾーンの変更
 次に,Edison のタイムゾーンを設定しておこう。 Edison はネットワークにつながると自動的に時刻をネットワーク経由で合わせてくれる。 しかし,タイムゾーンを設定していないと,世界標準時で表示されてしまう。 そのためにタイムゾーンの設定が必要となる。

 Edison ではサービスの起動や停止は Systemd で管理されているらしい。 時刻関連のサービスもこの Systemd で行うのが正しいみたい。 時刻関連のコマンドは timedatectl であり,例えば,タイムゾーンの設定は
   # timedatectl set-timezone Asia/Tokyo
とするのが正しいみたい。逆に世界標準時に戻すには
   # timedatectl set-timezone Universal
とするらしい。
 詳しいことはIntel Edisonの時刻合わせ(systemd-timesyncd,timedatectl)に書かかれているので見て欲しい。

しかし,毎回この命令を実行するのがめんどくさい時は,昔ながらの以下の方法でも特に問題はないような気がする。
   # rm -f /etc/localtime
   # ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
(上記 Qiita のサイトには非推奨とされていたが…)

3. システムログファイルのサイズ限定
 Intel Edison で起こるトラブルとして,システムログが溢れて作業できなくなる,というのがある。 それを避けるためにシステムログファイルのサイズを限定しておくのが良い,とされている。 システムログは,/var/log/journal/ 以下にディレクトリが作られ,その下に置かれる。 これが何度も再起動とかしてるとすごくメモリを食うらしい。

そこで以下のように設定するのがよいみたい。
   # echo SystemMaxUse=20M >> /etc/systemd/journald.conf
   # systemctl restart systemd-journald
これは,ログの設定ファイルである /etc/systemd/journald.conf に, SystemMaxUse=20M という行を追加し,システムログのデーモンを再起動させている。 ここでも systemd のお世話になっている。

4. /var/log と /usr/share を移動させる
 Intel Edison は,/ (root) パーティションがあまり大きくないため,できるだけ root partition を空けたいという要請がある。 そこで,必然ではないが,とりあえず影響が少なそうな /var/log /usr/share /home の下に移動させておくと。多少なりとも root partition に隙間ができる(/home は別の partition になっている)。方法は以下のようにすればよい。(これはIntel Edisonのセットアップと容量不足問題(2015/3/25 午前:不通)に書いてあった…。やっぱり受け売りやん…)
   # mkdir /home/var
   # mv /var/log /home/var
   # ln -s /home/var/log /var/log

   # mkdir /home/usr
   # mv /usr/share /home/usr
   # ln -s /home/usr/share /usr/share
この作業をしたら,すぐに一度再起動させておくのがよい。 気をつけないとログの記録場所が変わるので,システムが混乱しかねない。

5. opkg を使った多様なアプリケーションのインストール
 Edison は yocto linux を使っている。 そこでのパッケージ管理システムとして opkg が採用されている。 2015/2 現在は,この opkg 用の設定としては,
   src/gz all http://repo.opkg.net/edison/repo/all
   src/gz edison http://repo.opkg.net/edison/repo/edison
   src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
などが便利とされている。
 これを使うには,Edison の /etc/opkg/ の下にある base-feeds.conf の中に 上記の3行をそのまま書けばいいみたい。 あるいは,下記のようにコマンドラインから入力してもよい。
   # echo src/gz all http://repo.opkg.net/edison/repo/all >> /etc/opkg/base-feeds.conf
   # echo src/gz edison http://repo.opkg.net/edison/repo/edison >> /etc/opkg/base-feeds.conf
   # echo src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32 >> /etc/opkg/base-feeds.conf

 base-feeds.conf の設定ができれば,
   # opkg update
として,設定ファイルを最新に更新しておこう。
 そうすれば,
   # opkg install XXXX
で欲しいアプリケーションを導入できる。 ただし上記のリストの中に欲しいアプリケーションの記述があれば,だが…。 また,インストール済のアプリケーションの更新は
   # opkg upgrade XXXX
とすればできる。 ここでアプリケーションを指定せずに
   # opkg upgrade (要注意)
とすると,インストール済のアプリケーションの中で更新できるものをすべて更新してくれる。 しかし,システムの kernel の更新もしようとすることがあり,その際は /boot パーティションのサイズが小さくて トラブルが起こることがある。従って opkg upgrade は使う際に注意が必要である。 この opkg upgrade でハマった件については, Intel Edison で opkg upgrade すると Windows に対して USB OTG で接続できなくなったに書いたので,気が向いたら読んでみて欲しい。

 私は,とりあえず rsync, screen, bash, git, nano を入れている。 ここで nano は簡易型のスクリーンエディターであり,vim よりも emacs に近い感じがして, emacs に慣れた私には使いやすい。
 また,私は root のシェルを bash に変更している。
   # chsh -s /bin/bash
bash に変更が可能である。

6. Arduino Board 使用時の再起動の方法
 Edison を使っていると再起動したくなる場合がある。 Arduino ボードを使用している場合は,Arduino ボードには RESET スイッチがついているので,それを押すことで再起動可能ある。 ちなみに,PWR ボタンを8秒以上押すと電源をオフにでき,その後 PWR ボタンを4秒以上押せば電源をオンにできる。
 コマンドラインからの再起動方法は,
   # shutdown -r now
とするか,
   # reboot
とすればよい。

 Edison の電源を切りたい時は,コマンドラインから
   # shutdown -P now
とするか,
   # systemctl poweroff
とすればよい。

7. ログイン後には念のために sketch をオフにする
 Edison を起動した際に,/sketch/ の下に sketch.elf というファイルがあると, Edison は自動で sketch.elf を実行するらしい。 これは Arduino IDE を使ってプログラムした場合であるが, 勝手に作業をされては困ることも多い。 そんな時には,以下のコマンドでスケッチを停止させる事ができる。
   # killall -HUP clloader

8. version の確認
 現在動いている yocto iinux のバージョンを知るには以下のようにすればよい。
   # cat /etc/version
あるいは,別の情報として
   # uname -a
としてもよい。

 他にも,
   # df -h
とするとディスク領域の情報を与えてくれる。
SparkFun製のIntel Edison 用 Blocks を買ってみたに続く)

0 件のコメント: