编译与升级
1. 编译环境配置¶
1.1. 安装交叉编译工具链¶
在Linux环境下将编译工具链解压到特定目录,然后将该路径添加到PATH环境变量中。可以使用如下命令在当前终端中修改PATH环境变量,或者将这条配置添加到~/.bashrc
文件中。
export PATH=${PATH}:~/toolchains/gcc-sigmastar-9.1.0-2020.07-x86_64_arm-linux-gnueabihf/bin
1.2. 系统工具安装与设置¶
-
默认shell配置
编译脚本默认使用的是
bash
,要求系统的默认shell为bash
,可通过ls -la /bin/sh
命令来确认。以最常用的Ububtu为例,高版本的Ubuntu默认shell为dash
,修改方式如下:
ls -la /bin/sh lrwxrwxrwx 1 root root 4 Jun 15 08:49 /bin/sh -> dash sudo dpkg-reconfigure dash #在弹出的界面选择<NO> ls -la /bin/sh lrwxrwxrwx 1 root root 4 Jun 15 08:49 /bin/sh -> bash
-
设置默认python版本为python2.x
python2与python3的语义有差别,SDK编译脚本使用的是python2的语义,因此需要将系统默认python版本设置为python2.x,修改方式请参考网络上的相关文档,比如使用
update-alternatives
工具来配置。 -
安装
mkfs.ubifs
工具系统需已安装
mkfs.ubifs
工具,如Ubuntu可通过sudo apt-get install mtd-utils
命令安装
1.3. 环境变量配置¶
在开始编译之前需先声明如下两个环境变量:
declare -x ARCH="arm" declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
2. 编译¶
发布的SDK中包含boot、kernel、project、sdk
四个压缩包,将这4个压缩包解压到同一级目录,如下:
tianhui.he@xml0bc6401:~/codes/SSD268G/release_0413/sourcecode$ ls boot kernel project sdk
进入project
目录后执行以下命令生成默认配置:
make dispcam_m6_spinand.glibc-9.1.0-squashfs.016a.512x512.bga2.demo_defconfig
与kernel的编译类似,可以直接修改上面的‘defconfig’文件或使用make menuconfig
命令打开图形界面手动修改特定的配置项。
配置完成后执行以下命令开始编译:
make image
编译完成后将在project/image/output/images/
目录生成image,如下:
3. 升级¶
3.1. 使用ISP工具升级¶
ISP升级适用于flash未烧写过或是板上的uboot已损坏的情况下烧写flash,目前只支持nand跟nor flash,详细的烧写步骤请参考开发环境搭建。需要注意的是必须使用如下图这种专用的串口小板才可以烧写。
3.2. 使用SD卡升级¶
SSD268G支持从SD卡启动,需将开发板上的拨码配置为“SD 1st”模式。
-
从
project/board/m6/boot/ipl
目录下将IPL.LoadFromSD.bin
及IPL_CUST.LoadFromSD.bin
这两个文件拷贝到SD卡根目录,并依次重命名为IPL
及IPL_CUST
-
将编译完成后的
images
目录下的boot/u-boot_spinand.xz.img.bin
文件拷贝到SD卡根目录,并重命名为UBOOT
-
将SD卡插到板子上之后即可通过SD卡中的IPL及UBOOT启动到U-boot环境,如下图,可以看到
Load from SD
的提示。此时可参考3.4. u-boot下使用网口升级使用网网口升级,或按下一步骤从SD卡烧写image -
若是板子无网络,可以在2. 编译编译成功后,
project
目录下执行./make_sd_upgrade_sigmastar.sh
命令,在交互命令中根据实际需要升级的模块选择要打包的模块,如下图:打包完成后将在
project/image/output/images/
目录下生成SigmastarUpgradeSD.bin
跟upgrade_script.txt
这两个文件,将这两个文件拷贝到SD卡根目录 -
将SD卡插到板子上之后通过SD卡中的IPL及UBOOT启动到U-boot环境,执行
sdstar
命令,即可将之前打包的sd卡升级镜像写到flash中 注意,若是无sdstar
命令的话则需重编uboot,开启CONFIG_MS_SDMMC
选项。
3.3. 使用USB口升级¶
参考USB固件升级、USBDownloadTool使用说明。
3.4. u-boot下使用网口升级¶
-
pc端的tftp server指定到编译生成的成果物目录
-
主板上电后按住回车键进入uboot,使用
setenv
命令配置好网络参数,输入estar
进行升级 -
若要单独升级某一部分可以在
estar
命令后添加参数,参考auto_update.txt
文档中的写法,如estar scripts/[[kernel