Turing Pi 2.5上のTuring RK1で普段はNVMeから起動しているが、リカバリ用途などで遠隔からeMMCから起動したくなった時の作業メモ。 この手順を忘れていても物理的にNVMeを取り外せばeMMCから起動するが、せっかくBMCがついているので全て遠隔から操作したい。
BMCにsshする
Turing Pi 2.5のBMCにsshする。(デフォルトのユーザ/パスワードはroot / turing)
user@turingpi.local
ノードの電源を投入する
数字はノード番号(1~4)
$ tpi power --node 1 off $ tpi power --node 1 on
すぐにBMC上からシリアルコンソールにアタッチする
$ microcom -s 115200 /dev/ttyS1
U-bootのメニューに入る
カウントダウンが表示されたらenterキーを押すとブートシーケンスが止まってU-bootのメニューに入れる
U-Boot 2024.01 (Jan 28 2024 - 19:39:18 +0000) Model: Turing Machines RK1 DRAM: 32 GiB (effective 31.7 GiB) Core: 318 devices, 27 uclasses, devicetree: separate MMC: mmc@fe2e0000: 0 Loading Environment from nowhere... OK In: serial@febc0000 Out: serial@febc0000 Err: serial@febc0000 Model: Turing Machines RK1 Net: eth0: ethernet@fe1c0000 Hit any key to stop autoboot: 2 =>
bootする
boot対象一覧を表示する。ちなみにmmc1はSDカードになっていて、内蔵eMMCはmmc0。なのでSDカードを刺さなければNVMeから起動しようとする。
=> printenv boot_targets boot_targets=mmc1 nvme scsi usb mmc0 pxe dhcp spi
一時的に起動順序を変更する。setenvは一時的な値の変更であって永続的ではない。 永続的な変更は不可能な模様。 https://forum.turingpi.com/t/16718526/rk1-booting-and-running-off-storage-beyond-emmc
内蔵eMMCから優先的に起動する場合は以下のようにする。
=> setenv boot_targets "mmc0 mmc1 nvme scsi usb pxe dhcp spi"
=> boot