使用kermit通过串口升级uboot
在开发板的启动选项中看到如下两行:
7: Load Boot Loader code then write to Flash via Serial.
9: Load Boot Loader code then write to Flash via TFTP.
可以通过串口升级uboot。之前都是通过TFTP升级的,现在既然可以通过串口升级,就试着升一下吧,不然心里总觉得少了点什么。
在板子启动的时候,输入“7”来选择通过串口升级uboot,然后看到下面的输出:
## Ready for binary (kermit) download to 0x80100000 at 57600 bps...
那么问题来了,kermit是什么?
通过搜索资料知道,kermit是一种简单的文件传输协议,可用于PC之间交换文件,以及从大型计算机下载文件到微机。该协议是由哥伦比亚大学的kermit项目组成员开发和维护的,是一个半双工的通信协议。有关kermit的详细资料请查看其官网:http://www.columbia.edu/kermit/ck80.html。
ckermit串口工具
在Linux环境下使用较多的两款串口软件分别是minicom和ckermit,其中minicom用得最多,不少Linux发行版已经自带。但不少人反映minicom有时会有问题,u-boot开发者也都推荐使用ckermit,下面我们就来认识一下ckermit串口工具。
c-kermit是基于kermit文件传输协议的串口工具,其配置和使用较为简单,如下所示:
【功能】
1、支持kermit文件传输协议
2、自定义了一种脚本语言,可用于自动化工作
3、无论是网络通信还是串口通信,其操作是一致的,并支持多种硬件、软件平台
4、有安全认证、加密功能
5、内建FTP、HTTP客户端功能以及SSH接口
6、支持字符集转换
【安装】
$ sudo apt-get install ckermit
【配置】
c-kermit启动时,会从当前用户目录下查找.kermrc配置文件,因此我们先在$HOME目录下创建一个.kermrc文件,然后编辑文件内容如下:
set line /dev/ttyUSB0 # 根据实际情况填写
set speed 57600 # 根据实际情况填写
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000 # 这里可以改大一点,方便下载内核
set window 5
【使用】
kermit有两种工作模式:命令模式和连接模式,默认情况为命令模式。所谓连接模式,即可以从开发板中读取数据。
$ sudo kermit
这里使用root权限,直接进入命令模式。在该模式下输入"connect"或"c"则进入连接模式。
$ sudo kermit -c
使用这种方式启动ckermit,直接进入连接模式。从连接模式退回到命令模式先输入"[Ctrl]\",接着再输入"c"即可。
在命令模式下可以输入shell命令来进行相应的操作,如cd、ls、pwd等。
传输文件可以使用命令:send filename
退出ckermit可以使用命令:exit
保存log命令:log session
该命令则会在当前目录下生成一个session.log文件,该文件保存了本次会话的串口信息。
【举例】
步骤1:
$ sudo kermit -c
与开发板的串口建立连接。
步骤2:
上电,板子启动,输入"7",进入通过串口升级uboot等待状态。
步骤3:
输入"[Ctrl]\",在输入"c",进行ckermit命令模式。
步骤4:
输入发送文件命令:send uboot.bin
开始传送文件……
步骤5:
文件传送完毕,此时仍处于命令模式,输入"c",再次进入连接模式,通过串口与开发板通信。
至此,举例完毕!
使用kermit通过串口升级uboot的更多相关文章
- 用kermit通过串口往nandflash任意地址里烧写任何文件!
1.安装kermit #apt-get install ckermit 2.使用kermit之前,在用户宿主目录下(/home/用户名/)创建一个名为.kermrc的配置文件,内容如下 : set l ...
- Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、roofts和userdata按照分区表烧写镜像
若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121706033红胖子(红模仿)的博文大全:开发技术集合( ...
- 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
版本:v1.2 Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...
- 九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像
Note: 我的S5PV210板子的磁盘是emmc版本,不是nandflash版本. 1. SD卡内烧录uboot镜像,然后作为启动盘来启动emmc中的内核镜像和根文件系统. 只要破坏emmc内的ub ...
- (三)主控板生级uboot与内核
一.升级uboot 把我的电脑增加一个192.168.1.3的ip,方便升级boot. 1.连接串口,连接网口到GE1; 2.登陆电脑后到D:\MTG3000MAIN\first目录打开tftp32 ...
- 下载uboot的调试版本到开发板的sdram中运行
开发环境:开发板:FriendlyARM Tiny6410 主机:CentOS release 6.4 (Final) 开发板与主机通过串口线连接 调试用的uboot源码为开发板光盘提供的u-boot ...
- U-BOOT 移植到友善之臂mini2440
U-BOOT 移植到友善之臂mini2440 开发环境:ubuntu 10.10 编译器:友善之臂mini2440光盘自带arm-linux-gcc 4.4.3 一. 在denx官网下载源码,我所用版 ...
- linux下kermit工具的使用
1.环境: ubuntu16.04 2.背景: 想更换下位机内核 3.使用kermit进行串口传输 举例:传输文件到下位机 2.1首先进入下位机的uboot 2.2 使用uboot自带的命令从串口接收 ...
- DM8127 更改调试串口为UART2
1.uboot修改 1)修改宏定义 /*include/config/ti8148_evm.h*/ #define CONFIG_SYS_NS16550_COM2 0x48024000 #define ...
随机推荐
- SPI通信的基础知识
1 SPI物理层 SPI通信设备之间常用物理连接方式如下图 SPI通讯使用3条总线及片选线,3条总线分别为SCK.MOSI.MISO,片选线为CS. CS:从设备选择信号线,常称为片选信号线,也称 ...
- [C#]将数据写入已存在的excel文件
测试如下(xls/xlsx): //将数据写入已存在Excel public static void writeExcel(string result, string filepath) { //1. ...
- Unity---在Hierarchy视图中将选中的对象的层级目录复制到剪切板
using UnityEditor; using UnityEngine; public class ObjPathCopyTool : ScriptableObject { [MenuItem(&q ...
- (8)socketserver并发
(1)client客户端: import socket sk = socket.socket() sk.connect( ("127.0.0.1",9000)) while Tru ...
- selenium 模拟拖动滚动条下拉
senium做自动化测试的过程中,有的页面需要下拉滚动条才能全部加载完成,否则加载不出来就定位不到想要的元素. 参考链接:http://www.cnblogs.com/landhu/p/5761794 ...
- 铁大Facebook轻量化界面NABCD
界面轻量化: N:满足了用户更快速.更直接.更方便寻求自己所要信息的需求,不被复杂界面以及各种广告所困扰. A:我们将会用Bootstrap工具包开发前端界面,Bootstrap是基于jQuery框架 ...
- 杂记:防火墙、企业微信登陆、RestFrameWork
192.168.0.250重启后查看端口正常,外部ping得通,但是访问192.168.0.250进不了Nginx欢迎界面 netstat -tlunp 关闭了防火墙就行了,原来80端口都要防火墙. ...
- jquery tab切换
首先引入jquery.js <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- Django web框架-----Django templates模板
说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用 一般的变量之类的用 {{ }}(变量),功能类的比如循环.条件判断是用 {% %}(标签) ...
- 移动端遇到的问题小结--video
本篇主要是针对Android系统,所遇到的问题. 1. video的全屏处理: 这里说的全屏是指针对浏览器的全屏,而不是整个手机的全屏.要想全屏效果只需对video标签加 webkit-plays ...