移植web配置界面需要依赖17个三方库:cgilua-5.2.1、curl-7.70.0、libfcgi-2.4.0.orig、lighttpd-1.4.55、lua-5.3.4、luafilesystem-1.7、luamqtt-master、lua-openssl、luasec-master、luasocket-master、openssl-1.1.1g、pcre-8.44、readline-8.0、rings-master、termcap-1.3.1、wget-1.20.3、wsapi-1.7;具体每个三方库可以根据需要下载不同版本,但是针对不同版本需要做一个兼容处理。
在移植过程中需要根据平台交叉编译工具链对依赖的三方库做交叉编译工具链指定、./configure、make和make install处理,找的生产的.so.a等依赖文件。
#!/bin/bash
CC=/usr/local/ARM-toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
CXX=/usr/local/ARM-toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
LIB_PATH=/home/xuyongqing/other/xmm310_new/install/
make CC=
C
C
P
L
A
T
=
l
i
n
u
x
I
N
S
T
A
L
L
T
O
P
=
/
h
o
m
e
/
x
x
x
/
o
t
h
e
r
/
x
x
x
/
i
n
s
t
a
l
l
/
l
u
a
M
Y
C
F
L
A
G
S
=
"
−
I
CC PLAT=linux INSTALL_TOP=/home/xxx/other/xxx/install/lua MYCFLAGS="-I
CCPLAT=linuxINSTALLTOP=/home/xxx/other/xxx/install/luaMYCFLAGS="−ILIB_PATH/readline/include -I
L
I
B
P
A
T
H
/
t
e
r
m
c
a
p
/
i
n
c
l
u
d
e
−
f
P
I
C
"
M
Y
L
D
F
L
A
G
S
=
"
−
L
LIB_PATH/termcap/include -fPIC" MYLDFLAGS="-L
LIBPATH/termcap/include−fPIC"MYLDFLAGS="−LLIB_PATH/readline/lib -L
L
I
B
P
A
T
H
/
t
e
r
m
c
a
p
/
l
i
b
"
M
Y
L
I
B
S
=
−
l
t
e
r
m
c
a
p
m
a
k
e
C
C
=
LIB_PATH/termcap/lib" MYLIBS=-ltermcap make CC=
LIBPATH/termcap/lib"MYLIBS=−ltermcapmakeCC=CC PLAT=linux INSTALL_TOP=/home/xxx/other/xxx/install/lua install
交叉编译全部打包完成以后,需要将生成的三方库全部拷贝到lib文件夹下,使用LD_LIBRARY_PATH=/data/xsy/lib命令告诉lighttpd所依赖的so路径,app文件下保存了web界面相关得文件,conf下的sys.conf用于保存web界面的设置参数
其他文件lighttpd用于保存lighttpd运行依赖的一些可执行文件,log文件用于保存一些调试信息,lua用于保存相关的依赖,run用户保存进程执行过程中生成的一些中间文件;
rootfs\rootfs\data\xxx\lighttpd\conf\lighttpd.conf是一个比较关键的配置文件:
server.document-root = “/data/xxx/apps/console/www”
server.pid-file = “/data/xxx/run/lighttpd.pid”
server.errorlog = “/data/xxx/lighttpd/log/error.log”
server.upload-dirs = ("/data/xxx/lighttpd/tmp")
需要指定依赖路径
fastcgi.server = (
“/” =>
( “localhost” =>
( “socket” => “/data/xxx/lighttpd/tmp/lua-fastcgi.socket”,
#“bin-path” => “/data/xxx/lua/bin/wsapi.fcgi”,
“bin-path” => “/data/xxx/lua/bin/cgilua.fcgi”,
“max-procs” => 1,
“check-local” => “disable”,
“docroot” => “/data/xxx/apps/console/api”
)
)
)
指定socket、bin-path和docroot路径
移植调试中遇到的问题:多因为不同lua版本导致系统不兼容引起lighttpd启动失败,需要根据具体问题做相应的源码修改处理;遇到某些接口无法调用时,可以通过register ringer()方式查看出现问题的原因做进一步调试;
在进行app界面问题调试时:遇到问题可以打开调用pc浏览器页面打印信息做进一步分析调试。
合入到固件需要执行的一些操作:
1、需要将xxx文件放到设备的data文件夹下
2、启动需要执行的脚本命令
chmod 777 wget curl netcfg
chmod 777 /data/xxx/lighttpd/sbin/*
chmod 777 /data/xxx/lua/bin/*
LD_LIBRARY_PATH=/data/xxx/lib
/data/xxx/lighttpd/sbin/lighttpd -f /data/xxx/lighttpd/conf/lighttpd.conf -m /data/xxx/lighttpd/lib
3、配置文件:/data/xsy/conf/sys.conf