ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示
ラベル Raspberry Pi の投稿を表示しています。 すべての投稿を表示

2025年3月16日日曜日

何か知りませんが、しばらく投稿できなくなってました; 久しぶりですが、現況ですがRapberry Pi5買って遊んでます。本当はファンが必須なんですが、某国の怪しいサイトで、アルミダイキャストのケースで放熱するよ~、というケースをつい買ってしまいまいました。結構調子がよく、それで使い続けてます。やっぱり、ファンはきらいです。(M1のMac Book Airを思わず、最初にポチって気に入ってます。もうあんなファンなしのPC出してくれないよな~)

2018年9月9日日曜日

Raspberrry Pi3にOpenSUSE(64bit)をインストール

Raspbery Pi3のRaspbianでしばらく遊んでいましたが、折角CPUが64bitアーキテクチャになったというのに、Raspbianは32bitのままというのが寂しくなってきました。折角なので、64bitのOSを入れましょう。

1.適当なOSを探す
ぐぐってみるといくつかでてきました。ただ個人的にやられていそうな方は今後の継続性が怖いのと、一番例が多く見つかったOpenSUSEにすることにしました。(コンサバにいきます)
OpenSUSEのHPにいくと、頻繁に更新がされているらしく、DLしたいものをクリックしても、「リンクがありません」と言われたりします。しかしそこはしょせん単なるFTPサーバーみたいなものですから、「リンクがありません」と言われたURLから、目的としているファイル名だけ削除して、当該ディレクトリ内一覧を表示させ、より新しいバージョンが入っているのを見つけてDLしてきました。私がDLしてきたのは、Tumbleweed版のXFCE版です。(LXQt版というのもありましたが、どちらがいいかはまた時間があったら試してみます)
注意しないといけないのは、多数のパッケージが入っていますが、その中にRapberrry Pi以外のARMベースのものも混じっているらしいということです。ファイル名の中にきちんと"raspberry"の文字が入っているのをDLしてきましょう。(最初、これでなんでbootしないんだと、何回か失敗しました)

2.DLしたOSイメージをSDカードに焼く
この辺りは他の人が多数解説していますので、省きます。一つだけ注意があります。他の方はもう当たり前だと思って、書いていてくれませんでしたが、SDカードの初期化は専用アプリの"SD Card Formatter"を使いましょう。Windows標準でフォーマットさせると、32GBのSDがなんかちっこい2つのドライブにフォーマットされて、後からのOS image書き込みがうまくいきません。(Windowsは標準のFATでフォーマットしようとするんで、最近の32GB等の様な大容量には対応できていません)
2年くらい前にRaspberry Pi2を初めていじったときは、一生懸命調べてやってたんですが、すっかり忘れていました。

3.OpenSUSEの起動
後はもう特に注意点はありません。最初の起動に時間がかかるのはいつものことです。(設定諸々やっていいたり、SD内の使える領域を全域にしたりの作業をしていますから)

4.Wi-Fiの設定
さて、ここからが今回の本題です。Raspberry Pi3には折角内蔵のWi-Fiがついています。(Broadcom BCM43438のチップがついています)
OpenSUSEの記事を色々みていると、みなさんかなり苦労しているようです。とりあえず標準的な方法として、設定ツール"YaST"→"Network Setting"から試してみます。
画面の表示から、とりあえず最初の起動で、BCM43430 WLAN CArdの文字がでてきています。(チップの認識に問題があるのか、それとも製造ロットで違いがでた?)
これならYaSTで設定できるかと思い作業を進めていきましたが、どうもうまくいきません。YaSTで設定していて、最後のOK押すと画面に右下にメッセージで「無線ネットワークが認識されました」みたいなものが出てくるんで、成功したかと思うとだめ。ifconfigコマンドで確認してみると、wlan0は認識していますが、DHCPのアドレスが割り当てられていません。
そもそも、YaSTのwi-fiのSSIDと暗号key設定のところのIFが分かりにくいんですよね。keyのnegotiationで失敗している可能性が大きいです。
そこで今度は別のHPをぐぐると、以下のファイルにSSIDとkeyを登録しろとの情報が。

   /etc/wpa_supplicant/wpa_supplicant.conf

ここのファイルの最後に以下を追加しろとありました。(でもYaSTはここに何も書いていてくれないんですが…不安がよぎります)

network={
    ssid="調べたSSID"
    psk="WiFiのパスワード"
}

まあダメ元でと試してみましたが、やはりkeyのnegotiationに失敗とのログが残ります。少し考えて、上記の例との違いに気づきました。例ではssidやpskの前にインデントがしてあります。私は何も考えずにTabで行ってしまいましたが、もしかしてTabはまずかった?Tabを削除してマシンを再起動し、やっとWi-Fiがつながりました。

5.総論
OpenSUSEと言えば結構有名どころなんですが、まだ落ち着いているとはいいがたい状況ですね。特に今回のWi-Fiまわりは皆さん苦労しているようで、他のHPのデータを見るたびにbroadcomのライブラリ名称や個数が変わってきたりで苦労している後が見えます。(このあたりのドライバ回りまで64bitにするのが大変なので、本家がなかなか対応できないんでしょうが)

後、OpenSUSEとRaspbianを使った感想ですが、一言「OpenSUSE遅すぎ!」もうイライラしてくるレベルです。Raspbianの時は、最初のPi2の頃からは大幅に改善されていて「使い物になるじゃん」と感じたのとは大違いです。Graphic回りがまだまだ作りこみに問題があるのかわかりませんが、もう少し様子見した方がよさげです。

2014年10月26日日曜日

Rapiro シリアル設定変更でトラブル

前回、そのままにしておいたシリアル設定ですが、やはりまずそうです。デフォルトでシステムコンソール入出力になっているせいか、時々Raspberry Piからのコマンドを受け取らないようです。

仕方ないので、システムコンソールをきる設定を行います。やることは簡単です。(そのはずでした。。。)

まず/boot/cmdline.txtが最初は以下の様になっています。

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

これを以下の様に変更します。

dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

次に、/etc/inittabの最後の行、以下をコメントアウトします。

TO:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

念のため、cmdline.txtの方はoriginalを残しておきます。(設定ファイルをいじるときは必須です)さて、rebootしてみますが、リモートログインできなくなりました。(;_;)何か設定ファイルの編集をミスったようです。何度かrebootを繰り返した後、あきらめてRapiroの頭部を分解、Raspberry Piを引き出します。キーボードとディスプレイを接続して電源を入れてみると、案の定起動中に止まってます。

さて、設定ファイルをまず元に戻さないといけないのですが、家にあるPCのうち、直接SDカードのI/Fをもっているのは1台のノートPC(Windows7)だけ。普段はUSBで接続するマルチアダプタで操作していたんですが、これだとUbuntuもMacも認識してくれませんでした。ノートPCで調べてみても、Windowsだと一部のエリアしか見ることができず、万事窮すの状態。これは最後の手段、SDカードを最初のrasbianのイメージで書き換えてはじめから設定し直しかと覚悟しましたが、ノートPCにはVMPlayerでUbuntuが入っていました。「これでSDカードを修正できないか?」かすかな期待を元に試してみると、うまくマウントできました!そこで2つの設定ファイルを元に戻し、無事起動できるのを確認、改めて編集したファイルを調べてみたらcmdline.txtの方でタイプミスと、やはり「0」(数字の0)と「O」(大文字のO)の勘違いがありました。(やな予感したんだよな〜)

再度設定し直して、リモートログインに問題がないことを確認してRapiroに装着、動作を確認しましたが、raspberry Piからのシリアル出力の受信ミスが発生しなくなるのを確認しました。

やはりシステムの設定ファイルを触るのはこわいですね。

2014年10月19日日曜日

RapiroにRaspberry Piを搭載

まずはRasbianのdisk image最新版をDLしてきます。2014-09-09版でした。zipファイルをDLして解凍しようとしますが、なぜかエラーがでてきます?DLやりなおしてもダメ。しばらくして、解凍しているPCがWindows7(32bit)だからダメなんじゃないかと思いつき、Windows7(64bit)でやってみたらうまくいきました。(おそらくimageからzipつくったのがLinuxの64bitなんだろうな・・・)


最初の起動でraspi-configが表示されます。まずはこのtool自身のUpdateをと思い、メニューを見ると、Updateが見当たりません???代わりに”Overclock”なるメニューになっているような。よく見ると、Advance optionがありましたので、その中にいくとUpdateがありました。


ついでにSSHのenableとhostnameの設定もあったので、そこで済ませました。
またimageを書き込んだだけのSD-cardですと使える領域が最低限しかありません。本来の容量を使えるよう、ちゃんとexpand filesystemしておいてあげましょう。


その後、念のためシステムを最新の状態にしておきます。


$ sudo apt-get update
$ sudo apt-get upgrade


次に無線LANが使えるようにUSB型式のBuffaloの小さいやつを設定します。
(これはあちこちにのっているので、詳細ははぶきます)


無線LANが使えるようになったところで、avahiをインストールします。通常の家庭ではプロバイダーからのDHCPがほとんどだと思います。しかしこれだとIPアドレスが何になるかわかりません。raspberry piは普通ディスプレイとか接続せずに使うので、LAN経由のsshでログインしたいところですが、毎回IPアドレスが変わってしまっては大変です。ホスト名でアクセスしたいところですが、いちいちDNSをたてるのも大変です。
そこでBonjour互換のavahiというサービスをインストールします。BonjourはAppleの提唱するネットワーク上のサービスを自動的に検索し利用できるようにするサービスです。これを使えばDHCPのマシンでもホスト名でアクセスできるようになります。


$ sudo apt-get install avahi-daemon


やることはこれだけです。(hostnameは先にraspi-confで設定してあります)その後、他のPCからpingコマンドで確認できればOKです。


$ ping rapiropi.local


今回はrapiroに搭載するつもりだったので、hostname=rapiropiとしました。urlはその後ろに”.local”をつけたものになります。
なお他のPCでこれを使おうと思うと、Macは当然デフォルトで入っているから問題ありませんが、Windowsの場合、iTunesをインストールすれば使えるようになります。(iTunesなんてインストールするのはいやだ!という方もいるかもしれません。一応単独でBonjourだけインストールするパッケージはiTunesのパッケージ内に入っているそうです)


実際にRAPIROに搭載してみます。ケーブルは元々それ用のものが頭にもってきてありますから簡単です。(頭部には固定用の簡易なツメもあります。なお、基板の穴をとおすノッチがRAPIROにはあります。しかし最初期のRaspberry Piにはこの穴(おそらく基板固定用のネジ通しの穴っぽい)がないものがあるようです)
接続するピンの写真はRAPIROのkickstarterのHPにあります。そこにはあいかわらず何も説明がありませんが、どうもUARTに電源供給とともに接続しているらしいです。デバイス名は、/dev/ttyAMA0になります。ただこれはデフォルトではシステムのコンソール入出力になっており、ボーレートも576000bpsではありません。そちらの設定を切った方がいいんでしょうが、python等プログラムから出力するにはそのままでも問題ないようです。(もしかしたら動作が不安定になるかもしれません。すこし試してからまたレスします。)
このUARTはRaspberry PiのGPIOを使っていますが、これの利用にはroot権限が必要です。プログラムの実行にはsudoが必要になります。

とりあえずリモートで前進させることができたので、いよいよ本格的にプログラムをどうするか検討に入ります。

2014年5月7日水曜日

Raspberry Pi:cronの設定(その2)

さてcronで毎日決まった時間に動くようにしたプログラムですが、うまくいかないものがあります。/var/log/syslogに設定した時間になるとプログラムが起動したと記録は残るのですが、1分くらいすると異常終了しています。
/var/log/syslogを見ると、異常終了したと思われる時間に以下の様なログが残っていました。

May  7 18:46:52 raspberrypi /USR/SBIN/CRON[3380]: (CRON) info (No MTA installed, discarding output)


何かよくわかりませんが、”MTA”って確かメーラーのことだよね?なんかcronが異常をメールで送ろうとした?
調べてみると、Raspberry Piはデフォルトではメーラーが入っておらず、postfixを入れるといいよ、という記事が多くありました。

$ sudo apt-get install postfix

ただ記事を見てると、インターネットで使うための設定(アカウント名、パスワード等)が書いてありますが、こっちはそんな気はありません。上記コマンドで初めてpostfixをインストールすると初期設定が動き出してくれて、そこでlocalを選択できました。(インターネットなんかする気ないよ、ということ)
これで無事、異常終了してたプログラムも何が問題があったかをlocalでメールしてくれて、その続きの処理をしてくれるようになりました。(要は、最初に問題が見つかりメール送ろうとしたけど、それが送れなくて、プロセス自体が止まってしまっていた。問題は単なるワーニング・レベルで、無視してくれればよかった。)

2014年5月6日火曜日

Raspberry Pi:cronの設定

Raspberry Piは電源もたいしてくわなくて、ファンがなくても動作OKです。更にHDDがなくてもLinuxが動作するということで、1日中電源Onにしておくサーバーにするのにもってこいです。ただ外部記憶がmicroSDだけで(自分は32GBを使っています)、ファイルサーバーには使えませんし、CPUも大した性能がなく、Ethernetの口も基本一つしかつていませんから、Firewallにするわけにもいきません。
まあ何に使うかはともかく、電源入れっぱなしのマシンにして何がしかのサービスをさせようと思うと、定期的にプログラムを起動するための設定、crontabをちょっと調べてみました。

自分がcrontabのこと調べてた時は、/etc/crontabに定期的に動かしたコマンドを登録して、crondデーモンを再起動したもんですが、今はだいぶ変わりましたね。(便利になった)

  1. crontabの登録
  2. これは簡単で、以下のコマンドでOKです。
    $ crontab -e
    /etc/crontabはroot権限がないと編集できませんが、今はユーザー毎にcrontabが存在しており、それを自由に登録・削除できます。/etc/crontabはシステムに一つしかないファイルですので、ここにコマンドを登録するときは、当該コマンドを実行するユーザーも設定しないといけませんが、今は個々のユーザーがcrontabを持てるので、、上記コマンドで設定するときはユーザーの設定はいちいち必要ありません。(当然、設定しているユーザー権限で動作しますから)
    尚、editorはデフォルトで"nano"が動きますが、はっきり言ってこれは使いにくい!せめてviかemacsでやりたいところです。crontabの説明を調べると、起動時にどれを使うか問い合わせてくれるとか、後で変更できるとありますが、Raspberry Piではできないようです。従って汎用的な方法として.bashrcに以下の設定を追加します。
    EDITOR=emacs
    export EDITOR

  3. crontabの確認
  4. 以下のコマンドで自分用のcrontabの登録状況を確認できます。
    $ crontab -l

  5. crontabの場所
  6. さて肝心の個々のユーザーのcrontabがどこにあるかですが、以下の場所です。
    /var/spool/cron/crontabs/(ユーザー名)
    というファイル名で保存されています。crond自身は1分程度毎にこのファイルの変更状況を確認しているようで、特にcrondを再起動しなくても変更は反映されます。(そもそもcrontabは分単位でしかプログラム動作を設定できないので、これで十分です)
注意として、実行したいコマンド(特に自分で作成したプログラム)、ファイル等を指定するとき、なるべくフルパスで行った方が安全です。cronで当該コマンドが実行される時の環境(動いている時のカレントパスがどこなのか等)がよくわからないので、できるだけ依存性がないようにしておくべきです。

追記:
なぜcrontabの設定なんか調べていたかというと、Raspberry Piをネットラジオの録音サーバー(特定の番組を予約録音して、結果をmp3ファイルにする)にしたてようと目論んでいるんです。crontabで留守録音の登録をしてみて、うまくいきました。某サイトに録音スクリプトが公開されていたので(注:著作権的にグレーな気がしますので、詳しい場所は伏せておきます。探せばすぐに見つかります。)、それを使いましたが、以下のパッケージが必要で、apt-get installですべてインストールしました。
swftools
rtmpdump
libxml
wget
ffmpeg
lame
ちょっと困ったのが、1時間ほどの録音をした後、mp3変換にffmpegが動いているのですが、これが40分くらいかかってしまいました。サイズも56MBと結構なサイズになりました。とりあえず原理的には動くことがわかったので、ブラウザで録音設定ができるようなフロントエンドや、録音データを簡単にタブレットに転送できるような方法を考えないと。

2014年4月12日土曜日

Raspberry Pi 監視カメラの実験

昨秋、カメラモジュールを買ってから少し試しただけでそのままにしてましたが、ちょっと監視カメラの実験をしてみました。

やることは単純で、

  1. 静止画撮影コマンドをプログラムで定期的に起動
  2. ffmpegで動画にする

これだけです。

1.プログラム作成
色々試しながらやるのでpythonにて作成してみました。30秒毎に1枚、1時間記録してみます。(最初はキャプチャした時間をファイル名にするようにしてましたが、それだと動画にするのが大変だったので単純にカウンタにしました。)

capture.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import threading
import time
import datetime
import subprocess

# 画像保存エリア
cabstr = 'Cab/'

class test(threading.Thread):
    def __init__(self, idx):
        threading.Thread.__init__(self)
        self.setDaemon(True)
        self.i = idx

    # captureに10秒くらいかかるので連続呼び出しには注意!
    def run(self):
        # print "Start."
        # 日時を表す文字列の生成
        # filename = datetime.datetime.now().strftime(u'%Y%m%d%H%M%S') + '.jpg'
        # print filename
        # 0埋め、後ろから4文字とる
        filename = ("00000000" + str(self.i))[-4:]
        # カメラでのキャプチャコマンド(640x400)
        cmd = 'raspistill -w 640 -h 400 -o ' + cabstr + filename + '.jpg'
        # cmd = 'ls -F'
        subprocess.call(cmd, shell=True)

if __name__ == "__main__":
#    t = test()

    for loop in range(120):
        t = test( loop )
        t.start()
        time.sleep(30)


24H動かすなら、本当はキャプチャしたファイルを転送することも考えないといけないんですが、そこまで本格的なことはとりあえず考えてないので、Raspberry Pi本体のSDに記録です。(32GBをのせてます)メモリを喰いたくないのと、それほど詳細な画像も必要ないので、640x400でキャプチャしてみました。
ちょっと注意が必要なのが、プログラムでは静止画キャプチャ(スレッド)を30秒毎(正確にはスレッド起動時間分だけだんだん遅れていくんですが)に起動しています。キャプチャにはRaspberry Piが提供しているコマンドをそのまま使っていますが、これが結構時間がかかります。(数秒くらい。下手すると10秒近いこともある。)最初、「5秒間隔で試すか」とやってみたら、なんかmmalエラーとかでてきて意味が分かりませんでした。(ぐぐっても関連するのはヒットしませんでした)
これ、raspistillコマンド実行中に別スレッドが起動して更にraspistillコマンドを実行するとリソースの衝突が起きていることを示しているエラーのようです。スレッドの起動間隔を10秒以上にしたらエラーがでなくなり、うまく動くようになりました。

2.動画にする
ここはffmpegのコマンドで静止画を動画にするだけです。(さすがにこれは別PCのUbuntuでやりました)

$ ffmpeg -r 2 -i %04d.jpg -vcodec mjpeg  out.mp4

(Ubuntuでは最近"avconv"に変わったとも聞きましたが、両方入ってました。2枚/秒のレートで動画にしてみました。(1時間分を1分の動画に短縮することになります)「-vcodec」オプションが怪しい気がしますが、とりあえずこれで変換できたようです。)


3.おまけ
今回はリモートログインしたままで実行しましたが、実際に長時間監視するときはそうもいきません。バックグラウンドで動かして、ログアウトしたくなります。そんなときは以下のようになります。

$ nohup ./capture.py &




2013年11月9日土曜日

Raspberry Pi カメラモジュール設定

さてせっかくなんで、簡単な監視装置にしてみます。最初は自動起動にしてしまえばいいと思ったんですが、せっかくなのであまっていたUSB WLANのモジュール(バッファロー:WLI-UC-GNHP 11gが可能です)を使えるようにし、キーボードとかはつけずにリモートログインでコマンド実行するようにしてみました。装置の外観は以下の様な感じです。
カメラからのハーネスは、ケースのLANソケットの隙間から表にだし、USB WLANのアンテナ部分に借り止めでつけてあります。下の黒いのがUSBパワーを供給するバッテリーで、これで好きなところ(ただし、WLANが届くところ)に設置できます。

WLANの設定ですが、以下のようになります。

1.WLANを有効にする
以下の設定ファイルを2か所修正します。

$ sudo vi /etc/network/interfaces

iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
         ↓
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

2.無線LANの接続設定
次に親機と接続できるよう、SSIDやキーを設定してやる必要があります。ファイルは、/etc/wpa_supplicant/wpa_supplicant.confです。rootになって以下のコマンドをじっこうします。

# wpa_passphrase SSID pass >> wpa_supplicant.conf

SSID:親機のID
pass:使用しているセキュリティに応じたキー

こうすると以下のような感じになります。

pi@raspberrypi /etc/wpa_supplicant $ sudo cat wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="***335786826CE295923343F371E9100"
        #proto=wpa2
        #key_mgmt=WPA-PSK
        #pairwise=TKIP CCMP
        #group=TKIP CCMP
        psk="****ba48855fb70911eb244034920f6a4440d314b341b604891569796a565"
        #psk=****d233afa24051e209237e4ec79b8659d32f7a650e4bb1a0d08720f4d759e
}

SSIDやキーは一部かくしてあります。#のコメント行は基本的に後から自分が追加したものです。もしかしたら必要かもと調べたサイトにあったんですが、自分の場合は必要ありませんでした。それでも最初なかなか接続ができず、なんでだろうと親機のログをみてみるとDHCPのアドレス発行まではいっているようです。どうもキーの設定が悪く、うまく接続できないようです。実は、psk行が2ラインありますが、最初は1行目(赤字部分)がコメントになっていて、2行目が有効になっていました。しかし親機の設定をみるとコメントにしてあるほうが設定してあるキーです。理由がわかりませんが、そちらを有効にしたらつながるようになりました。

これで準備万端です。さっそくベランダに置いてみて、外の風景を撮影してみました。快適に動きます。

2013年11月8日金曜日

Rapberry Pi カメラモジュール購入

今年の5月に発売になっていて、気にはなっていたんですが注文してみました。Rapberry Pi本体を購入したときはRS Componentsのサイトから注文したらイギリスからの輸入(代金はユーロ、レートは発送時のものという条件)になってしまい、クレジットカードの登録がいやだったんでPayPalで注文しましたが、今度は日本のサイトで注文受け付けてくれるようで、代金引換でOKでした。
代金も日本円で表示されたので在庫があるのかなと思ったら、翌日に届きました。そこでさっそく試してみました。

 届いた箱です。チープです。(2,400円ですから。説明サイトだと白箱で、Raspberryの印刷もありませんでした。)
 箱の中に入ってたのはこれだけ。静電防止用の袋にモジュールが入れてあるだけ。袋は封もしてありませんでした。説明書はなし。箱に説明用のURLが書いてありました。(下の白い箱は、Raspberry Piを購入した時、一緒に購入した専用ケースです。)

説明用サイトを見て、接続。コネクタはEtherのソケットのすぐ後ろです。力加減は、慣れが必要かと。なにせスマホが流行ってからこっち、やわいコネクタ増えましたからね。端子ピッチはかなり大きいので、それほどビビるほどではありませんが、初めてこの種のコネクタ触る人は注意が必要だと思います。
 sudo raspi-configでカメラを有効(Enable)にしますが、config画面のカメラ設定の位置が説明用サイトと違いますw(まあこれくらいではめげません。メニューの位置が階層構造になって、隠れてないだけマシ)
静止画の撮影例です。2592x1944と、モジュールのサイズからは信じられないくらいの高精度の絵がとれました。自動焦点のようで、静止画の撮影コマンド実行しても、1,2秒焦点を合わせようとしているような画面が表示されました。










おそらくスマホ用のカメラモジュールなんでしょうが、すごいですね!こんなのが安価にでまわるとは。基盤もろだしなんで、使うときにケースや固定方法を考えないといけません。
何に使おうかというと、Raspebrry PiがUSBパワーで動くので、電源On自動起動で一定時間毎に静止画を監視用に撮影するようにしようかと企んでいます。ノートPCも動かせるUSBパワーの外部バッテリ持ってるんで、それ使えば一日くらい動くんではないかと♪(本当は電源確保して、ネット接続とか考えるんでしょうが、インフラ整備がめんどくさい。元のコストが安いので、簡単な監視カメラ程度になれば十分かと思います。)

2013年2月11日月曜日

Raspberry Pi ベンチマーク

無事動くことがわかったRaspberry Piですが、処理速度はどんなもんでしょう。まあ大した期待はしてませんが、一応ベンチマーク(UnixBench 5.1.3)のDhrystoneとWhetstoneを実行してみます。

比較対象として、先日AMD64に入れた、CentOS6.2と1,2年くらい前に測定したCore2Duo(結構、早めのやつ)の3つです。


予想通りの結果ですね。Raspberry PiのARMチップは一応浮動小数点の回路があるんですが、ARMv6と若干古めのアーキテクチャです。(コストを考えて、v7はあきらめたとか)
でも、Nexus7(Tegra3)にてPCで作成したJavaアプリ動かしてみたら、同じくらい(50%以上の計算速度くらいの体感)だったのを考えると、やっぱり値段なりの性能のようです。

後、このベンチをCentOSでやろうとしたら、複数の計測プログラムを連続して実行するツールがPerlで書かれているんですが、ライブラリがないと怒られました。調べてみたら、CentOS(RedHatもなんだろうか?)のPerl実装はライブラリ関係があまり入っていないとか。なんでそんなことになっているのかわかりませんが、以下のコマンドでPerlのライブラリを後からインストールできます。

# yum install perl-Time-HiRes
# yum install perl-Digest-SHA


コアモジュール一式をインストールする場合

# yum install perl-core

2013年2月2日土曜日

Raspberry Pi 電源On

さて、それでは早速周辺機器をつないで電源を入れます。ところで一緒にケースを頼んで入れたんですが、そうすると基板上のステータス表示用の4,5個あるLEDが見えません。問題が起きなければいいんですが、Web見てるとたまにSD上のimageがおかしくなってシステムが起動しなくなり、LEDが点滅して異常を表示するとか。そういうときに困ります。(RSコンポーネンツには透明なケースは見当たらなかったし)

初回はいきなりraspi-configが起動してくれますが、2回目からは手動のようです。(当然、root権限必要ですから、$ sudo raspi-config です。)

何はともあれ、「update」です。(このtool自体の更新です)結構、時間がかかりました。
次に、何はともあれ「expand-rootfs」で使えるSDカードの容量を増やさないと。再起動時に容量を増やしてくれます。(当然、時間はかかります)

あと、rootのパスワードは設定されていません。なのでno-passwordでsudoコマンドは使えますが、suはできません。気持ち悪かったら $ sudo passwd でrootにパスワードを設定してやりましょう。

キーボードはUS配列なのでそのままの設定で、次は時計と日本語の設定ですな。おっとそうそう、まずはシステムの更新、apt-get updateとupgradeしとかないと。

日本語の設定
まずは日本語フォントをインストール(何種類もありますが、適当に最低限必要そうなものを)



$ sudo apt-get install fonts-ipafont ttf-vlgothic xfonts-intl-japanese xfonts-intl-japanese-big

次に日本語入力のパッケージをインストールします。

$ sudo apt-get install ibus-anthy

Ubuntuなんかで採用されてるやつです。起動方法は日本語キーボードをつけてるなら”半角/全角”キーで、USキーボードならCTRL+Spaceです。
次にシステムの文字コード設定です。

$ sudo dpkg-reconfigure locales

これで起動する画面(数秒かかるので注意)に文字コードのリストが出てくるので、デフォルトのen_GB.UTF-8以外に、ja_JP.EUCとかja_JP.UTF-8を追加。ここではja_JP.UTF-8をシステムのロケールにしてしまう。(本当ならen_US.UTF-8とかのほうが安全だろうけど。なにせエラーなんかの表示が出るとき、システムが日本語表示できない状態で、日本語の文字でエラー表示されると変な記号に化けて出力される経験なんどかしてるし。。。)

$ sudo reboot で再起動。Xのメニューも日本語になっています。

あとデフォルトのbrowserがいけてない。日本語でないし、やはりchromeが。でも対応版がないので、chromiumで我慢。

$ sudo apt-get install chromium-browser

これでOK。

日本語がchromiumに表示されるようになったが、日本語入力できない!Anthyが起動しない。Xの画面右下のインプットメソッドを調べてみると、オフで何も手段が設定されていない。自分でAnthyを登録しないとだめだった。しかも日本語入力ができるようになるまでが、遅い!!2,3秒かかる。
やっぱシステムがHDDじゃなくmicroSDなんで、普通のHDDのLinuxシステムの様にはいきません。(それにこの程度のARMではX画面はきつそう。)

CPUパワーの比較をちょっと考えてみよう。(無難にベンチマークでも動かしてみるか。ストレージ関係のパフォーマンスは見ない方がいいだろうし。)


PS.
やっぱりシステムのデフォルト文字コードを日本語にするのはまずかったです。システムのデフォルトをjp_JP.UTF-8にしたら、raspi-configの文字列が化け化けになりました。結局、システムのデフォルトをen_US.UTF-8に戻しました。(一時的に、LANG=en_US.UTF8と環境設定して、設定を戻しました。でも日本語フォントが入っているのと、一度は日本語入力メソッドを設定したおかげか、en_USのままでも日本語使えてます)
キーボードに101使っているんですが、どうも数字のシフトにある記号が化けてうまく入力できなかったんです。raspi-configでキーボードの設定を見直してると、English以外に”Happy Hacking Keybord"の選択が!!(こいつをまさに使ってます)何かスキャンコードが違うんですかね、しかもこれにしてもさらに追加の設定でデフォルトだと"English(UK)"ではダメで、"English(US)"を選択してやらないと記号入力がうまくできませんでした。

2013年1月30日水曜日

Raspberry Pi到着~

昨年から気になってましたが、今年になって出荷等そろそろ落ち着いたかなと考えて、Raspberry Piを注文しました。ARMだったらスマホ等でプログラムを試してみてるんだけど、面白そうだしね。さて注文方法ですが、昨年夏くらいから注文が殺到して、全然届かない~~という記事多数でした。なんか裏道の注文方法とかも紹介されてましたが、おとなしくRS コンポーネンツで注文しました。(文句の記事が多いということは、それだけ利用者も多いということだろうし)
問題は代金の支払い方法です。海外なのでクレカくらいしかないんですが、相手の会社よくわからないし・・・抵抗感つよいんですよね。なので、次善の策として避けてはいたんですがPay Pal登録しました。海外通販してるとクレカかPay Palになることが多いです。Pay Palが安心できるかと言われると何とも言えませんが、一応個人情報が漏れたという話は聞いてないので大丈夫でしょうと。(なんかPay Palから業者への支払いって、すごいタイムラグがありひどいそうだという話も聞いてます。それもあっていい感じを持ってなかったんですが、クレカの情報を海外の業者に渡すのは避けたい・・・国内ならコンビニ決済してくれるところも多いんですが。)

2週間ほどほっといたら届きました!

Webでもよく見る、RSコンポーネンツのパッケージです。今回はケースも一緒に頼みました。
ケースは白い箱、本体はピンクのプラスチック・ケースに入ってます。
さて基板のチェックです。以前みたWebで、ハンダ割れがあったとか(;°ロ°) 入念にチェックしますが、特に問題は見つかりませんでした。
その後、近くの量販店で32GBのmicroSDHDを購入し、RaspbianをDL、SDにイメージを焼いて(ちょっと表現がへんな気もしますが)電源を入れると、無事起動してくれました。
さて周辺機器ですが、もともと家にHDMIのモニタは2台ありますし、USBキーボード(USタイプ多数)、マウスも余っています。問題は電源です。5V, 0.7A必要とのことですが、最初はNexus7用の電源(2Aあります)で、次からはiPadの電源ユニットでやってます。(iPad2台あって、古い方はほとんど使ってない)

使い勝手のレポートは次回に。