瑞芯微系列即AGR系列,编译器为aarch64-rockchip-linux-gnu-g++。
通用固件
编译
参考仓库说明,按步骤编译。
- 内核
- ./make-rockchip.sh
- 第三方库
- ./make.sh 选择38:make all rockchip opensource
- 程序
- ./make.sh 选择19:rockchip release
- 扩展模块
- 根据项目实际需要编译模块
制作固件
需要使用root账号进行操作,进入制作固件目录,执行脚本,即可得到固件:update.img
cd generate/rockchip/filesystem ./mkfirmware.sh general
定制固件
定制固件与通用固件的差别主要在于配置文件及扩展模块,也可以支持其他定制化服务,整体流程与通用固件相似,只是中间加入了一些定制改动,以派能LEMS项目固件为例进行说明。
在制作通用固件前,应当位于设置编译目录,更改下列的目录为正确的目录
export PROJ_HOME=path/to/your/common_MacroFsu
在制作通用固件的步骤中编译完第三方库后,按照下列指导进行作业:
- 通用固件的运行灯由GatewayServer控,定制固件让扩展模块控
cd $PROJ_HOME/src/app sed -i 's/RELCFLAGS +=/RELCFLAGS += -DDISABLE_CONTROL_LED/' src/Business/Makefile touch src/Business/*
- 定制固件更改了守护进程,更改后的守护进程代码在ems仓库,将ems仓库的守护进程代码拷贝到$PROJ_HOME/src/app/MSJDaemon
- 编译程序,选择19:rockchip release
./make.sh
- 定制固件额外依赖了libtms.so,需提前将放到这里src/GatewayServer/,并编译GatewayServer
cd src/GatewayServer/ aarch64-rockchip-linux-gnu-g++ -rdynamic -fPIC -DDISABLE_CONTROL_LED -o \ ../../bin/GatewayServer release-aarch64-rockchip-linux-gnu-/AppErrorHandler.o \ release-aarch64-rockchip-linux-gnu-/GatewayServerApp.o \ release-aarch64-rockchip-linux-gnu-/GatewayServer.o \ release-aarch64-rockchip-linux-gnu-/JServerAppAgent.o \ release-aarch64-rockchip-linux-gnu-/main.o \ -lPoco -lCommon -lNetComm -lssl -lcrypto -lMQ -lzmq -lsodium \ -lExtSoApi -lNetwork -lJSCmd -lUpgradeModule -lBusiness -lWebSocket \ -lPlatformAccess -lAlarm -lDataStatistic -lDataSync -lSdkAdaptor \ -lMsjSdk -lExtModuleMng -lJson -lSysIpc -lProto -lmedia -llive555 \ -lavutil -lavcodec -lavformat -lpaho-mqtt3as -lpaho-mqtt3cs -lncurses \ -L../lib -lLua -lLuaSrc -levent -levent_pthreads -lhiredis -lExpression \ -lpthread -latomic -lrt -ldl -Wl,-rpath=./lib -l61850 -liec61850 \ -L../lib -llib60870 -L../lib -lmodbus -L. -ltms
- 把ems仓库的AppData拷贝到filesystem,再拷贝定制文件的操作
cd $PROJ_HOME/generate/rockchip/filesystem cp -rf $PROJ_HOME/src/app/src/MsjSdk/libsdk_bsp.so app/lib/ cp -rf $PROJ_HOME/src/app/src/GatewayServer/../../bin/GatewayServer app/ cp -rf $PROJ_HOME/src/app/src/GatewayServer/libtms.so app/lib mkdir -p AppData/extModule/ext_ems cp -rf $PROJ_HOME/src/app/src/ExtApp/ems/bin/mbms1000.bin app/mbms1000.bin cp -rf $PROJ_HOME/src/app/src/ExtApp/ems/ext_ems.so.1 AppData/extModule/ext_ems/ext_ems.so.1 ./mkfirmware.sh general
添加评论