1126927_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1126927_ja-JP

1126927_ja-JP

i.MX35 PDK LinuxブートSD<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Linux を SD/MMC カードから直接起動する

   

Linuxで自己起動可能なSDまたはMMCカードを作成できます。

   

このチュートリアルでは、SD / MMCカードから起動する完全なLinuxシステム(ブートローダー+ Linuxカーネル+ルートファイルシステム)を作成する方法について説明します。

   

これは、SD / MMCカードに自己完結型できるいくつかのLinuxイメージをデモンストレーションする意思のある人々にとって非常に便利です。

ATK を使用した MMC での RedBoot のフラッシュ

   

SDカードからLinuxを起動するには、最初に行うことは、ブートローダーをカードにプログラムすることです。これを行うには、以下のリンクをクリックしてください。

   

I.MX35 PDKボードフラッシングSDカード

DD を使用した MMC での RedBoot のフラッシュ

   

また、任意のLinuxシステムでddを使用してredbootをロードすることもできます。


$ sudo dd if=./Desktop/mx35_3stack_redboot_mmc.bin of=/dev/sdd bs=512 skip=2 seek=2 

カーネルを SD/MMC からブートするように設定する

   

Linux ブータブル MMC/SD カードの作成。

   

LTIBを実行します。


$ ./ltib-c 

   

カーネルの設定を選択します。


[*]カーネルの設定 

   

イメージ生成を NFS に変更します。

   

ターゲットイメージの生成

   

オプション--->

   

(X) NFSのみ

   

MMC/SD と ext3 への組み込みサポートを持つ Linux カーネルをコンパイルします。

   

次の順序に従います。

   

デバイスドライバー--->

   

<*> MMC/SDカード対応--->

   

<*> Freescale MMC/SDIO用UniFi SDIO接着剤

   

<*> フリースケール i.MX セキュア・デジタル・ホスト・コントローラ・インタフェースのサポート


   

ファイル・システム--->

   

<*> Ext3 ジャーナリング・ファイル・システムのサポート

   

コンパイル後、ファイル ~/ltib/rootfs/boot/zImage を tftpboot ディレクトリにコピーします。


$ cp ~/ltib/rootfs/boot/zImage /tftpboot 

RedBootカーネルパーティションの作成

   

RedBootパーティションを作成し、Linuxカーネルをそれにコピーします。

   

MMC をアクティブにします。


RedBoot> factive MMC 

   

フラッシュパーティションを初期化します。


RedBoot> fis init 

   

RedBoot> FIS一覧

   

...0x07ee0000-0x07eff000 at 0x00060000: から読みます。

   

名前:FLASH addr Mem addr Length エントリポイント

   

RedBoot 0x00000000 0x00000000 0x00040000 0x00000000

   

FIS ディレクトリ0x00060000 0x00060000 0x0001F000 0x00000000

   

RedBoot構成0x0007F000 0x0007F000 0x00001000 0x00000000

   

カーネルをRAMにロードします。


RedBoot> load -r -b 0x100000 /tftpboot/zImage

   

デフォルトプロトコル(TFTP)の使用

   

RAWファイルは0x00100000-0x002c31b7でロードされ、0x00100000でエントリーが想定されます

   

カーネルイメージの内容をRAMにロードしたカーネルパーティションを作成します。


   

RedBoot> fはカーネル0x200000を作成します

   

   

RedBoot> FIS一覧

   

...0x07ee0000-0x07eff000 at 0x00060000: から読みます。

   

名前:FLASH addr Mem addr Length エントリポイント

   

RedBoot 0x00000000 0x00000000 0x00040000 0x00000000

   

FIS ディレクトリ0x00060000 0x00060000 0x0001F000 0x00000000

   

RedBoot構成0x0007F000 0x0007F000 0x00001000 0x00000000

   

kernel 0x00200000 0x00100000 0x001E0000 0x00100000

   

ボードをリセットする場合は、次の情報を確認する必要があります。


[SDカード、CSDバージョン1.0]からの起動 

   

代わりに 、次のメッセージ が表示された場合:


[不明なバージョンのカード]から起動しています 

   

これは、お使いのカードがサポートされていないことを意味しますので、他のカードと交換してください。

ルートファイルシステムの作成

   

カーネルイメージをSDカードに保存した後、ターゲットボードからカードを取り外し、コンピューター(Linuxを実行)に挿入します。

   

この例では、Linux は SD カードを /dev/sdb として検出しました。

   

次に、2つのパーティションを作成する必要があります。最初のパーティションは使用されず、これは RedBoot とカーネルに予約されているだけです。2 番目のパーティションは、Linux ルート ファイル システムの格納に使用されます。


# fdisk /dev/sdb

   

デバイスに有効な DOS パーティションテーブルも、Sun、SGI、OSF ディスクラベルも含まれていない

   

ディスク識別子 0x526c22da を持つ新しい DOS ディスクラベルの構築。

   

変更は、書き込むことを決定するまで、メモリにのみ残ります。

   

その後、当然のことながら、以前のコンテンツは復元できません。

   

   

警告: パーティション テーブル 4 の無効なフラグ 0x0000 は w(rite) によって修正されます

   

   

コマンド(ヘルプのm):p

   

   

Disk /dev/sdb: 1023 MB, 1023934464 bytes

   

32ヘッド、62セクタ/トラック、1008気筒

   

単位 = 1984 のシリンダ * 512 = 1015808 バイト

   

Disk identifier: 0x526c22da

   

   

デバイスブート開始終了ブロックIDシステム

   

最初のパーティションを 8 MB で作成します。以前に保存したように、すでにRedBootとカーネルが含まれています。

       

   

コマンド (m はヘルプ): n

   

コマンドアクション

   

E拡張

   

p プライマリ パーティション (1-4)

   

P

   

パーティション番号(1-4):1

   

最初のシリンダー (1-1008、デフォルト 1):

   

デフォルト値 1 を使用

   

最後のシリンダー、+シリンダー、または +サイズ{K,M,G} (1-1008、デフォルト 1008): +8M

   

次に、SDカードの残りのスペースをすべて使用して2番目のパーティションを作成します。


   

コマンド (m はヘルプ): n

   

コマンドアクション

   

E拡張

   

p プライマリ パーティション (1-4)

   

P

   

パーティション番号(1-4):2

   

最初のシリンダー (10-1008、デフォルト 10):

   

デフォルト値 10 を使用

   

最後のシリンダー、+シリンダー、または +size{K,M,G} (10-1008、デフォルト 1008):

   

デフォルト値 1008 を使用

   

   

コマンド(ヘルプのm):p

   

   

Disk /dev/sdb: 1023 MB, 1023934464 bytes

   

32ヘッド、62セクタ/トラック、1008気筒

   

単位 = 1984 のシリンダ * 512 = 1015808 バイト

   

Disk identifier: 0x526c22da

   

デバイスブート開始終了ブロックIDシステム

   

/dev/sdb1 1 9 8897 83 Linux

   

/dev/sdb2 10 1008 991008 83 Linux

   

   

コマンド(ヘルプのm):w


次に、2番目のパーティションをEXT3としてフォーマットします。

# mkfs.ext3 /dev/sdb2 

SDカードをコンピュータから取り外し、再度挿入します。おそらく、Linuxディストリビューションがそれをデテクトし、自動的にマウントします。


Ubuntu 8.10では、/dev/mediaにマウントされました。

 

#マウント

 

...

 

/media/disk 上の /dev/sdb2 タイプ ext3 (rw,nosuid,nodev,uhelper=hal)


Linuxがマウントしなかった場合、手動でマウントできます。

 

# mkdir -p /media/disk

 

# /dev/sdb2 -t ext3 /media/disk をマウント


LTIBディレクトリに入力し、rootfsの内容をSDカードにコピーします。

 

# cd /home/alan/ltib-imx35/rootfs/

 

# cp -a * /media/disk/


正しくコピーされたかどうかを確認します。

 

# ls -l /media/disk/

 

合計 80

 

DRWXR-XR-X 2 ルート ルート 4096 2009-03-12 09:55 ビン

 

drwxr-xr-x 2 root root 4096 2009-03-12 09:53 ブート

 

drwxr-xr-x 2 root root 4096 2009-03-12 09:55 dev

 

drwxr-xr-x 6 root root 4096 2009-03-12 14:41 など

 

drwxr-xr-x 3 root root 4096 2009-03-12 09:53 ホーム

 

drwxr-xr-x 4 root root 4096 2009-03-12 09:55 lib

 

lrwxrwxrwx 1 root root 11 2009-03-12 14:47 linuxrc -> bin/busybox

 

drwx------ 2 root root 16384 2009-03-12 14:37 lost+found

 

drwxr-xr-x 7 root root 4096 2009-03-12 09:53 mnt

 

drwxr-xr-x 2 ルート ルート 4096 2009-03-12 09:53 OPT

 

drwxr-xr-x 2 root root 4096 2009-03-12 09:53 proc

 

drwxr-xr-x 2 root root 4096 2009-03-12 10:10 root

 

drwxr-xr-x 2 ルート ルート 4096 2009-03-12 09:55 sbin

 

drwxr-xr-x 2 root root 4096 2009-03-12 09:53 sys

 

drwxrwxrwt 3 root root 4096 2009-03-12 09:53 tmp

 

drwxr-xr-x 2 root root 4096 2009-03-12 09:55 unit_tests

 

drwxr-xr-x 9 root root 4096 2009-03-12 09:55 usr

 

DRWXR-XR-X 11 ルート ルート 4096 2009-03-12 09:55 var

 

root@urubu:~/ltib-imx25/rootfs#

   

次に、SDカードをアンマウントします。


# umount /media/disk 

カーネルと Rootfs を SD/MMC カードからロードするための RedBoot の構成

   

SDカードをコンピュータから取り外し、ボードに再度配置します。

   

RedBoot が SD/MMC カードからカーネルをロードするように設定し、カーネルコマンドパラメータ "root" を設定して 2 番目の SD/MMC カードパーティション (/dev/mmcblk0p2) からルートファイルシステムをロードするように設定します。

   

RedBoot> fc

   

起動時にスクリプトを実行: true

   

ブートスクリプト:

   

スクリプトを入力し、空行で終了します

   

>> fis load kernel

   

>> exec -b 0x100000 -l 0x200000 -c "noinitrd console=ttymxc0,115200 root=/dev/mmcblk0p2 init=/linuxrc ip=none"

   

>>

   

ブートスクリプトのタイムアウト(1000msの解像度):1

   

ネットワーク設定にBOOTPを使用:false

   

ゲートウェイ IP アドレス: 10.29.244.254

   

ローカル IP アドレス: 10.29.244.135

   

ローカル IP アドレス マスク: 255.255.0.0

   

デフォルトのサーバーIPアドレス:10.29.240.182

   

ボードの詳細:0

   

コンソールのボーレート:115200

   

eth0ネットワークハードウェアアドレスの設定[MAC]:false

   

FECネットワークハードウェアアドレスの設定[MAC]:false

   

GDB接続ポート:9000

   

特別なデバッグ メッセージの強制コンソール: false

   

ブート時のネットワークデバッグ:false

   

デフォルトのネットワークデバイス:lan92xx_eth0

   

RedBootの不揮発性構成を更新します-続行(y / n)?y

   

...0x07ee0000-0x07eff000 at 0x00060000: から読みます。

   

...0x00060000-0x00080000から消去: .

   

...0x00060000での0x07ee0000-0x07f00000からのプログラム:。

 

   

ボードをリセットするだけで、SD / MMCカードから直接起動します。

Linux
Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 10:15 AM
Updated by: