honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

SDカードのみでLinux(mainline)起動できた


I have succeeded to boot linux from microSD on standalone NES Classic Mini without usb-host PC. (but currently with uart...).

 

 

今まで結構な勘違いがあった模様。
頑張ってdbsとu-bootを書き換えてUART2に対応させたぜやっほい、と思っていたが
実はUART0のalternate pinになっていただけだったようだ。
その後、dtbではUART0になってるはずのkernelに対してconsole=ttyS2で起動して、メッセージでない、ハングしたなんで?ってなってた模様。
うっかりttyS0で起動させたらいきなりカーネル起動メッセージ出てひっくり返ったわ。
ただ、今のとこmainlineが起動はしたんだけど、オリジナルのKernelに入ってるドライバもないし、NANDも読めてないのでちょっとやりたいことからは遠い。
u-bootのautobootのコマンドにほうりこんで無いからノータッチで起動はしないんだけど、
buildrootでinitramfs付きのuimage作ってSDカードにu-bootとファイル書いて

fatload mmc 0 0x42000000 uimage
fatload mmc 0 0x43000000 sun8i-r16-parrot.dtb

bootm 0x42000000 - 0x43000000 で見事にLinux起動しました。

f:id:honeylab:20161206123917p:plain

f:id:honeylab:20161214190904p:plain

でも、これep952のドライバ無いから画面も出ないし(オリジナルのとこから持ってくる気力は無いよ…)
ここから巻戻ってw、script.binベースのlegacy を改めて起動できるか落ち着いてやってみるつもり。

とりあえず起動画面だけ。
起動後にもMMCは認識してそのまま使えてます。