====== uConsole ======
===== 概要 =====
[[https://www.clockworkpi.com|ClockworkPi]]がリリースしたポータブルコンピュータであり[[DevTerm]]同様、コアモジュールを入れ替えることができる構成となっている。
半完成品として届き、最終組み立てを行うのも[[DevTerm]]と同じだが、ケースは金属製となっており、六角ねじで固定する関係で、[[DevTerm]]と異なり、一度くみ上げてしまうと簡単には分解はできない。
また電池へもねじを外さないとアクセスできないため、充電した18650電池を持ち歩いて適宜交換するような使い方はできない。
また冷却ファンを廃し、ケース背面をヒートシンクとして使用する構成になっている点も異なる。
コアが接するあたりはそれなりの温度になる。
{{::uconsole:uconsole.jpg?400|uConsole完成状態}}
===== 組立て =====
{{::uconsole:package.jpg?400|uConsoleパッケージ}}
箱は[[DevTerm]]と概ね同じデザインだが一回り小さい。
{{::uconsole:parts.jpg?400|uConsoleパーツ}}
開けるとパーツがプラスチックのケースに収められ、組立て説明書が同梱されている。
18650x2は同梱されていないので自力で調達する。
{{::uconsole:building_1.jpg?400|uConsole組立て中1}}
六角レンチは同梱されているので組立てに必要なものは特にはない。
手順に従って、キーボード、画面、メイン基板、コアモジュール((今回CM4 Liteを選んだので、CM4の変換基板も入っていた。))、サブモジュール((LTEモデルの場合はLTEモジュールが乗っているが、そうでない場合は、ただスピーカ接続のための板になる。))、電池ボックスをそれぞれ組付けたら蓋をして終わりである。
{{::uconsole:buildong-2.jpg?400|uConsole組立て中2}}
===== OS =====
CM4モジュールを選択したので、Raspbian ベースのOSイメージをインストールする。
残念なことにベースとなっている Raspbianがやや古く、Debian 11ベースなので、パッケージなどが古臭い。
[[DevTerm]]同様、オートログインが設定されており、パスワードなしで suできる危険なユーザが設定されているために、このあたりの手当てを行う。
===== 使用感など =====
キーボードはふにゃふにゃだった[[DevTerm]]にくらべてクリック感が強い。
特に中央付近のキーはしっかりと押し込まないと入力しそこなうことがある。
両手で持って親指タイプするのにちょうどいいサイズ感なので、使い勝手は[[DevTerm]]よりかなりいい。
また、液晶も1280x720と 1280x480だった[[DevTerm]]より縦方向のピクセル数が増加しているので、ダイアログの下がはみ出してしまってあれこれ困った[[DevTerm]]よりも普通に使える。
総じて[[DevTerm]]のように、買ったはいいが持て余す、というようなことは少ない。
キーパッドの十字キーとカーソルキーとが同じキーにマッピングされているが、カーソルキーを右下に置くより、カーソル操作が窮屈ではなくてよい。
ただ、カーソルキーとZ/Xを使うようなゲームがあり、これがジョイパッドをサポートしていなかったりすると、ちょっとプレイは難しい。
オールドPCのエミュレータなどで遊んでいるとしばしば出くわす場面なので、そこは何らかの対策が欲しかった。
縦が長くなっているので、コーディングなどもそこそここなせる。
実際、[[ハイハイスクールアドベンチャー]]のM5版やQt版に関してはかなりの部分をこのデバイスを使って、移動中や出先でのコーディングを行っている。
電池はフル充電から3~5時間くらいは持つ感じである。
USB PDではなさそうだがUSB Type Cで充電できるので、今どきのデバイスとしては申し分ない。
パフォーマンスは劇速ってことはないが、実用上はほぼ問題ない。
注文してすっかり忘れていた CM4 Lite 8GBが届いたので、途中で入れ替えたが、4GBと8GBとで体感に違いが出る場面はほぼない。
なので、4GBのモジュールで充分だろう。
===== 拡張 =====
==== Hacker Gadgets uConsole Upgrade Kit ====
uConsoleに、NVMe SSD、RJ45 ethernet port、USBなどを[[https://hackergadgets.com/products/uconsole-upgrade-kit|拡張するキット]]。
CM4またはCM5で使用できるが、一部機能はCM5でないと使えない。((USB3.0とかRTCとか))
CM4/5アダプタ、バッテリーボード、IOカードをuConsoleのものと入れ替え、それぞれを付属のフレキで接続する。
要は端子が足りてないので、直で引っ張り出す格好。
CM5であればフル機能が使える反面、冷却が圧倒的に追いつかないため、冷却ファンが必要((冷却ファン用の電源端子もある))だが、背面パネルを加工するなり、交換するなりしないとマウントできない。
なお、これらの機能を使うには、Linux 6.12.45以降の uConsole用カーネルに入れ替える必要がある。
{{ ::uconsole:hackergadgets.jpg?400 |}}
=== SSDから起動する ===
まず、このキットはSSDを選ぶ。
家に転がっていた WD Black 256GBはDRAM搭載のため、刺した時点で全く起動しない。
AIに聞いたら、DRAMなしの製品でないと起動しないだろうとのこと。
宣託に従い、DRAMなしのSSDを買って挿したら起動しない問題は解消した。
OSのイメージはTFカードのものをそのまま転送してやればいい。
色んな情報があるが、パーティションはGPTでよい。
ブートパーティション((/boot/firmware /dev/nvme0n1p1))が第一パーティションでESP、BOOTのフラグを立てて、FAT32でファイルシステムを作成する。
残りの領域は ext4で作って、ここにTFカードの第二パーティションをまるっとコピーする。
キモとなるのは、/dev/nvme0n1p1にある cmdline.txt というテキストファイル。
とりあえず、中にある root=/dev/mmcblk0p2 となっている((違うかもしれないが、とにかく root=の部分))に、/dev/nvme0n1p2 のPARTUUIDを書いてやること。
$ blkid /dev/nvme0n1p2
/dev/nvme0n1p2: UUID="0fb63809-7b8d-4e3c-8cc0-aaa1de550c7c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="41dc48ff-eacc-4a49-87a6-b60047b804ff"
のように表示されたら、PARTUUIDの値を転記してやればいい。
zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=zstd multipath=off dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=41dc48ff-eacc-4a49-87a6-b60047b804ff rootfstype=ext4 rootwait fixrtc quiet splash
AIによっては、しれっとroot=UUID=0fb63809-7b8d-4e3c-8cc0-aaa1de550c7c と書けとかいってきますが、これは動かないのでダメ、ゼッタイ。
最後は、/etc/fstab を書き換える。
おそらく、TFカードのものは LABEL=writable とかそんな感じでパーティションを指定しているので、これに合わせてSSDのパーティションラベルを変えてもいいが、何らかの事情でTFカードからシステムを起動したときに、同じラベルがあっちにもこっちにもあると動作が保証できないのでやめるべきだろう。
blkid コマンドで /dev/nvme0n1p1 と /dev/nvme0n1p2 のUUID((今度はUUIDでも大丈夫))を取得したら、/dev/nvme0n1p2を/mntあたりにマウントして、etc/fstabを修正する。
UUID=0fb63809-7b8d-4e3c-8cc0-aaa1de550c7c / ext4 discard 0 1
UUID=11DA-D5E8 /boot/firmware vfat defaults 0 1
なお、EEPROMが古いとダメとか、BOOT_ORDERを変更しないとダメとあるが、大体の場合 EEPROMはNVMeをサポートしたバージョンが入っているし、BOOT_ORDERも0xf25641 とかになってて、優先順位は変更したいかもしれないけれど、TFカードやUSBストレージをはずしておけばNVMe SSDから起動するようになっているのであまり気にしなくても大丈夫なはずだ。
===== トラブル =====
==== 電源チップが焼けた ====
{{::uconsole:axp228broken.jpg?400 |}}
uConsoleが立ち上がらなくなった。
電源入れっぱなしにして放置していたら、勝手に落ちていたので再起動しようとしたが起動せず。
分解したところ、AXP228--電源チップが焼け落ちていた。
とりあえず、[[DevTerm]]からCPI3.14 Rev4を移植してみたが起動せず。
Rev 5を売ってくれないか、ClockworkPiに問い合わせ中だが、アリエクにAXP228を発注しとりあえず自力修理を試みることにする。
とはいえQFNチップのはんだ付けができる技術が私にあるとも思えないので、どうなるかは神のみぞ知る。
追記:Clockwork Piのストアで販売されているCPI3.14は写真はRev 4ですが、送られてくるのはRev 5です。
uConsoleを起動できます。