2020年2月19日水曜日

[Linux] SDカードブートがカードによって出来ない件

こんにちは

ソフトな道をほのぼのと今日も歩きます。


今回は、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


    コロナウィルスになった場合の症状が分からないでいます。

    たまに、すごい咳をしている人見かけますがそういう人は

    もしかしたらもしかすると。。。と思ってしまいます。

    人混みはやはり避けたほうがよさそうですね。


0 件のコメント:

コメントを投稿