树莓派镜像备份/内核编译和更换/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分钟左右

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

树莓派 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.backupsudo 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_defconfigmake -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_installsudo cp arch/arm64/boot/Image /home/hbwang/pi/data1/kernel8.imgsudo 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/data1sudo 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

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

增加默认路由

sudo route add default dev ppp0

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

测试

ping www.baidu.com -I ppp0

自己写命令方式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

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

  1. Liunx树莓派(ARM)开发篇—第十四章、树莓派Linux内核编译步骤(超详细、图文结合)

    对树莓派内核源码进行配置后,下一步要进行树莓派Linux内核编译 以下步骤均在PC端虚拟机上完成 准备材料:PC端虚拟机.树莓派交叉编译工具.树莓派内核(交叉编译工具.内核下载步骤见树莓派内核源码) ...

  2. 树莓派-linux内核编译

    树莓派-linux内核编译 装虚拟机[^1] 配置共享文件夹 配置交叉编译工具 下载树莓派linux系统内核[^3] 树莓派等芯片带操作系统的启动过程 树莓派linux源码目录树 树莓派linux源码 ...

  3. 树莓派交叉编译 内核编译 - HQ

    树莓派交叉编译 & 内核编译 - HQ 文章目录 树莓派交叉编译 & 内核编译 - HQ @[toc] 注意 树莓派交叉编译 引入 交叉编译工具链的安装 交叉编译使用举例 树莓派源码分 ...

  4. 树莓派Linux内核编译、文件系统、Linux内核驱动基础框架、驱动测试步骤、总线地址

    树莓派高阶开发课程 1. ubuntu18.04版本安装          让程序猿搭建环境太搞笑了,轻松easy! ========================================= ...

  5. 树莓派02 ------ 内核编译、移植

    目录 底层知识 芯片启动过程 树莓派Linux源码目录树分析 ARM树莓派高级开发--linux内核源码.树莓派源码编译.SD卡挂载 编译移植条件 树莓派Linux源码配置 如何配置树莓派的Linux ...

  6. Linux树莓派开发——配置树莓派内核源码,内核编译,更换树莓派Linux内核

    目录 一.树莓派Linux源码配置 1.配置的三种方法 2.内核源码的下载 二.树莓派内核编译 1.树莓派的编译 ​2.生成vmlinux 三.更换树莓派内核的详细步骤 一.树莓派Linux源码配置 ...

  7. 树莓派Linu内核编译

    可做参考:树莓派Linux内核配置.编译以及烧录详细步骤_是光哥呀的博客-CSDN博客_linux内核烧录 1编译: ARCH=arm CROSS_COMPILE=arm-linux-gnueabih ...

  8. 树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核

    目录 一.树莓派Linux源码配置(适合树莓派) 总体概述 配置的三种方式 1.照搬厂家的配置(使用这种方式) 2.参考厂家的配置(感受一下) 3.完全自主配置(需要一定工作经验) 二.树莓派Linu ...

  9. 树莓派内核编译(5)

    树莓派高阶开发课程 ========================================================= 1. ubuntu18.04版本安装 让程序猿搭建环境太搞笑了, ...

最新文章

  1. 吃串串,数签签,这个 AI 神器一秒搞定
  2. Python模块学习:threading 多线程控制和处理
  3. mysql zip 安装 启动_window的zip版mysql安装启动
  4. java build.gradle 详解_java – Gradle构建失败[无法解析配置的所有依赖项’:compile’.]...
  5. CRLF line terminators导致shell脚本报错:command not found
  6. 读书笔记白帽子讲web安全
  7. spring创建复杂对象的三种方式
  8. 跨链Cosmos(4)Tendermint Core
  9. WPF之DataTemplate(转)
  10. Redis实践操作之—— keyspace notification(键空间通知)
  11. 2020哪款蓝牙耳机更值得入手?新款上市高续航游戏专属蓝牙耳机不要错过
  12. vlfeat各种版本下载链接:
  13. 使用 ListView 控件展示数据
  14. python pytz_关于python:找不到符合pytz要求的版本
  15. 零基础怎样自学编程?初学者如何学习编程?编程学习入门指南(文章较长,需要耐心看完)
  16. 谷歌浏览器 发送到剪切板_将Google搜索结果发送到您的新闻阅读器
  17. OpenGL/C++实战——C++实现太阳系行星系统
  18. Windows10系统时间同步没有效果的解决方法
  19. shienblink 振动/敲击检测传感器详解
  20. 【天池】优惠券使用预测

热门文章

  1. Web网页如何实现QQ好友,QQ空间,微博分享
  2. stm32 驱动 TFT LCD
  3. Qt开发的开源项目DBA技术介绍
  4. 以matlab为基础数学分析,matlab与数学分析.docx
  5. 【Bugzilla】我按照bugzilla的官方指导进行的安装。(一)
  6. 二次实验报告:使用Packet Tracer分析应用层协议
  7. 项目管理中,管理者如何打造团队执行力?
  8. 什么是SSH 以及常见的ssh 功能
  9. 微信小程序 button 按钮
  10. js正则验证身份证号码(最后一位x不区分大小写)