€•2ûŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/networking/netconsole”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/networking/netconsole.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ Netconsole”h]”hŒ Netconsole”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ5started by Ingo Molnar , 2001.09.17”h]”(hŒstarted by Ingo Molnar <”…”�”}”(hhßh²hh³Nh´NubhŒ reference”“”)�”}”(hŒmingo@redhat.com”h]”hŒmingo@redhat.com”…”�”}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:mingo@redhat.com”uh1hçhhßubhŒ >, 2001.09.17”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒF2.6 port and netpoll api by Matt Mackall , Sep 9 2003”h]”(hŒ*2.6 port and netpoll api by Matt Mackall <”…”�”}”(hjh²hh³Nh´Nubhè)�”}”(hŒmpm@selenic.com”h]”hŒmpm@selenic.com”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:mpm@selenic.com”uh1hçhjubhŒ >, Sep 9 2003”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)�”}”(hŒ@IPv6 support by Cong Wang , Jan 1 2013”h]”(hŒIPv6 support by Cong Wang <”…”�”}”(hj%h²hh³Nh´Nubhè)�”}”(hŒxiyou.wangcong@gmail.com”h]”hŒxiyou.wangcong@gmail.com”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:xiyou.wangcong@gmail.com”uh1hçhj%ubhŒ >, Jan 1 2013”…”�”}”(hj%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)�”}”(hŒAExtended console support by Tejun Heo , May 1 2015”h]”(hŒ'Extended console support by Tejun Heo <”…”�”}”(hjGh²hh³Nh´Nubhè)�”}”(hŒ tj@kernel.org”h]”hŒ tj@kernel.org”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:tj@kernel.org”uh1hçhjGubhŒ >, May 1 2015”…”�”}”(hjGh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒGRelease prepend support by Breno Leitao , Jul 7 2023”h]”(hŒ)Release prepend support by Breno Leitao <”…”�”}”(hjih²hh³Nh´Nubhè)�”}”(hŒleitao@debian.org”h]”hŒleitao@debian.org”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:leitao@debian.org”uh1hçhjiubhŒ >, Jul 7 2023”…”�”}”(hjih²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒNUserdata append support by Matthew Wood , Jan 22 2024”h]”(hŒ)Userdata append support by Matthew Wood <”…”�”}”(hj‹h²hh³Nh´Nubhè)�”}”(hŒthepacketgeek@gmail.com”h]”hŒthepacketgeek@gmail.com”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:thepacketgeek@gmail.com”uh1hçhj‹ubhŒ>, Jan 22 2024”…”�”}”(hj‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒGSysdata append support by Breno Leitao , Jan 15 2025”h]”(hŒ(Sysdata append support by Breno Leitao <”…”�”}”(hj­h²hh³Nh´Nubhè)�”}”(hŒleitao@debian.org”h]”hŒleitao@debian.org”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:leitao@debian.org”uh1hçhj­ubhŒ>, Jan 15 2025”…”�”}”(hj­h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Introduction:”h]”hŒ Introduction:”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÏh²hh³hÇh´KubhÞ)�”}”(hŒŒThis module logs kernel printk messages over UDP allowing debugging of problem where disk logging fails and serial consoles are impractical.”h]”hŒŒThis module logs kernel printk messages over UDP allowing debugging of problem where disk logging fails and serial consoles are impractical.”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjÏh²hubhÞ)�”}”(hXIt can be used either built-in or as a module. As a built-in, netconsole initializes immediately after NIC cards and will bring up the specified interface as soon as possible. While this doesn't allow capture of early kernel panics, it does capture most of the boot process.”h]”hXIt can be used either built-in or as a module. As a built-in, netconsole initializes immediately after NIC cards and will bring up the specified interface as soon as possible. While this doesn’t allow capture of early kernel panics, it does capture most of the boot process.”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjÏh²hubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ"Sender and receiver configuration:”h]”hŒ"Sender and receiver configuration:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K#ubhÞ)�”}”(hŒPIt takes a string configuration parameter "netconsole" in the following format::”h]”hŒSIt takes a string configuration parameter “netconsoleâ€� in the following format:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K%hjh²hubhŒ literal_block”“”)�”}”(hXQnetconsole=[+][r][src-port]@[src-ip]/[],[tgt-port]@/[tgt-macaddr] where + if present, enable extended console support r if present, prepend kernel version (release) to the message src-port source for UDP packets (defaults to 6665) src-ip source IP to use (interface address) dev network interface name (eth0) or MAC address tgt-port port for logging agent (6666) tgt-ip IP address for logging agent tgt-macaddr ethernet MAC address for logging agent (broadcast)”h]”hXQnetconsole=[+][r][src-port]@[src-ip]/[],[tgt-port]@/[tgt-macaddr] where + if present, enable extended console support r if present, prepend kernel version (release) to the message src-port source for UDP packets (defaults to 6665) src-ip source IP to use (interface address) dev network interface name (eth0) or MAC address tgt-port port for logging agent (6666) tgt-ip IP address for logging agent tgt-macaddr ethernet MAC address for logging agent (broadcast)”…”�”}”hj%sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K(hjh²hubhÞ)�”}”(hŒ Examples::”h]”hŒ Examples:”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K4hjh²hubj$)�”}”(hŒClinux netconsole=4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc”h]”hŒClinux netconsole=4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc”…”�”}”hjAsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K6hjh²hubhÞ)�”}”(hŒor::”h]”hŒor:”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K8hjh²hubj$)�”}”(hŒ*insmod netconsole netconsole=@/,@10.0.0.2/”h]”hŒ*insmod netconsole netconsole=@/,@10.0.0.2/”…”�”}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K:hjh²hubhÞ)�”}”(hŒor using IPv6::”h]”hŒor using IPv6:”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubhÞ)�”}”(hŒ7or using a MAC address to select the egress interface::”h]”hŒ6or using a MAC address to select the egress interface:”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K@hjh²hubj$)�”}”(hŒPlinux netconsole=4444@10.0.0.1/22:33:44:55:66:77,9353@10.0.0.2/12:34:56:78:9a:bc”h]”hŒPlinux netconsole=4444@10.0.0.1/22:33:44:55:66:77,9353@10.0.0.2/12:34:56:78:9a:bc”…”�”}”hj•sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KBhjh²hubhÞ)�”}”(hŒ²It also supports logging to multiple remote agents by specifying parameters for the multiple agents separated by semicolons and the complete string enclosed in "quotes", thusly::”h]”hŒµIt also supports logging to multiple remote agents by specifying parameters for the multiple agents separated by semicolons and the complete string enclosed in “quotesâ€�, thusly:”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjh²hubj$)�”}”(hŒDmodprobe netconsole netconsole="@/,@10.0.0.2/;@/eth1,6892@10.0.0.3/"”h]”hŒDmodprobe netconsole netconsole="@/,@10.0.0.2/;@/eth1,6892@10.0.0.3/"”…”�”}”hj±sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KHhjh²hubhÞ)�”}”(hŒŒBuilt-in netconsole starts immediately after the TCP stack is initialized and attempts to bring up the supplied dev at the supplied address.”h]”hŒŒBuilt-in netconsole starts immediately after the TCP stack is initialized and attempts to bring up the supplied dev at the supplied address.”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KJhjh²hubhÞ)�”}”(hŒPThe remote host has several options to receive the kernel messages, for example:”h]”hŒPThe remote host has several options to receive the kernel messages, for example:”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhjh²hubhŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒsyslogd ”h]”hÞ)�”}”(hŒsyslogd”h]”hŒsyslogd”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KQhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÝh²hh³hÇh´Nubjá)�”}”(hXnetcat On distributions using a BSD-based netcat version (e.g. Fedora, openSUSE and Ubuntu) the listening port must be specified without the -p switch:: nc -u -l -p ' / 'nc -u -l or:: netcat -u -l -p ' / 'netcat -u -l ”h]”(hÞ)�”}”(hŒnetcat”h]”hŒnetcat”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KShjúubhÞ)�”}”(hŒ‘On distributions using a BSD-based netcat version (e.g. Fedora, openSUSE and Ubuntu) the listening port must be specified without the -p switch::”h]”hŒ�On distributions using a BSD-based netcat version (e.g. Fedora, openSUSE and Ubuntu) the listening port must be specified without the -p switch:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KUhjúubj$)�”}”(hŒ&nc -u -l -p ' / 'nc -u -l ”h]”hŒ&nc -u -l -p ' / 'nc -u -l ”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KYhjúubhÞ)�”}”(hŒor::”h]”hŒor:”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K[hjúubj$)�”}”(hŒ.netcat -u -l -p ' / 'netcat -u -l ”h]”hŒ.netcat -u -l -p ' / 'netcat -u -l ”…”�”}”hj6sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K]hjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÝh²hh³hÇh´Nubjá)�”}”(hŒsocat ”h]”hÞ)�”}”(hŒsocat”h]”hŒsocat”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÝh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1jÛhjh²hh³hÇh´KQubj$)�”}”(hŒsocat udp-recv: -”h]”hŒsocat udp-recv: -”…”�”}”hjmsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Kchjh²hubeh}”(h]”Œ!sender-and-receiver-configuration”ah ]”h"]”Œ"sender and receiver configuration:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K#ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒDynamic reconfiguration:”h]”hŒDynamic reconfiguration:”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjƒh²hh³hÇh´KfubhÞ)�”}”(hŒÞDynamic reconfigurability is a useful addition to netconsole that enables remote logging targets to be dynamically added, removed, or have their parameters reconfigured at runtime from a configfs-based userspace interface.”h]”hŒÞDynamic reconfigurability is a useful addition to netconsole that enables remote logging targets to be dynamically added, removed, or have their parameters reconfigured at runtime from a configfs-based userspace interface.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khhjƒh²hubhÞ)�”}”(hŒ…To include this feature, select CONFIG_NETCONSOLE_DYNAMIC when building the netconsole module (or kernel, if netconsole is built-in).”h]”hŒ…To include this feature, select CONFIG_NETCONSOLE_DYNAMIC when building the netconsole module (or kernel, if netconsole is built-in).”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Klhjƒh²hubhÞ)�”}”(hŒVSome examples follow (where configfs is mounted at the /sys/kernel/config mountpoint).”h]”hŒVSome examples follow (where configfs is mounted at the /sys/kernel/config mountpoint).”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kohjƒh²hubhÞ)�”}”(hŒ@To add a remote logging target (target names can be arbitrary)::”h]”hŒ?To add a remote logging target (target names can be arbitrary):”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Krhjƒh²hubj$)�”}”(hŒ/cd /sys/kernel/config/netconsole/ mkdir target1”h]”hŒ/cd /sys/kernel/config/netconsole/ mkdir target1”…”�”}”hjÌsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Kthjƒh²hubhÞ)�”}”(hŒùNote that newly created targets have default parameter values (as mentioned above) and are disabled by default -- they must first be enabled by writing "1" to the "enabled" attribute (usually after setting parameters accordingly) as described below.”h]”hXNote that newly created targets have default parameter values (as mentioned above) and are disabled by default -- they must first be enabled by writing “1â€� to the “enabledâ€� attribute (usually after setting parameters accordingly) as described below.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhjƒh²hubhÞ)�”}”(hŒTo remove a target::”h]”hŒTo remove a target:”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K|hjƒh²hubj$)�”}”(hŒ0rmdir /sys/kernel/config/netconsole/othertarget/”h]”hŒ0rmdir /sys/kernel/config/netconsole/othertarget/”…”�”}”hjösbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K~hjƒh²hubhÞ)�”}”(hŒKThe interface exposes these parameters of a netconsole target to userspace:”h]”hŒKThe interface exposes these parameters of a netconsole target to userspace:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K€hjƒh²hubhŒ block_quote”“”)�”}”(hX=============== ================================= ============ enabled Is this target currently enabled? (read-write) extended Extended mode enabled (read-write) release Prepend kernel release to message (read-write) dev_name Local network interface name (read-write) local_port Source UDP port to use (read-write) remote_port Remote agent's UDP port (read-write) local_ip Source IP address to use (read-write) remote_ip Remote agent's IP address (read-write) local_mac Local interface's MAC address (read-only) remote_mac Remote agent's MAC address (read-write) transmit_errors Number of packet send errors (read-only) =============== ================================= ============ ”h]”hŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j"hjubj#)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K!uh1j"hjubj#)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j"hjubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒenabled”h]”hŒenabled”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KƒhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjIubjM)�”}”(hhh]”hÞ)�”}”(hŒ!Is this target currently enabled?”h]”hŒ!Is this target currently enabled?”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjIubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kƒhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒextended”h]”hŒextended”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj™ubjM)�”}”(hhh]”hÞ)�”}”(hŒExtended mode enabled”h]”hŒExtended mode enabled”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj™ubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒrelease”h]”hŒrelease”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjçubjM)�”}”(hhh]”hÞ)�”}”(hŒ!Prepend kernel release to message”h]”hŒ!Prepend kernel release to message”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjçubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K…hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒdev_name”h]”hŒdev_name”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj5ubjM)�”}”(hhh]”hÞ)�”}”(hŒLocal network interface name”h]”hŒLocal network interface name”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj5ubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒ local_port”h]”hŒ local_port”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjƒubjM)�”}”(hhh]”hÞ)�”}”(hŒSource UDP port to use”h]”hŒSource UDP port to use”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjƒubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒ remote_port”h]”hŒ remote_port”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KˆhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÑubjM)�”}”(hhh]”hÞ)�”}”(hŒRemote agent's UDP port”h]”hŒRemote agent’s UDP port”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kˆhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÑubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kˆhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒlocal_ip”h]”hŒlocal_ip”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubjM)�”}”(hhh]”hÞ)�”}”(hŒSource IP address to use”h]”hŒSource IP address to use”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‰hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒ remote_ip”h]”hŒ remote_ip”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŠhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjmubjM)�”}”(hhh]”hÞ)�”}”(hŒRemote agent's IP address”h]”hŒRemote agent’s IP address”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŠhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjmubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŠhjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒ local_mac”h]”hŒ local_mac”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‹hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj»ubjM)�”}”(hhh]”hÞ)�”}”(hŒLocal interface's MAC address”h]”hŒLocal interface’s MAC address”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‹hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj»ubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-only)”h]”hŒ (read-only)”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‹hjìubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒ remote_mac”h]”hŒ remote_mac”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj ubjM)�”}”(hhh]”hÞ)�”}”(hŒRemote agent's MAC address”h]”hŒRemote agent’s MAC address”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj ubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-write)”h]”hŒ (read-write)”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubjH)�”}”(hhh]”(jM)�”}”(hhh]”hÞ)�”}”(hŒtransmit_errors”h]”hŒtransmit_errors”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjWubjM)�”}”(hhh]”hÞ)�”}”(hŒNumber of packet send errors”h]”hŒNumber of packet send errors”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjWubjM)�”}”(hhh]”hÞ)�”}”(hŒ (read-only)”h]”hŒ (read-only)”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jGhjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jBhjubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‚hjƒh²hubhÞ)�”}”(hŒïlocal_ip is optional: if it is left unset, netconsole derives a source address from the egress interface when the target is enabled. Writing any value to it, including 0.0.0.0, uses that value verbatim and disables the automatic selection.”h]”hŒïlocal_ip is optional: if it is left unset, netconsole derives a source address from the egress interface when the target is enabled. Writing any value to it, including 0.0.0.0, uses that value verbatim and disables the automatic selection.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K�hjƒh²hubhÞ)�”}”(hŒ¼The "enabled" attribute is also used to control whether the parameters of a target can be updated or not -- you can modify the parameters of only disabled targets (i.e. if "enabled" is 0).”h]”hŒÄThe “enabledâ€� attribute is also used to control whether the parameters of a target can be updated or not -- you can modify the parameters of only disabled targets (i.e. if “enabledâ€� is 0).”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K•hjƒh²hubhÞ)�”}”(hŒ!To update a target's parameters::”h]”hŒ"To update a target’s parameters:”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K™hjƒh²hubj$)�”}”(hX�cat enabled # check if enabled is 1 echo 0 > enabled # disable the target (if required) echo eth2 > dev_name # set local interface echo 10.0.0.4 > remote_ip # update some parameter echo cb:a9:87:65:43:21 > remote_mac # update more parameters echo 1 > enabled # enable target again”h]”hX�cat enabled # check if enabled is 1 echo 0 > enabled # disable the target (if required) echo eth2 > dev_name # set local interface echo 10.0.0.4 > remote_ip # update some parameter echo cb:a9:87:65:43:21 > remote_mac # update more parameters echo 1 > enabled # enable target again”…”�”}”hjèsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K›hjƒh²hubhÞ)�”}”(hŒÉYou can also update the local interface dynamically. This is especially useful if you want to use interfaces that have newly come up (and may not have existed when netconsole was loaded / initialized).”h]”hŒÉYou can also update the local interface dynamically. This is especially useful if you want to use interfaces that have newly come up (and may not have existed when netconsole was loaded / initialized).”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¢hjƒh²hubhÞ)�”}”(hX*Netconsole targets defined at boot time (or module load time) with the `netconsole=` param are assigned the name `cmdline`. For example, the first target in the parameter is named `cmdline0`. You can control and modify these targets by creating configfs directories with the matching name.”h]”(hŒGNetconsole targets defined at boot time (or module load time) with the ”…”�”}”(hjh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `netconsole=`”h]”hŒ netconsole=”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒ param are assigned the name ”…”�”}”(hjh²hh³Nh´Nubj )�”}”(hŒ`cmdline`”h]”hŒcmdline”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒ;. For example, the first target in the parameter is named ”…”�”}”(hjh²hh³Nh´Nubj )�”}”(hŒ `cmdline0`”h]”hŒcmdline0”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒd. You can control and modify these targets by creating configfs directories with the matching name.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¦hjƒh²hubhÞ)�”}”(hŒDLet's suppose you have two netconsole targets defined at boot time::”h]”hŒELet’s suppose you have two netconsole targets defined at boot time:”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K«hjƒh²hubj$)�”}”(hŒpnetconsole=4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc;4444@10.0.0.1/eth1,9353@10.0.0.3/12:34:56:78:9a:bc”h]”hŒpnetconsole=4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc;4444@10.0.0.1/eth1,9353@10.0.0.3/12:34:56:78:9a:bc”…”�”}”hjXsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K­hjƒh²hubhÞ)�”}”(hŒKYou can modify these targets in runtime by creating the following targets::”h]”hŒJYou can modify these targets in runtime by creating the following targets:”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¯hjƒh²hubj$)�”}”(hŒ^mkdir cmdline0 cat cmdline0/remote_ip 10.0.0.2 mkdir cmdline1 cat cmdline1/remote_ip 10.0.0.3”h]”hŒ^mkdir cmdline0 cat cmdline0/remote_ip 10.0.0.2 mkdir cmdline1 cat cmdline1/remote_ip 10.0.0.3”…”�”}”hjtsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´K±hjƒh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAppend User Data”h]”hŒAppend User Data”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‚h²hh³hÇh´KºubhÞ)�”}”(hŒ¾Custom user data can be appended to the end of messages with netconsole dynamic configuration enabled. User data entries can be modified without changing the "enabled" attribute of a target.”h]”hŒÂCustom user data can be appended to the end of messages with netconsole dynamic configuration enabled. User data entries can be modified without changing the “enabledâ€� attribute of a target.”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¼hj‚h²hubhÞ)�”}”(hŒ…Directories (keys) under `userdata` are limited to 53 character length, and data in `userdata//value` are limited to 200 bytes::”h]”(hŒDirectories (keys) under ”…”�”}”(hj¡h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¡ubhŒ1 are limited to 53 character length, and data in ”…”�”}”(hj¡h²hh³Nh´Nubj )�”}”(hŒ`userdata//value`”h]”hŒuserdata//value”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¡ubhŒ are limited to 200 bytes:”…”�”}”(hj¡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÀhj‚h²hubj$)�”}”(hŒ cd /sys/kernel/config/netconsole && mkdir cmdline0 cd cmdline0 mkdir userdata/foo echo bar > userdata/foo/value mkdir userdata/qux echo baz > userdata/qux/value”h]”hŒ cd /sys/kernel/config/netconsole && mkdir cmdline0 cd cmdline0 mkdir userdata/foo echo bar > userdata/foo/value mkdir userdata/qux echo baz > userdata/qux/value”…”�”}”hjÓsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KÃhj‚h²hubhÞ)�”}”(hŒ5Messages will now include this additional user data::”h]”hŒ4Messages will now include this additional user data:”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÊhj‚h²hubj$)�”}”(hŒ$echo "This is a message" > /dev/kmsg”h]”hŒ$echo "This is a message" > /dev/kmsg”…”�”}”hjïsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KÌhj‚h²hubhÞ)�”}”(hŒSends::”h]”hŒSends:”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÎhj‚h²hubj$)�”}”(hŒ812,607,22085407756,-;This is a message foo=bar qux=baz”h]”hŒ812,607,22085407756,-;This is a message foo=bar qux=baz”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KÐhj‚h²hubhÞ)�”}”(hŒ1Preview the userdata that will be appended with::”h]”hŒ0Preview the userdata that will be appended with:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÔhj‚h²hubj$)�”}”(hŒtcd /sys/kernel/config/netconsole/cmdline0/userdata for f in `ls userdata`; do echo $f=$(cat userdata/$f/value); done”h]”hŒtcd /sys/kernel/config/netconsole/cmdline0/userdata for f in `ls userdata`; do echo $f=$(cat userdata/$f/value); done”…”�”}”hj' sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KÖhj‚h²hubhÞ)�”}”(hŒ�If a `userdata` entry is created but no data is written to the `value` file, the entry will be omitted from netconsole messages::”h]”(hŒIf a ”…”�”}”(hj5 h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj5 ubhŒ0 entry is created but no data is written to the ”…”�”}”(hj5 h²hh³Nh´Nubj )�”}”(hŒ`value`”h]”hŒvalue”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj5 ubhŒ: file, the entry will be omitted from netconsole messages:”…”�”}”(hj5 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÙhj‚h²hubj$)�”}”(hŒ‚cd /sys/kernel/config/netconsole && mkdir cmdline0 cd cmdline0 mkdir userdata/foo echo bar > userdata/foo/value mkdir userdata/qux”h]”hŒ‚cd /sys/kernel/config/netconsole && mkdir cmdline0 cd cmdline0 mkdir userdata/foo echo bar > userdata/foo/value mkdir userdata/qux”…”�”}”hjg sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´KÜhj‚h²hubhÞ)�”}”(hŒ0The `qux` key is omitted since it has no value::”h]”(hŒThe ”…”�”}”(hju h²hh³Nh´Nubj )�”}”(hŒ`qux`”h]”hŒqux”…”�”}”(hj} h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hju ubhŒ& key is omitted since it has no value:”…”�”}”(hju h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kâhj‚h²hubj$)�”}”(hŒTecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message foo=bar”h]”hŒTecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message foo=bar”…”�”}”hj• sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Kähj‚h²hubhÞ)�”}”(hŒ(Delete `userdata` entries with `rmdir`::”h]”(hŒDelete ”…”�”}”(hj£ h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj£ ubhŒ entries with ”…”�”}”(hj£ h²hh³Nh´Nubj )�”}”(hŒ`rmdir`”h]”hŒrmdir”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj£ ubhŒ:”…”�”}”(hj£ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kèhj‚h²hubj$)�”}”(hŒ9rmdir /sys/kernel/config/netconsole/cmdline0/userdata/qux”h]”hŒ9rmdir /sys/kernel/config/netconsole/cmdline0/userdata/qux”…”�”}”hjÕ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Kêhj‚h²hubhŒwarning”“”)�”}”(hX±When writing strings to user data values, input is broken up per line in configfs store calls and this can cause confusing behavior:: mkdir userdata/testing printf "val1\nval2" > userdata/testing/value # userdata store value is called twice, first with "val1\n" then "val2" # so "val2" is stored, being the last value stored cat userdata/testing/value val2 It is recommended to not write user data values with newlines.”h]”(hÞ)�”}”(hŒ…When writing strings to user data values, input is broken up per line in configfs store calls and this can cause confusing behavior::”h]”hŒ„When writing strings to user data values, input is broken up per line in configfs store calls and this can cause confusing behavior:”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kíhjå ubj$)�”}”(hŒÞmkdir userdata/testing printf "val1\nval2" > userdata/testing/value # userdata store value is called twice, first with "val1\n" then "val2" # so "val2" is stored, being the last value stored cat userdata/testing/value val2”h]”hŒÞmkdir userdata/testing printf "val1\nval2" > userdata/testing/value # userdata store value is called twice, first with "val1\n" then "val2" # so "val2" is stored, being the last value stored cat userdata/testing/value val2”…”�”}”hj÷ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Kðhjå ubhÞ)�”}”(hŒ>It is recommended to not write user data values with newlines.”h]”hŒ>It is recommended to not write user data values with newlines.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K÷hjå ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jã hj‚h²hh³hÇh´Nubeh}”(h]”Œappend-user-data”ah ]”h"]”Œappend user data”ah$]”h&]”uh1hÈhjƒh²hh³hÇh´KºubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ%Task name auto population in userdata”h]”hŒ%Task name auto population in userdata”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj! h²hh³hÇh´KúubhÞ)�”}”(hX3Inside the netconsole configfs hierarchy, there is a file called `taskname_enabled` under the `userdata` directory. This file is used to enable or disable the automatic task name population feature. This feature automatically populates the current task name that is scheduled in the CPU sneding the message.”h]”(hŒAInside the netconsole configfs hierarchy, there is a file called ”…”�”}”(hj2 h²hh³Nh´Nubj )�”}”(hŒ`taskname_enabled`”h]”hŒtaskname_enabled”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj2 ubhŒ under the ”…”�”}”(hj2 h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj2 ubhŒË directory. This file is used to enable or disable the automatic task name population feature. This feature automatically populates the current task name that is scheduled in the CPU sneding the message.”…”�”}”(hj2 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kühj! h²hubhÞ)�”}”(hŒ%To enable task name auto-population::”h]”hŒ$To enable task name auto-population:”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj! h²hubj$)�”}”(hŒHecho 1 > /sys/kernel/config/netconsole/target1/userdata/taskname_enabled”h]”hŒHecho 1 > /sys/kernel/config/netconsole/target1/userdata/taskname_enabled”…”�”}”hjr sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Mhj! h²hubhÞ)�”}”(hXlWhen this option is enabled, the netconsole messages will include an additional line in the userdata field with the format `taskname=`. This allows the receiver of the netconsole messages to easily find which application was currently scheduled when that message was generated, providing extra context for kernel messages and helping to categorize them.”h]”(hŒ{When this option is enabled, the netconsole messages will include an additional line in the userdata field with the format ”…”�”}”(hj€ h²hh³Nh´Nubj )�”}”(hŒ`taskname=`”h]”hŒtaskname=”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj€ ubhŒÛ. This allows the receiver of the netconsole messages to easily find which application was currently scheduled when that message was generated, providing extra context for kernel messages and helping to categorize them.”…”�”}”(hj€ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj! h²hubhÞ)�”}”(hŒ Example::”h]”hŒExample:”…”�”}”(hj  h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj! h²hubj$)�”}”(hŒZecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message taskname=echo”h]”hŒZecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message taskname=echo”…”�”}”hj® sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Mhj! h²hubhÞ)�”}”(hŒZIn this example, the message was generated while "echo" was the current scheduled process.”h]”hŒ^In this example, the message was generated while “echoâ€� was the current scheduled process.”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj! h²hubeh}”(h]”Œ%task-name-auto-population-in-userdata”ah ]”h"]”Œ%task name auto population in userdata”ah$]”h&]”uh1hÈhjƒh²hh³hÇh´KúubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ*Kernel release auto population in userdata”h]”hŒ*Kernel release auto population in userdata”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÒ h²hh³hÇh´MubhÞ)�”}”(hXWithin the netconsole configfs hierarchy, there is a file named `release_enabled` located in the `userdata` directory. This file controls the kernel release (version) auto-population feature, which appends the kernel release information to userdata dictionary in every message sent.”h]”(hŒ@Within the netconsole configfs hierarchy, there is a file named ”…”�”}”(hjã h²hh³Nh´Nubj )�”}”(hŒ`release_enabled`”h]”hŒrelease_enabled”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjã ubhŒ located in the ”…”�”}”(hjã h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjã ubhŒ¯ directory. This file controls the kernel release (version) auto-population feature, which appends the kernel release information to userdata dictionary in every message sent.”…”�”}”(hjã h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÒ h²hubhÞ)�”}”(hŒ'To enable the release auto-population::”h]”hŒ&To enable the release auto-population:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÒ h²hubj$)�”}”(hŒGecho 1 > /sys/kernel/config/netconsole/target1/userdata/release_enabled”h]”hŒGecho 1 > /sys/kernel/config/netconsole/target1/userdata/release_enabled”…”�”}”hj# sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MhjÒ h²hubhÞ)�”}”(hŒ Example::”h]”hŒExample:”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M!hjÒ h²hubj$)�”}”(hŒsecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message release=6.14.0-rc6-01219-g3c027fbd941d”h]”hŒsecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message release=6.14.0-rc6-01219-g3c027fbd941d”…”�”}”hj? sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M#hjÒ h²hubhŒnote”“”)�”}”(hŒÍThis feature provides the same data as the "release prepend" feature. However, in this case, the release information is appended to the userdata dictionary rather than being included in the message header.”h]”hÞ)�”}”(hŒÍThis feature provides the same data as the "release prepend" feature. However, in this case, the release information is appended to the userdata dictionary rather than being included in the message header.”h]”hŒÑThis feature provides the same data as the “release prependâ€� feature. However, in this case, the release information is appended to the userdata dictionary rather than being included in the message header.”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M)hjO ubah}”(h]”h ]”h"]”h$]”h&]”uh1jM hjÒ h²hh³hÇh´Nubeh}”(h]”Œ*kernel-release-auto-population-in-userdata”ah ]”h"]”Œ*kernel release auto population in userdata”ah$]”h&]”uh1hÈhjƒh²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ&CPU number auto population in userdata”h]”hŒ&CPU number auto population in userdata”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjo h²hh³hÇh´M/ubhÞ)�”}”(hXInside the netconsole configfs hierarchy, there is a file called `cpu_nr` under the `userdata` directory. This file is used to enable or disable the automatic CPU number population feature. This feature automatically populates the CPU number that is sending the message.”h]”(hŒAInside the netconsole configfs hierarchy, there is a file called ”…”�”}”(hj€ h²hh³Nh´Nubj )�”}”(hŒ`cpu_nr`”h]”hŒcpu_nr”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj€ ubhŒ under the ”…”�”}”(hj€ h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj€ ubhŒ° directory. This file is used to enable or disable the automatic CPU number population feature. This feature automatically populates the CPU number that is sending the message.”…”�”}”(hj€ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M1hjo h²hubhÞ)�”}”(hŒ*To enable the CPU number auto-population::”h]”hŒ)To enable the CPU number auto-population:”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M6hjo h²hubj$)�”}”(hŒ>echo 1 > /sys/kernel/config/netconsole/target1/userdata/cpu_nr”h]”hŒ>echo 1 > /sys/kernel/config/netconsole/target1/userdata/cpu_nr”…”�”}”hjÀ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M8hjo h²hubhÞ)�”}”(hXXWhen this option is enabled, the netconsole messages will include an additional line in the userdata field with the format `cpu=`. This allows the receiver of the netconsole messages to easily differentiate and demultiplex messages originating from different CPUs, which is particularly useful when dealing with parallel log output.”h]”(hŒ{When this option is enabled, the netconsole messages will include an additional line in the userdata field with the format ”…”�”}”(hjÎ h²hh³Nh´Nubj )�”}”(hŒ`cpu=`”h]”hŒcpu=”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÎ ubhŒË. This allows the receiver of the netconsole messages to easily differentiate and demultiplex messages originating from different CPUs, which is particularly useful when dealing with parallel log output.”…”�”}”(hjÎ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M:hjo h²hubhÞ)�”}”(hŒ Example::”h]”hŒExample:”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M@hjo h²hubj$)�”}”(hŒSecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message cpu=42”h]”hŒSecho "This is a message" > /dev/kmsg 12,607,22085407756,-;This is a message cpu=42”…”�”}”hjü sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MBhjo h²hubhÞ)�”}”(hŒ0In this example, the message was sent by CPU 42.”h]”hŒ0In this example, the message was sent by CPU 42.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MFhjo h²hubjN )�”}”(hXÂIf the user has set a conflicting `cpu` key in the userdata dictionary, both keys will be reported, with the kernel-populated entry appearing after the user one. For example:: # User-defined CPU entry mkdir -p /sys/kernel/config/netconsole/target1/userdata/cpu echo "1" > /sys/kernel/config/netconsole/target1/userdata/cpu/value Output might look like:: 12,607,22085407756,-;This is a message cpu=1 cpu=42 # kernel-populated value”h]”(hÞ)�”}”(hŒ¯If the user has set a conflicting `cpu` key in the userdata dictionary, both keys will be reported, with the kernel-populated entry appearing after the user one. For example::”h]”(hŒ"If the user has set a conflicting ”…”�”}”(hj h²hh³Nh´Nubj )�”}”(hŒ`cpu`”h]”hŒcpu”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubhŒ‡ key in the userdata dictionary, both keys will be reported, with the kernel-populated entry appearing after the user one. For example:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MJhj ubj$)�”}”(hŒ˜# User-defined CPU entry mkdir -p /sys/kernel/config/netconsole/target1/userdata/cpu echo "1" > /sys/kernel/config/netconsole/target1/userdata/cpu/value”h]”hŒ˜# User-defined CPU entry mkdir -p /sys/kernel/config/netconsole/target1/userdata/cpu echo "1" > /sys/kernel/config/netconsole/target1/userdata/cpu/value”…”�”}”hj< sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MNhj ubhÞ)�”}”(hŒOutput might look like::”h]”hŒOutput might look like:”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MRhj ubj$)�”}”(hŒQ12,607,22085407756,-;This is a message cpu=1 cpu=42 # kernel-populated value”h]”hŒQ12,607,22085407756,-;This is a message cpu=1 cpu=42 # kernel-populated value”…”�”}”hjX sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MThj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jM hjo h²hh³hÇh´Nubeh}”(h]”Œ&cpu-number-auto-population-in-userdata”ah ]”h"]”Œ&cpu number auto population in userdata”ah$]”h&]”uh1hÈhjƒh²hh³hÇh´M/ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ&Message ID auto population in userdata”h]”hŒ&Message ID auto population in userdata”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjt h²hh³hÇh´MZubhÞ)�”}”(hX2Within the netconsole configfs hierarchy, there is a file named `msgid_enabled` located in the `userdata` directory. This file controls the message ID auto-population feature, which assigns a numeric id to each message sent to a given target and appends the ID to userdata dictionary in every message sent.”h]”(hŒ@Within the netconsole configfs hierarchy, there is a file named ”…”�”}”(hj… h²hh³Nh´Nubj )�”}”(hŒ`msgid_enabled`”h]”hŒ msgid_enabled”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj… ubhŒ located in the ”…”�”}”(hj… h²hh³Nh´Nubj )�”}”(hŒ `userdata`”h]”hŒuserdata”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj… ubhŒÉ directory. This file controls the message ID auto-population feature, which assigns a numeric id to each message sent to a given target and appends the ID to userdata dictionary in every message sent.”…”�”}”(hj… h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M\hjt h²hubhÞ)�”}”(hX—The message ID is generated using a per-target 32 bit counter that is incremented for every message sent to the target. Note that this counter will eventually wrap around after reaching uint32_t max value, so the message ID is not globally unique over time. However, it can still be used by the target to detect if messages were dropped before reaching the target by identifying gaps in the sequence of IDs.”h]”hX—The message ID is generated using a per-target 32 bit counter that is incremented for every message sent to the target. Note that this counter will eventually wrap around after reaching uint32_t max value, so the message ID is not globally unique over time. However, it can still be used by the target to detect if messages were dropped before reaching the target by identifying gaps in the sequence of IDs.”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mahjt h²hubhÞ)�”}”(hX·It is important to distinguish message IDs from the message field. Some kernel messages may never reach netconsole (for example, due to printk rate limiting). Thus, a gap in cannot be solely relied upon to indicate that a message was dropped during transmission, as it may never have been sent via netconsole. The message ID, on the other hand, is only assigned to messages that are actually transmitted via netconsole.”h]”hX·It is important to distinguish message IDs from the message field. Some kernel messages may never reach netconsole (for example, due to printk rate limiting). Thus, a gap in cannot be solely relied upon to indicate that a message was dropped during transmission, as it may never have been sent via netconsole. The message ID, on the other hand, is only assigned to messages that are actually transmitted via netconsole.”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhhjt h²hubhÞ)�”}”(hŒ Example::”h]”hŒExample:”…”�”}”(hjÓ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mohjt h²hubj$)�”}”(hŒ§echo "This is message #1" > /dev/kmsg echo "This is message #2" > /dev/kmsg 13,434,54928466,-;This is message #1 msgid=1 13,435,54934019,-;This is message #2 msgid=2”h]”hŒ§echo "This is message #1" > /dev/kmsg echo "This is message #2" > /dev/kmsg 13,434,54928466,-;This is message #1 msgid=1 13,435,54934019,-;This is message #2 msgid=2”…”�”}”hjá sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´Mqhjt h²hubeh}”(h]”Œ&message-id-auto-population-in-userdata”ah ]”h"]”Œ&message id auto population in userdata”ah$]”h&]”uh1hÈhjƒh²hh³hÇh´MZubeh}”(h]”Œdynamic-reconfiguration”ah ]”h"]”Œdynamic reconfiguration:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KfubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒExtended console:”h]”hŒExtended console:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÿ h²hh³hÇh´MzubhÞ)�”}”(hŒ˜If '+' is prefixed to the configuration line or "extended" config file is set to 1, extended console support is enabled. An example boot param follows::”h]”hŒŸIf ‘+’ is prefixed to the configuration line or “extendedâ€� config file is set to 1, extended console support is enabled. An example boot param follows:”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M|hjÿ h²hubj$)�”}”(hŒDlinux netconsole=+4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc”h]”hŒDlinux netconsole=+4444@10.0.0.1/eth1,9353@10.0.0.2/12:34:56:78:9a:bc”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M€hjÿ h²hubhÞ)�”}”(hŒsLog messages are transmitted with extended metadata header in the following format which is the same as /dev/kmsg::”h]”hŒrLog messages are transmitted with extended metadata header in the following format which is the same as /dev/kmsg:”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‚hjÿ h²hubj$)�”}”(hŒ7,,,;”h]”hŒ7,,,;”…”�”}”hj: sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M…hjÿ h²hubhÞ)�”}”(hŒsIf 'r' (release) feature is enabled, the kernel release version is prepended to the start of the message. Example::”h]”hŒvIf ‘r’ (release) feature is enabled, the kernel release version is prepended to the start of the message. Example:”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M‡hjÿ h²hubj$)�”}”(hŒ;6.4.0,6,444,501151268,-;netconsole: network logging started”h]”hŒ;6.4.0,6,444,501151268,-;netconsole: network logging started”…”�”}”hjV sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MŠhjÿ h²hubhÞ)�”}”(hŒ¥Non printable characters in are escaped using "\xff" notation. If the message contains optional dictionary, verbatim newline is used as the delimiter.”h]”hŒ©Non printable characters in are escaped using “xffâ€� notation. If the message contains optional dictionary, verbatim newline is used as the delimiter.”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MŒhjÿ h²hubhÞ)�”}”(hŒÄIf a message doesn't fit in certain number of bytes (currently 1000), the message is split into multiple fragments by netconsole. These fragments are transmitted with "ncfrag" header field added::”h]”hŒÉIf a message doesn’t fit in certain number of bytes (currently 1000), the message is split into multiple fragments by netconsole. These fragments are transmitted with “ncfragâ€� header field added:”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M�hjÿ h²hubj$)�”}”(hŒ"ncfrag=/”h]”hŒ"ncfrag=/”…”�”}”hj€ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M”hjÿ h²hubhÞ)�”}”(hŒuFor example, assuming a lot smaller chunk size, a message "the first chunk, the 2nd chunk." may be split as follows::”h]”hŒxFor example, assuming a lot smaller chunk size, a message “the first chunk, the 2nd chunk.â€� may be split as follows:”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M–hjÿ h²hubj$)�”}”(hŒY6,416,1758426,-,ncfrag=0/31;the first chunk, 6,416,1758426,-,ncfrag=16/31; the 2nd chunk.”h]”hŒY6,416,1758426,-,ncfrag=0/31;the first chunk, 6,416,1758426,-,ncfrag=16/31; the 2nd chunk.”…”�”}”hjœ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M™hjÿ h²hubeh}”(h]”Œextended-console”ah ]”h"]”Œextended console:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MzubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMiscellaneous notes:”h]”hŒMiscellaneous notes:”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj² h²hh³hÇh´M�ubjä )�”}”(hŒ¦the default target ethernet setting uses the broadcast ethernet address to send packets, which can cause increased load on other systems on the same ethernet segment.”h]”hÞ)�”}”(hŒ¦the default target ethernet setting uses the broadcast ethernet address to send packets, which can cause increased load on other systems on the same ethernet segment.”h]”hŒ¦the default target ethernet setting uses the broadcast ethernet address to send packets, which can cause increased load on other systems on the same ethernet segment.”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M¡hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jã hj² h²hh³hÇh´NubhŒtip”“”)�”}”(hŒ¼some LAN switches may be configured to suppress ethernet broadcasts so it is advised to explicitly specify the remote agents' MAC addresses from the config parameters passed to netconsole.”h]”hÞ)�”}”(hŒ¼some LAN switches may be configured to suppress ethernet broadcasts so it is advised to explicitly specify the remote agents' MAC addresses from the config parameters passed to netconsole.”h]”hŒ¾some LAN switches may be configured to suppress ethernet broadcasts so it is advised to explicitly specify the remote agents’ MAC addresses from the config parameters passed to netconsole.”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M§hjÝ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛ hj² h²hh³hÇh´NubjÜ )�”}”(hŒzto find out the MAC address of, say, 10.0.0.2, you may try using:: ping -c 1 10.0.0.2 ; /sbin/arp -n | grep 10.0.0.2”h]”(hÞ)�”}”(hŒBto find out the MAC address of, say, 10.0.0.2, you may try using::”h]”hŒAto find out the MAC address of, say, 10.0.0.2, you may try using:”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M­hjõ ubj$)�”}”(hŒ1ping -c 1 10.0.0.2 ; /sbin/arp -n | grep 10.0.0.2”h]”hŒ1ping -c 1 10.0.0.2 ; /sbin/arp -n | grep 10.0.0.2”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´M¯hjõ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÛ hj² h²hh³hÇh´NubjÜ )�”}”(hŒåin case the remote logging agent is on a separate LAN subnet than the sender, it is suggested to try specifying the MAC address of the default gateway (you may use /sbin/route -n to find it out) as the remote MAC address instead.”h]”hÞ)�”}”(hŒåin case the remote logging agent is on a separate LAN subnet than the sender, it is suggested to try specifying the MAC address of the default gateway (you may use /sbin/route -n to find it out) as the remote MAC address instead.”h]”hŒåin case the remote logging agent is on a separate LAN subnet than the sender, it is suggested to try specifying the MAC address of the default gateway (you may use /sbin/route -n to find it out) as the remote MAC address instead.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M³hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛ hj² h²hh³hÇh´NubjN )�”}”(hŒôthe network device (eth1 in the above case) can run any kind of other network traffic, netconsole is not intrusive. Netconsole might cause slight delays in other traffic if the volume of kernel messages is high, but should have no other impact.”h]”hÞ)�”}”(hŒôthe network device (eth1 in the above case) can run any kind of other network traffic, netconsole is not intrusive. Netconsole might cause slight delays in other traffic if the volume of kernel messages is high, but should have no other impact.”h]”hŒôthe network device (eth1 in the above case) can run any kind of other network traffic, netconsole is not intrusive. Netconsole might cause slight delays in other traffic if the volume of kernel messages is high, but should have no other impact.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mºhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jM hj² h²hh³hÇh´NubjN )�”}”(hXBif you find that the remote logging agent is not receiving or printing all messages from the sender, it is likely that you have set the "console_loglevel" parameter (on the sender) to only send high priority messages to the console. You can change this at runtime using:: dmesg -n 8 or by specifying "debug" on the kernel command line at boot, to send all kernel messages to the console. A specific value for this parameter can also be set using the "loglevel" kernel boot option. See the dmesg(8) man page and Documentation/admin-guide/kernel-parameters.rst for details.”h]”(hÞ)�”}”(hXif you find that the remote logging agent is not receiving or printing all messages from the sender, it is likely that you have set the "console_loglevel" parameter (on the sender) to only send high priority messages to the console. You can change this at runtime using::”h]”hXif you find that the remote logging agent is not receiving or printing all messages from the sender, it is likely that you have set the “console_loglevelâ€� parameter (on the sender) to only send high priority messages to the console. You can change this at runtime using:”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÁhjKubj$)�”}”(hŒ dmesg -n 8”h]”hŒ dmesg -n 8”…”�”}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j#h³hÇh´MÆhjKubhÞ)�”}”(hX or by specifying "debug" on the kernel command line at boot, to send all kernel messages to the console. A specific value for this parameter can also be set using the "loglevel" kernel boot option. See the dmesg(8) man page and Documentation/admin-guide/kernel-parameters.rst for details.”h]”hX(or by specifying “debugâ€� on the kernel command line at boot, to send all kernel messages to the console. A specific value for this parameter can also be set using the “loglevelâ€� kernel boot option. See the dmesg(8) man page and Documentation/admin-guide/kernel-parameters.rst for details.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÈhjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jM hj² h²hh³hÇh´NubhÞ)�”}”(hX…Netconsole was designed to be as instantaneous as possible, to enable the logging of even the most critical kernel bugs. It works from IRQ contexts as well, and does not enable interrupts while sending packets. Due to these unique needs, configuration cannot be more automatic, and some fundamental limitations will remain: only IP networks, UDP packets and ethernet devices are supported.”h]”hX…Netconsole was designed to be as instantaneous as possible, to enable the logging of even the most critical kernel bugs. It works from IRQ contexts as well, and does not enable interrupts while sending packets. Due to these unique needs, configuration cannot be more automatic, and some fundamental limitations will remain: only IP networks, UDP packets and ethernet devices are supported.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MÎhj² h²hubeh}”(h]”Œmiscellaneous-notes”ah ]”h"]”Œmiscellaneous notes:”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M�ubeh}”(h]”Œ netconsole”ah ]”h"]”Œ netconsole”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”jLŒfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j¿Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jšj—jjþj€j}jü jù j j jÏ jÌ jl ji jq jn jô jñ j¯ j¬ j’j�uŒ nametypes”}”(jš‰j‰j€‰jü ‰j ‰jÏ ‰jl ‰jq ‰jô ‰j¯ ‰j’‰uh}”(j—hÊjþjÏj}jjù jƒj j‚jÌ j! ji jÒ jn jo jñ jt j¬ jÿ j�j² uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.