一、搭建编译环境
① 安装 Yocto 所必须的软件包
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev texinfo
② 安装 Semidrive 所需要的软件包
sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html
sudo apt-get install docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc
sudo apt-get install abootimg jq bc
注:支持的系统版本为 Ubuntu 16.04,Gnu Make 版本至少 4.1 版本
③ 将官方提供的编译工具链 gcc_linaro_7.3.1.tar 解压到 /tool 目录下
添加编译工具链路径,~/.bashrc 文件中添加如下内容
export PATH="$PATH:/tool/gcc_linaro/gcc-arm-none-eabi-7.3.1/bin:/tool/gcc_linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf/bin"
执行 source 添加修改
source .bashrc
注:这个没有执行时,执行下面的 source 命令会有如下报错:
[ERROR] gcc-arm-none-eabi-7.3.1 HAS NOT INSTALLED, please install in path: /tool/gcc_linaro/gcc-arm-none-eabi-7.3.1/bin
[ERROR] gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf HAS NOT INSTALLED, please install in path: /tool/gcc_linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf/bin
④ 设置 git 账号属性
git config --global user.name ipual
git config --global user.email pual.lin@wpi-group.com
git config --list
二、Linux 系统搭建
当前芯驰提供的一键编译方式还没有涵盖 Native Linux 整体系统的编译和打包,他们将会在下一个发布中将 Native Linux 添加进来。目前采用的是 Yocto 来进行 Linux 编译和镜像生成。
① 选择一个 yocto 的根目录,使用下面命令来进行运行环境设置
DISTRO=cluster-qt MACHINE=x9h_ref_serdes source sd_setup.sh -b build-x9ref
支持列表:
- x9h_ref: 使用 LVDS 1&2 输出接口
- x9h_ref_cluster: 使用 LVDS 3&4 输出接口
- x9h_ref_serdes: 使用 LVDS 1&2 输出接口,并且使用 serdes 作为显示连接方式
- x9h_ref_cluster_serdes: 使用 LVDS 3&4 输出接口,并且使用 serdes 作为显示连接方式
DISTRO 支持列表
- minimal-console
- cluster-qt
两个 DISTRO 最大的区别是,cluster-qt 包含了 opengl 模块以及一些图形测试程序。
-b 命令指定编译生成文件夹名称
如果不指定的话,使用默认的 build 目录,运行成功后会自动进入 build-x9ref 目录
② 选择 Semidrive 工程镜像包名称,本版本仅支持以下 Image,首选 core-image-base
运行命令开始编译
bitbake virtual/kernel
bitbake lk
bitbake safety
bitbake core-image-base
bitbake baremetal
出错:UTF-8
pual@ubuntu16:/home/host/buildsystem-x9-ptg3.8/yocto/build-x9ref$ bitbake virtual/kernel
Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).
Python can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.
执行如下命令解决
sudo apt-get install locales
sudo dpkg-reconfigure locales
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
编译完成后,生成的 Image 保存在以下目录中:/tmp/deploy/images/
目录中包含 Linux 内核 Image, modules, dtb,bootloader,preloader,spl, system, safety 和 rootfs
③ 打包镜像
利用打包工具可以生成完整的下载包
1)生成 emmc 的 pac 包
cd meta-semidrive/scripts
./make_emmc_pac.sh
emmc 的包位于/global.pac
2)生成 ospi 的 pac 包
cd meta-semidrive/scripts
./make_ospi_pac.sh
ospi 的包位于/ospi_safety.pa
三、镜像烧录
烧录过程请参考前面一篇博文 《X9H 平台 Android 系统环境搭建》
完成烧录,启动开发板可以看到仪表工作正常
四、参考文献
《SD_X9_SDK_User_Manual》
《SD_X9_SDK_Quick_Start》
《SD_X9_PTG3.8_release_notes》
《SD_X9_PTG3.8_release_notes》
评论
发粪涂墙
2022年7月18日
mm11751
2022年7月11日
mm11751
2022年7月11日
mm11751
2022年7月11日