stackとraspberry pi

raspberry pi で stack buildできなかった問題,解決

Rover Mini の ECUデータ読み出しプログラムを動作させるためにRaspberryPiを用意したのだが,Haskellのコンパイルがstackを使ってはできなかった。stackが使えないと,ライブラリの準備とかが大変。

発生していた問題

stack buildすると,アセンブラが,この機械語はARMでは使えないとのたまうエラー発生。

/tmp/ghc2452_0/ghc_6.s:44:0: error:
Error: selected processor does not support `movt r7,:upper16:stg_bh_upd_frame_info' in ARM mode
|
44 | movt r7, :upper16:stg_bh_upd_frame_info
| ^

原因と対策

原因はコンパイル時にCPUアーキテクチャがGHCに伝わらないstackのバグ

対策は海外サイトのブログを参考に,GHCの設定ファイルにアーキテクチャ指示オプションの追加。以下は上記の参考サイトに書いてあるものだが,実際にはGHCの8.6.3がインストールされていたので,適宜8.0.1を8.6.3に読み替え。

$ vi ~/.stack/programs/arm-linux/ghc-8.0.1/lib/ghc-8.0.1/settings
...
("C compiler flags", " -marm -fno-stack-protector -mcpu=cortex-a7"),
...

あとがき

しかし,一昨日,車室内で冷却液の噴出をやらかしてくれたRover Miniはあえなく修理にまわすことに…。当面,ラズパイによるECUのモニタリングソフトの出番は先です。

あとがきその2

古いラズパイ上でHaskellを走らせたりWiFiドングルを使ったりしているのですが,いくつか注意点がありました(現在は解決済みのものもある):
– apt-get で入れられる stack のバージョンが古い。現在はRaspberianのもとになるディストリビューションが変更されたためか,関係者のご尽力により普通に入れられます(ただし,前述のGHCのコンパイルオプションが渡されないバグに注意)。
– 大型のライブラリをコンパイルしたり,インストール直後の何もコンパイルされていない状態から大量のライブラリをコンパイルすると,メモリとディスク上のスワップ領域を使い切ってOSごと固まってしまう模様。恒久的にスワップファイルのサイズを変える方法恒久的にスワップファイルのサイズを変える方法その2一時的にスワップファイルのサイズを変える方法
– WiFiドングルにはドライバが必要(ただし,ヤマダ電機で購入したElecomのドングル(型式:●●)は最新のOSだと初期設定でそのまま動きました)。

車内ヒーターから冷却液噴出した92年新車登録のRover Mini,ただいま乾燥中。

そして午後は別の事業者さんを訪問

そして午後は別の事業者さんのところへ新商品開発の状況聴取と経営相談に行ったのですが,先程ご紹介したとおり,途中でコンビニに立ち寄って停車しようとしたら突然のラジエータ液噴出でびっくり。ちょっと皮膚が赤くなったくらいで幸い火傷もなかったですし,周りの方が心配して見に来たり車を押していただいたりしてありがたかったです。

水を継ぎ足して事業者さんのところまで移動はしましたが,漏れがかなりひどいので,ビショビショになった車内をしばし乾かしつつ,経営戦略会議。

冷却水漏れを起こしたミニ車内を乾燥中
冷却水漏れを起こしたミニ車内を乾燥中

車内の電線がやたら多いのは,開発中のミニのECUからデータをひろうモニタープログラムのため(ブレブレの画面が開発中のテキスト文字表示バージョン)。今回の一件を教訓に,冷却液温度の警告表示機能なんかも追加しなければ。

試作したRover Mini ECUモニタの画面
試作したRover Mini ECUモニタの画面

帰りは気晴らしに映画か外食かと迷いましたが,パスタに惹かれて外食に。

夕食のパスタ 大府駅前にて
夕食のパスタ 大府駅前にて

さて,栄養もとったので,帰宅します。映画は明日以降に。

 

三越に陣中見舞い

本日午前中は知り合いの事業者さんが三越星ヶ丘店に出店していたので陣中見舞いにいってきました。

ジャガード織というきめ細かな表現ができる織物の技術を使ったクッションとバッグを販売されています(オーダー・既製品の両方あり)。さすが三越でオーダー品の注文が多いとか。

Webでみているのと現物を見るのとでは存在感が違うなぁとあらためて感心。写真はメーカーさんならではの織りの工程を表現する仕掛品と生地色選択用の色見本。

オリジナル・バッグやクッションの色見本帳
オリジナル・バッグやクッションの色見本帳
ジャガード織を説明する仕掛品
ジャガード織を説明する仕掛品。