2014年7月5日土曜日

EclipseでRaspberry Pi

EclipseでRaspberry Piの開発ができるよう環境を整備。EclipseはRaspberry Piカーネルクロスコンパイル環境を整えるで作った、VMwareのクロス環境にインストール。

Development Environment for the Raspberry Pi using a Cross Compiling Toolchain and Eclipseによると、apt-get eclipseでは最新版が入らないようなので、同ページに従って手動インストール。

pi@ubuntu:~$ sudo apt-get install openjdk-7-jre

ブラウザから、Linux 32-bit用Eclipse IDE for C/C++ Developersを入手。
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr

pi@ubuntu:~$ tar -xvzf Downloads/eclipse-cpp-kepler-SR2-linux-gtk.tar.gz -C ~/


eclipseを立ち上げると、メニューが表示されない。どうもUbuntuの既知の問題らしいので、下記のページの通り対策。

Ubuntu13.10にeclipseを入れたらメニューバーが表示できないときの対応

pi@ubuntu:~$ sudo pico /usr/local/bin/eclipse


#!/bin/bash

export UBUNTU_MENUPROXY=0

/usr/local/eclipse/eclipse


pi@ubuntu:~$ sudo chmod +x /usr/local/bin/eclipse


さらに続けて、ccHelloプロジェクトを作ってみる。なぜか、"g++ not found in PATH"というエラーメッセージが出るので、

pi@ubuntu:~$ sudo apt-get install g++

しておく。buildすると、

pi@ubuntu:~$ file workspace/ccHello/Debug/ccHello 

workspace/ccHello/Debug/ccHello: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=6cf90c106d9d701ef8279e0722f95e198bdecb8f, not stripped

みたいな感じで、armの実行形式ができている。あとは手順に従ってRaspberry Piに転送。
 

Raspberry PiでPX-S1UD

ここを参考に、PX-S1UDを使えるようにします。

http://cgi20.plala.or.jp/~sat/?x=entry:entry131128-172807

前回構築したクロス環境を使います。

pi@ubuntu:~$ pico linux/drivers/media/usb/siano/smsusb.c

635行目あたり、

        { USB_DEVICE(0x19D2, 0x0078),
            .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD },
+        { USB_DEVICE(0x3275, 0x0080),
+            .driver_info = SMS1XXX_BOARD_SIANO_RIO },
        { } /* Terminating entry */

あとは以前の手順でビルド&SDカードに書き込みします。

pi@ubuntu:~$ cd linux
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules
pi@ubuntu:~/linux$ sudo make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules_install
pi@ubuntu:~/linux$ sudo cp /media/pi/BOOT/kernel.img /media/pi/BOOT/kernel-backup.img 
pi@ubuntu:~/linux$ sudo cp arch/arm/boot/Image /media/pi/BOOT/kernel.img


PX-U1SDを接続してブート、以下のメッセージが出ればOK。

i@raspberrypi ~ $ dmesg | grep Siano
[    7.525790] DVB: registering new adapter (Siano Rio Digital Receiver)
[    7.541863] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
 

2014年6月29日日曜日

Raspberry Piの初期設定

NOOBSでいきます。

(1) 必要ファイルのダウンロード

まずは、ここから、NOOBS_v1_3_8.zipをダウンロード。
http://www.raspberrypi.org/downloads/

SD Formatter 4.0も用意。
https://www.sdcard.org/downloads/formatter_4/

(2) SDカードの準備

SDカードは8GByteでもいいみたいだけど、ここは奢って、16GByte。手持ちのClass 6でもやってみたけど、とても遅いので、Class10を調達。


SD Formatterで、SDカードをフォーマット。パラメータは特に指定する必要なし。NOOBS_v1_3_8.zipの中身をWindowsで単純にSDカードにコピー。

(3) Raspberry Pi 起動

Raspberry PiにEthernet、電源を接続。初期設定時だけは、HDMI, マウス、キーボードも接続。

 
Raspbianを選択してインストール。インストール中に言語設定を日本語に。
 

 
インストールが終わると、raspi_configが立ち上がるけど、コンソールが日本語化されていないなどいろいろと問題があるので、とりあえず何も設定せず終了。ifconfigでIPアドレスだけ確認しておく。これ以降は、マウス、HDMI、キーボードは不要。
 

 
Windowsマシンから、TeraTermでSSHログイン。user: pi, passwd: raspberry。
 
心配ならTeraTermでraspi_configしてもよいが、とりあえず初期設定値で問題なさそう。以上で初期設定完了。
 
 

Raspberry Piカーネルクロスコンパイル環境を整える

http://www.raspberrypi.org/documentation/linux/kernel/building.md
に従って、カーネルクロスコンパイル環境を準備。

Ubuntuがいいみたいなので、VMware上に構築。32bit版の方が都合が良さそうなので、
https://www.ubuntulinux.jp/download/ja-remix
から、ubuntu-ja-14.04-desktop-i386.isoを入手。

日本語キーボードが使えるよう、GUIの右上キーボード型のアイコンから設定。
カーネルソースとクロスコンパイラをgitからとってきてmake。

pi@ubuntu:~$ sudo apt-get install git
pi@ubuntu:~$ git clone https://github.com/raspberrypi/tools
pi@ubuntu:~$ git clone --depth=1 https://github.com/raspberrypi/linux
pi@ubuntu:~$ cd linux
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- bcmrpi_defconfig
pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-

インストールは、Raspberry PiのSDカードをVMwareに直接接続して書き込み。

pi@ubuntu:~/linux$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdd      8:48   1  14.9G  0 disk 
├─sdd1   8:49   1   1.4G  0 part 
├─sdd2   8:50   1     1K  0 part 
├─sdd3   8:51   1    32M  0 part /media/pi/SETTINGS
├─sdd5   8:53   1    60M  0 part /media/pi/BOOT
└─sdd6   8:54   1  13.3G  0 part /media/pi/root

SDカードはこんな感じでマウントされているので、/media/pi/rootに各種ファイルをインストールし、/media/pi/BOOTにブートイメージをコピーする。

pi@ubuntu:~/linux$ make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules
pi@ubuntu:~/linux$ sudo make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/pi/root modules_install
pi@ubuntu:~/linux$ sudo cp /media/pi/BOOT/kernel.img /media/pi/BOOT/kernel-backup.img 
pi@ubuntu:~/linux$ sudo cp arch/arm/boot/Image /media/pi/BOOT/kernel.img

SDカードをRaspberry Piに戻せば完了。
 

raspberry piどこが最安値?

amazonは4,520円、送料無料。
http://www.amazon.co.jp/Raspberry-Pi-Type-B-512MB/dp/B00CBWMXVE/ref=sr_1_1?ie=UTF8&qid=1403999792&sr=8-1&keywords=raspberry+pi

あきばお~は4,510円、送料無料。
http://item.rakuten.co.jp/akibaoo-r/hm000020546/

あきばお~で買ってみたけど、よく調べると、RSの方が安いみたい。
http://jp.rs-online.com/web/generalDisplay.html?id=raspberrypi&redirect-relevancy-data=636F3D3326696E3D4931384E4B6E6F776E41734D504E266C753D6A61266D6D3D6D61746368616C6C26706D3D5E5B5C707B4C7D2D2F5D2B2426706F3D313326736E3D592673723D52656469726563742673613D2F67656E6572616C446973706C61792E68746D6C3F69643D72617370626572727970692673743D4B4559574F52445F53494E474C455F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D72617073626572727926&sra=oss&relevancy-data=636F3D3326696E3D4931384E4B6E6F776E41734D504E266C753D6A61266D6D3D6D61746368616C6C26706D3D5E5B5C707B4C7D2D2F5D2B2426706F3D313326736E3D592673723D52656469726563742673613D2F67656E6572616C446973706C61792E68746D6C3F69643D72617370626572727970692673743D4B4559574F52445F53494E474C455F414C5048415F4E554D455249432673633D592677633D4E4F4E45267573743D72617073626572727926

結局、あきばお~で買いました。