【是認】NCP-HG100のeMMCをf2fsフォーマットするとエラーが出るけど色々いじってたら使えるようになってた
さて、
NCP-HG100にOpenWrt24.10を入れたときの小話シリーズだが、今回はeMMCの話
純正ファームのアップデートでU-Bootが塞がれたという噂
21.02では、なんかあったらすぐに純正ファームで起動できるようにUSBメモリからブートしていたが、純正ファームで起動してアップデするとU-Bootを塞がれる、となればもはや純正ファームで起動することはないだろ
ということで、
公式サポートの設計通りeMMCに書き込んで使うことにした
/overlay のファイルシステムをext4からf2fsに変更
変更の理由は単にやってみたかったからであり、実際になんか差があるのか?というと、たぶん無い。デバイス寿命云々の前に、俺の寿命が来るだろ?という程度の使い方(書き込み量)だからね
mkfs.f2fsでエラーが出る
/overlayのマウント先である/dev/mmcblk0p17をフォーマットしてる部分を捜索すると
target/linux/ipq40xx/base-files/lib/upgrade/sony.sh
ここの、mkfs.ext4をmkfs.f2fs に変更
※この時点で必要なコマンドはRAMに置く必要があり、platform.shのRAMFS_COPY_BINにmkfs.f2fsを追記が必要だ
- mkfs.ext4 -F -L rootfs_data $rootfs_data_dev
+ mkfs.f2fs -f -l rootfs_data $rootfs_data_dev
修正してビルドしたら、USBメモリに書き込み起動してsysupgradeしてみる
すると、機種サポートのコミットログにあるようにエラーが出て進まないんだよね
discard処理が先に進まない
そこで、-t0でnodiscard指定すると、とりあえずフォーマットは完了した
- mkfs.f2fs -f -l rootfs_data $rootfs_data_dev
+ mkfs.f2fs -f -t0 -l rootfs_data $rootfs_data_dev
いわゆるクイックフォーマットが出来たっつーことで、これでヨシ!!
と思ったんだけど念のためUSBメモリ起動して手動でフォーマットしてみた
mkfs.f2fs -f -l rootfs_data /dev/mmcblk0p17
するとdiscarding処理が進んで、8分くらいで完了した
なんで上手くいった!?😒
結論:なんかわからんけどf2fsで使えるよーになった
フォーマット時にdiscardするのとしないととで何が違うのかって、調べると使用開始時の書き込みパフォーマンスが向上するとか出てくるけど
別にパフォーマンス要らないし
使ってるうちにtrimされ理論上最終的に全ての未使用セクタは未使用であると通知されるんだから気分的な影響もないし
そもそも書き込みが殆どなく、殆どのセクタは永遠に未使用っつーことになり、つまりそもそもtrimしてもしなくても何も変わんなくね?つー疑問が生じますが、
いつもどおり、完全に自己満足でヨシ!!😆