u-bootのカスタマイズ
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
u-bootのカスタマイズ [2022/08/24 11:15] – makotoa67 | u-bootのカスタマイズ [2023/06/16 14:08] (現在) – [U-Bootのビルド] makotoa67 | ||
---|---|---|---|
行 2: | 行 2: | ||
Jetson TX2 NX Moduleで、U-BootのTX2 NX向けバージョンのバグを修正する必要に迫られて、一度、U-Bootを自分でビルドして実際に書き込んで使用したことはあるが、そのときは、詳細な記録を残していなかったので、今回、Jetson Nano Moduleの環境にて、U-Bootのカスタマイズ、というか、具体的に変更する必要のあるネタは今のところないので、とりあえず、自分でビルドしてそれを使ってみるとして、その記録をここに残す。 | Jetson TX2 NX Moduleで、U-BootのTX2 NX向けバージョンのバグを修正する必要に迫られて、一度、U-Bootを自分でビルドして実際に書き込んで使用したことはあるが、そのときは、詳細な記録を残していなかったので、今回、Jetson Nano Moduleの環境にて、U-Bootのカスタマイズ、というか、具体的に変更する必要のあるネタは今のところないので、とりあえず、自分でビルドしてそれを使ってみるとして、その記録をここに残す。 | ||
- | |||
## U-Bootのビルド | ## U-Bootのビルド | ||
行 22: | 行 21: | ||
を参照しつつやってみる。(TX2 NXのときもそうしたはず) | を参照しつつやってみる。(TX2 NXのときもそうしたはず) | ||
+ | |||
+ | まずは、ダウンロードして展開。 | ||
``` | ``` | ||
- | arioka@beelink-u59: | + | $ git clone -n git:// |
Cloning into ' | Cloning into ' | ||
remote: Enumerating objects: 691094, done. | remote: Enumerating objects: 691094, done. | ||
行 32: | 行 33: | ||
Receiving objects: 100% (691094/ | Receiving objects: 100% (691094/ | ||
Resolving deltas: 100% (573623/ | Resolving deltas: 100% (573623/ | ||
- | arioka@beelink-u59: | + | $ cd u-boot/ |
- | arioka@beelink-u59: | + | $ git checkout -b jetson_nano_module_u-boot_customization tegra-l4t-r32.7.1 |
- | arioka@beelink-u59: | + | |
Updating files: 100% (16598/ | Updating files: 100% (16598/ | ||
Switched to a new branch ' | Switched to a new branch ' | ||
- | arioka@beelink-u59: | + | $ git branch |
- | arioka@beelink-u59: | + | |
- | arioka@beelink-u59: | + | |
* jetson_nano_module_u-boot_customization | * jetson_nano_module_u-boot_customization | ||
- | arioka@beelink-u59: | + | $ ls |
Kbuild | Kbuild | ||
Kconfig | Kconfig | ||
Licenses | Licenses | ||
MAINTAINERS | MAINTAINERS | ||
- | arioka@beelink-u59: | + | $ git checkout-index -a --prefix=exports/ |
- | arioka@beelink-u59: | + | $ ls |
Kbuild | Kbuild | ||
Kconfig | Kconfig | ||
Licenses | Licenses | ||
MAINTAINERS | MAINTAINERS | ||
- | arioka@beelink-u59: | + | $ mkdir ~/ |
- | .azure-pipelines.yml | + | $ mv exports ~/ |
- | .checkpatch.conf | + | $ cd ~/ |
- | .gitattributes | + | $ ls |
- | .github/ | + | |
- | .gitignore | + | |
- | .gitlab-ci.yml | + | |
- | .mailmap | + | |
- | .travis.yml | + | |
- | Kbuild | + | |
- | Kconfig | + | |
- | Licenses/ | + | |
- | MAINTAINERS | + | |
- | arioka@beelink-u59: | + | |
- | Linux_for_Tegra/ | + | |
- | arioka@beelink-u59: | + | |
- | source/ | + | |
- | arioka@beelink-u59: | + | |
- | source/ | + | |
- | arioka@beelink-u59: | + | |
- | 189992/ | + | |
- | BUP_generator.py | + | |
- | LICENSE | + | |
- | LICENSE.chkbdinfo | + | |
- | LICENSE.mkbctpart | + | |
- | LICENSE.mkbootimg | + | |
- | LICENSE.mkgpt | + | |
- | LICENSE.mksparse | + | |
- | LICENSE.tegraopenssl | + | |
- | LICENSE.tos-mon-only.img.arm-trusted-firmware | + | |
- | LICENSE.u-boot | + | |
- | NVIDIA_Trademark_License_Addendum_SW.pdf | + | |
- | P3448_A00_lpddr4_204Mhz_P987.cfg | + | |
- | __pycache__/ | + | |
- | bbd.bin | + | |
- | bmp.blob | + | |
- | boot.img | + | |
- | boot.img.sb | + | |
- | cboot.bin | + | |
- | chkbdinfo | + | |
- | crc-flash.xml.bin | + | |
- | crc-flash.xml.tmp | + | |
- | cvm.bin | + | |
- | arioka@beelink-u59: | + | |
- | 189992 | + | |
- | BUP_generator.py | + | |
- | LICENSE | + | |
- | LICENSE.chkbdinfo | + | |
- | LICENSE.mkbctpart | + | |
- | LICENSE.mkbootimg | + | |
- | LICENSE.mkgpt | + | |
- | LICENSE.mksparse | + | |
- | LICENSE.tegraopenssl | + | |
- | LICENSE.tos-mon-only.img.arm-trusted-firmware | + | |
- | LICENSE.u-boot | + | |
- | NVIDIA_Trademark_License_Addendum_SW.pdf | + | |
- | P3448_A00_lpddr4_204Mhz_P987.cfg | + | |
- | __pycache__ | + | |
- | bbd.bin | + | |
- | bmp.blob | + | |
- | boot.img | + | |
- | boot.img.sb | + | |
- | cboot.bin | + | |
- | chkbdinfo | + | |
- | crc-flash.xml.bin | + | |
- | crc-flash.xml.tmp | + | |
- | cvm.bin | + | |
- | eks.img | + | |
- | emmc_bootblob_ver.txt | + | |
- | extlinux.conf | + | |
- | flash.xml | + | |
- | flash.xml.sb | + | |
- | flash_parameters.txt | + | |
- | flash_win.bat | + | |
- | flashcmd.txt | + | |
- | initrd | + | |
- | kernel_tegra210-p3448-0000-p3449-0000-b00.dtb | + | |
- | kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.sb | + | |
- | kernel_tegra210-p3448-0002-p3449-0000-b00.dtb | + | |
- | kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.sb | + | |
- | l4t_bup_gen.func | + | |
- | l4t_initrd.img | + | |
- | mkbctpart | + | |
- | mkbootimg | + | |
- | mkgpt | + | |
- | mksparse | + | |
- | nv_boot_control.conf | + | |
- | nvidia-l4t-bootloader_32.7.2-20220420143418_arm64.deb | + | |
- | nvtboot.bin | + | |
- | nvtboot_cpu.bin | + | |
- | nvtboot_cpu_rb.bin | + | |
- | nvtboot_recovery.bin | + | |
- | nvtboot_recovery_cpu.bin | + | |
- | qspi_bootblob_ver.txt | + | |
- | rp4.blob | + | |
- | sc7entry-firmware.bin | + | |
- | system.img | + | |
- | system.img.raw | + | |
- | t210ref | + | |
- | tegra210-p3448-0000-p3449-0000-b00.dtb | + | |
- | tegra210-p3448-0002-p3449-0000-b00.dtb | + | |
- | tegrabct | + | |
- | tegradevflash | + | |
- | tegraflash.py | + | |
- | tegraflash_internal.py | + | |
- | tegrahost | + | |
- | tegraopenssl | + | |
- | tegraparser | + | |
- | tegrarcm | + | |
- | tegrasign | + | |
- | tegrasign_v3.py | + | |
- | tegrasign_v3_internal.py | + | |
- | tegrasign_v3_util.py | + | |
- | tos-mon-only.img | + | |
- | tos.img | + | |
- | warmboot.bin | + | |
- | arioka@beelink-u59: | + | |
- | arioka@beelink-u59: | + | |
- | README_Autoflash.txt | + | |
- | README_Massflash.txt | + | |
- | README_RAPID_BOOT.txt | + | |
- | TX1_boot-firmware-redundancy.txt | + | |
- | apply_binaries.sh | + | |
- | bootloader/ | + | |
- | build_l4t_bup.sh | + | |
- | flash.sh | + | |
- | jetson-nano-2gb-devkit.conf | + | |
- | jetson-nano-devkit-emmc.conf | + | |
- | jetson-nano-devkit.conf | + | |
- | jetson-nano-emmc.conf | + | |
- | jetson-nano-qspi-sd.conf | + | |
- | jetson-nano-qspi.conf | + | |
- | jetson-tx1-devkit.conf | + | |
- | jetson-tx1.conf | + | |
- | kernel/ | + | |
- | l4t_generate_soc_bup.sh | + | |
- | nv_tegra/ | + | |
- | nv_tools/ | + | |
- | arioka@beelink-u59: | + | |
- | README_Autoflash.txt | + | |
- | README_Massflash.txt | + | |
- | README_RAPID_BOOT.txt | + | |
- | TX1_boot-firmware-redundancy.txt | + | |
- | apply_binaries.sh | + | |
- | bootloader | + | |
- | build_l4t_bup.sh | + | |
- | flash.sh | + | |
- | jetson-nano-2gb-devkit.conf | + | |
- | jetson-nano-devkit-emmc.conf | + | |
- | jetson-nano-devkit.conf | + | |
- | jetson-nano-emmc.conf | + | |
- | jetson-nano-qspi-sd.conf | + | |
- | jetson-nano-qspi.conf | + | |
- | jetson-tx1-devkit.conf | + | |
- | jetson-tx1.conf | + | |
- | kernel | + | |
- | l4t_generate_soc_bup.sh | + | |
- | nv_tegra | + | |
- | nv_tools | + | |
- | arioka@beelink-u59: | + | |
- | source/ | + | |
- | arioka@beelink-u59: | + | |
- | arioka@beelink-u59: | + | |
- | arioka@beelink-u59: | + | |
- | arioka@beelink-u59: | + | |
Kbuild | Kbuild | ||
Kconfig | Kconfig | ||
Licenses | Licenses | ||
MAINTAINERS | MAINTAINERS | ||
- | arioka@beelink-u59: | + | ``` |
+ | |||
+ | 次に、ビルド。環境変数を設定して、makeなど。 | ||
+ | |||
+ | ``` | ||
+ | $ export CROSS_COMPILE=$HOME/ | ||
+ | $ make distclean | ||
+ | $ make p3450-0000_defconfig | ||
+ | $ make | ||
+ | ``` | ||
+ | |||
+ | 無事にmakeできたっぽい。(っぽいと書くのは、もちろん、単にmakeして、エラーらしきメッセージが出なかっただけだから) | ||
+ | |||
+ | ちなみに、32.6.1のときのTX2 NX向けのバグだったところをみると、 | ||
+ | |||
+ | ``` | ||
+ | $ grep kernel_addr_r_size include/ | ||
+ | " | ||
+ | ``` | ||
+ | |||
+ | と、この32.7.1ではちゃんと修正されていることが確認できた。 | ||
+ | |||
+ | まだカスタマイズまではいかず。。。 | ||
+ | |||
+ | (2022/ | ||
+ | |||
+ | 2022/ | ||
+ | |||
+ | ひとまず、U-Bootのデフォルトのブート順序を変更してみる。 | ||
+ | |||
+ | U-Bootのソース内、include/ | ||
+ | |||
+ | ``` | ||
+ | /*#define BOOT_TARGET_DEVICES(func) | ||
+ | func(MMC, mmc, 1) \ | ||
+ | func(MMC, mmc, 0) \ | ||
+ | func(USB, usb, 0) \ | ||
+ | func(NVME, nvme, 0) \ | ||
+ | func(PXE, pxe, na) \ | ||
+ | func(DHCP, dhcp, na)*/ | ||
+ | #define BOOT_TARGET_DEVICES(func) \ | ||
+ | func(NVME, nvme, 0) \ | ||
+ | func(MMC, mmc, 1) \ | ||
+ | func(MMC, mmc, 0) \ | ||
+ | func(USB, usb, 0) \ | ||
+ | func(PXE, pxe, na) \ | ||
+ | func(DHCP, dhcp, na) | ||
+ | ``` | ||
+ | |||
+ | これでmake。 | ||
+ | " | ||
+ | |||
+ | ``` | ||
+ | $ sudo ./flash.sh -k LNX jetson-nano-devkit-emmc mmcblk0p1 | ||
+ | ``` | ||
+ | |||
+ | とやるが、初期状態では無理のようで、一旦は、全体的にflash、つまり、 | ||
+ | |||
+ | ``` | ||
+ | $ sudo ./flash.sh -r jetson-nano-devkit-emmc mmcblk0p1 | ||
+ | ``` | ||
+ | |||
+ | と実行。 | ||
+ | これで、デバッグシリアルから手動でブート順序をSSD優先に変更することなく、そのままデフォルトでSSDからブートできたみたい。OK。 | ||
+ | |||
+ | (2023/ | ||
+ | |||
+ | 今日は、SPI通信ができなくなったJetson Nanoに対して、U-Bootのバージョンを変更してみることにより、SPIが復活するかどうかをみていく。 | ||
+ | |||
+ | というのは、SPI通信が突如できなくなったJetson Nanoに対して、SDK Managerにて初期化してSPIが復活した個体(Jetson Nano # | ||
+ | |||
+ | 今回、R32.7.3をベースに作業してみているので、以下のページを参照。 | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Downloading and Building U-Bootで、まず、U-bootをダウンロード。 | ||
+ | |||
+ | ``` | ||
+ | $ git clone -n git:// | ||
+ | $ git checkout -b jetson_nano_u-boot_customization tegra-l4t-r32.7.1 | ||
+ | $ make distclean | ||
+ | $ make p3450-0000_defconfig | ||
+ | $ make | ||
+ | $ cp u-boot{, | ||
+ | $ sudo ./flash.sh -k LNX jetson-nano-qspi-sd mmcblk0p1 | ||
``` | ``` |
u-bootのカスタマイズ.1661307332.txt.gz · 最終更新: 2022/08/24 11:15 by makotoa67