#はじめに
前回の記事が予想以上に多くの方に読まれていたことに驚いています。ありがとうございます。自分の文章力の無さに驚きつつも少しでも問題共有ができればいいなと思い書き始めた経緯です。
今回はその続編ということで、開発中のMPSoCにPetalinuxを導入しようとしたときに発生した問題について記述したいと思います。
この原因の根本的解決が未だに見つかっていないので、どなたかわかる方がいたらご教授いただければ幸いです。
#SDブートしているのにマウントされない…?
今まではstandaloneの状態(いわゆるベアメタル)でデバッグをしていましたが、あれからソフトウェア的に開発するに至って、Petalinuxを導入することになりました。
自分はソフトウェア開発はしないので、ソフト屋さんに一任するのですがPetalinuxが正常起動するかどうかだけ気になったので自分でLinuxイメージを作成することに。
導入に関してはPetalinuxツール資料(UG1144)を参考に作成。
ハードウェア情報が記載されているBOOT.binとlinuxファイルであるimage.ubが作成され無事にlinuxは起動したのですが…
PetaLinux 2018.3 hogehoge /dev/ttyPS0
hogehoge login: root
Password:
Login incorrect
hogehoge login: root
Password:
root@hogehoge:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1889616 4 1889612 0% /dev
tmpfs 2024092 68 2024024 0% /run
tmpfs 2024092 68 2024024 0% /var/volatile
SDカードが見えてない!!!!
そこでdmesgコマンドでmmcの状態を確認して見た結果
root@hogehoge:~# dmesg | grep mmc
[ 2.611962] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[ 2.808930] mmc0: error -110 whilst initialising SD card
root@hogehoge:~#
やはりmmc0の部分でerrorのメッセージが出ていました…
SDのCLKの周波数が原因かなと思い、IP designでSDIO0の周波数を50[MHz]に落としてやってみましたがこの現象は治らず(てかそもそもデフォルト値が200[MHz]っていう時点で相当早い気がするんですが…)
#容量を変えて挑戦してみよう!
筆者が使用していたSDカードが原因じゃない?という話になり、その辺に転がっていた4GBのSDカードを使用したところ…
PetaLinux 2018.3 hogehoge /dev/ttyPS0
hogehoge login: root
Password:
root@hogehoge:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1889616 4 1889612 0% /dev
tmpfs 2024092 72 2024020 0% /run
tmpfs 2024092 68 2024024 0% /var/volatile
/dev/mmcblk0 3850240 21856 3828384 1% /run/media/mmcblk0
root@hogehoge:~# dmesg | grep mmc
[ 2.619732] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[ 2.749315] mmc0: new high speed SDHC card at address 0007
[ 2.749542] mmcblk0: mmc0:0007 SD04G 3.68 GiB (ro)
[ 2.752745] mmcblk0:
root@hogehoge:~#
あーなるほどね 完全に理解したわ(わかってない)
なんと普通に動いてしまいました。一応この現象は8GB,32GBでは起動せずに4GBの時に正常起動しています。不思議ですね…
#まとめ
フォーマットの問題かなと思いいろいろ試しましたが結果原因はわからず…
FAT32の問題なのかなと勝手に予想していますがわかりません…
とりあえず動いたから**ヨシ!**になってますが根本的解決がまだわかっていないのでわかる方がいましたら教えて下さい…