【Galileo】インストール 初期設定
Galileo に関してはものすごく情報が少ない。
先ず、カラ割り直後にLANケーブルを入れて、電源をつなぐ。DHCPでIPはふられるし、PING も通るが・・・
SSH で接続できない。どうやら最初にファームウェアのアップデートをしないとダメらしい。ここでかなりアセった。
ファームウェアのアップデート
- ダウンロードセンター から、今回はウィンドウズで使うので、Intel_Galileo_Arduino_SW_1.5.3_on_Windows_v1.0.0.zip をダウンロード。
- そのまま解凍すると、解凍ソフトによっては長いファイル名が展開できないので、Linux マシンに一旦アップして、そちらで展開した後、持ってきた方が間違いない。
- 電源を入れた後に microUSB ケーブルをつなぐ。つなぐのは向かって右側(USB CLIENT)。(USBをつないだまま電源を入れると破損することがあるらしい。)
- 単につなげただけでは不明なデバイス(Gadget serial)になるので、arduino-1.5.3hardwarearduinox86toolslinux-cdc-acm.inf を使ってドライバインストールすると Galileo(COMx) となる。 x は数字。 x を覚えて置く。
- arduino-1.5.3arduino.exe を起動する。
- ヘルプから「Firmware Update」を選択。アップデート中は電源を抜いたりしないこと。
ファームウェアのアップロード完了後、再起動すると ssh でログイン可能になる。初期ユーザ名は root で パスワードなし。
microSD で Linux
GalileoのFLASH ROMにはLinuxがインストールされていて、電源を入れるとこれが起動するが、電源を入れなおすとスケッチが消えるとか何かと不便なので、microSDにLinuxを入れて、そちらを使うようにする。
- ダウンロードセンターから LINUX_IMAGE_FOR_SD_Intel_Galileo_v1.0.0.7z をダウンロード。
- microSD を FAT32 でフォーマット。
- ダウンロードしたファイルを解凍。
- microSD にコピー。
- Galileo に挿しておけば、そちらから起動するようになる。
Raspberry pi や Beaglebone Black はイメージを焼くのに対して、FAT32 でフォーマットしたSDに、そのままコピーするのが違うね。
パッケージ管理 opkg
yocto linux のパッケージ管理は opkg。 でも Intel 配布のイメージだと opkg が使えない。
opkg が使いたい場合は IntelのGalileoでパッケージマネージャopkgを使う ら辺から落としたイメージを使う。
Webサーバ
opkg が使えるミニマム構成で /etc/init.d を見ると lighttpd というのがあったので、lighttpd start とやるとWebアクセスができた。
chkconfig はデフォルトで入っていないので、opkg install chkconfig でインストールしたが、chkconfig –add lighttpd を実行するとエラーが出る。
[code lang=”bash”]
service lighttpd does not support chkconfig
[/code]
/etc/init.d/の起動・停止ファイル lighttpd の #!/bin/sh へ下記のようにコメントを追加する。
[code lang=”bash”]
#!/bin/sh
# chkconfig: 345 98 20
[/code]
再度 chkconfig –add lighttpd を実行。今度は上手く行った。ちゃんと chkconfig lighttpd on で自動起動にしておく。
pythonの足りないライブラリを入れる。
- Intel 標準のイメージは、Python のライブラリはフルフル入っているけど、opkg のアップデートができない。
- opkg が使えるミニマムイメージは opkg のアップデートはできるが Python のライブラリが足りない。
中に入っているのは Python 2.7.3。なので、足りない標準ライブラリを無理やり入れる。
[code lang=”bash”]
wget –no-check-certificate https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgztar zxvf Python-2.7.3.tgz
[/code]
先ず Python2.7.3 のフルセットをダウンロードして展開。 Lib 以下を /usr/lib/python2.7/ にコピーすればOK。
Timezoneの設定
/etc/localtime がシンボリックリンクになっている。
Asia/Tokyo にしたいときは /usr/share/zoneinfo/Asia/Tokyo にシンボリックリンク先を変更する。
[code lang=”bash”]
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[/code]
SFTP がつながらない。
標準の設定だと ssh はつながるけど sftp が”Connection closed by server with exitcode 127” のエラーでつながらなかったので、/etc/ssh/sshd_config の以下の設定を変えて sshd をリスタートする。
[code lang=”bash”]#Subsystem sftp /usr/lib/openssh/sftp-serverSubsystem sftp internal-sftp[/code]
lighttpd から python を使えるようにする。
How to support cgi on lighttpd 辺りを参考にする。
添付されている mod_cgi.so.zip をダウンロード・展開して、/usr/lib にコピーする。
/etc/lighttpd.conf を開いて以下を修正。参考にしたサイトとはちょっと違う。なぜなら うっとこ の Galileo には php も perl も ruby も入っていないから。
[code lang=”python”]
# files to check for if …/ is requested
index-file.names = ( “index.php”, “index.html”,
“index.htm”, “default.htm”,
“index.cgi”, “index.py” ) # index.cgi と index.py を追加する。
server.modules = (
:
“mod_cgi”, # mod_cgi をアンコメントする。
:
cgi.assign = ( “.py” => “/usr/bin/python”, # .py と .cgi を追加
“.cgi” => “/usr/bin/python” )
[/code]
/etc/init.d/lighttpd restart で Python スクリプトが動くようになる。
容量を増やす
ガリレオは、ファイルシステムイメージ(image-full-clanton.ext3)を使用していて、このサイズを変更することで容量を増やすことができるが、インテル提供のLinuxイメージはサイズ変更のユーティリティが含まれていない。
別のLinuxコンピュータにアクセスできる場合、ファイルシステムのサイズを変更するには、以下の手順で行える。(自分は Raspberry Pi + Debian を使用した。)
microSD の USBアダプタを使って、ポートに指すと
[code lang=”bash”]ls /dev/sd*[/code]
で、/dev/sda と /dev/sda1 が見える。 sda1 だろうとあたりをつけて
[code lang=”bash”]mkdir /mnt/usbmount -t vfat /dev/sda1 /mnt/usb[/code]
ls /mnt/usb でファイルが見えれば OK。
1. 最初のファイルシステムのチェック(fsck)を実行する。
[code lang=”bash”]fsck.ext3 -f /mnt/usb/image-full-clanton.ext3[/code]
2. ファイルシステムのサイズを変更するため resize2fs を実行する。第2引数(この例では409600)はキロバイト単位で新しいファイルシステムのサイズを指定する。
[code lang=”bash”]resize2fs /mnt/usb/image-full-clanton.ext3 4194303[/code]
再起動後 df で見ると 76% 使用していたのが、14% 使用になった。
参考:https://communities.intel.com/thread/46019