编译与升级

Version 1.0


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,如下:

pic


3. 升级


3.1. 使用ISP工具升级

ISP升级适用于flash未烧写过或是板上的uboot已损坏的情况下烧写flash,目前只支持nand跟nor flash,详细的烧写步骤请参考开发环境搭建。需要注意的是必须使用如下图这种专用的串口小板才可以烧写。

pic


3.2. 使用SD卡升级

SSD268G支持从SD卡启动,需将开发板上的拨码配置为“SD 1st”模式。

  • project/board/m6/boot/ipl目录下将IPL.LoadFromSD.binIPL_CUST.LoadFromSD.bin这两个文件拷贝到SD卡根目录,并依次重命名为IPLIPL_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

    pic

  • 若是板子无网络,可以在2. 编译编译成功后,project目录下执行./make_sd_upgrade_sigmastar.sh命令,在交互命令中根据实际需要升级的模块选择要打包的模块,如下图:

    pic

    打包完成后将在project/image/output/images/目录下生成SigmastarUpgradeSD.binupgrade_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指定到编译生成的成果物目录

    pic

  • 主板上电后按住回车键进入uboot,使用setenv命令配置好网络参数,输入estar进行升级

    pic

  • 若要单独升级某一部分可以在estar命令后添加参数,参考auto_update.txt文档中的写法,如estar scripts/[[kernel