说明
本文是基于 RZ/G Verified Linux Package v3.0.3(RTK0EF0045Z0021AZJ-v3.0.3.zip) 解压出来后的文件r01us0553ej0107-rz-g(Release Note).pdf,r01us0556ej0102-rz-g(Board_StartUp_Guide_smarcEVK).pdf,对SMARC EVK of RZ/G2L的调试经验。
RZ/G Verified Linux Package v3.0.3(RTK0EF0045Z0021AZJ-v3.0.3.zip)
https://www.renesas.cn/cn/zh/document/swo/rzg-verified-linux-package-v303rtk0ef0045z0021azj-v303zip
资料
下方资料1、2、3、4是编译需要用到的资料。资料5是已经编译好的镜像文件。资料6、7是demo板的硬件原理图文件。资料8是官方快速启动说明文档。
1.RZ/G Verified Linux Package v3.0.3 (RTK0EF0045Z0021AZJ-v3.0.3.zip)
2.RZ MPU Graphics Library Evaluation Version for RZ/G2L and RZ/G2LC (RTK0EF0045Z13001ZJ-v1.0.5_XX.zip)
3.RZ MPU Video Codec Library Evaluation Version for RZ/G2L (RTK0EF0045Z15001ZJ-v1.1.0_XX.zip)
4.Open source packages (oss_pkg_rzg_v3.0.3.7z)
5.RZ/G2L Pre-built Images (RZG2L_VLP3.0.3_Pre-built_Images_EN.zip)
6.RZ/G2L SMARC Module Board Design Data V2.01
7.RZ SMARC Series Carrier Board Design Data V4.01
8.SMARC EVK of RZ/G2L, RZ/G2LC, RZ/G2UL, RZ/V2L, and RZ/Five Start-up Guide Rev.1.03
硬件
- SMARC EVK of RZ/G2L
- 8G以上的SD卡以及读卡器
环境
Ubuntu 20.04 LTS(版本一定要对,否则直接使用官方资料编译会报错),虚拟机需要连接网络(需要从网络下载软件,配置环境),电脑需要至少100G的存储空间。

串口终端
Tera Term Open Source Project
http://www.teraterm.org/
官方是使用Yocto来构建嵌入式Linux发行版的。所以需要先配置好Yocto的环境。
Yocto环境配置(注意以下命令是有空格的,空格不可以省略)
在终端输入:
$ sudo apt-get update
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm p7zip-full libyaml-dev libssl-dev
安装好Yocto需要的各种软件后,先新建一个工作目录,新建一个文件夹
rzg_vlp_v3.0.3
将以下复制到当前文件夹。

-
RZ/G Verified Linux Package v3.0.3(RTK0EF0045Z0021AZJ-v3.0.3.zip)
-
RZ MPU Graphics Library Evaluation Version for RZ/G2L and RZ/G2LC (RTK0EF0045Z13001ZJ-v1.0.5_XX.zip)
-
RZ MPU Video Codec Library Evaluation Version for RZ/G2L (RTK0EF0045Z15001ZJ-v1.1.0_XX.zip)
解压文件
$ unzip ./RTK0EF0045Z0021AZJ-v3.0.3.zip
$ tar zxvf ./rzg_bsp_v3.0.3.tar.gz
$ unzip ./RTK0EF0045Z13001ZJ-v1.0.5_EN.zip
$ tar zxvf ./RTK0EF0045Z13001ZJ-v1.0.5_EN/meta-rz-features_graphics_v1.0.5.tar.gz
$ unzip ./RTK0EF0045Z15001ZJ-v1.1.0_EN.zip
$ tar zxvf ./RTK0EF0045Z15001ZJ-v1.1.0_EN/meta-rz-features_codec_v1.1.0.tar.gz
将文件加压后的文件目录如下

其中橙色背景的文件是编译需要使用的文件。
初始化编译环境
在终端输入
$ TEMPLATECONF=$PWD/meta-renesas/meta-rzg2l/docs/template/conf/ source poky/oe-init-build-env build
执行结果如图:

执行命令后会在目录rzg_vlp_v3.0.3下生成一个build文件夹,并自动进入build目录。

将Open source packages(oss_pkg_rzg_v3.0.3.7z) 复制到build文件夹中,并解压到当前文件夹(这一步的目的是添加需要的第三方软件,如不手动添加,后续编译也会自动联网下载,因为在国内原因下载速度会偏慢,手动添加能加快速度)
在终端输入如下命令解压文件
$ 7z x oss_pkg_rzg_v3.0.3.7z
完成后如图所示

添加编译需要的layers,这里我是将所有的layers添加进去(这里可以根据需要添加layers为了方便就直接将所有的都添加了)
$ bitbake-layers add-layer ../meta-qt5
$ bitbake-layers add-layer ../meta-rz-features/meta-rz-graphics
$ bitbake-layers add-layer ../meta-rz-features/meta-rz-codecs
$ bitbake-layers add-layer ../meta-openembedded/meta-filesystems
$ bitbake-layers add-layer ../meta-openembedded/meta-networking
$ bitbake-layers add-layer ../meta-virtualization
$ cd ../meta-renesas
$ patch -p1 < ../extra/0001-dynamic-layers-virtualization-layer-add-WA-to-\remove.patch(全部保持默认设置即可)
$ cd ../build

前面的工作已经把编译环境准备好了,下面开始准备编译
$ MACHINE=bitbake core-image-
因为我们的板子是smarc-rg2l,目标是core-image-qt

具体可以参考官方文档 r01us0553ej0107-rz-g(Release Note)(RZ/G Verified Linux Package v3.0.3(RTK0EF0045Z0021AZJ-v3.0.3.zip) 解压后可获得)
$ MACHINE=smarc-rzg2l bitbake core-image-qt

完全编译耗时比较久,原厂已经提供了编译好的文件(如果电脑的性能不好可能会耗费一天时间),将RZ/G2L Pre-built Images (RZG2L_VLP3.0.3_Pre-built_Images_EN.zip) 解压可以得到编译后的文件
$ cd ~/rzg_vlp_v3.0.3/build
$ MACHINE=smarc-rzg2l bitbake core-image-weston -c populate_sdk
$ cd ~/rzg_vlp_v3.0.3/build
$ MACHINE=smarc-rzg2l bitbake core-image-qt -c populate_sdk
$ sudo sh poky-glibc-x86_64-core-image-weston-aarch64-smarc-rzg2l-toolchain-3.1.21.sh
$ sudo sh poky-glibc-x86_64-core-image-qt-aarch64-smarc-rzg2l-toolchain-3.1.21.sh
$WORK/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l

下载准备
在前面的内容中已经将需要下载到SMARC EVK of RZ/G2L中的文件准备好了,具体的下载说明请参考官方文档SMARC EVK of RZ/G2L, RZ/G2LC, RZ/G2UL, RZ/V2L, and RZ/Five Start-up Guide Rev.1.03。
需要提前准备好如下图的文件。如果上述步骤已经做完了的,文件存放$WORK/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l。或者直接使用官方编译好的文件,将RZ/G2L Pre-built Images (RZG2L_VLP3.0.3_Pre-built_Images_EN.zip)解压可以得到编译后的文件。

设置boot mode和输入电压

拨码开关的意义如下

设置核心板上的SW1拨码开关(SW1位于核心板的左上方)

硬件连接

启动电源
长按按键SW9 1s开启电源,长按按键SW9 2s关闭电源。
如果开启电源,LED4会亮起。

设置
连接Tera Term串口工具

设置串口参数
点击设置->串口即可打开

设置拨码开关SW11

完成上述步骤后,按下复位按钮,串口工具会如下图所示


准备发送Flash Writer文件,Flash_Writer_SCIF_RZG2L_SMARC_PMIC_DDR4_2GB_1PCS.mot



等待发送完成后,串口工具显示如下。

写入Bootloader
在串口终端中输入,命令XLS2,这个命令的作用是Flash Writer加载bin文件。并将数据写入Flsah ROM指定地址。
下图中红色框起来的是需要输入的内容。

接下来是发送文件bl2_bp-smarc-rzg2l_pmic.srec



发送完成后如图所示,如果出现红色框中的提示清楚数据,请输入’y’。

接下来准备发送文件fip-smarc-rzg2l_pmic.srec,还是使用XLS2命令。

其中红色框是需要输入的指令。
发送文件fip-smarc-rzg2l_pmic.srec



如果出现“SPI Data Clear(H'FF) Check : H'00000000-0000FFFF,Clear OK?(y/n)”,输入y即可。
将上面几个文件下载进入开发板中后需要使用到Tera Termd的工作就已经完成了。
关闭开发板电源。长按2S按键SW9。
接下来开始准备烧写linux内核、设备树、rootf
首先是确认在Linux下,SD卡的设备名称。在没接入SD卡的情况下,Linux终端中输入:

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 63.3M 1 loop /snap/core20/1828
loop2 7:2 0 73.9M 1 loop /snap/core22/858
loop3 7:3 0 12.3M 1 loop /snap/snap-store/959
loop4 7:4 0 73.9M 1 loop /snap/core22/864
loop5 7:5 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop6 7:6 0 485.5M 1 loop /snap/gnome-42-2204/126
loop7 7:7 0 63.5M 1 loop /snap/core20/2015
loop8 7:8 0 346.3M 1 loop /snap/gnome-3-38-2004/119
loop9 7:9 0 46M 1 loop /snap/snap-store/638
loop10 7:10 0 49.9M 1 loop /snap/snapd/18357
loop11 7:11 0 349.7M 1 loop /snap/gnome-3-38-2004/143
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 499.5G 0 part /
sr0 11:0 1 1024M 0 rom
在接入SD卡设备的情况下输入:

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 63.3M 1 loop /snap/core20/1828
loop2 7:2 0 73.9M 1 loop /snap/core22/858
loop3 7:3 0 12.3M 1 loop /snap/snap-store/959
loop4 7:4 0 73.9M 1 loop /snap/core22/864
loop5 7:5 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop6 7:6 0 485.5M 1 loop /snap/gnome-42-2204/126
loop7 7:7 0 63.5M 1 loop /snap/core20/2015
loop8 7:8 0 346.3M 1 loop /snap/gnome-3-38-2004/119
loop9 7:9 0 46M 1 loop /snap/snap-store/638
loop10 7:10 0 49.9M 1 loop /snap/snapd/18357
loop11 7:11 0 349.7M 1 loop /snap/gnome-3-38-2004/143
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 499.5G 0 part /
sdb 8:16 1 14.9G 0 disk
└─sdb1 8:17 1 14.9G 0 part /media/venon/AEE5-087B
sr0 11:0 1 1024M 0 rom
可以看到多出来了一个sdb2,这个sdb设备就是SD卡在linux系统中的设备名称,sdb1是sdb2的分区。设备挂载在/media/venon/AEE5-087B目录下。
下图是开发板需要的SD卡分区以及对应的作用。

使用命令将SD卡格式化并进行分区。

$ sudo fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.34)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助): o
创建了一个磁盘标识符为 0x34f6c9cf 的新 DOS 磁盘标签。
命令(输入 m 获取帮助): n
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认 1): (Push the enter key)
第一个扇区 (2048-31116287, 默认 2048): (Push the enter key)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31116287, 默认 31116287): +500M
创建了一个新分区 1,类型为“Linux”,大小为 500 MiB。
命令(输入 m 获取帮助): n
分区类型
p 主分区 (1个主分区,0个扩展分区,3空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (2-4, 默认 2): (Push the enter key)
第一个扇区 (1026048-31116287, 默认 1026048): (Push the enter key)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-31116287, 默认 31116287): (Push the enter key)
创建了一个新分区 2,类型为“Linux”,大小为 14.4 GiB。
分区 #2 包含一个 ext4 签名。
您想移除该签名吗? 是[Y]/否[N]: y
写入命令将移除该签名。
命令(输入 m 获取帮助): p
Disk /dev/sdb:14.86 GiB,15931539456 字节,31116288 个扇区
Disk model: STORAGE DEVICE
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x34f6c9cf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 1026047 1024000 500M 83 Linux
/dev/sdb2 1026048 31116287 30090240 14.4G 83 Linux
Filesystem/RAID signature on partition 2 will be wiped.
命令(输入 m 获取帮助): t
分区号 (1,2, 默认 2): 1
Hex 代码(输入 L 列出所有代码): b
已将分区“Linux”的类型更改为“W95 FAT32”。
命令(输入 m 获取帮助): w
分区表已调整。
Failed to remove partition 1 from system: 设备或资源忙
Failed to add partition 1 to system: 设备或资源忙
Failed to add partition 2 to system: 设备或资源忙
The kernel still uses the old partitions. The new table will be used at the next reboot.
正在同步磁盘。
输入以下命令检查分区列表:
$ partprobe
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb:14.86 GiB,15931539456 字节,31116288 个扇区
Disk model: STORAGE DEVICE
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x34f6c9cf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 1026047 1024000 500M b W95 FAT32
/dev/sdb2 1026048 31116287 30090240 14.4G 83 Linux

格式化并挂载分区
输入以下命令:
$ sudo mkfs.vfat -v -c -F 32 /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
/dev/sdb1 has 64 heads and 32 sectors per track,
hidden sectors 0x0800;
logical sector size is 512,
using 0xf8 media descriptor, with 1024000 sectors;
drive number 0x80;
filesystem has 2 32-bit FATs and 8 sectors per cluster.
FAT size is 1000 sectors, and provides 127746 clusters.
There are 32 reserved sectors.
Volume ID is ac72c97f, no volume label.
Searching for bad blocks 177120... 362848...
$ sudo mkfs.ext4 -L rootfs /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
创建含有 3761280 个块(每块 4k)和 942080 个 inode 的文件系统
文件系统 UUID:a231661f-117a-464e-aa26-72c47a27fba6
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
正在分配组表: 完成
正在写入 inode表: 完成
创建日志(16384 个块): 完成
写入超级块和文件系统账户统计信息: 已完成

格式化完毕后,取出读卡器,重新连接。
输入以下命令查看挂载点
$ df
文件系统 1K-块 已用 可用 已用% 挂载点
udev 8128000 0 8128000 0% /dev
tmpfs 1633744 1912 1631832 1% /run
/dev/sda5 514417952 159060920 329152616 33% /
tmpfs 8168704 0 8168704 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8168704 0 8168704 0% /sys/fs/cgroup
/dev/loop0 128 128 0 100% /snap/bare/5
/dev/loop2 75648 75648 0 100% /snap/core22/858
/dev/loop3 12672 12672 0 100% /snap/snap-store/959
/dev/loop1 64896 64896 0 100% /snap/core20/1828
/dev/loop5 93952 93952 0 100% /snap/gtk-common-themes/1535
/dev/loop4 75776 75776 0 100% /snap/core22/864
/dev/loop6 497280 497280 0 100% /snap/gnome-42-2204/126
/dev/loop7 65024 65024 0 100% /snap/core20/2015
/dev/loop10 51072 51072 0 100% /snap/snapd/18357
/dev/loop8 354688 354688 0 100% /snap/gnome-3-38-2004/119
/dev/loop11 358144 358144 0 100% /snap/gnome-3-38-2004/143
/dev/loop9 47104 47104 0 100% /snap/snap-store/638
/dev/sda1 523248 19440 503808 4% /boot/efi
tmpfs 1633740 20 1633720 1% /run/user/1000
/dev/sdb1 510984 16 510968 1% /media/venon/AC72-C97F
/dev/sdb2 14702064 24 13933400 1% /media/venon/rootfs

可以看到SD卡,sdb设备的分区1 sdb1挂载在/media/venon/AC72-C97F,分区2挂载在/media/venon/rootfs。
将Linux kernel以及设备树文件复制到SD卡分区1中。
输入如下命令
$ cp ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/Image-smarc-rzg2l.bin /media/venon/AC72-C97F/
$ cp ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/Image-r9a07g044l2-smarc.dtb /media/venon/AC72-C97F/

将rootf解压到SD卡分区2中
输入如下命令
$ cd /media/user/rootfs
$ sudo tar jxvf ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/core-image-qt-smarc-rzg2l.tar.bz2
解压后如下

注意:不要直接拔SD卡。需要使用系统操作SD卡退出,防止Linux系统没有将数据完全写入SD卡中。
至此SD卡的准备工作已经完成。
设置U-boot环境变量
设置拨码开关

SW1在核心板的左上方
这里我使用MobaXterm这款串口终端软件。也推荐使用这个,功能强大,且有免费版本。
启动U-boot后会有倒计时,需要在倒计时结束之前在终端中按下任意按键

=> env default -a
## Resetting to default environment
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK
=>

=> setenv bootargs 'root=/dev/mmcblk1p2 rootwait'
=> setenv bootcmd 'mmc dev 1;fatload mmc 1:1 0x48080000 Image-smarc-rzg2l.bin; fatload mmc 1:1 0x48000000 Image-r9a07g044l2-smarc.dtb; booti 0x48080000 - 0x48000000'
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK

将SD卡插入卡槽中,按下复位按键或者输入命令‘reset’。重启设备。
U-Boot 2021.10 (Mar 31 2022 - 03:57:20 +0000)
CPU: Renesas Electronics K rev 14.15
Model: smarc-rzg2l
DRAM: 1.9 GiB
MMC: sd@11c00000: 0, sd@11c10000: 1
Loading Environment from MMC... OK
In: serial@1004b800
Out: serial@1004b800
Err: serial@1004b800
Net: eth0: ethernet@11c20000
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc1 is current device
16947712 bytes read in 1054 ms (15.3 MiB/s)
37530 bytes read in 5 ms (7.2 MiB/s)
Moving Image from 0x48080000 to 0x48200000, end=49290000
## Flattened Device Tree blob at 48000000
Booting using the fdt blob at 0x48000000
Loading Device Tree to 0000000057ff3000, end 0000000057fff299 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[ 0.000000] Linux version 5.10.83-cip1-yocto-standard (oe-user@oe-host) (aa
rc
:
:
Poky (Yocto Project Reference Distro) 3.1.21 smarc-rzg2l ttySC0
BSP: RZG2L/RZG2L-SMARC-EVK/3.0.3
LSI: RZG2L
Version: 3.0.3
smarc-rzg2l login: root
Last login: Sun Sep 20 10:44:25 UTC 2020
root@smarc-rzg2l:~#
到此,重SD卡启动RZ/G2L EVK已经完成。
从eMMC启动
设置拨码开关在SCIF启动模式,连接Tera Term串口工具

准备发送Flash Writer文件
Flash_Writer_SCIF_RZG2L_SMARC_PMIC_DDR4_2GB_1PCS.mot

输入指令
>EM_SECSD
Please Input EXT_CSD Index(H'00 - H'1FF) :b1
EXT_CSD[B1] = 0x02
Please Input Value(H'00 - H'FF) :2
EXT_CSD[B1] = 0x02
>EM_SECSD
Please Input EXT_CSD Index(H'00 - H'1FF) :b3
EXT_CSD[B3] = 0x08
Please Input Value(H'00 - H'FF) :8
EXT_CSD[B3] = 0x08

发送文件bl2_bp-smarc-rzg2l_pmic.srec
>EM_W
EM_W Start --------------
---------------------------------------------------------
Please select,eMMC Partition Area.
0:User Partition Area : 62160896 KBytes
eMMC Sector Cnt : H'0 - H'0768FFFF
1:Boot Partition 1 : 32256 KBytes
eMMC Sector Cnt : H'0 - H'0000FBFF
2:Boot Partition 2 : 32256 KBytes
eMMC Sector Cnt : H'0 - H'0000FBFF
---------------------------------------------------------
Select area(0-2)>1
-- Boot Partition 1 Program -----------------------------
Please Input Start Address in sector :1
Please Input Program Start Address : 11e00
Work RAM(H'50000000-H'50FFFFFF) Clear....
please send ! ('.' & CR stop load)



准备发送文件fip-smarc-rzg2l_pmic.srec
>EM_W
EM_W Start --------------
---------------------------------------------------------
Please select,eMMC Partition Area.
0:User Partition Area : 62160896 KBytes
eMMC Sector Cnt : H'0 - H'0768FFFF
1:Boot Partition 1 : 32256 KBytes
eMMC Sector Cnt : H'0 - H'0000FBFF
2:Boot Partition 2 : 32256 KBytes
eMMC Sector Cnt : H'0 - H'0000FBFF
---------------------------------------------------------
Select area(0-2)>1
-- Boot Partition 1 Program -----------------------------
Please Input Start Address in sector :100
Please Input Program Start Address : 0
Work RAM(H'50000000-H'50FFFFFF) Clear....
please send ! ('.' & CR stop load)


断开连接,关闭电源,更改拨码开关。

接上SD卡(SD卡需要提前做好分区以及格式),将Linux kernel、Devise tree、root filesystem复制到/media/user/rootfs/home/root/
$ sudo cp ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/Image-smarc-rzg2l.bin /media/venon/rootfs/home/root/
$ sudo cp ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/Image-r9a07g044l2-smarc.dtb /media/venon/rootfs/home/root/
$ sudo cp ~/rzg_vlp_v3.0.3/build/tmp/deploy/images/smarc-rzg2l/core-image-qt-smarc-rzg2l.tar.bz2 /media/venon/rootfs/home/root/

插入SD卡,启动G2L EVK,启动Linux后以root用户身份登录

在eMMC中创建分区
输入如下命令
root@smarc-rzv2l:~# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.35.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): o
Created a new DOS disklabel with disk identifier 0xf3d53104.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): (Push the enter key)
Partition number (1-4, default 1): (Push the enter key)
First sector (2048-124321791, default 2048): (Push the enter key)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-124321791, default 1243217
91): +500M
Created a new partition 1 of type 'Linux' and of size 500 MiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): (Push the enter key)
Using default response p.
Partition number (2-4, default 2): (Push the enter key)
First sector (1026048-124321791, default 1026048): (Push the enter key)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1026048-124321791, default 1243
21791): (Push the enter key)
Created a new partition 2 of type 'Linux' and of size 58.8 GiB.
Command (m for help): p
Disk /dev/mmcblk0: 59.29 GiB, 63652757504 bytes, 124321792 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf3d53104
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 1026047 1024000 500M 83 Linux
/dev/mmcblk0p2 1026048 124321791 123295744 58.8G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root@smarc-rzv2l:~#

格式化eMMC
输入命令
root@smarc-rzv2l:~# mkfs.ext4 /dev/mmcblk0p1
root@smarc-rzv2l:~# mkfs.ext4 /dev/mmcblk0p2

格式化eMMC并写入内核、设备树和rootfs
root@smarc-rzg2l:~# mount /dev/mmcblk0p1 /mnt/
root@smarc-rzg2l:~# cp Image-smarc-rzg2l.bin /mnt/
root@smarc-rzg2l:~# cp Image-r9a07g044l2-smarc.dtb /mnt/
root@smarc-rzg2l:~# umount /dev/mmcblk0p1
root@smarc-rzg2l:~# mount /dev/mmcblk0p2 /mnt/root@smarc-rzg2l:~# tar xf /home/root/core-image-qt-smarc-rzg2l.tar.bz2 -C /mnt/
root@smarc-rzg2l:~# umount /dev/mmcblk0p2

按下复位按键SW10,或者输入命令reboot重启设备,配置U-boot环境变量。
=> setenv bootargs 'root=/dev/mmcblk0p2 rootwait'
=> setenv bootcmd 'mmc dev 1; ext4load mmc 0:1 0x48080000 Image-smarc-rzg2l.bin; ext4load mmc 0:1 0x48000000 Image-r9a07g044l2-smarc.dtb; booti 0x48080000 - 0x48000000'
=> saveenv
Saving Environment to MMC... Writing to MMC(0)... OK

按下复位按键或者输入命令‘reset’。重启设备。
