海鸥派 SDK 编译开发指南
1. Linux/ubuntu
本文档当前章节以虚拟机安装 ubuntu18.04 为例详细说明,若无特殊说明则适用于其他 ubuntu版本。
SDK 为易百纳适配后 SDK,编译流程也可参考官方原厂 SDK 中相关文档资料,具体位置为“ ReleaseDoc/zh/01.software/board/OSDRV/ SS928V100/SS927V100 开发环境用户指南.pdf”。
1.1 安装交叉编译工具
tar -zxvf aarch64-mix210-linux.tgz
cd aarch64-mix210-linux/
sudo ./aarch64-mix210-linux.install
source /etc/profile
aarch64-mix210-linux-gcc -v
- 1
- 2
- 3
- 4
- 5
解释说明:
若编译适配后 SDK,可只安装上述交叉编译工具;若需要编译完整官方 SDK,需安装 riscv 交叉编译工具。详情参考“SS928V100 开发环境用户指南”。
1.2 安装 ss928 环境
配置默认使用 bash。
sudo dpkg-reconfigure dash
- 1
安装软件包。
sudo apt-get install make libc6-i386 lib32z1 lib32stdc++6 zlib1g-dev
libncurses5-dev
sudo apt-get install ncurses-term libncursesw5-dev g++ u-boot-tools texinfo gawk
libssl-dev openssl bc
sudo apt-get install texlive p7zip-full gperf bison flex diffutils git unzip
libffi-dev libtool libfreetype6
- 1
- 2
- 3
- 4
- 5
- 6
创建/etc/ld.so.preload 文件,并执行 echo “” > /etc/ld.so.preload,以解决 64bit linux server上某些第三方库编译失败的问题。
sudo touch /etc/ld.so.preload
sudo chmod 777 /etc/ld.so.preload
sudo echo "" > /etc/ld.so.preload
- 1
- 2
- 3
安装 mtd-utils 依赖库,并设置 pkg-config 工具搜索路径。
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
- 1
sudo vi /etc/profile
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
- 1
- 2
安装 optee 模块依赖的 python3.x.x、pip3、wheel、pycryptodome、pyelftools 库。
#官方文档中推荐安装 python3.7.6 版本
#可从官方文档蓝色字体链接处下载版本安装包解压安装
tar -zxvf Python-3.7.6.tgz
cd Python-3.7.6/
./configure
make
sudo make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
#ubuntu20.04 也可直接安装
sudo apt-get install python3
sudo apt-get install python3-pip
#ubuntu22.04
sudo apt-get install python3
sudo apt-get install pip3
- 1
- 2
- 3
- 4
- 5
- 6
sudo pip3 install wheel==0.36.2
sudo pip3 install pycryptodome==3.9.8
sudo pip3 install pyelftools==0.27
sudo pip3 install kconfiglib
#pip3 安装可能失败或耗时,可从官方文档蓝色字体链接处下载版本安装包解压安
- 1
- 2
- 3
- 4
- 5
1.3 编译 SDK
tar -zxvf hieuler_sdk_v1.1.0.tgz
cd hieuler_ebaina_sdk/
make
#默认生成适用于存储参数为 4GB+32GB 的开发板,Linux 系统固件
- 1
- 2
- 3
- 4
默认生成固件适用于 4GB+32GB 存储规格开发板,存储规格不同需修改 hieuler_ebaina_sdk/Makefile中 export MEM_SIZE ?= 8G(海鸥派存储规格目前有两种:4GB+32GB 存储则该参数为 4G,8GB+64GB存储则该参数为 8G)。
vi Makefile
head Makefile
make u-boot
#编译完成后,在 output 目录下生成对应规格的文件
- 1
- 2
- 3
- 4
默认生成的是 linux 系统版本固件,如果需要编译 ubuntu 版本需要修改 hieuler_ebaina_sdk/roofts下链接。修改后,先清除之前构建的文件系统镜像,再重新构建文件系统镜像。
ln -sf ubuntu.sh 001_base.sh
#返回 hieuler_ebaina_sdk 目录,清除之前文件系统镜像,再重新构建
cd ..
make rootfs_clean
make rootfs
#更改生成 linux 系统固件操作如上,更改链接,返回目录,清除镜像重新构建
ln -sf busybox.sh 001_base.sh
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Linux/ubuntu 编译报错问题处理
报错:aarch64-mix210-linux-gcc:命令未找到。交叉编译工具未找到,安装交叉编译工具之后 source/etc/profile 仅对当时终端有效,切换终端后失效;可再次运行 source /etc/profile,或直接重启。
如果是 ubuntu20.04/22.04 版本编译 linux/ubuntu 版本 SDK,报错关于 libisl.so.19 问题,可能因为 gnu 版本不一样。ubuntu18.04 可正常编译,ubuntu20.04 该库版本为 22,ubuntu22.04 该库版本是 23。可通过建立链接完成编译。
具体版本信息可自行搜索确认 libisl.so 版本并对应修改链接中版本。
#ubuntu20.04
sudo ln -s /usr/lib/x86_64-linux-gnu/libisl.so.22
/usr/lib/x86_64-linux-gnu/libisl.so.19
#ubuntu22.04
sudo ln -s /usr/lib/x86_64-linux-gnu/libisl.so.23
/usr/lib/x86_64-linux-gnu/libisl.so.19
- 1
- 2
- 3
- 4
- 5
- 6
尝试编译完整官方 SDK 报错:
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multipledefinition of ‘yylloc’; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here。
vi
/home/ebaina/hieuler/sdk/SS928V100_SDK_V2.0.2.2/open_source/linux/linux-4.19.y/s
cripts/dtc/dtc-lexer.l
#在 YYLTYPE yylloc;前面加 extern
make
- 1
- 2
- 3
- 4
- 5
2.Openeuler
推荐使用 ubuntu22.04,且虚拟机内存分配 8GB(8192MB),最大磁盘大小 100GB,因 openEuler相关提示:“oebuild 基于 python3 实现,建议使用 python>=3.10 的版本。至少有 50G 以上的空闲磁盘空间,建议预留尽可能多的空间,有助于运行多个镜像构建,通过重复构建提升效率。至少有8G 内存,建议使用内存、CPU 数量更多的机器,增加构建速度。”。具体情况可根据个人设备做出调整。
当前章节也可参考欧拉文档“海鸥派镜像构建与使用 — openEuler Embedded 在线文档24.03 documentation (openatom.cn)”。
2.1 安装 oebuild
安装必要软件包。
sudo apt-get install python3 python3-pip docker docker.io
- 1
配置 docker 环境。
sudo usermod -a -G docker $(whoami)
sudo systemctl daemon-reload && sudo systemctl restart docker
sudo chmod o+rw /var/run/docker.sock
- 1
- 2
- 3
首次安装 oebuild。
pip3 install oebuild
- 1
推荐在网络环境较好情况下安装,若出现红色报错,重新运行上面命令。完成安装后再次运行上面命令,出现以下打印信息。
2.2 拉取代码,构建镜像
初始化工作目录,未指定分支,使用默认分支 master。
oebuild init my_workspace
- 1
根据上面提示执行命令并拉取代码。
cd /home/ebaina/my_workspace
oebuild update
- 1
- 2
生成 hieulerpi1 构建配置文件,若需额外加入特性,见-f 列表(oebuild generate -l),下例构建基础镜像。
oebuild generate -p hieulerpi1
- 1
按提示进入构建目录,执行如下命令进入 bitbake 环境,进入构建交互终端。
cd /home/ebaina/my_workspace/build/hieulerpi1
oebuild bitbake
- 1
- 2
构建镜像,需要较稳定的网络环境以及性能较好的主机。首次编译时间较长,需耐心等待,若报错可尝试清楚后再次运行该命令。
#构建镜像
bitbake openeuler-image
#构建 SDK
bitbake openeuler-image -c populate_sdk
#若出现问题,可尝试执行命令清除缓冲和标识后重新编译
bitbake openeuler-image -c cleanall
- 1
- 2
- 3
- 4
- 5
- 6
构建完成将会在当前目录下生成 output/时间戳/文件夹,其中 kernel-pi 是板端 openEuler 内核镜像,openeuler-image-hieulerpi1-[时间戳].rootfs.ext4 是板端文件系统镜像。
若构建 SDK,则对应文件夹中为交叉编译工具链;该工具链也可从 openeuler 每日构建中获取。
注:欧拉系统构建不包括 u-boot 部分,可直接从仓库中获取编译后的 u-boot 部分固件文件,也可下载源码根据当前文档中 linux/ubuntu 编译部分尝试,编译 SDK 部分执行“make u-boot”,即仅编译 u-boot 部分固件。下载及仓库链接:
https://gitee.com/HiEuler/u-boot/releases/tag/v2.0.0 。
- 分享
- 举报

-
浏览量:1821次2022-11-30 09:49:56
-
浏览量:773次2024-11-21 20:16:20
-
浏览量:1841次2024-03-29 11:19:21
-
浏览量:1373次2023-07-26 13:44:05
-
浏览量:4007次2020-09-24 11:58:24
-
浏览量:127次2025-02-05 13:22:59
-
浏览量:158次2025-02-05 13:58:48
-
浏览量:1108次2024-07-31 19:46:13
-
浏览量:1735次2024-03-29 10:57:19
-
浏览量:947次2024-07-15 18:31:13
-
浏览量:286次2025-01-16 21:26:58
-
浏览量:3348次2022-10-11 11:14:08
-
浏览量:9655次2018-06-02 19:08:30
-
浏览量:2436次2024-01-07 22:19:19
-
浏览量:4085次2024-04-30 22:13:25
-
浏览量:1352次2024-05-13 15:00:38
-
浏览量:2946次2020-07-31 15:13:59
-
浏览量:8212次2020-12-08 14:36:36
-
浏览量:3558次2021-12-06 16:16:18
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖

tomato






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明