版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

定制固件与通用固件的差别主要在于配置文件及扩展模块,也可以支持其他定制化服务,整体流程与通用固件相似,只是中间加入了一些定制改动,以派能LEMS项目固件为例进行说明。下列操作均假设仓库拉取下来后存放的位置为common


在制作通用固件前,应当位于设置编译目录,更改下列的目录为正确的目录

代码块
export PROJ_HOME=path/to/your/common_MacroFsu

...


在制作通用固件的步骤中编译完第三方库后按照下列指导进行作业:在制作通用固件的步骤中编译完第三方库后,按照下列指导进行作业:

  •   通用固件的运行等由GatewayServer控,定制固件让扩展模块控通用固件的运行灯由GatewayServer控,定制固件让扩展模块控

代码块
cd common$PROJ_MacroFsuHOME/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
代码块
languagebash
./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仓库的守护进程代码拷贝到~/common_MacroFsu/src/app/MSJDaemon,编译守护进程

...

  • 把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