上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/ネットワークブート/U-Bootでネットワークブート/RPi用U-Bootをビルド
をテンプレートにして作成
資料室
PC/RaspberryPi/ネットワークブート/U-Bootでネットワークブート/RPi用U-Bootをビルド をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* RPi用U-Bootをビルド
Raspberry PiでNetworkブートする場合,ブートローダーに[[U-...
U-Bootをソースコードからビルドする場合,Raspberry Piでセ...
Windowsマシン上でクロスコンパイラを使用しても,他のビルド...
* U-Bootをビルドする
U-Bootをビルドするためのクロスコンパイラ(GCC)はいくつか...
パッケージでインストール出来るクロスコンパイラを使ってみ...
** クロスコンパイラのインストール
ARM用クロスコンパイラを以下のようにしてインストールした。~
32bit ARM用のコンパイラの場合は,
$ sudo apt install g++-arm-linux-gnueabi device-tree-com...
のようにしてインストール。
64bit ARM用コンパイラの場合は,
$ sudo apt install g++-aarch64-linux-gnu device-tree-com...
のようにしてインストール。
両方インストールしても切り替えて使用できる。
インストール出来ているかの確認。(32bitコンパイラの場合)
$ arm-linux-gnueabi-gcc --version
として,バージョン表示されればインストールは出来ている。
** U-Bootのソースコード取得
ソースコードを取得する。~
$ mkdir ~/rpi
$ cd ~/rpi
$ git clone git://github.com/swarren/u-boot.git(本家の...
$ cd ~/rpi/u-boot
** U-Bootのビルド
環境変数CROSS_COMPILEをセットする。
$ export CROSS_COMPILE="arm-linux-gnueabi-" (32bit u-...
or
$ export CROSS_COMPILE="aarch64-linux-gnu-" (64bit u-...
それと,
export USE_PRIVATE_LIBGCC=yes
をセットしておく。これをしないと''U-BootがRaspberry Piで...
Raspberry Pi用のU-Bootをビルドする場合,makeにモデルを指...
Raspberry Pi,zero用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_defconfig
$ make all
とすると,Raspberry Pi,zero用の&ref(u-boot.bin);が作成さ...
Raspberry Pi2用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_2_defconfig
$ make all
とすると,Raspberry Pi2用の&ref(u-boot.bin.pi2,u-boot.bin...
Raspberry Pi3用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_3_32b_defconfig
$ make all
とすると,Raspberry Pi3用の&ref(u-boot.bin.pi3,u-boot.bin...
Raspberry Pi4用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_4_32b_defconfig
$ make all
とすると,Raspberry Pi4用の&ref(u-boot.bin.pi4,u-boot.bin...
Raspberry Pi Zero W用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_0_w_defconfig
$ make all
とすると,Raspberry Pi Zero W用の&ref(u-boot.bin.pi0w,u-b...
Raspberry Pi3(64bit)用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_3_defconfig
$ make all
とすると,Raspberry Pi3(64bit)用の&ref(u-boot.bin.pi364,u...
Raspberry Pi4(64bit)用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_4_defconfig
$ make all
とすると,Raspberry Pi4(64bit)用の&ref(u-boot.bin.pi464,u...
この時指定する機種は,configsフォルダに定義ファイルが準備...
Raspberry Piシリーズだと以下のようなファイルがあった。~
- rpi_defconfig Raspberry Pi, Zero~
- rpi_2_defconfig Raspberry Pi2~
- rpi_3_32b_defconfig Raspberry Pi3(32bit)~
- rpi_3_defconfig Raspberry Pi3(64bit)~
- rpi_0_w_defconfig Raspberry Pi zero W~
- rpi_4_32b_defconfig Raspberry Pi4(32bit)~
- rpi_4_defconfig Raspberry Pi4(64bit)~
* U-BootでSDカードのRaspbianを起動してみる
作成したU-Bootを使って,デフォルトのブートローダーの代わ...
使用しているRaspbianが入ったSDカードのFAT/FAT32パーテーシ...
/boot/config.txtで,u-boot.binを使うように変更します。
kernel=u-boot.bin
これでリブートすると,U-Bootがブートローダーとして起動す...
U-Bootで起動した後,コマンドを自動実行するスクリプトファ...
''boot.txt''を作成する。
mmc dev 0
setenv bootargs "earlyprintk console=ttyAMA0,115200 root...
fatload mmc 0:1 ${kernel_addr_r} kernel.img
fatload mmc 0:1 ${fdt_addr_r} bcm2708-rpi-b.dtb
bootz ${kernel_addr_r} - ${fdt_addr_r}
boot.txtをU-Bootが認識できるファイルに変換します。~
これには,mkimageコマンドを使います。(U-Bootをビルドした...
$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n...
&ref(boot_sd.scr.uimg,boot.scr.uimg);が作成されます。
作成されたboot.scr.uimgをSDカードの/bootにコピーする。
これで,Raspberry PiをリブートするとU-Bootを使ってRaspbia...
この場合のU-Bootを使ったブートは,以下のように行われる。~
- U-BootがSD/MicroSDカードから読み込まれ起動する~
- 起動されたU-BootがSD/MicroSDカードの/bootにあるKernelと...
- Kernelを起動する~
ここまでがU-Bootで行われる。~
- その後,Kernelに渡されるオプションによりルートファイル...
- 最初のプロセスであるsystemdが起動される~
終了行:
* RPi用U-Bootをビルド
Raspberry PiでNetworkブートする場合,ブートローダーに[[U-...
U-Bootをソースコードからビルドする場合,Raspberry Piでセ...
Windowsマシン上でクロスコンパイラを使用しても,他のビルド...
* U-Bootをビルドする
U-Bootをビルドするためのクロスコンパイラ(GCC)はいくつか...
パッケージでインストール出来るクロスコンパイラを使ってみ...
** クロスコンパイラのインストール
ARM用クロスコンパイラを以下のようにしてインストールした。~
32bit ARM用のコンパイラの場合は,
$ sudo apt install g++-arm-linux-gnueabi device-tree-com...
のようにしてインストール。
64bit ARM用コンパイラの場合は,
$ sudo apt install g++-aarch64-linux-gnu device-tree-com...
のようにしてインストール。
両方インストールしても切り替えて使用できる。
インストール出来ているかの確認。(32bitコンパイラの場合)
$ arm-linux-gnueabi-gcc --version
として,バージョン表示されればインストールは出来ている。
** U-Bootのソースコード取得
ソースコードを取得する。~
$ mkdir ~/rpi
$ cd ~/rpi
$ git clone git://github.com/swarren/u-boot.git(本家の...
$ cd ~/rpi/u-boot
** U-Bootのビルド
環境変数CROSS_COMPILEをセットする。
$ export CROSS_COMPILE="arm-linux-gnueabi-" (32bit u-...
or
$ export CROSS_COMPILE="aarch64-linux-gnu-" (64bit u-...
それと,
export USE_PRIVATE_LIBGCC=yes
をセットしておく。これをしないと''U-BootがRaspberry Piで...
Raspberry Pi用のU-Bootをビルドする場合,makeにモデルを指...
Raspberry Pi,zero用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_defconfig
$ make all
とすると,Raspberry Pi,zero用の&ref(u-boot.bin);が作成さ...
Raspberry Pi2用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_2_defconfig
$ make all
とすると,Raspberry Pi2用の&ref(u-boot.bin.pi2,u-boot.bin...
Raspberry Pi3用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_3_32b_defconfig
$ make all
とすると,Raspberry Pi3用の&ref(u-boot.bin.pi3,u-boot.bin...
Raspberry Pi4用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_4_32b_defconfig
$ make all
とすると,Raspberry Pi4用の&ref(u-boot.bin.pi4,u-boot.bin...
Raspberry Pi Zero W用をビルドする場合は,
$ make clean
$ make distclean
$ make rpi_0_w_defconfig
$ make all
とすると,Raspberry Pi Zero W用の&ref(u-boot.bin.pi0w,u-b...
Raspberry Pi3(64bit)用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_3_defconfig
$ make all
とすると,Raspberry Pi3(64bit)用の&ref(u-boot.bin.pi364,u...
Raspberry Pi4(64bit)用をビルドする場合は,~
$ make clean
$ make distclean
$ make rpi_4_defconfig
$ make all
とすると,Raspberry Pi4(64bit)用の&ref(u-boot.bin.pi464,u...
この時指定する機種は,configsフォルダに定義ファイルが準備...
Raspberry Piシリーズだと以下のようなファイルがあった。~
- rpi_defconfig Raspberry Pi, Zero~
- rpi_2_defconfig Raspberry Pi2~
- rpi_3_32b_defconfig Raspberry Pi3(32bit)~
- rpi_3_defconfig Raspberry Pi3(64bit)~
- rpi_0_w_defconfig Raspberry Pi zero W~
- rpi_4_32b_defconfig Raspberry Pi4(32bit)~
- rpi_4_defconfig Raspberry Pi4(64bit)~
* U-BootでSDカードのRaspbianを起動してみる
作成したU-Bootを使って,デフォルトのブートローダーの代わ...
使用しているRaspbianが入ったSDカードのFAT/FAT32パーテーシ...
/boot/config.txtで,u-boot.binを使うように変更します。
kernel=u-boot.bin
これでリブートすると,U-Bootがブートローダーとして起動す...
U-Bootで起動した後,コマンドを自動実行するスクリプトファ...
''boot.txt''を作成する。
mmc dev 0
setenv bootargs "earlyprintk console=ttyAMA0,115200 root...
fatload mmc 0:1 ${kernel_addr_r} kernel.img
fatload mmc 0:1 ${fdt_addr_r} bcm2708-rpi-b.dtb
bootz ${kernel_addr_r} - ${fdt_addr_r}
boot.txtをU-Bootが認識できるファイルに変換します。~
これには,mkimageコマンドを使います。(U-Bootをビルドした...
$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n...
&ref(boot_sd.scr.uimg,boot.scr.uimg);が作成されます。
作成されたboot.scr.uimgをSDカードの/bootにコピーする。
これで,Raspberry PiをリブートするとU-Bootを使ってRaspbia...
この場合のU-Bootを使ったブートは,以下のように行われる。~
- U-BootがSD/MicroSDカードから読み込まれ起動する~
- 起動されたU-BootがSD/MicroSDカードの/bootにあるKernelと...
- Kernelを起動する~
ここまでがU-Bootで行われる。~
- その後,Kernelに渡されるオプションによりルートファイル...
- 最初のプロセスであるsystemdが起動される~
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ