📑
U-boot 用のイメージを作るコマンド mkimage のメモ
mkimage 概要
- U-boot ではカーネルイメージに uImage フォーマットが要求される
- その uImage を作るためのコマンドが mkimage
- カーネルイメージ (つまりuImage) はあらかじめメモリにロードしておく
- bootp を使えば tftp でダウンロードしてくれるのでいちいちメモリにロードする手順を踏まずに済むらしい
- bootm ではそのメモリのアドレスを指定する
bootm <Linux uImage address> <mkimage wrapped ramdisk address> <device tree (dtb) address>
- Linux uImage address: メモリにロードしたカーネルイメージのアドレス
- mkimage wrapped ramdisk address: メモリにロードした ramdisk イメージのアドレス
- device tree (dtb) address: メモリにロードした DTB イメージのアドレス
- uImage は 「Legacy Image」 といった名前でも呼ばれる
- uImage は mkimage で作る
mkimage -n 'Kernel Image' -A arm64 -O linux -C none -T kernel -a 0x8000 -e 0x8000 -d Image uImage
- イメージが設置されている場所によってメモリにロードする手段は異なる
- tftp を使う場合: tftpboot を使う
- NAND を使う場合: nand read を使う
- シリアル通信 (kermit) を使う場合: loadb を使う
- シリアル通信で S レコード形式を使う場合: loads を使う
- ただし U-boot のコマンドは U-boot のバージョンや、 ボードのメーカーが提供する U-boot によって実装されているコマンドが異なる
Discussion