Ubuntu RAM-Linux その5:その後

Ubuntuでは「overlayroot」というパッケージが安定供給されているように見えます。使い方はこちらで紹介されています。x86系のUbuntu LTSでのシャットダウンフリー/電源ブチ切り対応は、もう、これでいいと思います。

 

なお、こちらで紹介されてないところでのTipsとしては、/var/log/journalの下は、通常のRW環境下で  rm -rf /var/log/journal/* として削除しておいた方が良さそうです。さもないと、Warningログが多量に発生し続けることがあります。

 

エアロ・ダンスのDark Memo

完全自己流・危険・厳禁。裏向きダークサイドのブラックメモ。モチベーションを失わないよう、しばらく表にしておく。

 

軸を意識し続けたい時:
オシッコを我慢してスタジオへGo。学生時代、スキー初級を突破したきっかけもこれ。オシッコへ行く時間を惜しんですべり続けるうちに、自然に太ももを引きつける癖がつき、軸もできた。但し、クラッシュすると取り返しのつかないことに。

 

流れで何かひっかかるとき:
ひっかかるポイントの1歩~半歩前の手・肩・肘・足のポジショニングの工夫で、スムーズな流れを見い出せる。例えばシャッセひとつにしても、先生は1カウント前に手をクロスしている。5で右と言われたならば4の左を意識した方が良いかも。更に乗っていくならば、引手を意識するカウントを作ったり、反作用を利用したり、流れの中で「気」のキャッチ&リリースポイントを作っていくと、いい感じで乗っていける。但し、やりすぎると、妙にラテンっぽい感じになる。

 

床のすべりを調節したいとき:
個人的にはひざに優しいオムニコートでの安定したすべりがベスト。ソールの重心ポイントにピンポン玉~卵くらいの形/大きさにカットした布テープを貼ると、安定したいい感じの滑りを実現できる。
逆に、すべりすぎる時は立ち位置周辺を湿った雑巾で拭く。動作中ならばソールを手でなでる(バスケ選手がよくやってる?)。但し、効果は長続きしない。

 

2回転できそうな時:
まずは脱力。次に、2回転目は伸び上がる雰囲気で。更に、3回転する気分で。すると、失速せずに2回転は楽に回せる。但し、最初からブンブン回さない。怪我をしないためにも、スペースが十分確保できていて、かつ、床が滑りやすいコンディション時の最後の1回だけ、こっそりチャレンジ。なお、納得のいく2回転をキメることができたのは、まだ1度だけ。

 

あと少しでキャッチしきれそうなとき:
目を見開き、目力で「私は完璧」「私にできないことは無い」「こんなの簡単」・・・とセルフ・マインドコントロールする。すると、勢いでうまくいく。試験前の追い込み、プログラミング・デバッグ・不具合四面楚歌の崖っぷちでもこの手のコントロールでいくつかの修羅場を越えてきた。しかしその後、オレ様状態のままダークサイドに堕ちていった・・・。マインドコントロールの後は、神社仏閣へのお参り/コンビニ募金箱への投げ銭/家族へのおみやげ等、何らかの儀式を執り行うことでリセットし、謙虚な精神状態を取り戻そう。

 

ゾーンに入れそうなとき:
振りをある程度キャッチできている状態で、更に何らかの不明な条件(体調, 精神バランス状態, BGMの好み, ・・・)が整うと、プチ・ゾーンに入れることがある。目は半眼、軸と手のひらの付け根に気を感じながら、曲の流れに溶け込むように身を任せる。すると、意識が上昇し、雑念の無い極限の集中状態が生まれ、何かが取り憑いたかのように体が自然に動き、この時間が永遠に続いてほしいと感じるようになる。過去、エアロで3回ほど経験、年に1回あるかないかのこと。但し、ゾーンに入った後は、家に帰ったら玄関で肩越しに塩を撒こう。本当に何かが取り憑いたのかもしれないので。

 

近くにエキスパートがいるとき:
意識してシンクロしてみよう。いい感じになる。但し、ターゲットは正しく選ぼう。とある日のエアロで私をターゲットにした方は、最後のキメをいっしょに間違えて、なんか残念 ..._| ̄|◯ という感じになった。

 

心底はじけとびたい時:
左指の緊箍児の封印を解く。但し、年3回まで。

 

Echo Show 5の個体差

昨年、Amazon Echo Show 5 を初めて買って音を聞いた時、買って良かったと素直に感動した。
今年、同色のAmazon Echo Show 5 を追加購入して音を聞いた時、あれ?と感じた。

具体的には、今年購入したものは、高音のバランスが悪く、そのせいで低音の抜けも悪い。

そこで、電源を抜いて、TANITAのキッチン計量計で本体重量を比較した。

 2019年入手品(白):412g
 2020年入手品(白):425g

明らかに製造が違う重さだ。普通、スピーカーは重い方が音のバランスがとりやすいはずだが、このスピーカーは軽い方がバランスとれている。

初期不良と言えるレベルではないので、内蔵イコライザーで調整しつつ、使っているうちにバランスとれてくることを期待するしかない。そもそも、この機種にイコライザー機能があるのを知ったのも、この件があってのこと。まずは中域を少し下げて様子見することにした。

iPhone6s バッテリー交換

新年一本目のチャレンジとして、嫁さんのiPhone6sのバッテリー交換をすることになった。中華スマホの時よりもGoogle先生Youtube先生はたくさんいらっしゃって、ここで書くべきことはあまり無いが、それでもハマりどころはあったので、記録しておこう。

 

準備:
Amazonでバッテリーセットを購入。キット付きで2000円前後。大容量を謳うものが多いが、そこはあまり見ない方がいい。評価そのものより、評価母数が多いモノを選択した。

各種レビューや動画を見て、成功率は85%と分析。マイナス10%は初期不良や交換後効果無しのたぐい。マイナス5%はオペミスによる破損。

外すネジ数は8本。外すプレート数は2枚。今回はYoutube先生に従ってネジシートを作ったが、自分のスマホならそこまでしなかっただろう。

  

嫁さんからの条件:

  • 絶対に失敗するな!
  • 液晶保護シートは剥がすな!
  • 壊したら速攻でヨドバシへGo!

 

結果:
約40分で無事終了した。ただし、冷や汗ポイントは下記の3つ。

  1. 吸盤がつかない!
    これはある程度予想していた通りだった。ザラザラ液晶保護シートのせいで、パネルを持ち上げるための吸盤が吸い付かない。保護シート剥がしていいか嫁さんに聞いたら、えーーーー!と言われたので、ダメ元で100均の吸盤を付けたら、なんとこれが完全密着。なんでーーー?
  2. 両面テープ剥がしで失敗!
    両面テープをひっぱり出すシーンで、なんど、テープが途中で切れた!ピンセットを使ったのが失敗。手でやれば良かった。かなり焦ったが、リカバー方法もYoutube先生が丁寧にガイドしてくれていた。底面を少しあっためてバッテリーを持ち上げてテープを引っ張り出して、無事対応。
  3. 老眼でネジ戻せない!
    老眼きてるので、かなりつらかった。結局、このシーンは家族に助けてもらった。

 

かなりのプレッシャー下での作業だったが、電源Onで白アップルが見えた時は、
  オレって天才!
と叫んでいた。クビになったら、スマホ修理業も悪くないだろう。

 

なお、次にもう1回同じ作業するとしたら、パネルを分離せず直角固定して作業する。この場合、外すネジは4本、外すプレートは1枚までであり、作業は5分以内に終わるだろう。 


 1か月後、、、調子は良いみたい。前の電池が残っていたので記念撮影した。少し寄れているのは両面テープはがしで失敗して悪戦苦闘した痕跡。

f:id:t0a9n9a4k:20200311190132j:plain f:id:t0a9n9a4k:20200311190216j:plain

 

 

 

謹賀新年 令和2年

あけましておめでとうございます。本年もよろしくお願い致します。

恵まれた境遇に対する感謝の念を忘れず、目の前の課題と向き合いながら平穏無事に過ごしていけることを切に願います。

 --

個人的には、数年前とはライフスタイルが大きく変わっていることに気付きました。

~数年前

  • 座右の銘:摩擦は進歩の母なり。・・・なので、よく暴走し天狗状態に。
  • ストレス発散法:とにかくアウトドア(スキー、トレッキング等)
  • 食事:とにかく牛肉

ここ数年

  • 座右の銘:バランス。但し、忘れがち。
  • ストレス発散法:インドア(ジムで汗を流す、IT機器をポチる)
  • 食事:納豆を中心にバランス。但し、要所だけは牛肉。

この変換の契機は、数年前に一度死にかけたことです。その時、病室という独房の中(実際には4人部屋)で悔い改めたはずですが、その効果も徐々に薄れ、気が付けば数年前の天狗状態に戻っていることがよくありました。但し、そうした場合に処置するミニ・ルーティーンも作ってはあるので、ひどい暴走は無かったと思います。入院中に覚えた太極拳八段錦も、平常心を取り戻すルーティーンにしています。

太極拳入門の本筋は二十四式/四十八式ですが、面替え要素が強くて十段目あたりで挫折し、忘却しました。エアロで鍛えた今ならもう少し行けると思うのですが、独習には限界があり、いつかお師匠様を見つけて習おうと思います。

--

また1年後、年末年始に平穏無事に1年を振り返れることを願います。

今年は家族がこういう年です。「置くとパス」

https://pbs.twimg.com/profile_images/1083559916722216961/alqy-N8V_400x400.jpg

スワップ領域をファイル化

ここに書かれた内容は、sudo apt install dphys-swapfile (導入)、sudo apt purge dphys-swapfile (除去)でも可能。以下は、マニュアルで設定する場合を示す。私はマニュアル派。


Ubuntuをインストールする時、スワップ領域を指定しなければ/swapfileが自動的に作成される様子だが、ここではマニュアルでの対応を整理する。スワップ領域をファイル化しても、SSD/MicroSD/eMMC等のNANDフラッシュメモリ系ストレージのウェアレベリング効果は上がらないというのが定説のようではある。しかし、ウェアレベリングの実装はデバイスマターであり、パーティションで物理的なスワップ領域に区切られるとウェアレベリングが偏る可能性は否定できない。ファイル化するメリットは、ext4ファイルシステム上で調整できる利便性と、TRIMコマンドによる何らかの効果を期待できる点にあるが、ケースバイケースであろう。なお、ラズパイ上でDarknetを実行する時、このスワップファイルを用意しておかないと、OOMキラーが発動するケースがある。

/swapfile 実体を作る。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 ## 1GBの場合
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

/etc/fstab を編集する。

### SSDへのスワップの例
/swapfile swap swap sw,discard 0 0

適用

sudo mount -a



/etc/initramfs-tools/conf.d/resumeがある場合、initrdの⼀部を処置し更新しないと、OS起動が30秒遅くなる。
/etc/initramfs-tools/conf.d/resume:

RESUME=/swapfile

initrd更新:

update-initramfs -u -k all

参考情報:ここ

Darknet YOLOv3で組込ベンチマーク環境構築

既に情報は多く、今更感もあるが、Darknet YOLO v3 で組込ベンチマーク環境を構築する手順をメモする。

目的:
AI処理を使っての、組込CPUでのオフロード(CPU負荷外出し)効果を検証するための環境構築手順を確立する。

オフロード先候補(興味無い順):
 ・GPU
 ・Neon 演算コプロセッサ
 ・RTプロセッサ(Xilinx MPSoC RPU)
 ・FPGAプロセッサ(MicroBraze, Nios)
 ・FPGA

まずは、私のホビーマシン(Core i7-4790 @3.60GHz / 16GB MEM / ubuntu 5.0.0-36-lowlatency)で検証する。あっさり5行、3分で終わってしまう。

git clone https://github.com/pjreddie/darknet
cd darknet
git checkout <hash値> ## 特定のコミットを使う場合
make
wget https://pjreddie.com/media/files/yolov3.weights  ## 80の物体を識別する重みファイル
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

備考:重みファイルはCOCO というフレームワークに基く80 thing classes の学習データと思われる。

結果:

Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 18.518765 seconds.
dog: 100%
truck: 92%
bicycle: 99%

predictions.jpgが結果を示す画像。AI初心者向け資料では高確率で登場するワンちゃんのようです。名前は何かな?
犬・自転車・トラックを認識するまでの時間:
 18〜21秒 (dog: 100%)/ Darknet hash:61c9d02
 7〜9秒 (dog: 99%)/ Darknet hash:f6d8617
* Kernelのバージョンアップで数値が少し変わるケースがある。

考察:
sudo chrt -r 50 ./darknet detect ... (ラウンドロビンで優先度増)で実行すると、数値が悪化かつ不安定となるのは興味深い。AI処理が直線的なのか?今回使ったUbuntu StodioはLow Latency (CONFIG_PREEMPT)がデフォルトで、メディアのリアルタイム処理には向いているが、AIの推論処理とは相性が悪い可能性が高い。
また、Darknetのコミットによって結果が大きく変わる様子を見ると、これは、オフロード実装の工夫や調整を頑張った分だけ成果になる感じがする。つまり、純粋にオフロードのトレードオフ評価を行うのは困難であり、適用先・条件等を狭くを絞った上でトレードオフしないと、意味が無さそう。

感想:
やばい、やばすぎる。時代に乗り遅れた感MAX!! CPU負荷の動きを見ていると改善余地が有りそうにも見えたが、そのネタも既にMakefile冒頭に仕込まれていた。。。_| ̄|◯

フォロー:
ガートナーのハイプ・サイクルによれば、エッジAI、まだ黎明期を脱したばかり。AI処理のオフロード/HWアクセラレートは、今後、組込エンジニアのお仕事となっていくのは間違い無さそう。AIを深く知る必要は無いが、AI組込/最適化のテクニックは要チェック。YOLOv3デモ動画を見ていると、馬と牛とラクダを区別しろとか、carだけ認識させろとか、いろいろ面白そうな要求が出て来そうだが、組込エンジニアのお仕事の本質はそこではなさそう。

関連:
1) 【FPGA】最強Ultra96ボードでAI「YOLO」高速化 - YouTube
2) YOLOv3 - YouTube
3) Darknet: Open Source Neural Networks in C