rk3288buildroot 系统搞的人比较少,最初调试一脸蒙蔽,不知如何下手,搞了几天,百度谷歌无数,最终搞定。其实也没那么麻烦,只要方法得当,写此博文只做记录吧!
整个调试分为两部分,一部分是kernel部分添加,主要是打开一些配置宏。另一部分是系统层配置,我使用的是pppd,当然还有其他方式,我没有尝试了。
1,修改kenel配置:
修改 drivers/usb/serial/usb_wwan.c 文件,如下红色部分
static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
int endpoint,
int dir, void *ctx, char *buf, int len,
void (*callback) (struct urb *))
{
if(dir == USB_DIR_OUT) {
struct usb_device_descriptor *desc = &serial->dev->descriptor;
If((desc->idVendor == cpu_to_le16(0x2c7c) && desc->idProduct
== cpu_to_le16(0x0125)))
{
urb->transfer_flags |= URB_ZERO_PACKET;
}
}
return urb;
}
Setp5: Add VID add PID
drivers/usb/serial/option.c 添加红色部分
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(0x1286, 0x4e3d) },
{ USB_DEVICE(0x1286, 0x4e3c) },
{ USB_DEVICE(0x2C7C, 0x0125) },
{ USB_DEVICE(0x2C7C, 0x0121) },
{ USB_DEVICE(0x2C7C, 0x6026) },
config部分增加以下:
CONFIG_PPP=y
CONFIG_PPP_ASYNC=y
+CONFIG_PPP_BSDCOMP=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=y
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOE=y
+CONFIG_PPP_SYNC_TTY=y
2, buildroot部分增加pppd安装包方法:
--- a/configs/rockchip_rk3288_defconfig
+++ b/configs/rockchip_rk3288_defconfig
+BR2_PACKAGE_PPPD=y
+BR2_PACKAGE_PPPD_OVERWRITE_RESOLV_CONF=y
3, pppd脚本配置
[root@rk3288:/etc/ppp/peers]# ls
quectel-chat-connect quectel-chat-disconnect quectel-pppd
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]# pwd
/etc/ppp/peers
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]# cat quectel-chat-connect
# /etc/ppp/peers/quectel-chat-connect
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
TIMEOUT 30
"" AT
OK ATE0
OK ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2
# Insert the APN provided by your network operator, default apn is 3gnet
OK AT+CGDCONT=1,"IP","3gnet",,0,0
#OK AT+CGDCONT=1,"IP","cmnet",,0,0
#OK AT+CGDCONT=1,"IP","apn",,0,0
OK ATD*99#
#OK ATD981#
CONNECT
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]# cat quectel-chat-disconnect
# /etc/ppp/peers/quectel-chat-disconnect
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
"" +++
"" +++
"" +++
SAY "\nGoodbay\n"
[root@rk3288:/etc/ppp/peers]#
[root@rk3288:/etc/ppp/peers]# cat quectel-pppd
# /etc/ppp/peers/quectel-pppd
# Usage:root>pppd call quectel-pppd
#Modem path, like /dev/ttyUSB3,/dev/ttyACM0, depend on your module, default path is /dev/ttyUSB3
/dev/ttyUSB3 115200
#Insert the username and password for authentication, default user and password are test
user "test" password "test"
# The chat script, customize your APN in this file
connect 'chat -s -v -f /etc/ppp/peers/quectel-chat-connect'
# The close script
disconnect 'chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect'
# Hide password in debug messages
hide-password
# The phone is not required to authenticate
noauth
# Debug info from pppd
debug
# If you want to use the HSDPA link as your gateway
defaultroute
# pppd must not propose any IP address to the peer
noipdefault
# No ppp compression
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
# For sanity, keep a lock on the serial line
lock
modem
dump
nodetach
# Hardware flow control
nocrtscts
remotename 3gppp
ipparam 3gppp
ipcp-max-failure 30
# Ask the peer for up to 2 DNS server addresses
usepeerdns
[root@rk3288:/etc/ppp/peers]#
4,测试,我使用的移动4G卡,联通貌似也可以
[root@rk3288:/]#
[root@rk3288:/]#
[root@rk3288:/]# pppd call quectel-pppd &
[root@rk3288:/]# pppd options in effect:
debug # (from /etc/ppp/peers/quectel-pppd)
nodetach # (from /etc/ppp/peers/quectel-pppd)
dump # (from /etc/ppp/peers/quectel-pppd)
noauth # (from /etc/ppp/peers/quectel-pppd)
user test # (from /etc/ppp/peers/quectel-pppd)
password ?????? # (from /etc/ppp/peers/quectel-pppd)
remotename 3gppp # (from /etc/ppp/peers/quectel-pppd)
/dev/ttyUSB3 # (from /etc/ppp/peers/quectel-pppd)
115200 # (from /etc/ppp/peers/quectel-pppd)
lock # (from /etc/ppp/peers/quectel-pppd)
connect chat -s -v -f /etc/ppp/peers/quectel-chat-connect # (from /etc/ppp/peers/quectel-pppd)
disconnect chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect # (from /etc/ppp/peers/quectel-pppd)
nocrtscts # (from /etc/ppp/peers/quectel-pppd)
modem # (from /etc/ppp/peers/quectel-pppd)
hide-password # (from /etc/ppp/peers/quectel-pppd)
novj # (from /etc/ppp/peers/quectel-pppd)
novjccomp # (from /etc/ppp/peers/quectel-pppd)
ipcp-accept-local # (from /etc/ppp/peers/quectel-pppd)
ipcp-accept-remote # (from /etc/ppp/peers/quectel-pppd)
ipparam 3gppp # (from /etc/ppp/peers/quectel-pppd)
noipdefault # (from /etc/ppp/peers/quectel-pppd)
ipcp-max-failure 30 # (from /etc/ppp/peers/quectel-pppd)
defaultroute # (from /etc/ppp/peers/quectel-pppd)
usepeerdns # (from /etc/ppp/peers/quectel-pppd)
noccp # (from /etc/ppp/peers/quectel-pppd)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
AT^M^M
OK
-- got it
send (ATE0^M)
expect (OK)
^M
ATE0^M^M
OK
-- got it
send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC25^M
Revision: EC25EUXGAR08A02M1G^M
^M
SubEdition: V02^M
^M
+CSQ: 28,99^M
^M
+CPIN: READY^M
^M
+COPS: 0,0,"CHINA MOBILE",7^M
^M
+CGREG: 0,1^M
^M
OK
-- got it
send (AT+CGDCONT=1,"IP","3gnet",,0,0^M)
expect (OK)
^M
^M
OK
-- got it
send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT
-- got it
Script chat -s -v -f /etc/ppp/peers/quectel-chat-connect finished (pid 754), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x335b1982> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xbe9c9fea> <pcomp> <accomp>]
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xbe9c9fea> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x335b1982> <pcomp> <accomp>]
rcvd [LCP DiscReq id=0x1 magic=0xbe9c9fea]
rcvd [CHAP Challenge id=0x1 <acbf3d942eee223c638da0b6209d606c>, name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 <b9126c9efabf5da65fc14c6ff0bf7d24>, name = "test"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.222.106.114> <ms-dns1 211.138.180.2> <ms-dns2 211.138.180.3>]
sent [IPCP ConfReq id=0x2 <addr 10.222.106.114> <ms-dns1 211.138.180.2> <ms-dns2 211.138.180.3>]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfAck id=0x2 <addr 10.222.106.114> <ms-dns1 211.138.180.2> <ms-dns2 211.138.180.3>]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 10.222.106.114
remote IP address 10.64.64.64
primary DNS address 211.138.180.2
secondary DNS address 211.138.180.3
[root@rk3288:/]#
[root@rk3288:/]#
[root@rk3288:/]#
[root@rk3288:/]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=1 ttl=55 time=56.4 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=2 ttl=55 time=34.5 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=3 ttl=55 time=43.2 ms
64 bytes from 36.152.44.95 (36.152.44.95): icmp_seq=4 ttl=55 time=31.2 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 31.274/41.363/56.470/9.754 ms
[root@rk3288:/]#
[root@rk3288:/]#
[root@rk3288:/]# ifconfig
eth0 Link encap:Ethernet HWaddr C2:4C:C4:3F:1E:64
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:807 (807.0 B)
Interrupt:39
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:124 errors:0 dropped:0 overruns:0 frame:0
TX packets:124 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:8784 (8.5 KiB) TX bytes:8784 (8.5 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.222.106.114 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:41 errors:0 dropped:0 overruns:0 frame:0
TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:3405 (3.3 KiB) TX bytes:3115 (3.0 KiB)
[root@rk3288:/]#
[root@rk3288:/]#
[root@rk3288:/]#