linux 4G模块(EC20 R2.0)调试记录

最近在 RK3399 和 TX2 的板子上移植4G模块(EC20 R2.0)模块, 由于kernel本身已经支持USB Serial Driver,再交叉编译的PPP后,很顺利的就可以上网了。想试试quectel-CM软件上网,就在内核中添加了GobiNet 驱动,运行quectel-CM软件时,出现了如下问题。

1. default.script 目录问题

日志显示 udhcpc 使用的脚本在 /usr/share/udhcpc/default.script 目录,
quectel-CM 调用 busybox udhcpc 使用的脚本在 /etc/udhcpc/default.script 中,
修改 quectel-CM 源码可以指定脚本的的路径和名称。

busybox udhcpc -f -n -q -t 5 -i eth0 -s /usr/share/udhcpc/default.script 
 -s,--script=file        Run file at DHCP events

2. default.script 来源

(1) 可以使用 quectel-CM 源码目录下的脚本, 但是这个脚本的回车是 \r\n,
我使用的 Ubuntu 18.04.4 LTS, 运行这种脚本会报错。但是通过 quectel-CM 
调用到 default.script 脚本,SHH终端没有报错提示。
只显示到成功获取了ip,没有后续设置ip和dns的打印了,这个问题折磨我了3-4天。


udhcpc: started, v1.27.2
udhcpc: sending discover
udhcpc: sending select for 10.113.53.8
udhcpc: lease of 10.113.53.8 obtained, lease time 7200


(2)  [BUSYBOX]/examples/udhcp/simple.script, 该文件可以正常使用。

3. 执行 default.script 出现如下报错
arithmetic expression: expecting primary: "metric++"

发现 Ubuntu 中/bin/sh链接默认指向的是dash shell,而服务器上指向的是bash shell。
dash是一个小巧的shell,他的功能自然也就没有bash强大,上述问题就是有与dash shell不支持++运算和let命令造成的。

解决:sudo ln -sf /bin/bash /bin/sh

 

参考文章:

1. 《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.6.pdf》

2.  Busybox udhcpc:自动识别ip配置以及流程解析

3.  BusyBox 應用 – udhcpc

4.  移植EC20F 4G模块驱动基于Jetson-xavier

你可能感兴趣的:(linux,linux,内核)