u-bootのカスタマイズ
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
u-bootのカスタマイズ [2022/08/24 11:00] – 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のときもそうしたはず) | ||
+ | |||
+ | まずは、ダウンロードして展開。 | ||
``` | ``` | ||
行 30: | 行 31: | ||
remote: Compressing objects: 100% (108227/ | remote: Compressing objects: 100% (108227/ | ||
remote: Total 691094 (delta 573623), reused 691060 (delta 573589), pack-reused 0 | remote: Total 691094 (delta 573623), reused 691060 (delta 573589), pack-reused 0 | ||
- | Receiving objects: 100% (691094/ | + | Receiving objects: 100% (691094/ |
Resolving deltas: 100% (573623/ | Resolving deltas: 100% (573623/ | ||
$ cd u-boot/ | $ cd u-boot/ | ||
- | $ git checkout tegra-l4t-r32.7.1 | + | $ git checkout |
Updating files: 100% (16598/ | Updating files: 100% (16598/ | ||
- | Note: switching | + | Switched |
+ | $ git branch | ||
+ | * jetson_nano_module_u-boot_customization | ||
+ | $ ls | ||
+ | Kbuild | ||
+ | Kconfig | ||
+ | Licenses | ||
+ | MAINTAINERS | ||
+ | $ git checkout-index -a --prefix=exports/ | ||
+ | $ ls | ||
+ | Kbuild | ||
+ | Kconfig | ||
+ | Licenses | ||
+ | MAINTAINERS | ||
+ | $ mkdir ~/ | ||
+ | $ mv exports ~/ | ||
+ | $ cd ~/ | ||
+ | $ ls | ||
+ | Kbuild | ||
+ | Kconfig | ||
+ | Licenses | ||
+ | MAINTAINERS | ||
+ | ``` | ||
- | You are in ' | + | 次に、ビルド。環境変数を設定して、makeなど。 |
- | changes and commit them, and you can discard any commits you make in this | + | |
- | state without impacting any branches by switching back to a branch. | + | |
- | If you want to create a new branch to retain commits you create, you may | + | ``` |
- | do so (now or later) by using -c with the switch command. Example: | + | $ export CROSS_COMPILE=$HOME/ |
+ | $ make distclean | ||
+ | $ make p3450-0000_defconfig | ||
+ | $ make | ||
+ | ``` | ||
- | git switch -c < | + | 無事にmakeできたっぽい。(っぽいと書くのは、もちろん、単にmakeして、エラーらしきメッセージが出なかっただけだから) |
- | Or undo this operation with: | + | ちなみに、32.6.1のときのTX2 NX向けのバグだったところをみると、 |
- | git switch | + | ``` |
+ | $ grep kernel_addr_r_size include/ | ||
+ | " | ||
+ | ``` | ||
- | Turn off this advice by setting config variable advice.detachedHead to false | + | と、この32.7.1ではちゃんと修正されていることが確認できた。 |
- | HEAD is now at 4335beb692 tegra: config: update TX2-NX uboot env offset | + | まだカスタマイズまではいかず。。。 |
- | $ git checkout -b jetson_nano_module_u-boot_customization tegra-l4t-r32.7.1 | + | |
- | Switched to a new branch ' | + | (2022/ |
- | $ ls | + | |
- | Kbuild | + | 2022/ |
- | Kconfig | + | |
- | Licenses | + | ひとまず、U-Bootのデフォルトのブート順序を変更してみる。 |
- | MAINTAINERS | + | |
- | $ git branch | + | U-Bootのソース内、include/ |
- | * jetson_nano_module_u-boot_customization | + | |
- | $ | + | ``` |
+ | /*#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://nv-tegra.nvidia.com/ | ||
+ | $ 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のカスタマイズ.1661306424.txt.gz · 最終更新: 2022/08/24 11:00 by makotoa67