<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http://wiki.myzr.com.cn/index.php?action=history&amp;feed=atom&amp;title=MYZR-RZG-EK200%E7%BC%96%E8%AF%91%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C</id>
		<title>MYZR-RZG-EK200编译参考手册 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.myzr.com.cn/index.php?action=history&amp;feed=atom&amp;title=MYZR-RZG-EK200%E7%BC%96%E8%AF%91%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C"/>
		<link rel="alternate" type="text/html" href="http://wiki.myzr.com.cn/index.php?title=MYZR-RZG-EK200%E7%BC%96%E8%AF%91%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C&amp;action=history"/>
		<updated>2026-06-24T09:05:30Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://wiki.myzr.com.cn/index.php?title=MYZR-RZG-EK200%E7%BC%96%E8%AF%91%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C&amp;diff=4113&amp;oldid=prev</id>
		<title>Admin：创建页面，内容为“## 交叉编译  当我们想要编译源码或者编译自己修改的源码时，首先要做的第一步就是配置对应的交叉编译工具。对于本套源...”</title>
		<link rel="alternate" type="text/html" href="http://wiki.myzr.com.cn/index.php?title=MYZR-RZG-EK200%E7%BC%96%E8%AF%91%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C&amp;diff=4113&amp;oldid=prev"/>
				<updated>2023-03-09T08:57:10Z</updated>
		
		<summary type="html">&lt;p&gt;创建页面，内容为“## 交叉编译  当我们想要编译源码或者编译自己修改的源码时，首先要做的第一步就是配置对应的交叉编译工具。对于本套源...”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;## 交叉编译&lt;br /&gt;
&lt;br /&gt;
当我们想要编译源码或者编译自己修改的源码时，首先要做的第一步就是配置对应的交叉编译工具。对于本套源码我们是使用瑞萨官方yocto编译的SDK为基础进行编译。&lt;br /&gt;
&lt;br /&gt;
#### SDK下载和安装&lt;br /&gt;
&lt;br /&gt;
**下载**&lt;br /&gt;
&lt;br /&gt;
SDK安转包在MYZR-RZ - &amp;gt; 03_SDK目录下，我们一般使用**poky-glibc-x86_64-core-image-qt-aarch64-smarc-rzg2l-toolchain-3.1.17.sh**来进行安装。&lt;br /&gt;
&lt;br /&gt;
我们可以在主机中创建一个rz专属的目录来存放相关的源码，编译工具和以后用到的一些东西。如我创建的目录为：/home/myzr/my-work/renesas，在此目录下我又创建了4个子目录：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls&lt;br /&gt;
01_image  02_sources  03_sdk  04_app&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
01目录可以用来放置我们编译好的镜像&lt;br /&gt;
&lt;br /&gt;
02目录则是用来放置源码&lt;br /&gt;
&lt;br /&gt;
03目录则是放置我们刚才下载好的交叉编译工具&lt;br /&gt;
&lt;br /&gt;
04目录我们可以用来放置自己的app&lt;br /&gt;
&lt;br /&gt;
把工具放到03目录下后，接下来进行工具的安装。&lt;br /&gt;
&lt;br /&gt;
**安装：**&lt;br /&gt;
&lt;br /&gt;
在03目录下运行此工具链脚本，输入如下命令：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ chmod +x poky-glibc-x86_64-core-image-qt-aarch64-smarc-rzg2l-toolchain-3.1.17.sh &lt;br /&gt;
$ ./poky-glibc-x86_64-core-image-qt-aarch64-smarc-rzg2l-toolchain-3.1.17.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
输入安装目录/home/myzr/my_work/renesas/03_sdk&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Poky (Yocto Project Reference Distro) SDK installer version 3.1.17&lt;br /&gt;
==================================================================&lt;br /&gt;
Enter target directory for SDK (default: /opt/poky/3.1.17): /home/myzr/my_work/renesas/03_sdk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
输入y，等待安装，直到出现successfully安装成功&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
You are about to install the SDK to &amp;quot;/home/myzr/my_work/renesas/03_sdk&amp;quot;. Proceed [Y/n]? y&lt;br /&gt;
Extracting SDK.......................&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#### 交叉编译工具配置&lt;br /&gt;
&lt;br /&gt;
安装成功后在03目录下有一个environment-setup-aarch64-poky-linux脚本，输入如下命令：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ source environment-setup-aarch64-poky-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
source后检查交叉编译工具版本等信息&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=====&amp;gt; Input:&lt;br /&gt;
$ $CC -v&lt;br /&gt;
&lt;br /&gt;
=====&amp;gt; Output: &lt;br /&gt;
Using built-in specs.&lt;br /&gt;
COLLECT_GCC=aarch64-poky-linux-gcc&lt;br /&gt;
COLLECT_LTO_WRAPPER=/home/kuangwh/my-work/rzg2l/03_sdk/sysroots/x86_64-pokysdk-linux/usr/libexec/aarch64-poky-linux/gcc/aarch64-poky-linux/8.3.0/lto-wrapper&lt;br /&gt;
Target: aarch64-poky-linux&lt;br /&gt;
。。。。&lt;br /&gt;
gcc version 8.3.0 (GCC)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
**Note: CC是设置的宏，$CC中的&amp;quot;$&amp;quot;不能去掉**&lt;br /&gt;
&lt;br /&gt;
看到版本信息后，编译工具配置成功，接下来就可以进行源码的编译步骤。需要注意的是，在每次打开终端窗口后都需要进行一次source配置。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## 编译u-boot&lt;br /&gt;
&lt;br /&gt;
#### 下载uboot源码&lt;br /&gt;
&lt;br /&gt;
U-boot源码目录在 MYZR-RZ -&amp;gt; 02_源码 -&amp;gt; u-boot-Release.xxx.tar.bz2。（“Release.xxx”表示源码的版本）将源码拷贝到主机/home/myzr/my_work/renesas/02_sources目录下&lt;br /&gt;
&lt;br /&gt;
将源码包解压到02_sources目录下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvf u-boot-Release.xxx.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#### 编译&lt;br /&gt;
&lt;br /&gt;
进入U-boot目录&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd u-boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
先配置交叉编译工具&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ source ../../03_sdk/environment-setup-aarch64-poky-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用build.sh进行整个流程的配置和编译。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ./build.sh rzg2l all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
第一个参数为板子cpu型号选择rzg2l或rzg2ul；第二个参数有如下选项：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
config--根据第一个参数rzg2l/rzg2ul生成对应的.config文件&lt;br /&gt;
make--根据当前的配置文件.config进行编译&lt;br /&gt;
clean--清除编译文件&lt;br /&gt;
pack--打包编译好的uboot镜像&lt;br /&gt;
all--执行前面的所有操作&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
后期我们自己开发调试的时候，可以根据参数进行不同的编译配置。&lt;br /&gt;
&lt;br /&gt;
最后打包好的镜像文件在fpack目录下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls fpack/&lt;br /&gt;
bin  bl31.bin  fip.bin  fip-myzr-rzg2l.srec  fip-myzr-rzg2ul.srec  lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fip-myzr-rzg2l.srec/fip-myzr-rzg2ul.srec就是我们可以烧录到开发板的镜像文件。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## 编译内核&lt;br /&gt;
&lt;br /&gt;
#### 下载内核源码&lt;br /&gt;
&lt;br /&gt;
U-boot源码目录在 MYZR-RZ -&amp;gt; 02_源码 -&amp;gt; linux-5.10-Release.xxx.tar.bz2。（“Release.xxx”表示源码的版本）将源码拷贝到主机/home/myzr/my_work/renesas/02_sources目录下&lt;br /&gt;
&lt;br /&gt;
将源码包解压到02_sources目录下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ tar xvf linux-5.10-Release.xxx.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#### 安装库&lt;br /&gt;
&lt;br /&gt;
第一次编译内核时，需要在虚拟机ubuntu下安装相应的库&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \&lt;br /&gt;
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \&lt;br /&gt;
xz-utils debianutils iputils-ping libsdl1.2-dev xterm p7zip-full libyaml-dev libssl-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#### 编译Image&lt;br /&gt;
&lt;br /&gt;
进入linu-5.10目录&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd linux-5.10/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
先配置交叉编译工具&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ source ../../03_sdk/environment-setup-aarch64-poky-linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
生成.config文件 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make myzr-rz_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
编译Image&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make Image -j24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
内核镜像编译的时间比较久，编译成功后**arch/arm64/boot/Image** 即内核目标文件。&lt;br /&gt;
&lt;br /&gt;
#### 编译设备树&lt;br /&gt;
&lt;br /&gt;
输入如下命令编译出设备树文件：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make renesas/myzr-rzg2l-dsi.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dtb文件根据开发板不通型号进行编译：myzr-rzg2l-dsi.dtb、myzr-rzg2l-dsi.dtb 、myzr-rzg2ul-eth.dtb、myzr-rzg2ul-lcd.dtb&lt;br /&gt;
&lt;br /&gt;
设备树dtb文件生成在**arch/arm64/boot/dts/renesas/*.dtb**&lt;br /&gt;
&lt;br /&gt;
#### 编译内核模块包&lt;br /&gt;
&lt;br /&gt;
执行编译&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make modules&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
安装内核模块到指定目录&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make INSTALL_MOD_PATH=&amp;quot;$PWD/install_modules&amp;quot; modules_install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
删除source和build目录&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm install_modules/lib/modules/5.10.131-cip13-yocto-standard/source&lt;br /&gt;
$ rm install_modules/lib/modules/5.10.131-cip13-yocto-standard/build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
strip内核模块&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find install_modules/ -name &amp;quot;*.ko&amp;quot; | xargs $STRIP --strip-debug --remove-section=.comment --remove-section=.note --preserve-dates&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
打包内核模块&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd install_modules&lt;br /&gt;
$ tar cjf modules.tar.bz2 *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
将内核模块包modules.tar.bz2复制到开发板中并解压到根目录&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar xvf modules.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
同步数据&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# depmod -a&lt;br /&gt;
# sync&lt;br /&gt;
# reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>