|
|
@ -1,6 +1,6 @@ |
|
|
|
# phytium-linux-buildroot |
|
|
|
Buildroot是一种简单、高效且易于使用的工具,可以通过交叉编译生成嵌入式Linux系统。Buildroot的用户手册位于docs/manual/manual.pdf。 |
|
|
|
phytium-linux-buildroot基于Buildroot,适配了飞腾e2000、d2000开发板,支持ubuntu文件系统、debian文件系统、initrd文件系统、buildroot最小文件系统的编译。 |
|
|
|
phytium-linux-buildroot基于Buildroot,适配了飞腾E2000、D2000开发板,支持ubuntu文件系统、debian文件系统、initrd文件系统、buildroot最小文件系统的编译。 |
|
|
|
|
|
|
|
# 开发环境 |
|
|
|
## 系统要求 |
|
|
@ -64,7 +64,7 @@ phytiumpi_ubuntu_desktop_defconfig - Build for phytiumpi_ubuntu_desktop |
|
|
|
``` |
|
|
|
|
|
|
|
# 编译文件系统 |
|
|
|
## 为e2000编译文件系统 |
|
|
|
## 为E2000编译文件系统 |
|
|
|
### 编译默认配置的文件系统 |
|
|
|
(1)加载defconfig |
|
|
|
`$ make phytium_e2000_xxx_defconfig` |
|
|
@ -79,15 +79,15 @@ phytium_e2000_debian_desktop_defconfig |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、E2000 img 镜像位于output/images目录。 |
|
|
|
|
|
|
|
#### e2000 img 镜像 |
|
|
|
目前buildroot支持编译e2000 img 镜像(disk.img),生成的e2000 img 镜像位于output/images目录。e2000 img 镜像包含了根文件系统、内核、设备树和GRUB。 |
|
|
|
使用e2000 img 镜像安装系统,不需要像之前那样将存储设备手动分区再拷贝文件,只需要将disk.img文件写入存储设备即可。 |
|
|
|
#### E2000 img 镜像 |
|
|
|
目前buildroot支持编译E2000 img 镜像(disk.img),生成的E2000 img 镜像位于output/images目录。E2000 img 镜像包含了根文件系统、内核、设备树和GRUB。 |
|
|
|
使用E2000 img 镜像安装系统,不需要像之前那样将存储设备手动分区再拷贝文件,只需要将disk.img文件写入存储设备即可。 |
|
|
|
|
|
|
|
### 更换文件系统的linux内核版本 |
|
|
|
defconfig中的内核版本默认是linux 5.10。我们支持在编译文件系统时将内核版本更换为linux 4.19,linux 4.19 rt,linux 5.10 rt。 |
|
|
|
关于e2000 linux内核的信息请参考:`https://gitee.com/phytium_embedded/phytium-linux-kernel` |
|
|
|
关于E2000 linux内核的信息请参考:`https://gitee.com/phytium_embedded/phytium-linux-kernel` |
|
|
|
更换内核版本的操作步骤为: |
|
|
|
(1)使用phytium_e2000_xxx_defconfig作为基础配置项,合并支持其他内核版本的配置: |
|
|
|
`$ ./support/kconfig/merge_config.sh configs/phytium_e2000_xxx_defconfig configs/phytium_e2000_linux_xxx.config` |
|
|
@ -101,14 +101,14 @@ configs/phytium_e2000_linux_5.10_rt.config |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、E2000 img 镜像位于output/images目录。 |
|
|
|
|
|
|
|
### 支持Phytium-optee |
|
|
|
本项目还支持编译Phytium-optee,关于Phytium-optee的信息请参考:`https://gitee.com/phytium_embedded/phytium-optee` |
|
|
|
defconfig默认不编译Phytium-optee,如果需要编译Phytium-optee请执行: |
|
|
|
(1)使用phytium_e2000_xxx_defconfig作为基础配置项,合并支持optee的配置: |
|
|
|
`$ ./support/kconfig/merge_config.sh configs/phytium_e2000_xxx_defconfig configs/phytium_e2000_optee.config` |
|
|
|
目前Phytium-optee支持的开发板有e2000d demo、e2000q demo,默认配置为e2000d demo。如果需要更改,请将 |
|
|
|
目前Phytium-optee支持的开发板有E2000D DEMO、E2000Q DEMO,默认配置为E2000d DEMO。如果需要更改,请将 |
|
|
|
`configs/phytium_e2000_optee.config`中`BR2_PACKAGE_PHYTIUM_OPTEE_BOARD`变量的值修改为`"e2000qdemo"`。 |
|
|
|
注意:phytium-linux-buildroot的最新代码已包含了Phytium-optee的依赖,如果您使用的phytium-linux-buildroot不是最新版本, |
|
|
|
在执行编译之前需要额外安装依赖: |
|
|
@ -140,7 +140,7 @@ phytium_e2000_xenomai_mercury_5.10.config (linux 5.10 rt内核+xenomai-v3.2.2. |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、E2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
xenomai用户态的库、工具被安装到根文件系统: |
|
|
|
头文件安装到/usr/include/xenomai,配置文件安装到/etc,其它内容分别被安装到/usr目录下的bin,demo,lib,sbin,share。 |
|
|
@ -156,7 +156,7 @@ xenomai用户态的库、工具被安装到根文件系统: |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、E2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
将ethercat的驱动模块安装到根文件系统的/lib/modules/version/ethercat/目录,并且通过将ec_macb加入/etc/modprobe.d/blacklist.conf |
|
|
|
黑名单的方式,使得开机时不自动加载ec_macb模块,而是让用户手动加载。 |
|
|
@ -164,8 +164,8 @@ ethercat用户态的库、工具被安装到根文件系统: |
|
|
|
配置文件安装到/etc,其它内容分别被安装到/usr目录下的bin,include,lib,sbin,share。 |
|
|
|
关于ethercat的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/ethercat` |
|
|
|
|
|
|
|
### 支持jailhouse(e2000) |
|
|
|
本项目还支持为e2000编译jailhouse,关于jailhouse的信息请参考:`https://gitee.com/phytium_embedded/phytium-jailhouse` |
|
|
|
### 支持jailhouse(E2000) |
|
|
|
本项目还支持为E2000编译jailhouse,关于jailhouse的信息请参考:`https://gitee.com/phytium_embedded/phytium-jailhouse` |
|
|
|
支持将jailhouse编译安装到ubuntu系统,如果需要编译jailhouse请执行: |
|
|
|
(1)使用phytium_e2000_ubuntu_xxx_defconfig作为基础配置项,合并支持jailhouse的配置: |
|
|
|
`./support/kconfig/merge_config.sh configs/phytium_e2000_ubuntu_xxx_defconfig configs/phytium_e2000_jailhouse_xxx.config` |
|
|
@ -174,7 +174,7 @@ ethercat用户态的库、工具被安装到根文件系统: |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、E2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
jailhouse相关的文件被安装到根文件系统: |
|
|
|
``` |
|
|
@ -187,10 +187,10 @@ pyjailhouse安装到/usr/local/lib/python3.8/dist-packages。 |
|
|
|
``` |
|
|
|
关于jailhouse的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-jailhouse/blob/master/Readme.md` |
|
|
|
|
|
|
|
## 为d2000编译文件系统 |
|
|
|
与“为e2000编译文件系统”相比,“为d2000编译文件系统”还需要“准备内核源码”和“编译initrd”。 |
|
|
|
## 为D2000编译文件系统 |
|
|
|
与“为E2000编译文件系统”相比,“为D2000编译文件系统”还需要“准备内核源码”和“编译initrd”。 |
|
|
|
### 准备内核源码 |
|
|
|
(1)在phytium-linux-buildroot的根目录下创建files目录,将内核源码拷贝到files目录并重命名为linux-4.19.tar.gz |
|
|
|
(1)在phytium-linux-buildroot的根目录下创建files目录,将内核源码拷贝到files目录并根据内核版本进行重命名,比如linux-4.19.tar.gz |
|
|
|
`$ mkdir files` |
|
|
|
`$ cp xxx/linux-4.19-master.tar.gz files/linux-4.19.tar.gz` |
|
|
|
(2)计算内核源码的哈希值 |
|
|
@ -230,7 +230,7 @@ phytium_d2000_debian_desktop_defconfig |
|
|
|
生成的根文件系统、内核位于output/images目录。 |
|
|
|
|
|
|
|
### 支持无桌面qt5 eglfs |
|
|
|
本项目还支持将qt5 eglfs编译安装到无桌面的ubuntu系统,对应的配置文件为`phytium_d2000_ubuntu_qt5_defconfig`,用来运行在d2000+x100上。 |
|
|
|
本项目还支持将qt5 eglfs编译安装到无桌面的ubuntu系统,对应的配置文件为`phytium_d2000_ubuntu_qt5_defconfig`,用来运行在D2000+X100上。 |
|
|
|
如果需要编译qt5 eglfs请执行: |
|
|
|
(1)加载defconfig |
|
|
|
`$ make phytium_d2000_ubuntu_qt5_defconfig` |
|
|
@ -242,12 +242,12 @@ phytium_d2000_debian_desktop_defconfig |
|
|
|
qt5相关的文件被安装到根文件系统的/usr目录: |
|
|
|
头文件安装到/usr/include/qt5,库安装到/usr/lib,plugins安装到/usr/lib/qt/plugins,examples安装到/usr/lib/qt/examples。 |
|
|
|
|
|
|
|
### 支持jailhouse(d2000/ft2004) |
|
|
|
本项目还支持为d2000/ft2004编译jailhouse,编译步骤与为e2000编译jailhouse的步骤类似,请参考“为e2000编译文件系统>支持jailhouse(e2000)”。 |
|
|
|
### 支持jailhouse(D2000/FT-2000/4) |
|
|
|
本项目还支持为D2000/FT-2000/4编译jailhouse,编译步骤与为E2000编译jailhouse的步骤类似,请参考“为E2000编译文件系统>支持jailhouse(E2000)”。 |
|
|
|
除了将第(1)步,修改为: |
|
|
|
(1)使用phytium_d2000_ubuntu_defconfig作为基础配置项,合并支持jailhouse的配置: |
|
|
|
`./support/kconfig/merge_config.sh configs/phytium_d2000_ubuntu_defconfig configs/phytium_d2000_jailhouse.config` |
|
|
|
其余步骤与为e2000编译jailhouse的步骤相同。 |
|
|
|
其余步骤与为E2000编译jailhouse的步骤相同。 |
|
|
|
|
|
|
|
### 更换文件系统的linux内核版本 |
|
|
|
defconfig中的内核版本默认是linux 4.19。我们支持在编译文件系统时将内核版本更换为linux 5.10,linux 5.10 rt,linux 4.19 rt。 |
|
|
@ -265,7 +265,7 @@ configs/phytium_d2000_linux_4.19_rt.config |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、d2000 img 镜像位于output/images目录。 |
|
|
|
生成的根文件系统、内核、D2000 img 镜像位于output/images目录。 |
|
|
|
|
|
|
|
## 为phytiumpi编译SD卡镜像 |
|
|
|
(1)加载defconfig |
|
|
@ -307,10 +307,10 @@ phytiumpi_ubuntu_desktop_defconfig |
|
|
|
`$ make` |
|
|
|
|
|
|
|
# 在开发板上启动系统 |
|
|
|
## 在e2000开发板上启动系统 |
|
|
|
## 在E2000开发板上启动系统 |
|
|
|
### 安装系统 |
|
|
|
可以通过手动分区的方式安装系统,将存储设备分区、格式化后,再将buildroot生成的文件拷贝到对应的分区; |
|
|
|
也可以使用e2000 img 镜像安装系统,这种方式不需要手动将存储设备分区再拷贝文件,只需要将disk.img文件写入存储设备即可。 |
|
|
|
也可以使用E2000 img 镜像安装系统,这种方式不需要手动将存储设备分区再拷贝文件,只需要将disk.img文件写入存储设备即可。 |
|
|
|
#### 手动分区安装系统 |
|
|
|
(1)主机端将存储设备分成两个分区(以主机识别设备名为/dev/sdb 为例,请按实际识别设备名更改) |
|
|
|
`$ sudo fdisk /dev/sdb` |
|
|
@ -343,8 +343,8 @@ $ sync |
|
|
|
$ cd ~ |
|
|
|
$ sudo umount /dev/sdb2 |
|
|
|
``` |
|
|
|
#### 使用e2000 img 镜像安装系统 |
|
|
|
将e2000 img 镜像(disk.img)写入存储设备: |
|
|
|
#### 使用E2000 img 镜像安装系统 |
|
|
|
将E2000 img 镜像(disk.img)写入存储设备: |
|
|
|
`$ sudo dd if=xxx/phytium-linux-buildroot/output/images/disk.img of=/dev/sdb bs=1M` |
|
|
|
`$ sync` |
|
|
|
|
|
|
@ -367,7 +367,7 @@ U盘: |
|
|
|
``` |
|
|
|
|
|
|
|
### UEFI启动系统 |
|
|
|
如果是使用e2000 img 镜像安装系统,将存储设备接到开发板,启动开发板电源,即可自动启动系统。 |
|
|
|
如果是使用E2000 img 镜像安装系统,将存储设备接到开发板,启动开发板电源,即可自动启动系统。 |
|
|
|
如果是通过手动分区的方式安装系统,安装系统后,还需要在主机端配置存储设备的EFI分区中的/EFI/BOOT/grub.cfg文件,确保菜单条目中内核命令行参数root的值为根分区(这里是第二个分区)。 |
|
|
|
(1)通过分区UUID |
|
|
|
获取第二个分区的UUID: |
|
|
@ -377,7 +377,7 @@ U盘: |
|
|
|
将grub.cfg中root的值设置为"root=/dev/sda2"。 |
|
|
|
然后将存储设备接到开发板,启动开发板电源,自动启动系统。 |
|
|
|
|
|
|
|
## 在d2000开发板上启动系统 |
|
|
|
## 在D2000开发板上启动系统 |
|
|
|
### 安装系统 |
|
|
|
(1)主机端将存储设备分成两个分区(以主机识别设备名为/dev/sdb 为例,请按实际识别设备名更改) |
|
|
|
`$ sudo fdisk /dev/sdb` |
|
|
@ -574,7 +574,7 @@ make linux-dirclean |
|
|
|
make |
|
|
|
``` |
|
|
|
|
|
|
|
5. 关于e2000 vpu的包请咨询飞腾技术支持或FAE。 |
|
|
|
5. 关于E2000 vpu的包请咨询飞腾技术支持或FAE。 |
|
|
|
|
|
|
|
6. 在ubuntu或debian上安装完cpufreq-utils,CPU调频模式不再是performance。 |
|
|
|
安装了cpufreq-utils以后,会同时安装一个/etc/init.d/cpufrequtils脚本,这个脚本在启动后会将cpufreq的模式设置为ondemand动态调频。 |
|
|
|