99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

詳解uboot之netconsole

發(fā)布時(shí)間:2016-07-08 15:52  回復(fù):0  查看:3343   最后回復(fù):2016-07-08 15:52  
最近發(fā)現(xiàn)uboot下一個(gè)很有意思也很實(shí)用的功能:netconsole,uboot下的netconsole類似于kernel下的telnet等網(wǎng)絡(luò)終端功能,將網(wǎng)絡(luò)作為輸入輸出的終端,這樣就便于我們?cè)赑C端通過(guò)網(wǎng)絡(luò)登錄設(shè)備uboot中運(yùn)行命令(更準(zhǔn)確的說(shuō)是通過(guò)網(wǎng)絡(luò)向uboot發(fā)送命令和接收uboot的反饋信息,netconsole沒(méi)有登錄檢查)。 這里給大家寫一個(gè) uboot學(xué)習(xí)教程,幫助大家理解。
kernel下也有netconsole機(jī)制,不過(guò)由于內(nèi)核下的console只有write功能(因?yàn)閮?nèi)核啟動(dòng)是沒(méi)有交互的,只有輸出信息),因此kernel下netconsole機(jī)制其實(shí)就是向內(nèi)核注冊(cè)提供網(wǎng)絡(luò)發(fā)送數(shù)據(jù)功能的console_device,具體實(shí)現(xiàn)代碼在drivers/net/netconsole.c中。 
uboot下的netconsole實(shí)現(xiàn)類似于內(nèi)核,也是向uboot下的console子系統(tǒng)注冊(cè)新的設(shè)備。  
uboot下netconsole的實(shí)現(xiàn)在drivers/net/netconsole.c中,大體原理是在drv_nc_init中向uboot下注冊(cè)stdio_dev設(shè)備,其實(shí)就是將其加入到uboot中stdio_dev鏈表中。stdio_dev中實(shí)現(xiàn)了讀寫函數(shù),函數(shù)中則實(shí)現(xiàn)了向網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)以及從網(wǎng)絡(luò)中接收數(shù)據(jù)。根據(jù)之前分析uboot下console實(shí)現(xiàn)原理的文章,uboot下默認(rèn)的console是stdio_dev鏈表的第一個(gè)設(shè)備,stdio_init中調(diào)用drv_nc_init之前會(huì)調(diào)用drv_system_init和serial_stdio_init注冊(cè)了串口的一些stdio設(shè)備。因此netconsole不是uboot的默認(rèn)console。我們可以通過(guò)set命令進(jìn)行設(shè)置。
netconsole的使用方法如下: 
1 在uboot的配置頭文件中加入netconsole支持,#define CONFIG_NETCONSOLE,重編uboot 
2 啟動(dòng)uboot后首先設(shè)備netconsole的服務(wù)器ip,set ncip serverip。然后修改uboot下的默認(rèn)輸入輸出console,set stdin nc;set stdout nc。uboot進(jìn)入netonsole模式,此時(shí)串口控制臺(tái)就沒(méi)有輸出了。 
3 在PC端命令行下使用nc命令發(fā)送命令和接收uboot輸出(uboot下netconsole的默認(rèn)接收和發(fā)送端口都是6666) 
(1)對(duì)于windows電腦,運(yùn)行start /b nc -lup 6666;nc -u 設(shè)備ip 6666 
(2)對(duì)于linux電腦,運(yùn)行nc -lup 6666 &;nc -u 設(shè)備ip 6666 
之后我們就可以在PC端運(yùn)行uboot命令了。
uboot下的netconsole可以用來(lái)遠(yuǎn)程執(zhí)行命令,我們也可以將其與uboot提供的tftpserver功能結(jié)合,由PC端程序控制,實(shí)現(xiàn)uboot的一個(gè)在線升級(jí)功能。
原文來(lái)自:C博客/kerneler_
您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?