RaspberryPi4(32bit)に面白半分で64bitカーネルを入れたら、地デジチューナーのドライバが全く動かなくなり、初期化からの再構築という最悪のパターンまで想像してたところで見つけた、まさかのロールバック方法です。
同じ恐怖を覚えてる人を助けられればと思い、記事にします。
バックアップしとけば良いって話です。はい。
本記事の対象は、以下の事をしてしまってどうやって戻すねーんの人向けです。
arm_64bit=1
・/boot/config.txtの中に
arm_64bit=1
を書き込んでしまって、動かしたいソフトやドライバが動かなくなって、元に戻りたくても戻れない人向けです。
どこかのQiitaの記事では元に戻す方法は無いと書かれていて、絶望しましたが、戻す方法はありました。
初期化する前に試す価値はあります。
その前に、絶対にやってはいけない事を書きます。
/boot/config.txt内のarm_64bit=1を消して再起動は絶対にしないでください。RaspberryPiが起動しなくなります。
最終的にはarm_64bit=1を削除して再起動するのですが、この段階では実施しては駄目です。
駄目絶対を守ったところで、早速始めましょう。
手順は以下の通りです。
1)古いカーネルを指定してカーネルのダウングレードを実施する 2)一度再起動する 3)古いカーネルにダウングレードしている事を確認した後、/boot/config.txt内のarm_64bit=1を消して保存する 4)再起動せず、別のカーネルで上書きをする
簡単に書いてしまうと以上です。結構力技感がありますが、これで実際に戻れました。
具体的には以下のように実施していきます。
1)古いカーネルを指定してカーネルのダウングレード
まず古いカーネルを探します。
githubにありますが、以下のリンク先から参照すると楽です。
https://github.com/Hexxeh/rpi-firmware/commit/e1050e94821a70b2e4c72b318d6c6c968552e9a2
飛んだ先のcommitと書かれているところの数字の羅列を使います。
上のリンク先の場合は、e1050e94821a70b2e4c72b318d6c6c968552e9a2です。
sudo rpi-update e1050e94821a70b2e4c72b318d6c6c968552e9a2
上記のコマンドを打つと、4.19系のカーネルにダウングレードさせる事が出来ます。
2)一度再起動する
ダウングレードが完了して、再起動してねというメッセージが出たら、ここで一度再起動します
3)古いカーネルにダウングレードしている事を確認した後、/boot/config.txt内のarm_64bit=1を消して保存する
最も大事なフェーズです。
sshでアクセスすると、ログイン直後の一番上に5.4.58-v7l+のような記載があると思います。
この記載でカーネルが今どのバージョンなのかが分かりますので、目的のダウングレードしたカーネルになっているかを確認してください。
ダウングレードされている事が確認出来たら、例の/boot/config.txt内にあるarm_64bit=1を削除して保存してください。
4)再起動せず、別のカーネルで上書きをする
/boot/config.txt内にあるarm_64bit=1を削除して保存されている事を改めて確認し、4.19系のカーネルから5.4.x系のカーネルに上書きします。
私が実際に上書きしたカーネルはこちらです。
sudo rpi-update 23141000a5eae7ddbe11d4ac283198afd3031263
カーネルのアップデートが完了したら、再起動しましょう。
無事に64bitから32bit環境へロールバックされているかと思います。
お疲れ様でした。