=== 固件升级总览 === 固件升级整个过程包括: * 固件构建(Build) * 固件打包(Package) * 固件发布(Rease) * 检查固件版本(Compare Version) * 下载固件包(Download) * 验证固件包(Validation) * 重启并升级(Upgrading) === 固件构建 === 固件是通过 Jenkins server构建的, [http://192.168.8.29/job/aria-paigo-images/ aria-paigo-rootfs-REBUILD]项目每次构建的时候,会获取paigo-qt项目的master分支最新提交的版本。 [http://192.168.8.29/job/aria-paigo-images/ aria-paigo-images]项目是用于初次烧机卡使用的,它依赖于aria-paigo-rootfs-REBUILD项目。 最新的固件下载URL是[http://192.168.8.29:81/aria-paigo-buildroot-REBUILD/aria-paigo-rootfs-latest.tar.xz],它的版本是构建时的时间戳。 === 固件打包 === 固件打包脚本build-firmware-package.sh会下载当前最新的固件、固件md5文件、moudles包,然后将它们打包成zip格式。如果同时需要升级STM32固件,也一同将paigo_stm32.bin文件打包进来。 #!/bin/sh rm -rf /tmp/firmware mkdir -p /tmp/firmware wget -O /tmp/firmware/rootfs.tar.xz http://192.168.8.29:81/aria-paigo-buildroot-REBUILD/aria-paigo-rootfs-latest.tar.xz wget -O /tmp/firmware/rootfs.md5 http://192.168.8.29:81/aria-paigo-buildroot-REBUILD/aria-paigo-buildroot-REBUILD-MD5SUMS-latest wget -O /tmp/firmware/kmods.tar.xz http://192.168.8.29:81/aria-psp-kernel-paigo/latest-kmods.tar.xz cd /tmp/firmware zip firmware.zip rootfs.tar.xz rootfs.md5 kmods.tar.xz mv firmware.zip ~/ === 固件发布 === === 固件版本 === 固件版本文件是 '''/jenkins_version.txt''' paigo-qt会检查 [http://paigo.g77k.com/api/v1/versions/latest_firmware?device_id=000000000000 http://paigo.g77k.com/api/v1/versions/latest_firmware?device_id=000000000000] 中返回的当前最新版本信息,如果本地版本与服务器上的固件包版本不一致,会下载最新固件包。 === 固件包格式规范 === firmware.zip包中有4个文件: * files.meta * paigo_os.zip * paigo_resources.zip * paigo_stm32.bin * paigo_knowles.bin 其中files.meta文件里记录了更新文件的md5信息。样例文件内容如下: 4b6ebca5cabd0ef383d7e15def239510,M100.3.0.22_B69946_Haipai_StoryRobot_Paigo_MCFFillIn,paigo_knowles.bin 1d0e8c8930346ce2d4040a2c04aae559,20161231.1705,paigo_os.zip 7a83d9d2d726950419839ee0c725340a,20170102.1101,paigo_resources.zip 5114dc5f5be9d3041db80e8cc47e3a33,20161230-02,paigo_stm32.bin paigo_os.zip 是更新linux系统的包,zip中的文件如下: * kmods.tar.xz * rootfs.md5 * rootfs.tar.xz * uImage