搭建UniProton交叉编译环境
UniProton是基于openEuler社区面向嵌入式场景的操作系统,旨在成为一个高质量的为上层业务软件屏蔽底层硬件差异,并提供强大的调试功能的操作系统平台。使业务软件可以在不同的硬件平台之间快速移植,方便产品芯片选型,降低硬件采购成本和软件维护成本。
搭建Linux交叉编译环境,做完后我发现可以直接用一个脚本就能直接搭建。我把一键安装配置教程放在文尾以供下载。
一、准备阶段
安装交叉编译环境主要准备三个工具,分别是gcc,camke和python。把包下载到指定目录,我一般喜欢放在Downloads里面。
1.1 gcc
cortex_m4版本编译器,官方下载地址为:GNU Arm Embedded Toolchain编译器,指定版本:10-2020-q4-major
1.2 Cmake
下载指定版本3.20.5的Cmake,官方链接下载很慢,有时候链接不上,可以使用第三方链接进行下载
官网链接:Cmake
wget -P ../Downloads https://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5-linux-x86_64.tar.gz
第三方链接:[Cmake org](Index of /files)
wget -P ../Downloads https://cmake.org/files/v3.20/cmake-3.20.5-linux-x86_64.tar.gz
1.3 Python
下载python源码包
官方链接:Python-3.8.5
wget -P ../Downloads https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
如果pip命令不存在,可以下载pip源码包进行安装。pip依赖setuptools,如果setuptools不存在,也需要安装。
官方链接:setuptools源代码包
官方链接:pip源代码包
二、安装环境
1.1 新建目录
当前所有编译器的安装目录都在/opt/buidltools下,首先需要创建该目录并设置权限:
新建目录
sudo mkdir -p /opt/buildtools
设置目录权限
sudo chmod -R 755 /opt/buildtools
1.2 解压文件到指定目录
sudo tar -xvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt/buildtools
sudo tar -xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz -C /opt/buildtools
sudo tar -zxvf cmake-3.20.5.tar.gz -C /opt/buildtools
sudo tar -xvf Python-3.8.5.tgz -C /opt/buildtools
1.3 安装Cmake
安装gcc,gpp,build-essential,libssl-dev
sudo apt install gcc
sudo apt install g++
sudo apt-get install build-essential
sudo apt-get install libssl-dev
在指定路径/opt/buildtools/cmake-3.20.5
下校验包
cd /opt/buildtools/cmake-3.20.5
./bootstrap
检查没问题的话进行安装
-j8
是选择八核编译,如果是电脑是四核就make -j4
,不清楚的就直接make
,影响不大,只是编译速度的变化
make
sudo make install
查看cmake版本cmake --version
查看cmake路径which cmake
软连接cmake
sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
1.3 安装Python
- 检查依赖,进入到目录中,执行./configure命令以检查编译与安装python所需的依赖
cd /opt/buildtools/Python-3.8.5
./configure
- 如果没有报错就继续下一步操作,如果存在报错就根据提示安装依赖。
编译,安装Python
sudo make
sudo make install
检查python版本
python3 --version
链接python命令到刚刚安装的python包。
which python3.8
回显路径
软链接到python3.8
cd /usr/bin
sudo rm python3
sudo ln -s "/usr/local/bin/python3.8" python
python --version
-
安装pip包管理工具
如果pip命令不存在,可以下载pip源码包进行安装。pip依赖setuptools,如果setuptools不存在,也需要安装。
官方链接:setuptools源代码包
安装方式
sudo unzip setuptools-50.3.2.zip cd setuptools sudo python setup.py install
安装pip
官方链接:pip源代码包
安装方式
sudo tar -xf pip-20.2.4.tar.gz cd pip-20.2.4 sudo python setup.py install
三、运行测试
参照上述步骤完成环境搭建后,即可按以下步骤完成编译。
-
下载UniProton代码
git clone https://gitee.com/openeuler/UniProton.git
-
给文件夹赋权
sudo chmod -R 777 UniProton
- 编译OS内核
-
执行编译,进入到 UniProton 根目录下执行命令即可
sudo python build.py rk3568_jailhouse
- 编译demos
-
进入到UniProton/demos/xxx/build目录下直接运行
sh build_app.sh
一键式编译。(shell脚本里包含OS内核编译步骤)cd demos/rk3568_jailhouse/build sh build_app.sh
附1、一键配置UniProton环境使用方法
下载地址:
通过网盘分享的文件:Set UniProton environment.zip
链接: https://pan.baidu.com/s/1zbneB4JFSzgZXOG-KiNo8Q?pwd=j68f 提取码: j68f
将文件解压后,拷贝到Ubuntu中,在Ubuntu中给文件夹赋权,然后运行脚本文件,需要输密码的时候输密码,然后等待安装成功就行
附2、参考文档
doc/demo_guide/UniProton_build.md · openEuler/UniProton - Gitee.com