树莓派镜像备份/内核编译和更换/EC200U上网

2 篇文章 0 订阅
2 篇文章 0 订阅

树莓派镜像备份/内核编译和更换/EC200U上网

操作涉及树莓派linux内核替换,由于我的树莓板子里跑了ROS,以免环境破坏,所以先进行镜像备份。

备份本机树莓派img

工具:win32diskimager-1.0.0-install.exe

全卡备份

  1. 安装工具win32diskimager-1.0.0-install.exe
  2. 硬盘中新建后缀名为img的空文件
  3. 打开 Win32DiskImager,选择刚刚创建的空img 文件和 SD 卡盘符,
  4. 点击 read 既可,一般需要13分钟左右

image-20220922151325643

原理:将SD卡中文件打包读取到*img中
image-20220922153129897

树莓派 linux内核编译

交叉编译工具链的下载安装

地址:https://github.com/raspberrypi/tools

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2711_defconfig

安装必要软件

更新系统下载源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

sudo vim /etc/apt/sources.list

#阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse


安装必要软件
sudo apt-get install bc
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install zlib1g:i386
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
sudo apt-get install build-essential
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libssl-dev
编译前配置defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 bcm2711_defconfig

编译
make  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7  -j4 zImage modules dtbs

说明:
j4 指定多少core进行编译,根据自己电脑性能来
zImage 内核镜像。
modules 生成驱动模块。
dtbs 生成配置文件。

驱动makefile

**modules:
     $(MAKE) -C $(KERNELDIR) M=$(PWD) modules**

说明:
$:美元符号是引用变量定义值;
$(MAKE) : 指make命令;
-C: 指内核位置。
M:指定模块源码目录,M编译的会生成*.ko; 后期可以通过inmod *ko 安装

树莓派更换linux 内核

安装交叉编译链

//64bit 的
sudo apt install crossbuild-essential-arm64

下载源码(选择自己需求版本)

https://github.com/raspberrypi/linux

编译

//通过 find . -name *_defconfig,板子配套的_defconfig,这里是bcm2711_defconfig

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNEL=kernel8  bcm2711_defconfig

make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNEL=kernel8  Image modules dtbs

替换sd卡中系统

挂在sd卡分区
创建目录
mkdir /home/hbwang/pi/data1           //fat32分区 boot、img等

mkdir /home/hbwang/pi/data2           //ext4 分区 rootfs、modules等

sudo mount /dev/sdb1 /home/hbwang/pi/data1 
sudo mount /dev/sdb2 /home/hbwang/pi/data2
//zImage时需要转换img

./scripts/mkknlimg arch/arm64/boot/zImage ./kernel8.img

拷贝modules、img、dts等到sd卡
sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNEL=kernel8 INSTALL_MOD_PATH=/home/hbwang/pi/data2 modules_install

sudo cp arch/arm64/boot/Image /home/hbwang/pi/data1/kernel8.img

sudo cp arch/arm64/boot/dts/broadcom/*.dtb /home/hbwang/pi/data1
sudo cp arch/arm64/boot/dts/overlays/.*dtb* /home/hbwang/pi/data1/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /home/hbwang/pi/data1/overlays/
卸载挂载的sd卡
sudo umount  /home/hbwang/pi/data1

sudo umount  /home/hbwang/pi/data2
插入树莓派启动

通过终端查看设备是否启动成功。

树莓派使用移远4G模块EC200U上网

4G模块ping ppp0不能上网需要增加默认路由

sudo route add default dev ppp0

sudo route add default gw 10.64.64.64

4g和树莓派连接方式

使用4g 模块的usb和树莓派usb口连接,而不是使用4g模块的uart 排线连接

借助wvdial方式ppp0

安装文件工具

sudo apt-get install wvdial

查看是否有EC200U模块

lsusb
image-20220923113410695

VID 和 PID 信息添加
sudo modprobe option

//ec200u
sudo sh -c 'echo "2c7c 0901" > /sys/bus/usb-serial/drivers/option1/new_id'

//ec20
sudo sh -c 'echo "2c7c 0125" > /sys/bus/usb-serial/drivers/option1/new_id'

q \r\n

原理:树莓派是自带option驱动的,向sys/bus/usb-serial/drivers/option1/new_id这个文件添加 VID 和 PID 信息后,Linux 会在/dev 目录下创建多个名称如 ttyUSB0-6的串口设备文件

编写wvdial.conf
sudo vim /etc/wvdial.conf

[Dialer lan1]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
使用IPV4,建立连接,联通为3gnet,移动为cmnet
Init3 = AT+CGDCONT=1,"IP","3gnet"
Modem Type = Analog Modem
Baud = 115200
New PPPD = yes
Modem = /dev/ttyUSB0
ISDN = 0
# 拨号,*99#是联通的拨号号码,*98*1#是移动
Phone = *98*1#
Password = card
Username = card
Auto DNS = on
启动

sudo wvdial lan1

image-20220923114320891

增加默认路由

sudo route add default dev ppp0

AT+QCFG=“usbnet”,1 \r\n

测试

ping www.baidu.com -I ppp0

image-20220923114234186

自己写命令方式ppp0

可参考以下博文

https://blog.csdn.net/weixin_45880057/article/details/125747029,感谢博主分享。

杂记(仅供自己备忘)

    工作指示灯如下表所示:

LED2 电源指示灯 正常供电亮红色
LED1 模块状态指示灯 模块正常亮绿灯
LED3 网络指示灯 慢闪(200ms 高/1800ms 低) 找网状态
慢闪(1800ms 高/200ms 低) 待机状态
快闪(125ms 高/125ms 低) 数据传输模式
高电平 通话中

配置usb

AT+QCFG=“usbnet”,1

重启

AT+CFUN=1,1

查询配置成功

AT+QCFG=“usbnet”

AT+CGDCONT=1,"IPV4V6","3gnet"
AT+CGDCONT=1,"IP","ctnet"

发短信:

AT+CMGF=1 //设置短消息模式为文本模式。
OK
AT+CSCS=“GSM” //设置 TE 输入字符集格式为 GSM 格式。
OK
AT+CMGS=“电话号码”

This is a test from Quectel //输入短消息内容,Ctrl+Z 发送,ESC 退出发送。
+CMGS: 247

OK

打电话:

ATD10086; //拨号。

ATD 电话号码

OK

AT+CHUP //挂断通话。
OK

AT+CGPADDR显示PDP地址

AT+CGPADDR

+CGPADDR: 1,“100.30.3.158”

+CGPADDR: 2,“0.0.0.0,0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”

OK

AT+CGPAD

ERROR

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之雅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值