范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

调试netconsole的使用

  开发环境客户端
  开发板:FireFly-RK3399
  Linux 4.4
  IP:192.168.137.110 服务端
  VMware Workstation Pro16,ubuntu 18.04
  IP:192.168.137.100
  MAC:00:0c:29:c1:9c:ed netconsole简介
  netconsole模块可以让printk信息(输出到控制台的信息)通过网络(UDP)发送到远程主机。
  与串口控制台不同,netconsole不需要串口线和串口。另外,它可以轻易地将多台服务器的内核信息收集到一台服务器上。
  当设备上串口无法使用时,使用netconsole将日志信息保存到远程主机更方便、可行。 netconsole模块不能用于获取crash dump,也不能进行一般的控制台输入输出。
  netconsole模块不能获得网络相关的kernel panic,以及与操作系统启动到网络和netconsole模块启动之间发生的pnic相关的内核信息。  netconsole编译
  netconsole 可以独立编译为模块手动加载,也可以编译进内核自动加载,本例使用的是第一种。 编译为独立模块
  netconsole默认是没有编译进内核,需要手动编译到内核或编译成模块。
  在内核目录下执行make menuconfig 开启以下选项 Device Drivers > Network device support>Network console logging support
  将内核 重新编译后烧写 到开发板上。
  手动编译netconsole模块 make CONFIG_NETCONSOLE=m  -C /home/zhongyi/code/rk3399_linux_release_v2.5.1_20210301/kernel   M=/home/zhongyi/code/rk3399_linux_release_v2.5.1_20210301/kernel/drivers/net  modules CROSS_COMPILE=/home/zhongyi/code/rk3399_linux_release_v2.5.1_20210301/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
  之后,就会在模块目录下生成netconsole.ko的文件,这个文件就是我们所需的。 将netconsole编译进内核
  如自定义内核启用netconsole只需将以下内核选项打开即可(编译为模块). CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y
  如果将netconsole编译进内核自动加载,则需要在内核启动参数中传递进去,并且还要确保网卡驱动在netconsole驱动前加载。 netconsole加载
  将netconsole.ko通过共享目录发送到开发板,给予权限,这个需要预先知道服务端的IP地址以及MAC地址。
  日志服务器在同一内网, 直接通过ping获取服务器目的MAC: $ ping -c 1 192.168.1.103 > /dev/null $ arp -n 192.168.1.103  Address                  HWtype  HWaddress           Flags Mask            Iface  192.168.1.103            ether   08:00:46:d4:1d:82   C                     eth0 1234
  日志服务器不在同一内网, 获取网关目的MAC: $ netstat -rn | grep ^0.0.0.0  0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0 $ ping -c 1 192.168.1.1 > /dev/null $ arp -n 192.168.1.1  Address                  HWtype  HWaddress           Flags Mask            Iface  192.168.1.1              ether   00:0f:66:5b:2a:3c   C
  执行加载指令 insmod netconsole.ko netconsole=6665@192.168.137.110/eth0,514@192.168.137.100/00:0c:29:c1:9c:ed
  各个参数含义如下 netconsole=src-port]@[src-ip]/[],[tgt-port]@/[tgt-macaddr] where src-port      source for UDP packets (defaults to 6665)     #开发板上的端口,省略的话默认为6665 src-ip        source IP to use (interface address)                 # 开发板上的IP地址 dev           network interface (eth0)                             #开发板上使用的网卡设备名 tgt-port      port for logging agent (6666)                        #目的机器的端口,省略的话默认为6666 tgt-ip        IP address for logging agent                         #目的机器的IP地址 tgt-macaddr   ethernet MAC address for logging agent (broadcast)   #目的机器的MAC地址 rsyslog服务端设置开启514端口
  客户端设置好了,配置rsyslog以在服务器模式下运行 sudo vim /etc/rsyslog.conf
  取消注释udp和tcp端口绑定的行: # provides UDP syslog reception module(load="imudp") input(type="imudp" port="514")  # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
  测试端口是否能通    ~ sudo nc -vuz 192.168.137.110 514 Connection to 192.168.137.110 514 port [udp/syslog] succeeded! 创建接收模板
  创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在 GLOBAL DIRECTIVES 部分之前添加模板:$template remote-incoming-logs,"/var/log/%HOSTNAME%/%fromhost-ip%-%$YEAR%-%$MONTH%-%$DAY%.log *.* ?remote-incoming-logs & ~
  收到的日志将使用上面的模板进行解析并存储在目录/var/log/中,文件命名遵循约定: %HOSTNAME%/%fromhost-ip%-%$YEAR%-%$MONTH%-%$DAY%.log 。
  日志接收模板参数的含义可参考:https://www.dandelioncloud.cn/article/details/1517852831246839810
  完成后保存并关闭文件。然后,使用以下命令检查Rsyslog配置是否存在语法错误: rsyslogd -f /etc/rsyslog.conf -N1
  你应该看到以下输出: rsyslogd: version 8.32.0, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye. 配置启动文件
  以root身份修改 /etc/default/rsyslog 启动配置文件RSYSLOGD_OPTIONS="-m 0 -r" -r 选项以允许接受外来日志消息。 -x 禁用掉dns记录项不够齐全或其他的日志中心的日志。 -m 修改syslog的内部mark消息写入间隔时间(0为关闭)。例如-m 180,表示每隔180分钟(每天8次)在日志文件里增加一行时间戳消息。 -h 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。 重启服务
  重新启动rsyslog服务以使更改生效: sudo systemctl restart rsyslog
  确认服务是否正在侦听已配置的端口: ss -tunelp | grep 514 udp    UNCONN   0        0                 0.0.0.0:514            0.0.0.0:*      ino:178435 sk:2c <->                                                            udp    UNCONN   0        0                    [::]:514               [::]:*      ino:178436 sk:2d v6only:1 <->                                           tcp    LISTEN   0        25                0.0.0.0:514            0.0.0.0:*      ino:178439 sk:2e <->                                                            tcp    LISTEN   0        25                   [::]:514               [::]:*      ino:178440 sk:2f v6only:1 <->    配置Rsyslog防火墙
  如果你的ufw防火墙服务正在运行,请允许rsyslog防火墙端口: sudo ufw allow 514/tcp sudo ufw allow 514/udp 输出测试
  测试使用的是SysRq键在客户端输出内核信息。
  在开发板上,修改 /etc/sysctl.conf 启动SysRq。kernel.sysrq=1
  执行下列命令,使修改生效。 sysctl -p
  执行下列命令向控制台输出内核信息。 root@firefly:~/mnt/module# echo h > /proc/sysrq-trigger  [10224.626165] sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) show-blocked-tasks(w) dump-ftrace-buffer(z)
  在服务器的/var/log/192.168.137.110目录下即可看到生成的日志文件。    192.168.137.110 cat 192.168.137.110-2022-10-16.log  2022-10-16T22:35:54.777180+08:00 192.168.137.110  [10224.626165] sysrq: SysRq :  2022-10-16T22:35:54.777180+08:00 192.168.137.110 loglevel(0-9)  2022-10-16T22:35:54.777180+08:00 192.168.137.110  [10224.626165] sysrq: SysRq :  2022-10-16T22:35:54.777180+08:00 192.168.137.110 loglevel(0-9)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 reboot(b)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 crash(c)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 reboot(b)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 crash(c)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 terminate-all-tasks(e)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 terminate-all-tasks(e)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 memory-full-oom-kill(f)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 memory-full-oom-kill(f)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 kill-all-tasks(i)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 kill-all-tasks(i)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 thaw-filesystems(j)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 thaw-filesystems(j)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 sak(k)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 sak(k)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-backtrace-all-active-cpus(l)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-backtrace-all-active-cpus(l)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-memory-usage(m)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-memory-usage(m)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 nice-all-RT-tasks(n)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 nice-all-RT-tasks(n)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 poweroff(o)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 poweroff(o)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-registers(p)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-registers(p)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-all-timers(q)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-all-timers(q)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 unraw(r)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 unraw(r)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 sync(s)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 sync(s)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-task-states(t)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-task-states(t)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 unmount(u)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 unmount(u)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 force-fb(V)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 force-fb(V)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-blocked-tasks(w)  2022-10-16T22:35:54.777180+08:00 192.168.137.110 show-blocked-tasks(w)  2022-10-16T22:35:54.900989+08:00 192.168.137.110 dump-ftrace-buffer(z)  2022-10-16T22:35:54.900989+08:00 192.168.137.110 dump-ftrace-buffer(z)  2022-10-16T22:35:54.900989+08:00 192.168.137.110
  若进入192.168.137.110目录无权限,则执行  sudo chmod 777 192.168.137.110  赋予权限。其他监听方法netcat
  在没有syslogd在运行的主机上可以使用 netcat/socat 接收来自远程主机的消息: nc -u -l -p  / nc -u -l  netcat -u -l -p  / netcat -u -l  socat udp-recv: -
  举例 ~ sudo  netcat -l -p 514 -u  [sudo] password for zhongyi:  [  263.748032] sysrq: SysRq : HELP : [  263.748032] sysrq: SysRq : HELP : loglevel(0-9) loglevel(0-9) reboot(b) reboot(b) crash(c) crash(c) terminate-all-tasks(e) terminate-all-tasks(e) memory-full-oom-kill(f) memory-full-oom-kill(f) kill-all-tasks(i) kill-all-tasks(i) thaw-filesystems(j) thaw-filesystems(j) sak(k) sak(k) show-backtrace-all-active-cpus(l) show-backtrace-all-active-cpus(l) show-memory-usage(m) show-memory-usage(m) nice-all-RT-tasks(n) nice-all-RT-tasks(n) poweroff(o) show-registers(p) poweroff(o) show-registers(p) show-all-timers(q) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) unmount(u) force-fb(V) show-blocked-tasks(w) show-blocked-tasks(w) dump-ftrace-buffer(z) dump-ftrace-buffer(z)  dmesg
  -n/--console-level  控制kernel message console 输出级别, 设置输出level为debug (-n 8 ):dmesg -n 8 uboot中的netconsole
  uboot下的netconsole类似于kernel下的telnet等网络终端功能,将网络作为输入输出的终端,这样就便于我们在PC端通过网络登录设备uboot中运行命令。
  uboot下netconsole的实现在drivers/net/netconsole.c中,uboot开启netconsole只需要在配置文件 configs/firefly-rk3399_defconfig 加入CONFIG_NETCONSOLE=y  即可。重新编译uboot,烧写到设备上。
  设置环境变量 nc ,设置CONFIG_NETCONSOLE_BUFFER_SIZE 覆盖默认缓冲区大小,设置环境变量ncip 为通信对端ip,格式为: , 不设置时为默认值6666 ,发送端口和接收端口可以分别设置,ncinport 和ncoutport ,setenv ipaddr 192.168.137.110 setenv nc "setenv stdout nc;setenv stdin nc" setenv ncip 192.168.137.100 saveenv run nc
  uboot进入netonsole模式,此时串口控制台就没有输出了。
  在服务器上执行 ./tools/netconsole 192.168.137.110
  就可以在PC端运行uboot命令了。 本文参考
  https://www.kernel.org/doc/html/latest/networking/netconsole.html
  https://blog.csdn.net/weixin_44143206/article/details/123598281
  https://blog.csdn.net/force_eagle/article/details/114670045
  https://www.kernel.org/doc/html/latest/networking/netconsole.html
  https://blog.csdn.net/Zhu_Zhu_2009/article/details/105120184
  https://blog.csdn.net/j00362/article/details/50389131
  http://t.zoukankan.com/clnchanpin-p-7232687.html
  https://blog.csdn.net/force_eagle/article/details/114670045
  https://blog.csdn.net/weixin_42300896/article/details/119500359
  https://0xzx.com/201912100028405199.html
  https://blog.csdn.net/u014044032/article/details/81462054

全球财经连线丨专访野村日本首席经济学家森田京平宽松货币政策并非最好的政策,日元贬值难以提振出口视频加载中21世纪经济报道记者胡慧茵广州报道因为坚持实施宽松货币政策,日本面临着前所未有的压力。由于与美国货币政策持续分化,日元表现弱势,特别是在本月美联储宣布加息75个基点后,日詹姆斯又成球队老板!联手追梦乐福投资新领域商业版图再次扩大北京时间9月29日,湖人球星詹姆斯成为了又一支球队的老板。美媒报道称,他和勇士球星追梦骑士球星乐福一起领衔投资了匹克球联盟(MLP)的其中一支扩军球队。匹克球(Pickleball以贷养贷以卡养卡非法套现的后果与责任导言近期接受了很多有关贷款逾期的咨询,发现有一些人逾期之后,很常见的一个措施就是从自己多个信用卡中套现还款,然后在互相倒腾着还信用卡,这种行为在圈里称之为叫以贷养贷。如果是救急,仅将高端芯片用在中端机上,这4款才是真正的高配低价,再流畅用5年您在阅读前请点击上面的关注二字,后续会第一时间为您提供更多有价值的相关内容,感谢您的支持。手机厂商为了能够获得更多的用户,有时候也会特意发布一些经典的机型,往往会把一些高端的芯片用标签数据标准让RFID技术更有成效斑马技术大中华区RFID及证卡打印机业务负责人员海数据驱动型决策对现今的业务尤为重要,这主要是缘于市场形势客户需求和资源每天(有时甚至每小时)都会发生变化。月度季度及年度预测和规划李楠分享iOS流畅使用3年技巧点开之后秒懂前魅族副总裁,魅蓝总裁李楠虽然不在手机圈了,但也经常发表一些关于热门手机产品的评论,昨日晚间,他在自己的个人微博分享了一则可以让iPhone流畅使用3年的小技巧。从其给出的截图来看十四五重点调整哪些环保标准?生态环境部答每经将制修订印刷玻璃农药等重点行业污染物排放标准每经记者李彪每经编辑陈旭生态环境质量不断提升,环境保护标准也将进一步加严十四五期间,多个领域和行业的污染物排放标准将迎来调整。9月28日,生态环境部围绕依法加强生态环境保护的主题召纤细和丰腴的摇摆轮回过去百年完美身材的标准是如何变化的随着社会的发展,女性理想身材的形象和观念时不时发生变化。在过去的100年里,完美身材的定义发生了多次变化,主要是由于当时的名人形象和时尚风格。下面是时不时看到的女性完美身材1910IPAD做成便携式显示器我的IPAD3升级了那个什么13点几的系统后就卡的一B,所以决定把它做成显示器来发挥下余热。IPAD3以后的是2K屏,分辨率还是不错的。网上也有套件卖,甚至连外壳都有了。不过我还是刚刚,吉利重磅官宣!收购英国百年豪车股份每经编辑杜宇据浙江吉利控股集团官方网站9月30日消息,浙江吉利控股集团有限公司(以下简称吉利控股)宣布,已完成对英国超豪华性能品牌阿斯顿马丁拉贡达国际控股(以下简称阿斯顿马丁)7。省流iPhone14Pro充电无提升,电池容量低,iPhone14Pro充电评测前言2022年9月15日,iPhone14系列正式发售,充电头网也是第一时间拿到这四款机型,具体的屏幕摄像头模组芯片等等配置就不用过多介绍,相信用户都已经去官网详细查看过资料上期对
什么?一道肘子,河北唐山鸿宴饭庄一年卖130吨?一部美食纪录片,在晚上十点四十到十一点半播出,居然火爆得不行。本来带贬义的吃货一词,因为这个节目的火爆,居然也摇身一变,华丽转身,成了人人争戴的高帽。这就是舌尖上的中国创造的奇迹。略阳事朋友圈美食图鉴!快来pick你心中的略阳美味朋友圈一个朋友们晒美食美照凡尔赛与卷王的修罗场你以为这种较劲只存在于人类之中吗?NO!NO!NO!如果略阳美食也有朋友圈它们之间的battle也是一场看不见的硝烟略阳罐罐茶我是伴随A醇到底是不是智商税?早C晚A是对的吗?A醇是指视黄醇,也称为维生素A。维生素A是一种脂溶性维生素,具有重要的生物学功能,包括维持正常视力促进免疫系统的正常功能和维持健康的皮肤和黏膜。在抗老化领域,维生素A被广泛应用于化杜华不搞男团了?乐华娱乐跨界美妆,蓝铜胜肽是个啥昨天,杜华要把儿子送到黄奕家减肥登上微博热搜,令小编好奇的是,这条热搜下许多人都在问蓝铜胜肽是什么?小编激情飞奔采访度娘,原来乐华娱乐跨界进军美妆行业,蓝铜胜肽是乐华自家护肤品牌D百达翡丽Aquanaut5164A价格连11个月下滑最新行情揭晓PATEKPHILIPPE百达翡丽Aquanaut系列的人气款5164A有别于系列基本款如5167或5168等,其具备相对复杂的(重点是实用性颇优的)两地时间功能,除了手表面盘以中张嘉倪传婚变后像换了个人,风情万种妩媚迷人!于正赞她是铁娘子演技实力派张嘉倪被传离婚后大变样,穿针织开衫在街头遛猫,少女感10足!张嘉倪离婚后大变样,参加时尚活动,自信满满的风情万种妩媚性感迷人!简直如同一匹实力派黑马般让各路大神时尚主编潮鹿晗潮牌外套卖千元遭批车工差!线头乱窜歪七扭八,买家很火大男星鹿晗拥有高人气,认爱国民初恋关晓彤迈入第6年,除了活跃综艺影视圈,也跨足开设潮牌担任主理人。然而他潮牌所贩售的外套,售价1500人民币,却被发现外套质量很差,被网友拍影片吐槽衣用这4种食物当主食,比米饭馒头升血糖慢,哪种更适合你?有一类食物它们比馒头大米饭的能量更低升糖更慢,更有利于控糖维生素矿物质的含量更丰富是糖尿病病友的优质主食代餐它们就是薯类土豆山药红薯芋头薯类中,谁才是糖尿病主食的第一代餐?哪种更适4岁小朋友自主阅读牛津树Level7!佛系妈妈分享培养秘诀郑老师寄语果果小朋友从小开始跟着我们一起英语启蒙,目前虽然只有4岁多,但是已经能自主阅读牛津树Level7,生活中开口说英文蘑菇弟弟现在1岁多,也积累了大量的听力,开始陆续英文输出饭遭殃原来做法这么简单,鲜香微辣超开胃,配上米饭我能吃三大碗头条创作挑战赛人们常说没有什么事情是一顿美食解决不了的,如果有,那就再吃两顿,虽然说得有点夸张,但确实美食是每个人抵挡不了的。不论生活中遇到什么烦恼,美食就是人们最好的慰藉,味蕾上7个惊人的健康小秘诀,让你在7天内变得更健康!健康是一生的追求,但是我们的生活方式和工作压力常常使得我们难以健康生活。但是,你是否知道,你只需要改变一些小习惯,就可以在7天内变得更健康!多喝水喝足够的水不仅可以保持身体水分平衡