|
|
@ -74,7 +74,11 @@ phytium_e2000_debian_desktop_defconfig |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核位于output/images目录。 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
|
|
|
|
#### e2000 img 镜像 |
|
|
|
目前buildroot支持编译e2000 img 镜像(disk.img),生成的e2000 img 镜像位于output/images目录。e2000 img 镜像包含了根文件系统、内核、设备树。 |
|
|
|
使用e2000 img 镜像安装系统,不需要像之前那样将存储设备手动分区再拷贝文件,只需要将disk.img文件写入存储设备即可。 |
|
|
|
|
|
|
|
### 更换文件系统的linux内核版本 |
|
|
|
defconfig中的内核版本默认是linux 5.10。我们支持在编译文件系统时将内核版本更换为linux 4.19,linux 4.19 rt,linux 5.10 rt。 |
|
|
@ -92,7 +96,7 @@ configs/phytium_e2000_linux_5.10_rt.config |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核位于output/images目录。 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
|
|
|
|
### 支持Phytium-optee |
|
|
|
本项目还支持编译Phytium-optee,关于Phytium-optee的信息请参考:`https://gitee.com/phytium_embedded/phytium-optee` |
|
|
@ -105,9 +109,9 @@ defconfig默认不编译Phytium-optee,如果需要编译Phytium-optee请执行 |
|
|
|
在执行编译之前需要额外安装依赖: |
|
|
|
``` |
|
|
|
sudo apt install python3-pip |
|
|
|
pip install pycryptodome |
|
|
|
pip install pyelftools |
|
|
|
pip install cryptography |
|
|
|
pip3 install pycryptodome |
|
|
|
pip3 install pyelftools |
|
|
|
pip3 install cryptography |
|
|
|
``` |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
@ -115,6 +119,69 @@ pip install cryptography |
|
|
|
生成的根文件系统、内核、TEE OS位于output/images目录。 |
|
|
|
后续部署及使用方法,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/optee` |
|
|
|
|
|
|
|
### 支持xenomai |
|
|
|
本项目还支持编译xenomai,关于xenomai的信息请参考:`https://gitee.com/phytium_embedded/linux-kernel-xenomai` |
|
|
|
支持将xenomai内核及用户态的库、工具编译安装到debian系统上。如果需要编译xenomai请执行: |
|
|
|
(1)使用phytium_e2000_debian_xxx_defconfig作为基础配置项,合并支持xenomai的配置: |
|
|
|
`$ ./support/kconfig/merge_config.sh configs/phytium_e2000_debian_xxx_defconfig configs/phytium_e2000_xenomai_xxx.config` |
|
|
|
其中,`phytium_e2000_debian_xxx_defconfig`为`phytium_e2000_debian_defconfig`或`phytium_e2000_debian_desktop_defconfig`; |
|
|
|
`phytium_e2000_xenomai_xxx.config`为以下配置片段文件之一: |
|
|
|
``` |
|
|
|
phytium_e2000_xenomai_cobalt_4.19.config (xenomai cobalt 4.19内核+xenomai-v3.1.3.tar.gz) |
|
|
|
phytium_e2000_xenomai_cobalt_5.10.config (xenomai cobalt 5.10内核+xenomai-v3.2.2.tar.gz) |
|
|
|
phytium_e2000_xenomai_mercury_4.19.config (linux 4.19 rt内核+xenomai-v3.1.3.tar.gz) |
|
|
|
phytium_e2000_xenomai_mercury_5.10.config (linux 5.10 rt内核+xenomai-v3.2.2.tar.gz) |
|
|
|
``` |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
xenomai用户态的库、工具被安装到根文件系统: |
|
|
|
头文件安装到/usr/include/xenomai,配置文件安装到/etc,其它内容分别被安装到/usr目录下的bin,demo,lib,sbin,share。 |
|
|
|
关于xenomai的启动及测试工具等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/xenomai` |
|
|
|
|
|
|
|
### 支持ethercat |
|
|
|
本项目还支持编译ethercat,关于ethercat的信息请参考:`https://gitee.com/phytium_embedded/ether-cat` |
|
|
|
支持将ethercat驱动及用户态的库、工具编译安装到debian系统上,ethercat只支持linux 4.19 rt,linux 5.10 rt内核。如果需要编译ethercat请执行: |
|
|
|
(1)使用phytium_e2000_debian_xxx_defconfig作为基础配置项,合并支持rt内核,及ethercat的配置: |
|
|
|
`./support/kconfig/merge_config.sh configs/phytium_e2000_debian_xxx_defconfig configs/phytium_e2000_linux_xxx_rt.config configs/phytium_e2000_ethercat.config` |
|
|
|
其中,`phytium_e2000_debian_xxx_defconfig`为`phytium_e2000_debian_defconfig`或`phytium_e2000_debian_desktop_defconfig`; |
|
|
|
`phytium_e2000_linux_xxx_rt.config`为`phytium_e2000_linux_4.19_rt.config`或`phytium_e2000_linux_5.10_rt.config`。 |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
将ethercat的驱动模块安装到根文件系统的/lib/modules/version/ethercat/目录,并且通过将ec_macb加入/etc/modprobe.d/blacklist.conf |
|
|
|
黑名单的方式,使得开机时不自动加载ec_macb模块,而是让用户手动加载。 |
|
|
|
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编译安装到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` |
|
|
|
其中,`phytium_e2000_ubuntu_xxx_defconfig`为`phytium_e2000_ubuntu_defconfig`或`phytium_e2000_ubuntu_desktop_defconfig`; |
|
|
|
`phytium_e2000_jailhouse_xxx.config`为`phytium_e2000_jailhouse_4.19.config`或`phytium_e2000_jailhouse_5.10.config`。 |
|
|
|
(2)编译 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核、e2000 img 镜像位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
jailhouse相关的文件被安装到根文件系统: |
|
|
|
``` |
|
|
|
按照Makefile中的规则,将jailhouse的驱动jailhouse.ko安装到/lib/modules/version/jailhouse/driver;jailhouse.bin安装到/lib/firmware; |
|
|
|
linux-loader.bin安装到/usr/local/libexec/jailhouse;jailhouse和ivshmem-demo安装到/usr/local/sbin; |
|
|
|
python helper脚本安装到/usr/local/libexec/jailhouse;jailhouse-config-collect.tmpl和root-cell-config.c.tmpl |
|
|
|
安装到/usr/local/share/jailhouse;jailhouse-completion.bash安装到/usr/share/bash-completion/completions/并改名为jailhouse; |
|
|
|
另外,还将configs/*/*.cell安装到/etc/jailhouse;inmates/demos/*/*.bin安装到/usr/local/libexec/jailhouse/demos; |
|
|
|
pyjailhouse安装到/usr/lib/python3.10/site-packages。 |
|
|
|
``` |
|
|
|
关于jailhouse的使用方法等更多信息,请参考`https://gitee.com/phytium_embedded/phytium-jailhouse/blob/master/Readme.md` |
|
|
|
|
|
|
|
## 清理编译结果 |
|
|
|
(1)`$ make clean` |
|
|
|
删除所有编译结果,包括output目录下的所有内容。当编译完一个文件系统后,编译另一个文件系统前,需要执行此命令。 |
|
|
@ -122,6 +189,8 @@ pip install cryptography |
|
|
|
重置buildroot,删除所有编译结果、下载目录以及配置。 |
|
|
|
|
|
|
|
## 为d2000编译文件系统 |
|
|
|
与“为e2000编译文件系统”相比,“为d2000编译文件系统”还需要“准备内核源码”和“编译initrd”。 |
|
|
|
### 准备内核源码 |
|
|
|
(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` |
|
|
@ -133,28 +202,56 @@ $ sha256sum files/linux-4.19.tar.gz |
|
|
|
编辑linux/linux.hash文件,将linux-4.19.tar.gz对应行的哈希值修改为刚刚计算的哈希值,如下所示: |
|
|
|
`sha256 22a2345f656b0624790dcbb4b5884827c915aef00986052fd8d9677b9ee6b50e linux-4.19.tar.gz` |
|
|
|
注意:每次更新files目录里面的内核源码,都需要同时修改linux/linux.hash里面内核源码对应的哈希值,这是为了验证files目录中的文件与dl目录中的文件一致。 |
|
|
|
(3)配置及编译initrd |
|
|
|
|
|
|
|
### 编译initrd |
|
|
|
(1)配置及编译initrd |
|
|
|
``` |
|
|
|
$ make phytium_initrd_defconfig |
|
|
|
$ make |
|
|
|
``` |
|
|
|
(4)将编译好的initrd备份保存 |
|
|
|
(2)将编译好的initrd备份保存 |
|
|
|
`$ cp xxx/phytium-linux-buildroot/output/images/rootfs.cpio.gz ~/initrd` |
|
|
|
(5)清理编译结果 |
|
|
|
(3)清理编译结果 |
|
|
|
`$ make clean` |
|
|
|
(6)配置以下文件系统之一: |
|
|
|
`$ make phytium_d2000_ubuntu_defconfig` |
|
|
|
`$ make phytium_d2000_defconfig` |
|
|
|
`$ make phytium_d2000_debian_defconfig` |
|
|
|
`$ make phytium_d2000_debian_desktop_defconfig` |
|
|
|
(7)编译文件系统 |
|
|
|
|
|
|
|
### 编译默认配置的文件系统 |
|
|
|
(1)加载defconfig |
|
|
|
`$ make phytium_d2000_xxx_defconfig` |
|
|
|
其中`phytium_d2000_xxx_defconfig`为以下文件系统之一: |
|
|
|
``` |
|
|
|
phytium_d2000_ubuntu_defconfig |
|
|
|
phytium_d2000_defconfig |
|
|
|
phytium_d2000_debian_defconfig |
|
|
|
phytium_d2000_debian_desktop_defconfig |
|
|
|
``` |
|
|
|
(2)编译文件系统 |
|
|
|
`$ make` |
|
|
|
(8)镜像的输出位置 |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核位于output/images目录。 |
|
|
|
|
|
|
|
### 支持无桌面qt5 eglfs |
|
|
|
本项目还支持将qt5 eglfs编译安装到无桌面的ubuntu系统,对应的配置文件为`phytium_d2000_ubuntu_qt5_defconfig`,用来运行在d2000+x100上。 |
|
|
|
如果需要编译qt5 eglfs请执行: |
|
|
|
(1)加载defconfig |
|
|
|
`$ make phytium_d2000_ubuntu_qt5_defconfig` |
|
|
|
(2)编译文件系统 |
|
|
|
`$ make` |
|
|
|
(3)镜像的输出位置 |
|
|
|
生成的根文件系统、内核位于output/images目录。 |
|
|
|
(4)文件的安装路径 |
|
|
|
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)”。 |
|
|
|
除了将第(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开发板上启动文件系统 |
|
|
|
### 使用U-Boot启动文件系统 |
|
|
|
### 使用U-Boot启动文件系统(手动分区) |
|
|
|
(1)主机端将SATA盘或U盘分成两个分区(以主机识别设备名为/dev/sdb 为例,请按实际识别设备名更改) |
|
|
|
`$ sudo fdisk /dev/sdb` |
|
|
|
|
|
|
@ -193,6 +290,27 @@ U盘: |
|
|
|
=>booti 0x90100000 - 0x90000000 |
|
|
|
``` |
|
|
|
|
|
|
|
### 使用U-Boot启动文件系统(使用e2000 img 镜像) |
|
|
|
(1)将e2000 img 镜像(disk.img)写入SATA盘或U盘: |
|
|
|
`$ sudo dd if=xxx/phytium-linux-buildroot/output/images/disk.img of=/dev/sdb bs=1M` |
|
|
|
|
|
|
|
(2)SATA盘或U盘接到开发板,启动开发板电源,串口输出U-Boot命令行,设置U-Boot环境变量,启动文件系统 |
|
|
|
SATA盘: |
|
|
|
``` |
|
|
|
=>setenv bootargs console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=/dev/sda2 rw; |
|
|
|
=>fatload scsi 0:1 0x90100000 Image; |
|
|
|
=>fatload scsi 0:1 0x90000000 e2000q-demo-board.dtb; |
|
|
|
=>booti 0x90100000 - 0x90000000 |
|
|
|
``` |
|
|
|
U盘: |
|
|
|
``` |
|
|
|
=>setenv bootargs console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=/dev/sda2 rootdelay=5 rw; |
|
|
|
=>usb start |
|
|
|
=>fatload usb 0:1 0x90100000 Image; |
|
|
|
=>fatload usb 0:1 0x90000000 e2000q-demo-board.dtb; |
|
|
|
=>booti 0x90100000 - 0x90000000 |
|
|
|
``` |
|
|
|
|
|
|
|
## 在d2000开发板上启动文件系统 |
|
|
|
### 使用U-Boot启动文件系统 |
|
|
|
(1)主机端将SATA盘或U盘分成两个分区(以主机识别设备名为/dev/sdb 为例,请按实际识别设备名更改) |
|
|
@ -380,3 +498,5 @@ rm -rf dl/linux/ |
|
|
|
make linux-dirclean |
|
|
|
make |
|
|
|
``` |
|
|
|
|
|
|
|
5、关于e2000 vpu的包请咨询飞腾技术支持或FAE。 |
|
|
|