2014年12月15日月曜日

BeagleBone BlackのUbuntuのパワーマネージメントを有効にするために必要と思われる設定作業など

参考URL



  1. elinux.orgのページ
  2. BeagleBone BlackにUbuntuをインストールする
  3. BeagleBone Blackで遊ぼうのこーな

目標


とりあえずのゴールはBeagleBone Blackでサスペンドとハイバネーションが使えるかどうか確認すること.


初期インストール

まず,「BeagleBone Blackで遊ぼうのこーな」を参考に,マイクロSDにUbuntuを焼いて起動.

proxyの設定

以下の行の内容を.bashrcに保存

alias unset_proxy="unset http_proxy;unset https_proxy;unset ftp_proxy"
alias set_proxy='export http_proxy="http://ユーザ名:proxyパスワード@proxyホスト名:ポート番号/"; export https_proxy="proxyの定義"; export ftp_proxy="proxyの定義"'

パッケージの更新

http://gadget.ichmy.0t0.jp/intro/beaglebone/ubuntu/を参考に,パッケージを更新.

作業に便利なコマンドのインストール

とりあえず,シリアル接続で画面サイズの設定を簡単にするため,resizeコマンドを使えるようにする.あと,apt-getなどでコンプリーションを聞かせたい.最後が,パワーマネージメントを実行コマンドも必要.

というわけで,インストールすべきバッケージは以下の3種類

  • xterm
  • bach-completion
  • pm-utils


デフォルトインストール状態でのパワーマネージメント設定状況

とりあえず,デフォルトインストール状態でサスペンドやハイバネーションが利用できる状態にあるか否かをコマンドレベルで確認する.

pm-is-supportedコマンドは引数として指定した状態がサポートされている場合は0を返し,状態がサポートされていない場合は1を返すため,以下のコマンドで確認.

root@arm:~# pm-is-supported --suspend ; echo $?
0
root@arm:~# pm-is-supported --suspend-hybrid ; echo $?
1
root@arm:~# pm-is-supported --hibernate ; echo $?
1
root@arm:~#

ということで,サスペンド以外はサポートされていない.
(スワップが存在しないからハイバネーションできないのはあたりまえ)


スワップの追加

次に,スワップを追加してみる(スワップの作成の参考は参考URLの1番と2番).

以下は1024MBのスワップ領域を作る例

root@arm:~# mkdir -p /var/cache/swap/
root@arm:~# dd if=/dev/zero of=/var/cache/swap/swapfile bs=1M count=1024
root@arm:~# chmod 0600 /var/cache/swap/swapfile
root@arm:~# mkswap /var/cache/swap/swapfile
root@arm:~# swapon /var/cache/swap/swapfile

起動時にswapを有効にするため,/etc/fstabに以下を追加.

/var/cache/swap/swapfile    none    swap    sw    0   0

マシンを再起動してから,以下のコマンドでswapの状態を確認

root@arm:~# swapon -s
Filename                                Type            Size    Used    Priority
/var/cache/swap/swapfile                file            1048572 0       -1


BeagleBone Blackをシリアルで使う


参考URL



本論


今回BeagleBoneBlackを使うにあたり,ディスプレイやキーボードは繋ぎたくなかったので,まず最初はシリアルポート接続をしないといけない.

ftdiのチップが搭載しれたUSBシリアルのケーブル(秋月)は売り切れで来年(2015年)2月まで入荷しないとのことで,近い機能を持つケーブル(千石)を購入してきて,手元のマシンに接続し,ドライバをインストールしてみた.


問題は,PL2303HXのドライバがWindows8系列をサポートしていないこと.


いろいろ探ってみたところ,参考URLにあるejo090さんのページを発見して同じようにやってみたところ,一応つながるものの,/dev/consoleの出力が直前の2文字ほどが出力(エコーバック)されないという問題にあたってしまい.あまり使いづらいので,別の方法を探してみた.

すると,参考URLのkinnekoさんのページを発見したので,手元のArduinoに繋ぎっぱなしにしてあった,スイッチサイエンスのftdiチップ搭載のシリアルUSB変換ボードをつないでみたところバッチリ動作した.

ありがたや.


Android5.0はペアレンタルコントロールに使えるか.

lolipopが公開されたため,少し前に,手元のNexus4にイメージを焼いてお試ししてみた.

元々やりたかったのは,google playのアプリを子供からアクセスできなくした上で,SMSの着信や電話の発着信を子供にさせることを狙っていた.

Android4.4の時に,Xposed+MultiUserで制限プロファイルを電話でもできるようにしたものの,SMSや電話着信がまともに動かず,断念していた.

今回lolipopで電話にもマルチユーザ機能が搭載されるということで,実際に試した.
結論から言うと,「Lolipopのマルチユーザ機能はペアレンタルコントロールには使えない」でした.

単純にユーザを作って,着信を許すか否かはできるものの,作ったユーザに対して,利用できるアプリを制限することはできませんでした.
Lolipopに制限プロフィールが作れないと無理かも.

しかし,XposedのLolipop対応は,JavaVMがdalvikからARTに移った関係で苦労しているようで,XposedがLolipopで動くかどうかも微妙な状況.

というわけで,しばらくは様子見.


追記(2015年5月17日) : Xposedも試してみた

Xposed for lolipopがリリースされたため,インストールし,Multi-userモジュールも入れたが,もともとのlolipopとどこが違うのか不明.やはり,制限プロフィールは作ることができず,ペアレンタルコントロールにはまったく使えませんでした.

arduinoの気温測定で問題発生


以前の投稿「arduinoを使った温度測定webサーバ」でarduinoで室温を測定するwebサーバを作る日記を載せました.

長時間の運転でブレッドボードの上に回路があるのは嫌だったので,シールドを作成してみた.


上の写真は作ったシールドをMEGAに載せた写真.

このシールドを載せたArduinoを一ヶ月弱運転し続けたところ,Arduinoからの熱で室温が正しく測れないことがわかったため,再度ブレッドボード上に作ったセンサ回路につなぎ替えて運用している.