移远EC20在树莓派下的移植以及4G网络TCP阿里云链接

移远EC20在树莓派下的移植

一.本地安装编译树莓派内核

1,下载源代码,这可能需要一些时间:

git clone --depth=1https://github.com/raspberrypi/linux

2.添加丢失的依赖

sudo apt-get install bc

3.安装字符界面运行库

sudoaptitude install libncurses5-dev

4.将下载好的内核放入树莓派中

5.cd linux内核

6.把它加到Linux源码的drivers/usb/serial/option.c文件里

#define EC20_VID 0x2c7c

#define EC20_PID 0x0125

7.在option_ids 列表中增加

{ USB_DEVICE(EC20_VID, EC20_PID)},

8.make menuconfig 配置:

USB相关:

[*] Device Drivers →

[*] USB Support →

[*] USB Serial Converter support →

[*] USB driver for GSM and CDMA modems

保存退出

9.树莓派2/3 默认编译配置

cdlinux内核目录

KERNEL=kernel7

make bcm2709_defconfig

10.编译和安装内核,模块和设备树二进制数据块,(要等2,3小时):

make -j4 zImage modules dtbs

sudo make modules_install

sudo cp arch/arm/boot/dts/*.dtb /boot/

sudo cp arch/arm/boot/dts/overlays/*.dtb*/boot/overlays/

sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/

sudo scripts/mkknlimg arch/arm/boot/zImage /boot/$KERNEL.img

11.仔细检查完每一步没问题后,reboot

12.可以看到ec20已经驱动成功,这三个就是我们所需要的。13.用AT指令测试


cat /dev/ttyUSB2 &


二.拨号上网测试(用官方的脚本)

安装ppp

sudo  apt-get  install  ppp

有2种方法启动ppp拨号

方式1: 拷贝quectel-chat-connect quectel-chat-disconnect quectel-ppp到/etc/ppp/peers目录下。

并在quectel-ppp里修改你的串口设备名,pppd拨号使用的username,password。

在quectel-chat-connect里修改你的APN。APN/username/password是从你的网络提供商那里获取的。

然后使用下面的命令启动ppp拨号, 命令最后的&可以让pppd后台运行

pppd call quectel-ppp &

方式2:使用quectel-pppd.sh拨号,命令形式如下:

./quectel-pppd.sh串口设备名(比如/dev/ttyUSB3) APN username password

ip-up:pppd在获取ip和dns之后,会自动调用这个脚本文件来设置系统的DNS

嵌入式系统一般需要拷贝这个文件到/etc/ppp目录下。

请确保该文件在你的系统里有可执行权限。

quectel-ppp-kill用来挂断拨号的,pppd必须被正常的挂断,否则可能会导致你下次ppp拨号失败。

使用下面方式来调用这个脚本

./quectel-ppp-kill

得到一个动态ip


ping 一下谷歌


三,TCP链接阿里云

1.树莓派作为client端口

编写client.py代码如下:

import socket

import time

import sys

SERVER_IP = "120.25.215.94"//阿里云ip

SERVER_PORT =8080  //树莓派ip

print("Starting socket: TCP...")

server_addr = (SERVER_IP, SERVER_PORT)

socket_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

while True:

try:

print("Connecting to server @ %s:%d..." %(SERVER_IP, SERVER_PORT))

socket_tcp.connect(server_addr)

break

except Exception:

print("Can't connect to server, try it latter!")

time.sleep(1)

continue

print("Receiving package...")

while True:

try:

data = socket_tcp.recv(512)

if len(data)>0:

print("Received: %s" %data)

socket_tcp.send("Hello TCP!")

time.sleep(1)

continue

except Exception:

socket_tcp.close()

socket_tcp = None

sys.exit(1)

2.阿里云的sever端先不写代码,用网络助手测试下


阿里云和树莓派成功通过4G网络TCP链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值