ラズパイで動くLineage OS 17.1ベースのAndroidが出て、TWRPも動くらしい。
どうやってブートローダ切り替えするんだろう?と思ったら、1回Androidを起動してからshellを実行してブートし直す、という手法をとっていた。
twitterで書いたことを備忘録として残していくページ
ラズパイで動くLineage OS 17.1ベースのAndroidが出て、TWRPも動くらしい。
どうやってブートローダ切り替えするんだろう?と思ったら、1回Androidを起動してからshellを実行してブートし直す、という手法をとっていた。
なんとUSBドライバのUSBXHCI.SYSを書き換えることで3GBまでを使えるようにする、という大技が開発されました。
書き換えには「winpatch」という今回のために開発されたものを使います。
これは何をやってくれるのかというと、普通にやると書き換えできないドライバのファイルを、ドライバ署名を除去して、ファイルを書き換えて、自己署名をする、というものです。
で、どういった部分を修正しているかというと、ハードウェア操作用のメモリ空間操作を32bitアドレスでやっているところを、64bitアドレスでやるように変更しています。
ただ、この修正をするとドライバ署名が自己署名になってしまうので、Windows 10起動時のドライバ署名の確認を無効化する必要があります。
Pi-KVMのgithub https://github.com/pikvm/pikvm
TinyPilotのgithub https://github.com/mtlynch/tinypilot
関連記事:「あれ以外の何か with “偽春菜”についてのメモ」
ちなみに、Windows 10 on ARM 32bitがラズパイ2とラズパイ3、Windows 10 on ARM 64bitがラズパイ3とラズパイ4で動くようになってきているらしい。
Windows 10起動microSDはWindows on Raspberryの2.0.0を使って作成する、とのこと。
ラズパイ3のWindows 10 on ARMを動かす際、速くならないかとUEFI設定にあるSDカード操作用のパラメータを調整したらカードの読み込みができなくなった+パラメータを元に戻せなくなった。
パソコンに該当microSDカードをさすと読めるので、ファイル書き換えでなんとかなるのかな?と調べて見たけど、わからない。
とりあえずUEFIの新しいバージョンが出ているようだったのでUbuntu上で環境を整えてコンパイルしてラズパイ3用の新しいUEFIファイルを生成してmicroSD上のファイルと置き換えた。
これにより、起動するようになった。