Raspberry Pi」カテゴリーアーカイブ

RasPi2でリアルタイムクロック RTC-8564NB を使用する

RasPi2に切り替えてから特に大きな問題はなく安定して動作していますが、ある時、hwclockコマンドが使えないことが発覚しました。 現在、RTCに役割はありませんが、電源制御の予定もあり、なにより気持ちがよくありません。

RTC-8564NB

どうやら、デバイスの設定方法がデバイスツリーというものに変わった為の様でした。

例によって、フォーラムに情報がありました。 「PI2でRTC PCF8563が動作しない

この情報によると、hwclockの最新バージョンをコンパイルしてインストールするというものです。 実際の手順は…

  1. /boot/config.txt に dtoverlay=i2c-rtc,pcf8563 を追加
  2. hwclockの最新バージョンをダウンロード・コンパイル
    wget https://www.kernel.org/pub/linux/utils/util-linux/v2.26/util-linux-2.26.1.tar.gz
    tar zxvf util-linux-2.26.1.tar.gz
    cd util-linux-2.26.1
    (apt-get install gcc)  ※gcc導入済みであれば不要
    ./configure –without-python –without-systemd –without-ncurses
    make hwclock
  3. hwclock-rtc.cファイルを編集(debugオプション使用時の修正)

必要に応じ、util-linux-2.26.1の下に生成されたhwclockコマンドファイルを /sbin へコピーします。

手順3.の修正ですがこちらを参考にhwclock-rtc.cファイルを編集後、コンパイルを実行しましたが、debugオプション使用時のエラーは修正されませんでした。

若干の問題はあるものの、hwclockコマンドやアラームの操作が可能となりました。 RasPi2はシャットダウン状態からの起動に必要なリセット端子が外部に引き出されていない為、その辺りが今後の課題です。

 

※displayコネクタの横にリセット端子がありました。  2015.5.6追記

※hwclockコマンドは完全と言える状態ではありませんが、アラームについては、シェルスクリプト(alarm.sh) を使用して設定することにより実用上問題ない状態にはなりました。 2015.5.17追記

参考:http://d.hatena.ne.jp/payapara/20090626/1246029897

※カーネルの更新で不具合は解消しました。 「Raspbian最新カーネルでRTCの不具合が解消」 2015.7.19追記

 

RTC関連コマンド

ハードウェアクロックを表示
hwclock -r
ハードウェアクロックをシステムクロックと同期
hwclock -w
RTCの状態表示
cat /proc/driver/rtc
RTCアラームのリセット
echo 0 > /sys/class/rtc/rtc0/wakealarm
RTCアラームを60秒後に設定
echo +60 > /sys/class/rtc/rtc0/wakealarm
UNIXエポックからの経過時間を表示
cat /sys/class/rtc/rtc0/since_epoch

 

Raspberry Pi 2 の誘惑

省電力を必要としているハウスローバーでは、本来、modelA+やB+への切り替えが良いのでしょうが、高性能への誘惑を断ち切れず、RasPi2にしてしまいました。 (Amazonの「当日お急ぎ便カウントダウンタイマー」も衝動に拍車をかけましたが…)

RasPi2

RasPi2と40P-26Pケーブル

40P-26Pダウングレードケーブルも同時購入しましたので、なんの変更もなく差し替えるだけです。

また、ソフトウェアも最新のRaspbianを使用しているので、そのまま動くはず…でした。

ところが、起動はするものの、パン・チルトが動作しません。 ServoBlasterに問題があるようです。

よくよく調べてみるとフォーラムに情報がありました。

http://www.raspberrypi.org/forums/viewtopic.php?f=28&t=99115&start=25

一部のメモリマッピングに変更があるようです。 上記ページの最下部に修正ファイルがアップされています。 (ServoBlaster-20150219.tgz)

このファイルを適当なフォルダへ解凍しmake installを実行。 無事、ServoBrasterも従来通り動作するようになりました。

さて、RasPi2の使用感ですが、ストリーミングの遅延が減少し、操作時の反応が早くなった? ような気がします。 (^^ゞ

気になる消費電力ですが、modelBからの切り替えですので確実に改善しています。 モジュール単体の実測値では、modelB:370mA  Pi2:260mA との結果です。(低負荷時)

topコマンドで確認すると、4つのコアがそこそこ使用されていることが確認できます。

top

現状では、これといって大きく改善したというほどではありませんが、処理速度の問題で見送っていた項目、例えばmotionによる画像認識処理などの選択の幅が広がったという面では、意味のある切り替えだと思います。

 

Raspberry Piの初期設定 – Raspbian

Arch Linuxで開発を進めてきたハウスローバーですが、先日、いつもの様にシステムのアップデートを実施したところ、 パッケージマネージャのデータベースが破損したとのメッセージを出力し、pacmanが使用できなくなってしまいました。

修復を試みましたが、上手く行かず、再セットアップした方が早そうです。 それならと、最新のRaspbianに切り替えることにしました。

重い印象だったRaspbianですが、CUIではArch Linuxと大差なさそう。 それとも改善しているのでしょうか。

raspbian_img

Raspbianの初期設定

・パッケージ更新
sudo apt-get update
sudo apt-get upgrade

・ネットワーク設定
sudo nano /etc/network/interfaces
/etc/network/interfacesの内容
—————————————-
auto lo wlan0 eth0

iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

iface eth0 inet static
address 192.168.0.XX
netmask 255.255.255.0
network 192.168.0.0

iface wlan0 inet static
address 192.168.0.XX
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.XX
wireless-essid XXXXX
wireless-key XXXXXXXXXX
#wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
—————————————-
(セキュリティ設定がWEPの場合、上記設定のみで繋がりますが下記ネットワークマネージャーで設定した方が安定しました)

・ワイヤレス用ネットワークマネージャー
sudo apt-get install wicd-curses
インストール後、wicd-cursesで設定画面へ

・DNS設定
sudo nano /etc/resolv.conf
nameserver 192.168.0.XX

・ネットワーク設定の適用
sudo /etc/init.d/networking reload

・Apacheインストール
sudo apt-get install apache2

・PHP5インストール
sudo apt-get install php5

・PHPキャッシュモジュールAPCインストール
sudo apt-get install php-apc

・mjpg_streamerのインストール
sudo apt-get install subversion
sudo apt-get install libjpeg-dev imagemagick
svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
cd mjpg-streamer
make
mjpg_streamerをバックグランドで起動
(インストールディレクトリで実行)
sudo ./mjpg_streamer -b -i “./input_uvc.so -f 20 -r 320×240 -d /dev/video0 -y” -o “./output_http.so -w ./www -p 8080”

・ServoBlaster
git clone git://github.com/richardghirst/PiBits.git
cd PiBits/ServoBlaster/user
make servod
sudo make install
起動オプション
–idle-timeout=2000 –p1pins=7,11

・WebIOPiのインストール
wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
tar xvzf WebIOPi-0.6.0.tar.gz
cd WebIOPi-0.6.0
sudo ./setup.sh
サービス起動 sudo /etc/init.d/webiopi start
サービス停止 sudo /etc/init.d/webiopi stop

・Wiring Piのインストール
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

・I2Cの使用
i2c-devのロード
sudo modprobe i2c-dev
自動起動の為/etc/modulesにi2c-devを追加
nano /etc/modules
i2c-toolsのインストール
sudo apt-get install i2c-tools
状態表示
i2cdetect 1

・CGIをroot権限で実行する為の設定
sudo の設定ファイル (/etc/sudoers) を編集する
www-data ALL=(root) NOPASSWD:ALL を追加

追加項目

・webminインストール
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.660_all.deb
sudo dpkg –install webmin_1.660_all.deb
sudo /usr/share/webmin/changepass.pl /etc/webmin root <rootのパスワード>
https://<raspberrypiのIPアドレス>:10000/

・sambaをインストール
sudo apt-get install samba samba-common-bin
sambaの設定
sudo nano /etc/samba/smb.conf
以下を追加
—————————————-
[share]
comment = share drive
read only = no
locking = no
path = /var/www
guest ok = yes
force user = <sambaユーザー名>
—————————————-
パスワードを設定
sudo smbpasswd -a <sambaユーザー名>
New SMB password:<sambaユーザーパスワード>
Retype new SMB password:<sambaユーザーパスワード>
smanbaを再起動
sudo service samba restart

コマンド等

・デバイス表示(主にUSBデバイスの確認)
lsusb

・GPIOの状態表示
gpio readall

・wiringPiのライブラリを指定してコンパイル
gcc xxxxxx.c -o xxxxxx -I/usr/local/include -L/usr/local/lib -lwiringPi

 

 参考にさせていただいたサイト

人と技術のマッシュアップ – Raspberry PiでGPIO制御

sstea備忘録 – Raspberry Pi の最適化を試みる

ものづくりエクスペリメント – メモリーを節約する