2015年6月23日火曜日

[備忘録]BeagleBone Blackのコアクロック変更

訳あって、BeagleBone Blackのコアクロックを強制的に落とすテストをすることになって、調べてみた件。

Linux起動時の最初の方でアーキテクチャ別/ボード別の初期化処理の中で初期化されているものと思って調べてみましたが、どうも該当する処理が見つからない。
初期化部分というよりはcpufreqというドライバの中で、そして「設定」というよりは「制御」されているということが分かりました。
いつも使っているWindowsでは、高負荷のときはクロックを上げ、低負荷では下げるということを当たり前のように捉えていましたが、組み込みLinuxでもそういうことをしているとは、すぐには考えが及びませんでした。

というわけで、cpufreqドライバと関係するソースを探してみるも、具体的にクロック速度を定義しているところが見つからない。

root@beaglebone:~# cat </sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
300000 600000 800000 1000000
root@beaglebone:~#

このように300MHz/600MHz/800MHz/1GHzがリストアップされるけれど、このリストはどこで定義されているのだろう?

答えは、device treeにありました(こういう時にもdtbを使うんだなぁ、と思いました)。

KERNEL/arch/arm/boot/dts/am335x-boneblack.dtsにdevice treeのソースがありましたので、これをちょっと書き換えてみたところ、指定したクロックの範囲内で動作させることができることが確認できました。

余談ですが、クロックを変更するのにPLLのレジスタを変更するだけでなく、コア電圧のレギュレータも変更しているのですね。なかなか面倒な世の中になったものです。

2015年6月19日金曜日

BeagleBone Blackでのカーネルビルド

公式wikiに書いてあることと同じですが、どこに書いてあるかすぐに忘れてしまうことと、wikiが書き換えられて内容が変わってしまった時のための自分に対する備忘録です。

BeagleBone Blackでdebianのカーネルを再ビルドする方法:

(以下は、ubuntuで実行する)


git clone https://github.com/RobertCNelson/bb-kernel
cd bb-kernel/
git checkout origin/am33x-v3.8 -b tmp
または
git checkout origin/am33x-v4.1 -b tmp (←こちらはうまくいくか試していない)
./build_kernel.sh (←初めてビルドするときはこちら)
./tools/rebuild.sh (←コンフィグを変えて再ビルドするときはこちら)

それから、起動時に4D CAPE上のLCDにカスタムの画像を表示する方法:

  • 適当な画像を用意。4D CAPE LCD4.3inch版では480x272以下に抑える。
  • gimpなどで224色のインデックスカラーに落とした後、ppmフォーマット(RAWでなく、ASCII形式)でエクスポート
  • ppmファイルは、./KERNEL/drivers/video/logo/logo_linux_clut224.ppmと置き換える(のが一番簡単)
  • ./tools/rebuild.shで再ビルドする。途中のmenuconfigでは、
    drivers --> Graphic support --> Boot logo
    にチェックを入れて、その中の224色のものにチェックがあれば良い。
起動時に4D CAPE上にカーネルメッセージを表示させない方法:
  • linux起動パラメータ(bootargs)から、console=tty0を抜く(uEnv.txtを適宜編集)
起動後にLXDEデスクトップを表示させずにコンソールで止める方法:
  • linux起動パラメータに、"text"を追加する
なんか、linuxで調べることが多い&検索で見つかってもうまくいかないことが多いので、ちょっとしたことでも時間がかかるなぁ。


2015年6月14日日曜日

尿路結石とその顛末

先日、尿路結石になってしまいました。そのときに思ったことを残しておきたいと思います。


  • 痛みは突然、夜中にやって来ました。最初は、持病の椎間板ヘルニアが悪化して痛むのかな?と思いました。しかし、様子が違いました。まず、かなり痛い。それから、ヘルニアによる坐骨神経痛でみられる下肢やおしりのしびれがなかったです。
  • いわゆる「腰痛」とも違いました。「腰痛」では腰のあたり全体が痛みますが、今回は確かに腰のうちでも背中の右側がピンポイントで痛かったです。
  • 「難産に匹敵する痛さ」とも言われていますが、それほどでもなかったです。というか、私は男なので難産がどんなものか比べるべくもないのですが、少なくとも難産のように絶叫したりはしません。が、確かに「ううっ」と唸ってしまうくらいには痛かったです。脂汗なのか、下に書いた嘔吐のせいなのか、よく分からない汗が出ていました。
  • とは言え、痛みがピークのときは歩くのも辛かったです。というか、力を入れると痛むような気がする(痛みが怖い)ので、這っていました。とはいえ、実際にはどんな体勢をしていようが、痛いものは痛いのですが。
    後から聞くと、「エビのようになっていた」と家族は言っていました。こちらは痛みに何とか耐えようとしているのに、そんなふうに思っていたとは・・・。
  • 吐きました。尿路結石と吐き気(食べたもの)とは関係ないと思うのですが、痛みがピークになると我慢できず吐いてしまいました。しかも、吐いてもう何も残っていないにもかかわらず、痛みがピークになるとまた吐き気が襲ってきます。これは何なんでしょうね。
  • 痛みが少し収まった隙に辞典やネットで調べてみて、すぐに「これは尿路結石に違いない」と確信しました。ニュースなどで「救急車をタクシー代わりに使う人がいる」という問題を聞いていましたし、命にかかわるような病気でもないので、朝まで我慢して病院に駆け込めばいいと考えるだけの理性は残っていました。しかし、心配した家族が「救急車、呼ぼうか?」と訊いてくれることに対して、「呼ばなくていい」というその一言がどうしても言えなかったです。叫ばないにしても、そのくらいの痛みがあり、とにかく「早く何とかして欲しい」、その一念でした。結局、救急車を呼んでもらいました。人生初の救急搬送です。
  • 深夜の救急病院は、他に患者さんがおらずひっそりとしていました。そして、尿路結石でやってくれる救急処置は、結局痛み止めの座薬だけでした。なかなか効かなかったですが、効き始めると薬の有り難みをこんなに思い知ったのは初めてです。
平日になるまで痛み止めで何とかやり過ごして、後日、泌尿器科にかかりました。レントゲンでは3~4mmの石が膀胱と思われる場所に写っていました。このくらいの大きさの場合は、自然に出るのを待つのが普通だそうです。それまでの間、そして出るときにはもう一度痛みのピークが来ると聞いてちょっと戦々恐々としましたが仕方ありません。痛み止めでやり過ごすのみです。

結局、最初に痛みが出て7日目に石は出ました。それがこれです(左側の黒いもの)。
「石」というくらいですから水に沈むと思っていましたが、浮くんですね。初めて知りました。
おしっこをするときに、ごく僅かな違和感を感じました。また、同時に「カチッ」という音がしたような気がします。便器を見てみると、この黒い塊が浮いていましたので、それを拾っておきました。
へぇ~と思ったのは、結石=水溶性物質の析出物というイメージでしたので、どちらかというイガイガ、あるいはトゲトゲしたものかと思ったら、角が殆ど無い丸い曲面の石でした。

石が出るまでの間は、やや痛みがぶり返したり、痛みがきつくなると座薬に頼ることもありましたが、石が出た直後くらいからウソのように痛みがピタリとなくなりました。不思議です。それまでは、尿路ではなく膀胱にあったはずなのですが、それがどうして痛むのでしょうか?それから、この石が水に浮くなら、膀胱の中でもだいたい浮いて存在していたはず。膀胱の下からは出にくいかと思うのですが、何らかのタイミングでうまく尿道の方に出れば、それで痛みが消えるというのは、やはり不思議です。