こんにちは
ソフトな道をほのぼのと今日も歩きます。
今回は、SDカード(MicroSDカードです。以下、SDカードとします。)の種類によってlinuxが起動できなかった件についてになります。
最近、ユーザにSDカードを渡す約束があったので、今までの開発に使用していた
ものとは別のSDカードを用意して、
uboot, kernel, デバイスツリー、ユーザランド(rootfs)を書き込んで、
端末に挿し込んで起動してみたところ、uboot→kernel途中までは
動作しているようですが、ユーザランドに到達する前に
“Waiting for root device /dev/mmcblk0p2..."
から先に進みませんでした。
SDの違いとしては以下の通りでした。
[NG品]
スピードクラス10
バスインターフェーススピード:UHS-I
[OK品]
スピードクラス10
バスインターフェーススピード:記載ない
(
上記については、以下のサイトが分かりやすかったです。
https://www.green-house.co.jp/special/sd-card/
}
どうやら、クロックが速すぎて、ドライバ側では対応できていないことが
判明しました。
私の解決した方法は、”High Speedで動作させるように変更する”、の方針でした。
デバイスツリーファイル(xx.dts)を以下のように”no-1-8-v;”を追加することで
現象は収まりました。
-----------------------------------------------
&mmc_1 {
status = "okay";
bus-width = <4>;
…
no-1-8-v;
…
};
-----------------------------------------------
今回は以上です。
[環境]
私の使用環境は VMware 上でUbuntu14.04を使用しています。
コンパイラ: arm-linux-gnueabihf-gcc
コロナウィルスになった場合の症状が分からないでいます。
たまに、すごい咳をしている人見かけますがそういう人は
もしかしたらもしかすると。。。と思ってしまいます。
人混みはやはり避けたほうがよさそうですね。