近期发现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的原理及用法的更多相关文章

  1. linux下crontab的原理和用法

    linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, ...

  2. uboot下的网络终端/控制台

    许多linux设备可能没有外置串口,这是就需要一个网络终端来在uboot下操作设备,如升级镜像等. uboot下的网络终端为netconsole,代码drivers/net/netconsole.c. ...

  3. Nmap扫描原理与用法

    Nmap扫描原理与用法 1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Audit ...

  4. JSON Web Token(JWT)原理和用法介绍

    JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍一下JWT的原理和用法. 官网地址:https://jwt.io/ 一.跨域身份验证 Internet服务无法与 ...

  5. Java并发-volatile的原理及用法

    Java并发-volatile的原理及用法 volatile属性:可见性.保证有序性.不保证原子性.一.volatile可见性 在Java的内存中所有的变量都存在主内存中,每个线程有单独CPU缓存内存 ...

  6. Web安全学习笔记之Nmap扫描原理与用法

    1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具.软件名字N ...

  7. 初涉IPC,了解AIDL的工作原理及用法

    初涉IPC,了解AIDL的工作原理及用法 今天来讲讲AIDL.这个神奇的AIDL,也是近期在学习的,看了某课大神的解说写下的blog,希望结合自己的看法给各位同价通俗易懂的解说 官方文档:http:/ ...

  8. Python实现的选择排序算法原理与用法实例分析

    Python实现的选择排序算法原理与用法实例分析 这篇文章主要介绍了Python实现的选择排序算法,简单描述了选择排序的原理,并结合实例形式分析了Python实现与应用选择排序的具体操作技巧,需要的朋 ...

  9. Python函数装饰器原理与用法详解《摘》

    本文实例讲述了Python函数装饰器原理与用法.分享给大家供大家参考,具体如下: 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值 ...

随机推荐

  1. vivo和OPPO手机刷机

    vivo和OPPO手机是蓝绿两厂,定位年轻时尚女士,比较注重拍照和听音乐,其他无视. 系统很少更新,Root和刷机也比较困难,建议是直接卡刷. 小米手机耍猴(猴子精,代指懂点手机的人) 蓝绿两厂是耍猪 ...

  2. BZOJ 3437:小P的牧场(DP+斜率优化)

    小P的牧场[题目描述]背景:小P 是个特么喜欢玩MC 的孩纸...小P 在MC 里有n 个牧场,自西向东呈一字形排列(自西向东用1…n 编号),于是他就烦恼了:为了控制这n 个牧场,他需要在某些牧场上 ...

  3. 【bzoj1222】[HNOI2001]产品加工 背包dp

    题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工 ...

  4. [SDOI2011][bzoj2245] 工作分配 [费用流]

    题面 传送门 思路 数据范围n,m<=250 分配任务问题 这是典型的"看到数据范围就知道算法"类型 而且我们发现我们要保证一定产出的情况下最小化花费 这句话等价于保证一定流 ...

  5. cf 843 D Dynamic Shortest Path [最短路+bfs]

    题面: 传送门 思路: 真·动态最短路 但是因为每次只加1 所以可以每一次修改操作的时候使用距离分层的bfs,在O(n)的时间内解决修改 这里要用到一个小技巧: 把每条边(u,v)的边权表示为dis[ ...

  6. wooyun

    转自:http://zone.wooyun.org/content/19128 tencent.com baidu.com sina.com.cn sohu.com discuz.net rising ...

  7. java--Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改

    Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改 一.每次输入都自动提示 点击Eclipse,使其成为第一响应者,preferences->Java->Editor ...

  8. 沼泽鳄鱼(bzoj 1898)

    Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几 ...

  9. ASP.NET的最新安全漏洞Important: ASP.NET Security Vulnerability

    原文发布时间为:2010-09-20 -- 来源于本人的百度文章 [由搬家工具导入] 原文:http://weblogs.asp.net/scottgu/archive/2010/09/18/impo ...

  10. 数据库一直显示"正在恢复"

    restore database [DataBase] with recovery ALTER DATABASE DataBase SET OFFLINE WITH ROLLBACK IMMEDIAT ...