30-Jun-2023
[Mango Pi MQ-Quad (Allwinner H618)を(2)]

未だに動かせていません。

Yuzuki ChameleonがMango Pi MQ-Quad同様にDDR3 SDRAMを16bit幅・rank2で接続しているようなので、Dockerのイメージを入手してビルドを試みてみたのですが…これをそのままMQ-Quadで動かそうとしてもこんな風にメモリの検出に失敗してまったく動きません。とはいえmainlineのU-bootと異なり、linux-sunxiの流儀に従ったU-bootが要求するboot0のソースコードがDockerイメージの中に含まれているのは収穫です(本当はどこかにちゃんとしたH616向けのBSPがあって、そこから手に入れるはず)。

boot0においては、tina-h616-release/device/config/chips/h616/configs/yuzukichameleon/sys_config.fexの内容がbootシグネチャ(eGON.BT0)の少し後にテーブルとして配置されるようで、少なくともSDRAMのパラメータがどんなものかはこの辺りから探ることはできそうです。という訳で、雑なコードを書いてOrange Pi Zero2向けのAndroid(OrangePi_Zero2_Android10_v1.1.img)、Mango Pi MQ-Quad向けのAndroid(h618_android_uart0_phonexcard-5135.img)、Yuzuki Chameleon向けにDockerでビルドしたイメージ(tina_h616-yuzukichameleon_uart0.img)を調べてみました。SDRAMのクロックが少し違うだけで(Yuzuki Chameleonが792MHz、他二つは720MHz)それ以外は全て同じパラメータになっています。

試しにYuzuki ChameleonのDRAMクロックを720MHzに設定するとboot0を抜けた後でクラッシュするようになりました。SDRAMのパラメータに問題がなさそうなら、それ以外の部分…SDRAMの初期化コードの修正とPMIC(AXP313A)の対応を行えばmainlineのU-bootを動かせるのではないかと考えます。とはいえ、この先具体的に何をどうすれば良いかが分からないので困っているんですけどね。55.0kg(20:50)

18-Jun-2023
[ついカッとなって(2)]

昨日発注した部品が今日届いてしまったので、abricot(Windows)/framboise(OpenBSD)どちらも組み替えることにしました。abricotで使っていたH110M-K一式は既に動作確認済みということでそのままframboiseへ移しますが…以前のA88M-G/3.1にあった光SPDIFコネクタがなくなってしまい、LINE端子へ繋げるためのRCA-3.5mmΦ変換ケーブルも手元に無いので、その辺に転がっていたUSB-DACをRCAケーブルで繋げる方法で回避しています。

で、早速U-bootのビルドを試しましたが、あんまり速い感じはしませんね…ちょっと気持ち速くなったのかなー?という気はしますが、マシンよりもむしろSSDの老朽化による問題かもしれません(SSDだけは変えずに8年以上は使っていますからね)。

新しくなったabricotはmemtest86+を動かして、これを書いている時点では3時間程度が経過し3passは通っている状態です。基本的に部品は「今月はCPU」「今月はマザー」「そのうちメモリ」と分けて買うことが多いのですが、流石に08-May-2022な事態には懲りたので(新品で買う場合は初期不良交換期間がそれなりにありますが)財布がめちゃくちゃ軽くなることは覚悟の上で今回はまとめて買っています。55.0kg(17:50)

17-Jun-2023
[ついカッとなって]

Intel Core i3-13100, ASUS Pro H610M-C D4-CSM, Crucial CT2K16G4DFRA32A (DDR4-3200 16GB×2)を発注しちゃいました。これでWindows10機を組み替えてWindows11化し、Windows10機で使っていたIntel Pentium G4600, ASUS H110M-K他をOpenBSD機へ移せるようになります。

マシンいじりをしている余裕はないのですが、Windows11を触ってみたいのと、OpenBSD機上でのU-bootのビルドが遅いと感じられるようになってきたので(i7-7700機でやれば良いのでしょうけど)この辺りが「時期」なのかなーと。

なお、現在のWindows10機は03-Nov-2022から運用していますが、特にこれといったトラブル無く動いています。55.6kg(16:00)

11-Jun-2023
[しばらく多忙につき]

日記の更新を止めるかもしれません。まあ週一回更新するものを日記と称して良いものかという話から始めないといけない気もしますがね…55.5kg(18:00)

03-Jun-2023
[Mango Pi MQ-Quad (Allwinner H618)を]

timg_20230520_135526_097.jpg

買ってみたは良いのですが(WiFi用のアンテナは外して使うので技適に関する指摘は無視します)、手元にある物は公式ページにあるAndroid10 TV for H618以外はまったく動きません。Anrdoid10 TV for H616もATFか何かがエラーを出して止まりますし、他はシリアルコンソールに何も表示しません…多分動いていないと思います。

U-bootをビルドして使おうにも、GitHubにある最新版sunxi: arm64: boot0.h: runtime check for RVBAR addressの対応が入っている必要があることと、Orange Pi Zero2(32bit/1rank)と異なる16bit/2rankのメモリ構成に対応させる必要がありそうです。これを書いている時点では当然未対応ってことになるんですが、こういうサイトで紹介してる人達って一体どういうソフトウェアを載せて動かしているんですかね?

とりあえずAndroid10が動くディスクイメージがある以上これを手掛かりにしてあれこれ探る訳なのですが…シリアルコンソールからはどう頑張ってもU-bootのautobootを中断できずにAndroidが起動してしまいますし、peekpokeを仕込んでみても/dev/memが無いのでどうにもできません。

Android10 TV for H618のディスクイメージはddではなくPhoenixCardを使って書き込むようになっており、awutilsでいくつかのセクションに分解することができます。分解したセクションとPhoenixCardで書き込んだディスクを吸い出して得たディスクイメージを突き合わせて分かったのですが(とはいえ、知っている人はこんな日記を見なくても知っているはず)、どうも"ANDROID!"の文字列で始まるセクタがAndroid boot領域の開始セクタとなっているようです。

今回使用しているディスクイメージ(h618_android_uart0_phonexcard-5135.img)では、PhoenixCardでディスク作成後にdd if=/dev/zero of=/dev/sd1c bs=1024 seek=86016 count=1で開始セクタを示すmagicを潰すことで、こんな風にU-bootだけを起動することができるようになっています。

…俺たちの戦いはこれからだ!(打ち切りフラグ)56.1kg(17:00)