2019年5月5日日曜日

思考散漫

 せっかく十連休ということで、いくつかやっておこうと思ったことのリストはあれども、かんっぺきに思考散漫な状態です…。なんか、「ゴールに向かおう!」という気力に欠けてる感じ。しばらく更新してないのは、スタック中、と言うわけです。

そのうち、解消しないとね…。なにせ備忘録なので、書いておいてみる次第。

りすと)
・サウンド環境整理したいな…
 デジタル化した音楽データを再生する環境用意したいんです。これ、ぐぐたす使ってたころにx86でやってるんだけど、{ディスプレイ付けてない|アナログビデオ出力にしてた}し案の定パラレルATAが死んで代役がないし(SDを挿すCFアダプタ使う!?)、ケースにも収めてなかったんで、その辺にむき出して置いておくわけにもいかずで頓挫中。
ARM系のボードは基本的に外にアンプおかないとまともな出力出ないので(ヘッドホンジャックついてる場合でも、その程度のドライブがターゲット)、その昔作った真空管アンプをハムノイズ覚悟で引っ張り出すか、それとも、まだ在庫してる球で新たに作ろうか(トランスどうしよう??)と逡巡してもはや数ヶ月。プラットも、Pi ZeroのPWMを使うか、nanopiのI2S使うかなどもあり…
Pi2とかPi3で、ボード起こしてやってる人もいるものでもあり。

これ、実は他にも大きな問題があって、つまり、スマホに音楽再生させて、そのためにWi-Fi外で「ギガを消費」してる人(家族)がいるんで、それへの対策も意図のうちではあるんです。とりあえずはUSBのDACつないでごまかしてる状態です。いやまぁ、そういう家電、売ってなくはないんですがね…。


・どれかのボード、宅内で自由に移動できる端末にしておきたいな…
 RPiかrock64、どっちもHDMIだけどそういうディスプレイを持ってなく、デスクトップ用には昔ながらのVGAか、せいぜいDVIを使ってるくらいなんで、新しく調達しないとならない…ということで、古ノートPCのLCDに目を付けてるんですが、これがまたね、古ノートだけに…。
PCB00099調達してみたものの、LCDコネクタ形状は汎用じゃなかったし(1.25mmピッチだったが標準より薄いコネクタ使ってる)、一発認識しなかったんで多分ファーム書き変えが必要、それにはx86が必要で、引っ張り出して電源入れてみたらSocket478クーラーを留めているプラ部品が経年で劣化してて、と、別のトラブルにも遭遇してモチベ低下中。ごまかし復旧はさせたもののいつ他の部分が破損するかは判らず、しかし新しくx86買う気はないし。

・カメラ、カメラ、…
 まぁ、半分は仕事なので、自宅で何とかしないとならない類じゃないんですが、キャプチャして画像・オブジェクト認識というのはもう大抵のアプリで使われているので、「ハード屋なんでさわりくらいしか判りません~」てのはもはや通用しません。
そういうわけで、なぜか持ってるカメラモジュールを使うことを考えてるんですが、それはUVCカメラではなくBT.656カメラ。
UVCなら良かったんですが、好き勝手なカメラをつなげられるボードって、実は存在してないんで、どうすっか思案中。BT.656をFPGAで取り込むとかもありえそうですが、そこから先も考えないとなんないんで。

・そろそろファイルサーバーが壊れる時期に入ってきそうな予感…
 結構もう長らくx86は調達してないし、今サーバーやってるのはSocket478なPentium4なので、そろそろヤバい。HDD自体はSATAではあるものの、もう2年近く走らせっぱなしなので、何らかのはずみで止まると復旧しないかも、と、ヒヤヒヤ運用。
これ、Pi3とかrock64に移そうか、と、思っちゃいるんですがね。

さて、まとめてみるとこの4つ、どーやるかな…(いやいや連休中にやってれば、一つくらいできたでしょ)。

2019年1月27日日曜日

Pi3BにArduino LCDつけて(1)

Pi3Bで何やろう?


 無事が確認されたPi3Bですが、既にデスクトップはrock64がやっているので、別のことを割り当てます。死んだままになってるproxyとか、ストレージにたまってる音楽再生機とか、手をつけられてないものを少しずつでも実現したいな。そろそろファイルサーバーも心配…。

ディスプレイ


 デスクトップ的な構成の装置をずらずら用意したくないので、ハンドヘルド的な使い方ができるようにしたいなと思っちゃいるんですが…。まぁ、以上のような使い方だと、電源ケーブルから逃れることまでは考えません。

手元に、既に紹介したArduino用のタッチパネル付き2.8" LCDがあるので、それ使えるように、まず、してみたいと思います。主に表示を目的としているので、よくこういう用途にはキャラクタLCDが使われることが多いかと思いますが、mpdクライアントを動かす事が視野にあるので、行数を稼ぎたく、QVGA LCDです。

このLCDは、以前、BBBにつなげて、BBBのGPIO使う上での勘違いを諭してくれた奴ですが、シングルコアBBBではちょっととろくて、5fps程度しか出ないようなので、活用するにはもう少しパワーがあるSoCが必要かな、ということでお蔵入していたものです。もう一つ同じ奴があるんですが、それはArduino UNO互換機と出番待ちしてます。


タッチパネル付き2.8" LCD


 この、Arduino用のLCDと言う奴は、大抵データが8bitパラレルで、それにLCD制御用の信号が5本必要、すなわち、13本GPIOを使います。それに、Arduinoなので5V電源。
ラズパイに、同じようなLCDをつなぐ事例がありますが、今使いたいLCDは、SPI接続のタッチパネルコントローラが載っているので、ラズパイ側もSPIを使えるように配置しなければなりません。ついでに、IPアドレスが固定じゃないので、シリアルコンソールがあった方が問題対応が容易です。

それを考慮してGPIOを眺めると、なんとぴったり13本。
このLCDには「温度計」も付いていて、LCD背面についてる温度計じゃ装置内温度みるためにしか使えないなとは思っていたんですが、そのためのI2Cを有効にする余裕はなさそうです。
BBBじゃないとこのLCDは活用できないな…。


ラズパイとの接続


 BBBやArduinoをみると、ボード側のコネクタは「メス」なんですよね。一方、ラズパイを起点とする40pin GPIOポートを持っているボードは「オス」になっているわけで、ときにジャンパケーブルに難点があったりします。ということで、外に一枚ユニバ基板入れることにしました。
結果はこんな感じです。



con2fbmapで切り替えられる、ということなんですが、何も起こらないので確認が必要です。
この砂嵐は/dev/urandomから/dev/fb1にランダム値を送り込んだ結果ですので、書き込みはできている、と言うことかと思います。


…、とりあえず、つながった、ということで、今日はここまで。

HDMIを止めるように設定してみてあるんですが(本当に止まってるか、見てないんですが)、そのおかげか?スマホ充電用の比較的容量が小さい電源でも動いています、ときにunder-voltageといわれますが。なんにせよ、ちょっと時代物の6Aの電源でもそう文句いうということは、相当ハイスピードな電源じゃないとイカンよ、と言われているわけで、最終的には新しい電源を調達するんだろうな、とは思っています。

2019年1月5日土曜日

本当に壊れた? Pi3B

Pi3Bは本当に壊れたのか?


 どうも壊れたようだ、として一旦離脱させたPi 3B。本当に壊れたのか?

むかしFBに写真載せたのだけど、このPi 3Bにはsmrazaというメーカー?の、加工済みアクリル板を9枚積み重ね、間にラズパイを挟み込むタイプのケースを使っています。右はその時の写真。

Pi3Bでは、緑LEDがいわゆるact LED(microSDへのアクセスやネットワークアクセスなどで点灯)で、赤LEDが電源ということになっているようですが、raspbian stretchでは、赤は常に点灯しているわけではありません。
不具合の状態ですが、電源を接続するとまず緑LEDが少しフラッシュした後に赤LEDがフラッシュして緑LEDがフラッシュ後、消灯して再び赤LEDが点灯します。以後この繰り返し。

ブート用のメディアは、元々使っていた32GのmicroSDは既にrock64に流用してしまったのでありません。Pi Zero Wで使っているものを利用します。そちらでは確実にブートするので、破損してはいませんし、32bitプラットホームと64bitプラットホームでバイナリを分けていませんので、カスタムしてない限りどちらでも同じイメージで起動できます。

シリアルコンソールを接続するよう設定していない状況だったので、この間何が起こっていたか確認することはできませんが、明らかに起動には至っていません。(例えて言うならgrubがOSロードしようとすると落ちて再起動しているような雰囲気。あくまでも雰囲気。)

この時点で「壊れたようだ」判断をして、rock64を調達することになるわけですが…

ケースをばらす


rock64が無事に動き出したので、Pi 3Bに戻り、基板状況確認のためケースをばらします。基板には焼けこげなど、何かが起こったような跡はありません。この状態で、5V/1.2Aの電源を接続して起動してみます(ディスプレイてかHDMI使わなければ、この位で十分動くはず)。

特に異常発熱もなく~…!、起動するじゃん????

電源投入時の緑→赤→緑で以後緑LEDがアクセスランプとしてmicroSDアクセスの様子を示しているので、しばらく後、DHCPクライアントIPを探してsshかけてみるとログインできます。
あれー。

改めてケースに組み付けて、同じ電源接続してみると、以前と同じ繰り返しリブートシチュエーションで起動しません。ケースには上の写真のとおりクーリングファンが搭載されていますが、それに電源は入れていないため消費電力観点では変化はないはずです。

再びばらして電源入れると動作します。何じゃそりゃ。

起こっているらしいこと


 ケースに入れたり外したりして様子をみた限りでは、どうやら電源用USBコネクタにかかる機械的負担(応力、ですかね)の違いによる、接触の違いに基づくようです。一旦起動してしまった後では、コネクタぐりぐりしても止まらないんですが(瞬停でも問題ないようにコンデンサ積んでるってのもあり、ラズパイが消費する電力が、接触不良発生と同時に増えたりしない限り、その程度でみつからなくても当然ではあります)、ケースに入れているときは、差し込み状況が起動に影響があるレベル、ということのようです。
スマホのおかげで非常にお手軽になったため、多くのボードでUSB microBを電源端子として使っていますが、やっぱ心配だな…。

と、いうことで、1Gもメモリ積んでるPi 3Bにそのまま遊んでもらうのは惜しいので、遠からず復帰してもらうことにして、ただ電源は、rock64同様40pin側から供給するようなケーブルなどを作ることにします。しかしそれだと、電源逆差しや過電流保護などの回路を通さずに、ボード全体に電源を供給することになるので、当然本当に壊れる(さらに火を吹くことになるかも)可能性が高くなりますんで、お勧めはできないのですけども。
それでやるならダイオードの一本くらい、入れておくことにしましょうね(その分の電圧ドロップには要注意ですが)。

結果として


 結果として、Pi3Bは自体が壊れていたわけではなく、トータルとしてはボードが一枚増えることになるという、喜んでよいのやら、余計な金を使ったと嘆くべきか、な状況となりました。
以前こけたままのwebフィルタ+ウイルスチェッカも、ClamAVがメモリを食う関係で、まだそのまま手当てできてないので、Pi3Bでやってみますかね。

2019年1月4日金曜日

rock64

ラズパイ3B壊れる

 いわゆる「ハズレ」を引いていたのかもしれないけど、一年くらい前に入手しほぼ半年前から連続稼働状況にしていたRaspberry Pi 3 Bには、電源面で色々泣かされました。12V/3A電源からDC/DC通して5V(もちろん3A以上ドライブできる)を供給しているのだけども、どうにもラズパイはHDMIまわりの電源設計が良くないのではないかと思われ…
うちにはTV以外にはHDMI入力可能なモニタが存在しないので、電源付きのHDMI-VGAアダプタを通してVGAモニタに接続しているのだけども、それを接続したままで再起動すると数回に一度しかちゃんと立ち上がらない。つまり、なるべく確実に起動させるためには、リブートしたい事象であっても、止めて、HDMIケーブルを外して、電源再投入する必要がありました。
年末に、「あ”、何かスタックしてる…」と思って、その手順で起動かけたのだけども、事情でそのまま数日放っておくことになってしまっていました。

年末年始休暇に入って、「さて」、と様子を見ると起動していない。「む、ファイルシステム壊れた?」と思い他のイメージを試すがやはり起動しないので、完全に壊れたか? しかし今それを追求し出すと、年末でもあるのでしばらく端末が無いことになってしまいます(まぁ、結果的にはそうなるんですが)。

残りのボードは BBB、Pi Zero WH、NanoPi NEOなわけで、辛うじてBBB、Pi Zero WHはmicroHDMIもしくはminiHDMI-HDMIアダプタがあれば使えそうではあるけども、デスクトップパフォーマンスはガタ落ち確定になってしまいます。

次のボードは…


 ラズパイには3B+がリリースされていて、それにしようかとも思ったのだけども、上述のとおり電源に不安があります。そもそも、こういうボードを試しているのは、連続稼働できて仕事にも使えるボードを探している面もあるわけで、確かにGPU性能など必要な使い方をそこでするわけではないのだけども、ミソが付いてしまったと言ってよい状態のラズパイを再び試すの?という思いもあります。

候補になり得るのは、高くて手を出し辛い96boards系、他にもNanoPi系、OrangePi系などとありそうではありますが、Wi-Fi搭載となっているケースがかなりあり、かつ、中国にオーダーとなるケースが多いようです。国内販売があって、ことWi-Fi搭載のボードで国内使用に問題ないのはラズパイしかないと言っても良いくらいです(偉大なり…)。この中で、パフォーマンス的、価格的に、Pine64のrock64 が目に止まりました。なんといっても、メモリが2Gまたは4Gをチョイスできるってのええじゃない、サイズもPi3Bと同じようだし、秋月で手に入るって。

と言うわけで、アキバにgo。

rock64


 Pi3Bをそもそもデスクトップで使っている人がどのくらいいるか判りませんが、調べ物のためchromiumでタブをたくさん開くなどすると、メモリ1Gだと結構苦しい局面があって、raspbianデフォルトのswap 100Mでは足らずに拡張しておく必要がありました。じゃぁswapに1G必要かというと、そこまでは必要ない、というのが実感レベルです。rock64では1G/2G/4Gのconfigを選択できるようですが、そういったメモリ事情を踏まえ、この時秋月店頭に並んでいた2G/4Gのうち、2Gを選びました。2GでほぼPi3B+と同価格。
動画再生でSoC結構発熱するとの情報がありましたので、放熱器も調達しておきました。

…、と、ここまでで年越ししてしまい、実際に火入れに至れたのは年明けです。


電源には、Pi3Bに使っていたものと同一のものを試します。OSはarmbian stretchを選択。
Pi3BはUSB microBが電源端子に使われていますが、rock64では馴染みの薄いサイズのプラグが必要で、秋月webにも対応方法が掲載されていたりしますが、なんのことはない40pinコネクタには電源入出力となっているピンがある(2,4pin=+5V)わけで、かつ、ラズパイがデファクト化しているので、のちにラズパイに入れ替えても良いよう、そこから供給してやります。

rock64のほうが、若干、仕様として記載の推奨電源容量が大きいのですが(Pi3B=2.5A vs. rock64=3A)、同じようにHDMI - VGAアダプタの電源を供給しつつもまったく問題なくこちらは立ち上がります。Pi3Bでは、GUI(display manager)が立ち上がったときに稲妻が出る、描画(display managerからdesktopへ切り替える、など)を始めるとクラッシュするのが典型的なシチュエーションでした。

そういうわけで、拍子抜けなほどあっさり立ち上がってしまいました。日本語関係、ldapなどネットワークデータベース関係のセットアップを行って、こうしてrock64でブログを作成しております。

なお、youtube動画を再生してみている過程でSoCに触ったところ、かなり熱いため放熱器を搭載しました。搭載が必要かどうか、はっきりしてなかったんですが、用意しておいて良かった~、です。

かまぼこ?みたいに、板に釘で仮止め中。

Pi3BではHDMIオーディオ使ってたんですが、何かのはずみに音が歪み出して元に戻らなくなります。どうも音圧依存なようで、Pulse Audio volume controlのような、レベルメータ付きボリュームコントロールでみていると、再生中にゲージ右側を指している、右に張り付く時間が長いようなソースでよく発生していました。こうなると、ほぼ再起動しかなかったんですが、rock64ではそのような歪みも起こらず、かなり快適です。メモリ使用量も結構フリーエリアが残っていて、2G品で問題なかったね、と言うところでしょうか。個人的にはなかなか良いお買い物だった、Wi-Fi後付けでよければお勧めかなと思いますが、あとはケースと寿命、か。


2018年12月2日日曜日

RaspberryPi Zero WH

お仕事でNanoPi NEOを使ったものを作ろうと、秋葉原まで出かけたところなんと品切れ。ちょっと前までたくさんぶら下がってたのになぁ…と思いつつ、納期(というか、リファレンス用意の期限)もあるので別のボードを探すことにする。

NanoPi NEOって、高さ的には少し高いのだけども40×40mm□な上にマルチコアなので、ちょいとCPUパワー欲しいけどRaspiじゃね(電源食うし)…と言うときにちょうどよく~、と、私個人的には思ってました。もっとも、FriendlyARMサイトを見にいくと、どんどこ新しいボードがリリースされていて愛しの?NanoPi NEOは端へ端へと押しやられていってることも、もちろん知ってはいたんですけどね。

と言うわけで、今回は他のボードを探さねばならんのですが、パフォーマンス的にはBBBクラス、クロック1GHzシングルコアの、価格的にもRaspi Zero WHしか必然的に店頭で入手できる候補がない。ARM11なのでBBBより遅いですが…。
USB hostが今回はmustなので、mbedでは候補が?で選択できず、致し方ないかというところ。

PiZeroW、サイズはまぁまぁなんですがね…。

と言うわけで、調達してきたは良いけど、なにせラズパイなので、ビデオとキーボードとマウスをつなげてconfigすることが前提で、一応headlessセットアップもwebに記載があるんだけど、それでやるには、dhcpなネットワークでWi-Fi使ってネットワークログインしないとならない。


いつも思うんだけど、どうしてラズパイは確実にコンソールとして使えるシリアルの用意がないのだろう…。GPIOにUART割り当てはあるけどoverlay設定してからじゃないと使えないでしょ?てことは、何とかして一度はログインしないとなんない、他の端末で/bootにある設定を書き換えて済ませられない限りは。

と、愚痴ってても仕方ないので、stretchイメージを拾ってきて、ssidとパスフレーズだけ書いたwpa_supplicant.confを作って、/boot/sshをtouchしてsshログインできるようにして起動してみるが、dhcpに開けてあるIPエリアに見つからない。

「あれー、wpa_supplicant.conf間違えたか?」と思いつつ、microSDを引っこ抜いて、コンソールにしてるpi3でマウントして、microSD内のファイルシステムにあるsyslogを見てみると、どうやらssidとパスフレーズだけ書いたwpa_supplicant.confではあかんようで、Wi-FIが立ち上がってない。
ログ曰くではctrl_interfaceを、ちゃんと/var/run/wpa_supplicantを指すように記述してやらないとならないようだ。

改めてmicroSDをPi Zero WHに戻して起動、ようやく、Wi-Fi側からログインできるようになりました。

さて、UARTを有効にして、コンソールをそっちに動かさないと…。
先にraspi-configでserialを有効にしておき、それでもBTと競合しているとのことなのでpi3-miniuart-btをoverlayするようにして再起動…、OK!、UARTにつなげたUART-USBを使って、PiZeroWにログインできました。


さ、これで来週は金工とハンダ付けじゃ。でもそれはお仕事なので、こちらには掲載できませんです。

最終的にはethernetも必要な構想なので、どうするか考えておかないとね…。USBにはつながるものが決まっていて、かつハブ経由ではダメだろうと思うので、USB-ethernetは使えない。
やっぱり、NanoPi NEOを改めて調達、かな…。

…、予備に調達しておいたもう一台で、遊ぶことを考えましょ。

2018年9月24日月曜日

具合が悪いのは誰?

もう三週間ほど前になるかな…。
月曜に仕事から帰宅すると、親父が「BSが映らない」、と言う。間欠的に降る雨の合間にざっと見てみると、BSアンテナに通電していない。
オヤと思い通電元を見ると、確かに切れてる。改めて通電してみると映るのでヤレヤレと思った数時間後、酒場放浪記を見ようとすると、また電源が落ちている。

BSを設置したのはいまの家に越してきた時なので、かれこれ12~13年となる。分配系統のどこかだろうと思い、親父に、BS混在の3分配器を買ってきてくれと頼んでその日は諦めた。

翌々日、出勤時間調整して、少し確認してみたが、パラボラ - ブースター - 混合器 - 分配器二段、いちばん初段の分配器に通電していない。はてこれは…。

電源供給元はDVRだが、通電設定を行うと、分波器は「ダイジョブ通電してる」と、LED表示するものの、DVRはアンテナがおかしいと言い、電源を切ってしまうため、本格的な確認が必要だと思われた。


…。誰が悪いか、わかります?


私はわからず、その週末、在庫も使って系統ごと交換。アンテナ代え、ブースター代え、混合器代え、分配器代え、しかし結果はネガティブ。テストを繰り返す。アンテナを接続せず通電すると、ちゃんと通電できるが、交換したアンテナをつなぐと落ちる。これは…。

アンテナ初期不良の可能性を無くすには、電源供給元を代えるしかない。

機材変更してみると、オヤ、動くじゃないかっ!
そうか、DVR(のアンテナ電源)がへたってたんかっorz。DVRは、まだ10年までは使ってないんだけどね。アンテナ用電源のDC-DCが、へたってしまったんでしょうか。

と言うことで、一見問題無さげな機材(DVR、そこ以外はちゃんと機能してるので)を使うときでも、それなりに経年しているものを使うときは注意しましょう、と言う教訓でした。ちゃんちゃん。


他にもイベントがあり、ここ三週間ほど、仕掛かってる他の作業はなーんも進んでません(泣)。一部は仕事にFBしたいんですけどね…。どうしましょ。
放置中のNanoPiNEOと液晶









2018年7月22日日曜日

暑い…暑いよ…。

この暑さで、webフィルタやってたx86ボードの何かがヘタったらしい。

最初期Celeron/400MHzに、756Mbytesのメモリと10GのHDDという年代物。BIOSは2003年、とか。この位のPCで、開発とかやってたんだよな…。

フィルタはClamAV + Squid + SquidGuardという、よく知られた構成で運用していたもの。

HDDがまず限界はわかっていたので(間欠的だけど15年くらい走ってる)、安価なmicroSDをCFアダプタ使って、SDDもどきにしよう! ということで、Amazonでぽちってアダプタを入手したまでは良かったが、インストール始めてみると、Debianインストーラーが場所を変えつつ途中でスタックする。ということは、メモリが逝っちゃってる可能性が。

Webフィルタという機能、スマホ中心になってくると逃げ道が多くて、あんまり効果的では無くなってきているし単に捨てるか(大体、止まってからだいぶ時間が経ってから気づいたような…)、という思いもありつつ、音楽サーバーをセットアップしておきたいけどたくさんPCを設置するのも避けたいという思いもありで、まぁまずはwebフィルタを何とかするか。音楽サーバーはmpdで行けることわかってるし。


手元の「コンピュータ」は、既出NanoPiNEO(とBBB)が残っているので、これで何とかできんかセットアップを試みる。

もちろん、ヘッドレスで動かしネットワークの一部に取り込む所までは問題ない。しかしClamAVをインストールすると…

ClamAVは、Linux環境でのウイルススキャナとして知られてます。しかし、メモリを食うことでも知られてんだった!

そういや最初にwebフィルタをセットアップした時も、他にあったもう少しCPUパワーがあるけどメモリが512Mだったボードでは、out of memory起こしてclamdクラッシュし、使えなかったんだ。
このNanoPiも、Swapを512Mbytes持たせてるとはいえ所詮メインメモリ512Mbytesのホストでは、CPUは違えどClamAVを動かす事自体が困難であることには違いなし、か。

756Mbytesあれば動かせることはわかっているので、~1Gのボードであれば動かせそう、となりますが、手に入れやすいクラスで、となると、Raspi2Bか3B、あるいは改めてx64ボードを探すことになりそう。

こいつぁちょっと時間かかるな…。