uboot下netconsole的原理及用法
近期发现uboot下一个非常有意思也非常有用的功能:netconsole,uboot下的netconsole相似于kernel下的telnet等网络终端功能,将网络作为输入输出的终端,这样就便于我们在PC端通过网络登录设备uboot中执行命令(更准确的说是通过网络向uboot发送命令和接收uboot的反馈信息。netconsole没有登录检查)。
kernel下也有netconsole机制,只是由于内核下的console仅仅有write功能(由于内核启动是没有交互的,仅仅有输出信息),因此kernel下netconsole机制事实上就是向内核注冊提供网络发送数据功能的console_device。详细实现代码在drivers/net/netconsole.c中。
关于内核console的实现能够查看我之前一篇解析内核下console机制的文章。链接例如以下:
http://blog.csdn.net/skyflying2012/article/details/41078349
uboot下的netconsole实现相似于内核,也是向uboot下的console子系统注冊新的设备。关于uboot下的console系统能够查我之前分析uboot启动流程的一篇文章,在最后分析了uboot下console机制,链接例如以下:
http://blog.csdn.net/skyflying2012/article/details/25804209
uboot下netconsole的实如今drivers/net/netconsole.c中,大体原理是在drv_nc_init中向uboot下注冊stdio_dev设备。事实上就是将其增加到uboot中stdio_dev链表中。
stdio_dev中实现了读写函数。函数中则实现了向网络中发送数据以及从网络中接收数据。依据之前分析uboot下console实现原理的文章,uboot下默认的console是stdio_dev链表的第一个设备。stdio_init中调用drv_nc_init之前会调用drv_system_init和serial_stdio_init注冊了串口的一些stdio设备。因此netconsole不是uboot的默认console。我们能够通过set命令进行设置。
netconsole的用法例如以下:
1 在uboot的配置头文件里增加netconsole支持。#define CONFIG_NETCONSOLE,重编uboot
2 启动uboot后首先设备netconsole的服务器ip,set ncip serverip。然后改动uboot下的默认输入输出console。set stdin nc;set stdout nc。uboot进入netonsole模式,此时串口控制台就没有输出了。
3 在PC端命令行下使用nc命令发送命令和接收uboot输出(uboot下netconsole的默认接收和发送port都是6666)
(1)对于windows电脑。执行start /b nc -lup 6666。nc -u 设备ip 6666
(2)对于linux电脑,执行nc -lup 6666 &;nc -u 设备ip 6666
之后我们就能够在PC端执行uboot命令了。
uboot下的netconsole能够用来远程执行命令。我们也能够将其与uboot提供的tftpserver功能结合,由PC端程序控制。实现uboot的一个在线升级功能。
uboot下netconsole的原理及用法的更多相关文章
- linux下crontab的原理和用法
linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, ...
- uboot下的网络终端/控制台
许多linux设备可能没有外置串口,这是就需要一个网络终端来在uboot下操作设备,如升级镜像等. uboot下的网络终端为netconsole,代码drivers/net/netconsole.c. ...
- Nmap扫描原理与用法
Nmap扫描原理与用法 1 Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Audit ...
- JSON Web Token(JWT)原理和用法介绍
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍一下JWT的原理和用法. 官网地址:https://jwt.io/ 一.跨域身份验证 Internet服务无法与 ...
- Java并发-volatile的原理及用法
Java并发-volatile的原理及用法 volatile属性:可见性.保证有序性.不保证原子性.一.volatile可见性 在Java的内存中所有的变量都存在主内存中,每个线程有单独CPU缓存内存 ...
- Web安全学习笔记之Nmap扫描原理与用法
1 Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字N ...
- 初涉IPC,了解AIDL的工作原理及用法
初涉IPC,了解AIDL的工作原理及用法 今天来讲讲AIDL.这个神奇的AIDL,也是近期在学习的,看了某课大神的解说写下的blog,希望结合自己的看法给各位同价通俗易懂的解说 官方文档:http:/ ...
- Python实现的选择排序算法原理与用法实例分析
Python实现的选择排序算法原理与用法实例分析 这篇文章主要介绍了Python实现的选择排序算法,简单描述了选择排序的原理,并结合实例形式分析了Python实现与应用选择排序的具体操作技巧,需要的朋 ...
- Python函数装饰器原理与用法详解《摘》
本文实例讲述了Python函数装饰器原理与用法.分享给大家供大家参考,具体如下: 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值 ...
随机推荐
- PAT1022
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 输出格式: 输出A+B的D ...
- JDBC 学习笔记(十二)—— DataSource
在 JDBC 的实现过程中,最消耗资源的从来不是执行 SQL 之类的过程,而是获取-释放 数据库连接 Connection 的过程. 之前通过 DriverManager 获得的数据库连接对象,每一个 ...
- Vue2.0 - 自定义指令 vue-directive
Vue.directive('指令',function(el,binding,vnode){ el.style='color:'+binding.value;}); el : 指令所绑定的元素,可以用 ...
- 解决报错DEFAULT_INCOMPATIBLE_IMPROVEMENTS
freemarker整合springMVC报错如下:警告: Exception encountered during context initialization - cancelling refre ...
- 旅行商(sale)
旅行商(sale) 题目描述 camp国有n座城市,由1,2,-,n编号.城市由n–1条双向道路相连.任意两个城市之间存在唯一的道路连通.有m个旅行商,第i个旅行商会从城市ai旅行到城市bi,贩卖ci ...
- Adreno Profiler分析任意安卓游戏特效+抓取资源
听说可以抓去任意游戏特效..保存下,有空研究 AdrenoProfiler 下载地址 Adreno Profiler分析任意安卓游戏特效+抓取资源 教程
- 【HDOJ5538】House Building(计算几何)
题意:给定一个n*m的方阵,第i行第j列的高度为a[i][j],问除了下底面之外其余五面的总表面积 n<=50,0<=a[i][j]<=1000 思路:队友写的,抱大腿 考虑当前方格 ...
- form快速转json serialize
原文发布时间为:2011-03-28 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...
- EOJ Monthly 2018.1 F 最小OR路径
题目链接 Description 给定一个有 \(n\) 个点和 \(m\) 条边的无向图,其中每一条边 \(e_i\) 都有一个权值记为 \(w_i\) . 对于给出的两个点 \(a\) 和 \(b ...
- [Json] 1 - 数据格式(转)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易 ...