Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Renesas R-Car H3 EVB(Evaluation Board)從 Yocto 切換為 Ubuntu 20.04移植過程

要將 Renesas R-Car H3 EVB(Evaluation Board)從 Yocto 切換為 Ubuntu 20.04,整個移植過程涉及幾個主要步驟,包括準備映像檔、修改裝置樹(Device Tree)、驅動程式適配以及進行板子設定。以下是移植 Ubuntu 20.04 至 Renesas R-Car H3 EVB 的詳細步驟:

  1. 準備環境
    開發主機:推薦使用 x86 架構的 Ubuntu 系統來進行移植工作。
    工具鏈 (Toolchain):確保安裝交叉編譯工具鏈,用於構建針對 ARMv8 架構的軟體包(如 gcc-aarch64-linux-gnu)。
  2. 獲取 Ubuntu 根文件系統
    可以使用官方的 Ubuntu 20.04 根文件系統或從官方 Ubuntu server 上下載 minimal root filesystem:

wget http://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04-base-arm64.tar.gz
解壓縮該檔案並將其作為根文件系統使用:

mkdir rootfs
sudo tar -xzf ubuntu-base-20.04-base-arm64.tar.gz -C rootfs

  1. 獲取並配置內核 (Linux Kernel)
    您需要為 Renesas R-Car H3 準備 Linux Kernel。可以使用官方 Linux Kernel 樹,或者使用 Renesas 提供的修改版 Kernel:

克隆 Renesas 內核源碼:

git clone https://github.com/renesas-rcar/linux.git
cd linux
git checkout v5.10.x (選擇適合您的內核版本)
配置內核: 使用 Renesas H3 EVB 的預設配置來生成適合該板子的內核:

make ARCH=arm64 renesas_defconfig
編譯內核:

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
這將生成內核映像 (Image) 和必要的模塊。

  1. 配置裝置樹 (Device Tree)
    對於 R-Car H3,您需要確保使用正確的裝置樹配置:

在內核源碼的 arch/arm64/boot/dts/renesas/ 目錄下找到適合的 H3 裝置樹檔案,比如 r8a7795-salvator-x.dts。
如有需要,根據硬體需求進行修改後編譯裝置樹:

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs

  1. 準備 U-Boot
    U-Boot 是 Renesas 平台的引導加載程式,您需要適配 U-Boot 來支持 Ubuntu 的引導:

克隆 U-Boot 源碼:

git clone https://github.com/renesas-rcar/u-boot.git
cd u-boot
配置 U-Boot:

make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- r8a7795_salvator-x_defconfig
編譯 U-Boot:

make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
這將生成 u-boot.bin。

  1. 準備啟動映像
    您需要將生成的內核映像 (Image)、裝置樹 (dtb),以及 U-Boot 加載到存儲設備(如 SD 卡)上。
    將內核和裝置樹複製到 SD 卡:

sudo dd if=u-boot.bin of=/dev/sdX bs=512 seek=64
sudo mkfs.ext4 /dev/sdX2
sudo mount /dev/sdX2 /mnt
sudo cp -r rootfs/* /mnt
sudo umount /mnt

  1. 設定系統與啟動
    進入 U-Boot 後,設置正確的引導參數來加載內核:

setenv bootargs “console=ttySC0,115200 root=/dev/mmcblk0p2 rw rootwait”
ext4load mmc 0:2 $kernel_addr_r /boot/Image
ext4load mmc 0:2 $fdt_addr_r /boot/dtbs/r8a7795-salvator-x.dtb
booti $kernel_addr_r – $fdt_addr_r

  1. 安裝額外的驅動和軟件包
    進入 Ubuntu 系統後,您可能需要安裝 R-Car H3 硬體相關的驅動程式,如網卡驅動或 GPU 驅動。可以使用 apt 來安裝額外的軟件包和驅動。

總結
準備 Ubuntu 根文件系統
編譯適配的內核和裝置樹
設置 U-Boot 作為引導加載程式
加載內核並啟動 Ubuntu 20.04
這樣,您就可以將 Ubuntu 20.04 成功移植到 Renesas R-Car H3 EVB 上運行。如果遇到具體的硬體適配問題,可能需要進一步調整內核和驅動程序配置。

你說:
請問如果要用TFTP 來傳送image 該怎麼做
ChatGPT 說:
ChatGPT
要使用 TFTP (Trivial File Transfer Protocol) 在嵌入式設備(如 Renesas R-Car H3 EVB)上傳送內核映像(Image)到目標設備,您需要配置網絡環境和 U-Boot,並準備好 TFTP 服務。以下是使用 TFTP 傳送內核映像的詳細步驟。

  1. 設置開發主機的 TFTP 伺服器
    首先,您需要在開發主機上配置 TFTP 伺服器。可以使用常見的 TFTP 伺服器軟件,如 tftpd-hpa。

在 Ubuntu 中安裝 TFTP 伺服器:

sudo apt update
sudo apt install tftpd-hpa
配置 TFTP 伺服器:
安裝完成後,修改 TFTP 伺服器的配置文件 /etc/default/tftpd-hpa,確保設置正確的目錄和參數:

/etc/default/tftpd-hpa

TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/srv/tftp”
TFTP_ADDRESS=”:69″
TFTP_OPTIONS=”–secure”
創建 TFTP 目錄:
確保 TFTP 目錄存在並允許其他設備從該目錄傳送檔案:

sudo mkdir /srv/tftp
sudo chmod -R 777 /srv/tftp
啟動 TFTP 伺服器:
配置完成後,重啟 TFTP 服務器:

sudo systemctl restart tftpd-hpa

  1. 將內核映像和裝置樹放入 TFTP 目錄
    將編譯好的內核映像(Image)和裝置樹檔案(dtb)放到 TFTP 伺服器的目錄中:

sudo cp /path/to/Image /srv/tftp/
sudo cp /path/to/device_tree.dtb /srv/tftp/

  1. 配置 U-Boot 進行 TFTP 引導
    接下來,您需要在 U-Boot 中配置網絡參數,以便通過 TFTP 從開發主機下載映像。

配置網絡參數:
在 U-Boot 命令行中,設置目標板的 IP 地址、TFTP 伺服器的 IP 地址和網關等網絡參數:

setenv ipaddr 192.168.1.100 # 設定目標設備的 IP 地址
setenv serverip 192.168.1.1 # 設定 TFTP 伺服器的 IP 地址
setenv gatewayip 192.168.1.1 # 設定網關地址
setenv netmask 255.255.255.0 # 設定子網掩碼
使用 TFTP 下載內核映像和裝置樹:
從 TFTP 伺服器下載內核映像和裝置樹檔案到 RAM 中:

tftpboot 0x50000000 Image # 下載內核映像到指定的 RAM 地址 (0x50000000)
tftpboot 0x48000000 device_tree.dtb # 下載裝置樹到指定的 RAM 地址 (0x48000000)
引導內核:
使用從 TFTP 下載的內核映像和裝置樹啟動系統:

setenv bootargs “console=ttySC0,115200 root=/dev/mmcblk0p2 rw rootwait”
booti 0x50000000 – 0x48000000

  1. 驗證引導過程
    U-Boot 將通過 TFTP 下載並啟動內核映像。您應該看到系統開始引導到 Linux。成功啟動後,內核將從開發主機的 TFTP 伺服器載入並執行。

小結
使用 TFTP 傳送內核映像的流程包括:

設置並配置 TFTP 伺服器。
將內核映像和裝置樹檔案放入 TFTP 目錄。
配置 U-Boot 中的網絡參數。
使用 TFTP 下載映像並引導內核。
這樣您就可以通過網絡使用 TFTP 傳送和啟動內核映像。