GK7206 开发环境搭建:Ubuntu 交叉编译工具链配置(Pico-G1 快速入门 1)
本章节详细介绍如何为ShiMetaPi-Pico-G1搭建完整的交叉编译开发环境。1 开发环境概述由于目标机ShiMetaPi-Pico-G1资源有限无法运行开发和调试工具因此在性能强大的宿主机上进行程序的编译、链接和定位生成可执行文件后再烧写到目标机中运行即采用宿主机目标机评估板的交叉编译模式。典型的开发环境由以下部分组成并处于同一网络中Linux服务器作为交叉编译环境完成SDK的编译与构建。Windows工作台通过Mobaxterm等SSH客户端工具远程登录Linux服务器进行开发并通过串口/网口/USB与目标板连接用于运行调试工具、烧写软件。目标板(ShiMetaPi-Pico-G1)运行最终编译生成的系统镜像和应用程序。说明开发环境中使用了Windows工作台但实际上很多工作如使用minicom代替超级终端也可以在Linux服务器上完成用户可自行选择。2 搭建Linux服务器编译环境以下步骤以推荐的64位Ubuntu 18.04系统为例进行说明。注意推荐使用64位Linux服务器本开发包在32位Linux服务器、较老版本的Linux服务器、偏冷门的Linux服务器上可能存在未知的兼容性问题。2.1 硬件与系统推荐配置推荐使用64位Linux服务器以确保开发包的兼容性。推荐配置如下本开发包默认使用以下Linux系统版本进行编译Linux version 4.15.0-192-generic (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #203-Ubuntu SMP Wed Aug 10 17:40:03 UTC 20222.2 网络环境搭建请用户自行配置网络并安装 NFS、Samba、SSH 等网络组件sudo apt-get install nfs-kernel-server samba ssh说明网络环境搭建完成后请确保Linux服务器与Windows工作台、目标板处于同一局域网内并能互相Ping通。2.3 安装依赖软件包操作系统安装好并配置好网络环境后按照以下步骤完成相关软件包的安装。步骤 1配置默认使用 bashsudo dpkg-reconfigure dash在弹出的对话框中选择 No将默认 shell 从 dash 切换为 bash。步骤 2安装基础软件包sudo apt-get install make libc6:i386 lib32z1 lib32stdc6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g u-boot-tools:i386 texinfo texlive gawk libssl-dev openssl bc步骤 3解决 64 位系统第三方库编译问题创建 /etc/ld.so.preload 文件并置空以解决 64 位 Linux 服务器上某些第三方库编译失败的问题sudo touch /etc/ld.so.preload sudo bash -c echo /etc/ld.so.preload步骤 4安装 gperf 工具安装 gperf 以解决 eudev-3.2.7 编译问题wget http://ftp.gnu.org/pub/gnu/gperf/gperf-3.1.tar.gz tar -xzf gperf-3.1.tar.gz cd gperf-3.1 ./configure make sudo make install步骤 5安装 mtd-utils 依赖库mtd-utils 2.0.2 依赖以下库sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config设置 pkg-config 搜索路径export PKG_CONFIG_PATH$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig步骤 6安装 automake 1.15.1mtd-utils 2.0.2 依赖于 automake 1.15.1 版本需要手动安装1. 删除原有 automake 版本sudo apt-get autoremove automake2. 下载 automake 1.15.1wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz3. 编译安装tar zxvf automake-1.15.1.tar.gz cd automake-1.15.1/ ./configure make sudo make install2.4 SDK获取说明请用户自行根据服务器Linux发行版安装git工具1. 拉取SDKgithubgit clone https://github.com/ShiMetaPi_0/shimetapi_pico_gx.gitgiteegit clone https://gitee.com/ShiMetaPi_0/shimetapi_pico_gx.git2. 配置交叉编译工具路径注意使用从网络等渠道得到的交叉编译工具可能存在与使用的内核并不配套的情况造成开发过程中出现一些不可预料的问题。请使用SDK自带的交叉编译工具链。SDK发布包中自带编译工具链进入SDK根目录后执行以下命令即可将工具链路径加入环境变量cd sdk source ./build/env.sh该命令会将 sdk/tools/linux/toolchains 目录下的编译路径加入到 PATH 环境变量中编译器即可在SDK中使用。提示每次打开新的终端窗口进行编译前都需要先执行 source ./build/env.sh 来加载环境变量或者使用run.sh脚本进行编译构建。3. 验证SDK进入SDK根目录进行一次编译和烧录验证是否能够将固件烧录进ShiMetaPi-Pico-G1并成功运行。具体请参考 《镜像编译》、《镜像烧录》、《系统登录》。