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的默认接收和发送端口都是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的一个在线升级功能。

时间: 2024-10-05 19:55:24

uboot下netconsole的原理及使用方法的相关文章

uboot下的网络终端/控制台

许多linux设备可能没有外置串口,这是就需要一个网络终端来在uboot下操作设备,如升级镜像等. uboot下的网络终端为netconsole,代码drivers/net/netconsole.c. netconsole的使用方法如下: 1 在uboot的配置头文件中加入netconsole支持,#define CONFIG_NETCONSOLE,重编uboot 2 启动uboot后首先设备netconsole的服务器ip,set ncip serverip.然后修改uboot下的默认输入输出

thinkPHP下的widget挂件原理与使用方法

当我们在多个视图页面中用到同一段动态的代码块时,我们就有必要用到thinkphp的widget扩展. widget就相当于在页面中调用一个专属widget的控制器,并将它关联的视图植入当前的页面中,所以,widget的视图内容要按照当前页面的情况来考虑. 先来举个例子吧 需求:写一个供页面使用的主题widget,及多个页面要从数据库中提取所有主题并以列表的模式罗列在页面中,实现以主题筛选的功能. 应用页面: <!-- 主题 --> <dt class="filter_cat&q

Windows下PHP修改Hosts文件的方法

通过PHP程序完成修改Hosts文件原理如下: 1,首先是写一个.bat文件 2,使用system(),调用.bat完成修改Hosts的目的 代码如下: //创建.bat $filename = "updata.bat"; //'@echo 127.0.0.1 baidu.com >>C:\Windows\System32\Drivers\etc\hosts 关于.bat中的内容可以参考DOS命令行 file_put_contents($filename,'@echo 12

Uboot下的Nor Flash的驱动以及使用

Uboot 下 CFI Nor Flash 的使用 韩大卫@吉林师范大学 2015.1.23 Flash : Micron Technology. 32MB. Uboot: 2_3_0 CPU平台: Cavium Inc 交叉编译器: mips64-octeon-linux-gnu-gcc (Cavium Inc. Version: 2_3_0 build 128) 4.3.3 nor flash 的使用特点是 :  读操作可以按地址读, 写之前必须进行擦除, 一旦擦除必须擦除整个扇区. 新型的

关于uboot下data abort的问题

在uboot下,经常会出现一些非常让人揪心的问题.解决这些问题的关键就是方法与方向,把握好这两点,一切问题都可以迎刃而解.同时也要自信.如下: 有时我们会遇到如下的出错信息,这时CPU会reboot, data abort MAYBE you should read doc/README.arm-unaligned-accesses pc : [<1ff60148>] lr : [<1ff6019c>] sp : 1fb0a508 ip : 00000000 fp : 000000

下拉刷新原理实现

http://blog.csdn.net/kqjob/article/details/9891065#comments 在移动应用开发中,无论是Android还是IOS应用,经常可以看到下拉列表松开后自动刷行数据,在IOS中,使用下拉刷新UITableView中的数据用的非常多,最典型的就是新浪微博的客户端,使用下拉的形式来更新最新的微博信息. 首先请点击下载源码,下载完成后里面有个Demo是可以直接运行的Xcode工程,然后就是这个开源项目的源码,如何使用可以参照Demo,这个EGOTable

简单科普下hosts文件原理与制作

简单科普下hosts文件原理与制作 hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的用户可以直接对hosts文件进行控制. 为了方便用户记忆,我们将IP变成一个个的域名来输入到浏览器进行访问.而这使得访问网站时要先将其域名解析成 IP .DNS (Domain Name Server) 的作用就是进行 IP 解析,把域名对应到 IP.在 Great FireWa

增加PDF文件对比度的粗浅原理,及方法

  上边这张照片不是异形,而是著名的鹦鹉螺.下边这张照片,是送给研究生同学的毕业纪念,向龙同学帮我激光雕刻的. 最近的照片在[http://www.douban.com/photos/album/134230762/]. 电子书扫描版跟照片差不多,一个可能的问题是看起来乌突突的,黑的不够黑,白的不够白,像是蒙了一层雾.用picasa的luck功能或者snapseed的automatic功能,都能把图片上的雾去掉.但是同样的功能用在PDF上的软件我没有找到. 但是如果弄懂了原理--让我想起 倚天屠

Linux下的系统启动原理及故障排除

Linux下的系统启动原理及故障排除 一:实验环境 1):虚拟机 2):linux系统环境 二:实验目标 1):理解Linux启动过程详解 2):理解影响启动的配置文件 3):常见的启动故障排除 4):救援模式的使用 三:实验步骤 第一块 Linux启动过程详解 1. 加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB: 如果是硬盘为第一引导. 2. 读取硬盘中 MBR 的 bootLoader (亦即是 grub,Lilo 等程序): 硬盘的0柱面.0磁