硬件环境:友善之臂(FriendlyARM)Smart4418 SDK 1606
固件环境:s5p4418-eflasher-friendlycore-xenial-4.4-armhf-20180906.img
交叉编译环境:ubuntu-16.04.4-server-amd64
注意:NetworkManager会导致ppp模式拨号异常,请使用network管理网络
vi rmnm.sh
1 | #!/bin/bash |
chmod 755 rmnm.sh
sudo ./rmnm.sh
一、交叉编译环境
- 安装系统
- apt-get update
- apt安装
vim-gtk
git
make
bc
lsb-core
libssl-dev
libncurses*
minicom
1.1、工具链下载(操作目录:普通用户~)
1 | git clone https://github.com/friendlyarm/prebuilts.git |
1.2、工具链配置(export最好配置到开机启动里)
1 | sudo mkdir -p /opt/FriendlyARM/toolchain |
1.3、内核下载
1 | git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1 |
1.4、内核配置(操作目录:普通用户~/linux,即内核根目录)
1 | touch .scmversion |
1 | Device Drivers ---> |
1.5、增加具体设备驱动、USB 串口驱动过滤NDIS 接口
drivers/usb/serial/option.c
在源码中找到option_ids 数组, 在数组中添加Longsung 产品的VID(0x1C9E) 和
PID(0x9B3C)。
1 | #define LONGSUNG_VENDOR_ID 0x1c9e |
在option.c 中的opiton_ids 中添加blacklist,驱动在加载时会自动跳过blacklist 指定的interface;设置interface 4 不加载option驱动;
1 | static const struct option_blacklist_info longssung_u9300_blacklist = { |
添加blacklist 到option_ids 数组中。
1 | { USB_DEVICE(LONGSUNG_VENDOR_ID, LONGSUNG_U9300_PRODUCT_ID), |
1.6、内核编译(操作目录:普通用户~/linux,即内核根目录)
1 | make ARCH=arm |
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb),用于替换掉SD卡boot分区下对应的文件。
s5p4418-nanopi2-rev01.dtb
s5p4418-nanopi2-rev02.dtb
s5p4418-nanopi2-rev03.dtb
s5p4418-nanopi2-rev04.dtb
s5p4418-nanopi2-rev07.dtb
s5p4418-nanopi2-rev103.dtb
zImage
1.7、内核替换
挂载boot分区(mount /dev/mmcblk0p1 /boot/)
使用sftp传输替换文件
更新完成后,输入 reboot 命令重启即可,注意不要直接断电或按Reset键,否则可能会损坏文件。
二、板上环境
2.1、加载USB 串口驱动
1 | sudo modprobe option |
2.2、使能设备(1c9e 9b3c分别为VID、PID)
1 | sudo echo 1c9e 9b3c > /sys/bus/usb-serial/drivers/option1/new_id |
这个操作之后应该就能够看到 /dev 下多了 ttyUSB0、ttyUSB1、ttyUSB2 几个设备节点了。
使用dmesg 命令查看系统log,USB 串口驱动已经被加载。
2.3、交互AT配置
1 | minicom –s |
注意:串口中AT(ttyUSB2),Modem(ttyUSB1)可以发AT 命令,其他不能发AT指令
2.4、AT命令
打开回显(ATE)
查询版本信息(AT+LCTSW)
查询信号(AT+CSQ)
注册状态(AT+CREG?)
网络运营商信息(AT+COPS?)
2.5、拨号上网配置
vim /etc/ppp/chat/gprs-connect-chat
1 | TIMEOUT 15 |
其中CMNET为中国移动的APN,按需修改
vim /etc/ppp/options
找到auth 字样的行然后将其改为#auth,这样在拨号过程中就不会提示需要身份验证
vim /etc/ppp/peer/gprs
必须指定Modem口是ttyUSB1
1 | # Usage: root>pppd call gprs |
2.6、拨号上网
1 | pppd call gprs |
通过ifconfig、ping、apt-get update来检查网络