€• òŒ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/admin-guide/sysrq”Œ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/admin-guide/sysrq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/it_IT/admin-guide/sysrq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ja_JP/admin-guide/sysrq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ%/translations/ko_KR/admin-guide/sysrq”Œ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/admin-guide/sysrq”Œ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/admin-guide/sysrq”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ$Linux Magic System Request Key Hacks”h]”hŒ$Linux Magic System Request Key Hacks”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ?/var/lib/git/docbuild/linux/Documentation/admin-guide/sysrq.rst”h´KubhŒ paragraph”“”)�”}”(hŒDocumentation for sysrq.c”h]”hŒDocumentation for sysrq.c”…”�”}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒWhat is the magic SysRq key?”h]”hŒWhat is the magic SysRq key?”…”�”}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhÛh²hh³hÊh´KubhÌ)�”}”(hŒ”It is a 'magical' key combo you can hit which the kernel will respond to regardless of whatever else it is doing, unless it is completely locked up.”h]”hŒ˜It is a ‘magical’ key combo you can hit which the kernel will respond to regardless of whatever else it is doing, unless it is completely locked up.”…”�”}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hhÛh²hubeh}”(h]”Œwhat-is-the-magic-sysrq-key”ah ]”h"]”Œwhat is the magic sysrq key?”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ$How do I enable the magic SysRq key?”h]”hŒ$How do I enable the magic SysRq key?”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjh²hh³hÊh´K ubhÌ)�”}”(hXšYou need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when configuring the kernel. When running a kernel with SysRq compiled in, /proc/sys/kernel/sysrq controls the functions allowed to be invoked via the SysRq key. The default value in this file is set by the CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:”h]”hX¢You need to say “yesâ€� to ‘Magic SysRq key (CONFIG_MAGIC_SYSRQ)’ when configuring the kernel. When running a kernel with SysRq compiled in, /proc/sys/kernel/sysrq controls the functions allowed to be invoked via the SysRq key. The default value in this file is set by the CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjh²hubhŒ block_quote”“”)�”}”(hXI- 0 - disable sysrq completely - 1 - enable all functions of sysrq - >1 - bitmask of allowed sysrq functions (see below for detailed function description):: 2 = 0x2 - enable control of console logging level 4 = 0x4 - enable control of keyboard (SAK, unraw) 8 = 0x8 - enable debugging dumps of processes etc. 16 = 0x10 - enable sync command 32 = 0x20 - enable remount read-only 64 = 0x40 - enable signalling of processes (term, kill, oom-kill) 128 = 0x80 - allow reboot/poweroff 256 = 0x100 - allow nicing of all RT tasks ”h]”hŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ0 - disable sysrq completely”h]”hÌ)�”}”(hj0h]”hŒ0 - disable sysrq completely”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj)ubj-)�”}”(hŒ!1 - enable all functions of sysrq”h]”hÌ)�”}”(hjGh]”hŒ!1 - enable all functions of sysrq”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj)ubj-)�”}”(hXð>1 - bitmask of allowed sysrq functions (see below for detailed function description):: 2 = 0x2 - enable control of console logging level 4 = 0x4 - enable control of keyboard (SAK, unraw) 8 = 0x8 - enable debugging dumps of processes etc. 16 = 0x10 - enable sync command 32 = 0x20 - enable remount read-only 64 = 0x40 - enable signalling of processes (term, kill, oom-kill) 128 = 0x80 - allow reboot/poweroff 256 = 0x100 - allow nicing of all RT tasks ”h]”(hÌ)�”}”(hŒW>1 - bitmask of allowed sysrq functions (see below for detailed function description)::”h]”hŒV>1 - bitmask of allowed sysrq functions (see below for detailed function description):”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj\ubhŒ literal_block”“”)�”}”(hX~ 2 = 0x2 - enable control of console logging level 4 = 0x4 - enable control of keyboard (SAK, unraw) 8 = 0x8 - enable debugging dumps of processes etc. 16 = 0x10 - enable sync command 32 = 0x20 - enable remount read-only 64 = 0x40 - enable signalling of processes (term, kill, oom-kill) 128 = 0x80 - allow reboot/poweroff 256 = 0x100 - allow nicing of all RT tasks”h]”hX~ 2 = 0x2 - enable control of console logging level 4 = 0x4 - enable control of keyboard (SAK, unraw) 8 = 0x8 - enable debugging dumps of processes etc. 16 = 0x10 - enable sync command 32 = 0x20 - enable remount read-only 64 = 0x40 - enable signalling of processes (term, kill, oom-kill) 128 = 0x80 - allow reboot/poweroff 256 = 0x100 - allow nicing of all RT tasks”…”�”}”hjpsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jnh³hÊh´Khj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j,hj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j'h³hÊh´Khj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j!h³hÊh´Khjh²hubhÌ)�”}”(hŒ/proc/sys/kernel/sysrq”h]”hŒ%echo "number" >/proc/sys/kernel/sysrq”…”�”}”hj¢sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jnh³hÊh´K&hjh²hubhÌ)�”}”(hŒŸThe number may be written here either as decimal or as hexadecimal with the 0x prefix. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE must always be written in hexadecimal.”h]”hŒŸThe number may be written here either as decimal or as hexadecimal with the 0x prefix. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE must always be written in hexadecimal.”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K(hjh²hubhÌ)�”}”(hŒÍNote that the value of ``/proc/sys/kernel/sysrq`` influences only the invocation via a keyboard. Invocation of any operation via ``/proc/sysrq-trigger`` is always allowed (by a user with admin privileges).”h]”(hŒNote that the value of ”…”�”}”(hj¾h²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``/proc/sys/kernel/sysrq``”h]”hŒ/proc/sys/kernel/sysrq”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¾ubhŒP influences only the invocation via a keyboard. Invocation of any operation via ”…”�”}”(hj¾h²hh³Nh´NubjÇ)�”}”(hŒ``/proc/sysrq-trigger``”h]”hŒ/proc/sysrq-trigger”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¾ubhŒ5 is always allowed (by a user with admin privileges).”…”�”}”(hj¾h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K,hjh²hubeh}”(h]”Œ#how-do-i-enable-the-magic-sysrq-key”ah ]”h"]”Œ$how do i enable the magic sysrq key?”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)�”}”(hhh]”(h»)�”}”(hŒ!How do I use the magic SysRq key?”h]”hŒ!How do I use the magic SysRq key?”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjúh²hh³hÊh´K1ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hX�On x86 You press the key combo `ALT-SysRq-`. .. note:: Some keyboards may not have a key labeled 'SysRq'. The 'SysRq' key is also known as the 'Print Screen' key. Also some keyboards cannot handle so many keys being pressed at the same time, so you might have better luck with press `Alt`, press `SysRq`, release `SysRq`, press ``, release everything. ”h]”(hŒterm”“”)�”}”(hŒOn x86”h]”hŒOn x86”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K`.”h]”(hŒYou press the key combo ”…”�”}”(hj+h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`ALT-SysRq-`”h]”hŒALT-SysRq-”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hj+ubhŒ.”…”�”}”(hj+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K4hj(ubhŒnote”“”)�”}”(hX5Some keyboards may not have a key labeled 'SysRq'. The 'SysRq' key is also known as the 'Print Screen' key. Also some keyboards cannot handle so many keys being pressed at the same time, so you might have better luck with press `Alt`, press `SysRq`, release `SysRq`, press ``, release everything.”h]”hÌ)�”}”(hX5Some keyboards may not have a key labeled 'SysRq'. The 'SysRq' key is also known as the 'Print Screen' key. Also some keyboards cannot handle so many keys being pressed at the same time, so you might have better luck with press `Alt`, press `SysRq`, release `SysRq`, press ``, release everything.”h]”(hŒðSome keyboards may not have a key labeled ‘SysRq’. The ‘SysRq’ key is also known as the ‘Print Screen’ key. Also some keyboards cannot handle so many keys being pressed at the same time, so you might have better luck with press ”…”�”}”(hjSh²hh³Nh´Nubj4)�”}”(hŒ`Alt`”h]”hŒAlt”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjSubhŒ, press ”…”�”}”(hjSh²hh³Nh´Nubj4)�”}”(hŒ`SysRq`”h]”hŒSysRq”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjSubhŒ , release ”…”�”}”(hjSh²hh³Nh´Nubj4)�”}”(hŒ`SysRq`”h]”hŒSysRq”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjSubhŒ, press ”…”�”}”hjSsbj4)�”}”(hŒ``”h]”hŒ ”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjSubhŒ, release everything.”…”�”}”(hjSh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jMhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K`, I believe. ”h]”(j)�”}”(hŒOn SPARC”h]”hŒOn SPARC”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K?hj»ubj')�”}”(hhh]”hÌ)�”}”(hŒ.You press `ALT-STOP-`, I believe.”h]”(hŒ You press ”…”�”}”(hjÐh²hh³Nh´Nubj4)�”}”(hŒ`ALT-STOP-`”h]”hŒALT-STOP-”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjÐubhŒ , I believe.”…”�”}”(hjÐh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K?hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´K?hj h²hubj)�”}”(hŒ±On the serial console (PC style standard serial ports only) You send a ``BREAK``, then within 5 seconds a command key. Sending ``BREAK`` twice is interpreted as a normal BREAK. ”h]”(j)�”}”(hŒ;On the serial console (PC style standard serial ports only)”h]”hŒ;On the serial console (PC style standard serial ports only)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KChjüubj')�”}”(hhh]”hÌ)�”}”(hŒtYou send a ``BREAK``, then within 5 seconds a command key. Sending ``BREAK`` twice is interpreted as a normal BREAK.”h]”(hŒ You send a ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒ ``BREAK``”h]”hŒBREAK”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒ/, then within 5 seconds a command key. Sending ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒ ``BREAK``”h]”hŒBREAK”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒ( twice is interpreted as a normal BREAK.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KBhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KChj h²hubj)�”}”(hŒ}On PowerPC Press `ALT - Print Screen` (or `F13`) - ``. `Print Screen` (or `F13`) - `` may suffice. ”h]”(j)�”}”(hŒ On PowerPC”h]”hŒ On PowerPC”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KGhjOubj')�”}”(hhh]”hÌ)�”}”(hŒqPress `ALT - Print Screen` (or `F13`) - ``. `Print Screen` (or `F13`) - `` may suffice.”h]”(hŒPress ”…”�”}”(hjdh²hh³Nh´Nubj4)�”}”(hŒ`ALT - Print Screen`”h]”hŒALT - Print Screen”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ (or ”…”�”}”(hjdh²hh³Nh´Nubj4)�”}”(hŒ`F13`”h]”hŒF13”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ) - ”…”�”}”(hjdh²hh³Nh´Nubj4)�”}”(hŒ``”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ. ”…”�”}”(hjdh²hh³Nh´Nubj4)�”}”(hŒ`Print Screen`”h]”hŒ Print Screen”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ (or ”…”�”}”hjdsbj4)�”}”(hŒ`F13`”h]”hŒF13”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ) - ”…”�”}”hjdsbj4)�”}”(hŒ``”h]”hŒ ”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjdubhŒ may suffice.”…”�”}”(hjdh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KFhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KGhj h²hubj)�”}”(hŒvOn other If you know of the key combos for other architectures, please submit a patch to be included in this section. ”h]”(j)�”}”(hŒOn other”h]”hŒOn other”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KKhjêubj')�”}”(hhh]”hÌ)�”}”(hŒlIf you know of the key combos for other architectures, please submit a patch to be included in this section.”h]”hŒlIf you know of the key combos for other architectures, please submit a patch to be included in this section.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KJhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KKhj h²hubj)�”}”(hXÔOn all Write a single character to /proc/sysrq-trigger. Only the first character is processed, the rest of the string is ignored. However, it is not recommended to write any extra characters as the behavior is undefined and might change in the future versions. E.g.:: echo t > /proc/sysrq-trigger Alternatively, write multiple characters prepended by underscore. This way, all characters will be processed. E.g.:: echo _reisub > /proc/sysrq-trigger ”h]”(j)�”}”(hŒOn all”h]”hŒOn all”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KYhjubj')�”}”(hhh]”(hÌ)�”}”(hXWrite a single character to /proc/sysrq-trigger. Only the first character is processed, the rest of the string is ignored. However, it is not recommended to write any extra characters as the behavior is undefined and might change in the future versions. E.g.::”h]”hXWrite a single character to /proc/sysrq-trigger. Only the first character is processed, the rest of the string is ignored. However, it is not recommended to write any extra characters as the behavior is undefined and might change in the future versions. E.g.:”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KNhj+ubjo)�”}”(hŒecho t > /proc/sysrq-trigger”h]”hŒecho t > /proc/sysrq-trigger”…”�”}”hj<sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jnh³hÊh´KThj+ubhÌ)�”}”(hŒtAlternatively, write multiple characters prepended by underscore. This way, all characters will be processed. E.g.::”h]”hŒsAlternatively, write multiple characters prepended by underscore. This way, all characters will be processed. E.g.:”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KVhj+ubjo)�”}”(hŒ"echo _reisub > /proc/sysrq-trigger”h]”hŒ"echo _reisub > /proc/sysrq-trigger”…”�”}”hjXsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jnh³hÊh´KYhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´KYhj h²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hjúh²hh³Nh´NubhÌ)�”}”(hŒ&The `` is case sensitive.”h]”(hŒThe ”…”�”}”(hjxh²hh³Nh´Nubj4)�”}”(hŒ``”h]”hŒ ”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjxubhŒ is case sensitive.”…”�”}”(hjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K[hjúh²hubeh}”(h]”Œ how-do-i-use-the-magic-sysrq-key”ah ]”h"]”Œ!how do i use the magic sysrq key?”ah$]”h&]”uh1hµhh·h²hh³hÊh´K1ubh¶)�”}”(hhh]”(h»)�”}”(hŒWhat are the 'command' keys?”h]”hŒ What are the ‘command’ keys?”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj h²hh³hÊh´K^ubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j»hj¸ubj¼)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KCuh1j»hj¸ubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒCommand”h]”hŒCommand”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KahjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjØubjÜ)�”}”(hhh]”hÌ)�”}”(hŒFunction”h]”hŒFunction”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kahjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjØubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑhj¸ubhŒtbody”“”)�”}”(hhh]”(j×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``b``”h]”jÇ)�”}”(hj$h]”hŒb”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kchjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubjÜ)�”}”(hhh]”hÌ)�”}”(hŒLWill immediately reboot the system without syncing or unmounting your disks.”h]”hŒLWill immediately reboot the system without syncing or unmounting your disks.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kchj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``c``”h]”jÇ)�”}”(hjdh]”hŒc”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kfhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj\ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒHWill perform a system crash and a crashdump will be taken if configured.”h]”hŒHWill perform a system crash and a crashdump will be taken if configured.”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kfhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``d``”h]”jÇ)�”}”(hj¤h]”hŒd”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KihjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjœubjÜ)�”}”(hhh]”hÌ)�”}”(hŒShows all locks that are held.”h]”hŒShows all locks that are held.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kihj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``e``”h]”jÇ)�”}”(hjäh]”hŒe”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kkhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÜubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ1Send a SIGTERM to all processes, except for init.”h]”hŒ1Send a SIGTERM to all processes, except for init.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kkhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``f``”h]”jÇ)�”}”(hj$h]”hŒf”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kmhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubjÜ)�”}”(hhh]”hÌ)�”}”(hŒaWill call the oom killer to kill a memory hog process, but do not panic if nothing can be killed.”h]”hŒaWill call the oom killer to kill a memory hog process, but do not panic if nothing can be killed.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kmhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``g``”h]”jÇ)�”}”(hjdh]”hŒg”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kphj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj\ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒUsed by kgdb (kernel debugger)”h]”hŒUsed by kgdb (kernel debugger)”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``h``”h]”jÇ)�”}”(hj¤h]”hŒh”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KrhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjœubjÜ)�”}”(hhh]”hÌ)�”}”(hŒuWill display help (actually any other key than those listed here will display help. but ``h`` is easy to remember :-)”h]”(hŒXWill display help (actually any other key than those listed here will display help. but ”…”�”}”(hjÂh²hh³Nh´NubjÇ)�”}”(hŒ``h``”h]”hŒh”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÂubhŒ is easy to remember :-)”…”�”}”(hjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Krhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``i``”h]”jÇ)�”}”(hjöh]”hŒi”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kuhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ1Send a SIGKILL to all processes, except for init.”h]”hŒ1Send a SIGKILL to all processes, except for init.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kuhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``j``”h]”jÇ)�”}”(hj6h]”hŒj”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kwhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj.ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒCForcibly "Just thaw it" - filesystems frozen by the FIFREEZE ioctl.”h]”hŒGForcibly “Just thaw itâ€� - filesystems frozen by the FIFREEZE ioctl.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KwhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``k``”h]”jÇ)�”}”(hjvh]”hŒk”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kyhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjnubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ}Secure Access Key (SAK) Kills all programs on the current virtual console. NOTE: See important comments below in SAK section.”h]”hŒ}Secure Access Key (SAK) Kills all programs on the current virtual console. NOTE: See important comments below in SAK section.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kyhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``l``”h]”jÇ)�”}”(hj¶h]”hŒl”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj®ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ,Shows a stack backtrace for all active CPUs.”h]”hŒ,Shows a stack backtrace for all active CPUs.”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K|hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``m``”h]”jÇ)�”}”(hjöh]”hŒm”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ.Will dump current memory info to your console.”h]”hŒ.Will dump current memory info to your console.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K~hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``n``”h]”jÇ)�”}”(hj6h]”hŒn”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj.ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒUsed to make RT tasks nice-able”h]”hŒUsed to make RT tasks nice-able”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K€hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``o``”h]”jÇ)�”}”(hjvh]”hŒo”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjtubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‚hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjnubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ8Will shut your system off (if configured and supported).”h]”hŒ8Will shut your system off (if configured and supported).”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‚hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``p``”h]”jÇ)�”}”(hj¶h]”hŒp”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K„hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj®ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ:Will dump the current registers and flags to your console.”h]”hŒ:Will dump the current registers and flags to your console.”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K„hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``q``”h]”jÇ)�”}”(hjöh]”hŒq”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K†hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubjÜ)�”}”(hhh]”hÌ)�”}”(hŒˆWill dump per CPU lists of all armed hrtimers (but NOT regular timer_list timers) and detailed information about all clockevent devices.”h]”hŒˆWill dump per CPU lists of all armed hrtimers (but NOT regular timer_list timers) and detailed information about all clockevent devices.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K†hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``r``”h]”jÇ)�”}”(hj6 h]”hŒr”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj4 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ1Turns off keyboard raw mode and sets it to XLATE.”h]”hŒ1Turns off keyboard raw mode and sets it to XLATE.”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŠhjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``s``”h]”jÇ)�”}”(hjv h]”hŒs”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŒhjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ-Will attempt to sync all mounted filesystems.”h]”hŒ-Will attempt to sync all mounted filesystems.”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŒhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``t``”h]”jÇ)�”}”(hj¶ h]”hŒt”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhj± ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒHWill dump a list of current tasks and their information to your console.”h]”hŒHWill dump a list of current tasks and their information to your console.”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KŽhjÑ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``u``”h]”jÇ)�”}”(hjö h]”hŒu”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hjñ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjî ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ:Will attempt to remount all mounted filesystems read-only.”h]”hŒ:Will attempt to remount all mounted filesystems read-only.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K‘hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjî ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``v``”h]”jÇ)�”}”(hj6 h]”hŒv”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj4 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K“hj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ'Forcefully restores framebuffer console”h]”hŒ'Forcefully restores framebuffer console”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K“hjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``v``”h]”jÇ)�”}”(hjv h]”hŒv”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ%Causes ETM buffer dump [ARM-specific]”h]”hŒ%Causes ETM buffer dump [ARM-specific]”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K”hj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``w``”h]”jÇ)�”}”(hj¶ h]”hŒw”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K–hj± ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ8Dumps tasks that are in uninterruptible (blocked) state.”h]”hŒ8Dumps tasks that are in uninterruptible (blocked) state.”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K–hjÑ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``x``”h]”jÇ)�”}”(hjö h]”hŒx”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K˜hjñ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjî ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒtUsed by xmon interface on ppc/powerpc platforms. Show global PMU Registers on sparc64. Dump all TLB entries on MIPS.”h]”hŒtUsed by xmon interface on ppc/powerpc platforms. Show global PMU Registers on sparc64. Dump all TLB entries on MIPS.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K˜hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjî ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``y``”h]”jÇ)�”}”(hj6 h]”hŒy”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj4 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kœhj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ-Show global CPU Registers [SPARC-64 specific]”h]”hŒ-Show global CPU Registers [SPARC-64 specific]”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KœhjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj. ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``z``”h]”jÇ)�”}”(hjv h]”hŒz”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kžhjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒDump the ftrace buffer”h]”hŒDump the ftrace buffer”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kžhj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjn ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ ``0``-``9``”h]”(jÇ)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ ubhŒ-”…”�”}”(hj´ h²hh³Nh´NubjÇ)�”}”(hŒ``9``”h]”hŒ9”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj´ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hj± ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒÖSets the console log level, controlling which kernel messages will be printed to your console. (``0``, for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)”h]”(hŒ`Sets the console log level, controlling which kernel messages will be printed to your console. (”…”�”}”(hjç h²hh³Nh´NubjÇ)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjç ubhŒq, for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)”…”�”}”(hjç h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hjä ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj® ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubj×)�”}”(hhh]”(jÜ)�”}”(hhh]”hÌ)�”}”(hŒ``R``”h]”jÇ)�”}”(hj h]”hŒR”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¥hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj ubjÜ)�”}”(hhh]”hÌ)�”}”(hŒ+Replay the kernel log messages on consoles.”h]”hŒ+Replay the kernel log messages on consoles.”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¥hj6 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j¶hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1j±hj h²hh³hÊh´Nubeh}”(h]”Œwhat-are-the-command-keys”ah ]”h"]”Œwhat are the 'command' keys?”ah$]”h&]”uh1hµhh·h²hh³hÊh´K^ubh¶)�”}”(hhh]”(h»)�”}”(hŒ!Okay, so what can I use them for?”h]”hŒ!Okay, so what can I use them for?”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjn h²hh³hÊh´K©ubhÌ)�”}”(hŒMWell, unraw(r) is very handy when your X server or a svgalib program crashes.”h]”hŒMWell, unraw(r) is very handy when your X server or a svgalib program crashes.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K«hjn h²hubhÌ)�”}”(hXDsak(k) (Secure Access Key) is useful when you want to be sure there is no trojan program running at console which could grab your password when you would try to login. It will kill all programs on given console, thus letting you make sure that the login prompt you see is actually the one from init, not some trojan program.”h]”hXDsak(k) (Secure Access Key) is useful when you want to be sure there is no trojan program running at console which could grab your password when you would try to login. It will kill all programs on given console, thus letting you make sure that the login prompt you see is actually the one from init, not some trojan program.”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K­hjn h²hubhŒ important”“”)�”}”(hŒsIn its true form it is not a true SAK like the one in a c2 compliant system, and it should not be mistaken as such.”h]”hÌ)�”}”(hŒsIn its true form it is not a true SAK like the one in a c2 compliant system, and it should not be mistaken as such.”h]”hŒsIn its true form it is not a true SAK like the one in a c2 compliant system, and it should not be mistaken as such.”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kµhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› hjn h²hh³hÊh´NubhÌ)�”}”(hŒ¶It seems others find it useful as (System Attention Key) which is useful when you want to exit a program that will not let you switch consoles. (For example, X or a svgalib program.)”h]”hŒ¶It seems others find it useful as (System Attention Key) which is useful when you want to exit a program that will not let you switch consoles. (For example, X or a svgalib program.)”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K¹hjn h²hubhÌ)�”}”(hŒj``reboot(b)`` is good when you're unable to shut down, it is an equivalent of pressing the "reset" button.”h]”(jÇ)�”}”(hŒ ``reboot(b)``”h]”hŒ reboot(b)”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjà ubhŒc is good when you’re unable to shut down, it is an equivalent of pressing the “resetâ€� button.”…”�”}”(hjà h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K½hjn h²hubhÌ)�”}”(hŒŸ``crash(c)`` can be used to manually trigger a crashdump when the system is hung. Note that this just triggers a crash if there is no dump mechanism available.”h]”(jÇ)�”}”(hŒ ``crash(c)``”h]”hŒcrash(c)”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjß ubhŒ“ can be used to manually trigger a crashdump when the system is hung. Note that this just triggers a crash if there is no dump mechanism available.”…”�”}”(hjß h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÀhjn h²hubhÌ)�”}”(hX``sync(s)`` is handy before yanking removable medium or after using a rescue shell that provides no graceful shutdown -- it will ensure your data is safely written to the disk. Note that the sync hasn't taken place until you see the "OK" and "Done" appear on the screen.”h]”(jÇ)�”}”(hŒ ``sync(s)``”h]”hŒsync(s)”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjû ubhX  is handy before yanking removable medium or after using a rescue shell that provides no graceful shutdown -- it will ensure your data is safely written to the disk. Note that the sync hasn’t taken place until you see the “OKâ€� and “Doneâ€� appear on the screen.”…”�”}”(hjû h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÃhjn h²hubhÌ)�”}”(hŒê``umount(u)`` can be used to mark filesystems as properly unmounted. From the running system's point of view, they will be remounted read-only. The remount isn't complete until you see the "OK" and "Done" message appear on the screen.”h]”(jÇ)�”}”(hŒ ``umount(u)``”h]”hŒ umount(u)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj ubhŒé can be used to mark filesystems as properly unmounted. From the running system’s point of view, they will be remounted read-only. The remount isn’t complete until you see the “OKâ€� and “Doneâ€� message appear on the screen.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÈhjn h²hubhÌ)�”}”(hXThe loglevels ``0``-``9`` are useful when your console is being flooded with kernel messages you do not want to see. Selecting ``0`` will prevent all but the most urgent kernel messages from reaching your console. (They will still be logged if syslogd/klogd are alive, though.)”h]”(hŒThe loglevels ”…”�”}”(hj3 h²hh³Nh´NubjÇ)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj3 ubhŒ-”…”�”}”(hj3 h²hh³Nh´NubjÇ)�”}”(hŒ``9``”h]”hŒ9”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj3 ubhŒf are useful when your console is being flooded with kernel messages you do not want to see. Selecting ”…”�”}”(hj3 h²hh³Nh´NubjÇ)�”}”(hŒ``0``”h]”hŒ0”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj3 ubhŒ‘ will prevent all but the most urgent kernel messages from reaching your console. (They will still be logged if syslogd/klogd are alive, though.)”…”�”}”(hj3 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÌhjn h²hubhÌ)�”}”(hŒ¢``term(e)`` and ``kill(i)`` are useful if you have some sort of runaway process you are unable to kill any other way, especially if it's spawning other processes.”h]”(jÇ)�”}”(hŒ ``term(e)``”h]”hŒterm(e)”…”�”}”(hj{ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjw ubhŒ and ”…”�”}”(hjw h²hh³Nh´NubjÇ)�”}”(hŒ ``kill(i)``”h]”hŒkill(i)”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjw ubhŒ‰ are useful if you have some sort of runaway process you are unable to kill any other way, especially if it’s spawning other processes.”…”�”}”(hjw h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÑhjn h²hubhÌ)�”}”(hŒ†"just thaw ``it(j)``" is useful if your system becomes unresponsive due to a frozen (probably root) filesystem via the FIFREEZE ioctl.”h]”(hŒ “just thaw ”…”�”}”(hj¥ h²hh³Nh´NubjÇ)�”}”(hŒ ``it(j)``”h]”hŒit(j)”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj¥ ubhŒtâ€� is useful if your system becomes unresponsive due to a frozen (probably root) filesystem via the FIFREEZE ioctl.”…”�”}”(hj¥ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÕhjn h²hubhÌ)�”}”(hXœ``Replay logs(R)`` is useful to view the kernel log messages when system is hung or you are not able to use dmesg command to view the messages in printk buffer. User may have to press the key combination multiple times if console system is busy. If it is completely locked up, then messages won't be printed. Output messages depend on current console loglevel, which can be modified using sysrq[0-9] (see above).”h]”(jÇ)�”}”(hŒ``Replay logs(R)``”h]”hŒReplay logs(R)”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÅ ubhXŒ is useful to view the kernel log messages when system is hung or you are not able to use dmesg command to view the messages in printk buffer. User may have to press the key combination multiple times if console system is busy. If it is completely locked up, then messages won’t be printed. Output messages depend on current console loglevel, which can be modified using sysrq[0-9] (see above).”…”�”}”(hjÅ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KØhjn h²hubeh}”(h]”Œokay-so-what-can-i-use-them-for”ah ]”h"]”Œ!okay, so what can i use them for?”ah$]”h&]”uh1hµhh·h²hh³hÊh´K©ubh¶)�”}”(hhh]”(h»)�”}”(hŒCSometimes SysRq seems to get 'stuck' after using it, what can I do?”h]”hŒGSometimes SysRq seems to get ‘stuck’ after using it, what can I do?”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjé h²hh³hÊh´KàubhÌ)�”}”(hŒ§When this happens, try tapping shift, alt and control on both sides of the keyboard, and hitting an invalid sysrq sequence again. (i.e., something like `alt-sysrq-z`).”h]”(hŒ˜When this happens, try tapping shift, alt and control on both sides of the keyboard, and hitting an invalid sysrq sequence again. (i.e., something like ”…”�”}”(hjú h²hh³Nh´Nubj4)�”}”(hŒ `alt-sysrq-z`”h]”hŒ alt-sysrq-z”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjú ubhŒ).”…”�”}”(hjú h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kâhjé h²hubhÌ)�”}”(hŒUSwitching to another virtual console (`ALT+Fn`) and then back again should also help.”h]”(hŒ&Switching to another virtual console (”…”�”}”(hjh²hh³Nh´Nubj4)�”}”(hŒ`ALT+Fn`”h]”hŒALT+Fn”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjubhŒ') and then back again should also help.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Kæhjé h²hubeh}”(h]”Œ?sometimes-sysrq-seems-to-get-stuck-after-using-it-what-can-i-do”ah ]”h"]”ŒCsometimes sysrq seems to get 'stuck' after using it, what can i do?”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kàubh¶)�”}”(hhh]”(h»)�”}”(hŒ7I hit SysRq, but nothing seems to happen, what's wrong?”h]”hŒ9I hit SysRq, but nothing seems to happen, what’s wrong?”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjBh²hh³hÊh´KêubhÌ)�”}”(hXThere are some keyboards that produce a different keycode for SysRq than the pre-defined value of 99 (see ``KEY_SYSRQ`` in ``include/uapi/linux/input-event-codes.h``), or which don't have a SysRq key at all. In these cases, run ``showkey -s`` to find an appropriate scancode sequence, and use ``setkeycodes 99`` to map this sequence to the usual SysRq code (e.g., ``setkeycodes e05b 99``). It's probably best to put this command in a boot script. Oh, and by the way, you exit ``showkey`` by not typing anything for ten seconds.”h]”(hŒjThere are some keyboards that produce a different keycode for SysRq than the pre-defined value of 99 (see ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ ``KEY_SYSRQ``”h]”hŒ KEY_SYSRQ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒ in ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ*``include/uapi/linux/input-event-codes.h``”h]”hŒ&include/uapi/linux/input-event-codes.h”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒA), or which don’t have a SysRq key at all. In these cases, run ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ``showkey -s``”h]”hŒ showkey -s”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒ3 to find an appropriate scancode sequence, and use ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ``setkeycodes 99``”h]”hŒsetkeycodes 99”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒ5 to map this sequence to the usual SysRq code (e.g., ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ``setkeycodes e05b 99``”h]”hŒsetkeycodes e05b 99”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒ[). It’s probably best to put this command in a boot script. Oh, and by the way, you exit ”…”�”}”(hjSh²hh³Nh´NubjÇ)�”}”(hŒ ``showkey``”h]”hŒshowkey”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjSubhŒ( by not typing anything for ten seconds.”…”�”}”(hjSh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KìhjBh²hubeh}”(h]”Œ4i-hit-sysrq-but-nothing-seems-to-happen-what-s-wrong”ah ]”h"]”Œ7i hit sysrq, but nothing seems to happen, what's wrong?”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kêubh¶)�”}”(hhh]”(h»)�”}”(hŒ=I want to add SysRQ key events to a module, how does it work?”h]”hŒ=I want to add SysRQ key events to a module, how does it work?”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÕh²hh³hÊh´KöubhÌ)�”}”(hXÖIn order to register a basic function with the table, you must first include the header ``include/linux/sysrq.h``, this will define everything else you need. Next, you must create a ``sysrq_key_op`` struct, and populate it with A) the key handler function you will use, B) a help_msg string, that will print when SysRQ prints help, and C) an action_msg string, that will print right before your handler is called. Your handler must conform to the prototype in 'sysrq.h'.”h]”(hŒXIn order to register a basic function with the table, you must first include the header ”…”�”}”(hjæh²hh³Nh´NubjÇ)�”}”(hŒ``include/linux/sysrq.h``”h]”hŒinclude/linux/sysrq.h”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjæubhŒE, this will define everything else you need. Next, you must create a ”…”�”}”(hjæh²hh³Nh´NubjÇ)�”}”(hŒ``sysrq_key_op``”h]”hŒ sysrq_key_op”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjæubhX struct, and populate it with A) the key handler function you will use, B) a help_msg string, that will print when SysRQ prints help, and C) an action_msg string, that will print right before your handler is called. Your handler must conform to the prototype in ‘sysrq.h’.”…”�”}”(hjæh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KøhjÕh²hubhÌ)�”}”(hX4After the ``sysrq_key_op`` is created, you can call the kernel function ``register_sysrq_key(int key, const struct sysrq_key_op *op_p);`` this will register the operation pointed to by ``op_p`` at table key 'key', if that slot in the table is blank. At module unload time, you must call the function ``unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)``, which will remove the key op pointed to by 'op_p' from the key 'key', if and only if it is currently registered in that slot. This is in case the slot has been overwritten since you registered it.”h]”(hŒ After the ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒ``sysrq_key_op``”h]”hŒ sysrq_key_op”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒ. is created, you can call the kernel function ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒA``register_sysrq_key(int key, const struct sysrq_key_op *op_p);``”h]”hŒ=register_sysrq_key(int key, const struct sysrq_key_op *op_p);”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒ0 this will register the operation pointed to by ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒ``op_p``”h]”hŒop_p”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒo at table key ‘key’, if that slot in the table is blank. At module unload time, you must call the function ”…”�”}”(hjh²hh³Nh´NubjÇ)�”}”(hŒB``unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)``”h]”hŒ>unregister_sysrq_key(int key, const struct sysrq_key_op *op_p)”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjubhŒÎ, which will remove the key op pointed to by ‘op_p’ from the key ‘key’, if and only if it is currently registered in that slot. This is in case the slot has been overwritten since you registered it.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´KÿhjÕh²hubhÌ)�”}”(hXThe Magic SysRQ system works by registering key operations against a key op lookup table, which is defined in 'drivers/tty/sysrq.c'. This key table has a number of operations registered into it at compile time, but is mutable, and 2 functions are exported for interface to it::”h]”hXThe Magic SysRQ system works by registering key operations against a key op lookup table, which is defined in ‘drivers/tty/sysrq.c’. This key table has a number of operations registered into it at compile time, but is mutable, and 2 functions are exported for interface to it:”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjÕh²hubjo)�”}”(hŒ,register_sysrq_key and unregister_sysrq_key.”h]”hŒ,register_sysrq_key and unregister_sysrq_key.”…”�”}”hj|sbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jnh³hÊh´M hjÕh²hubhÌ)�”}”(hXOf course, never ever leave an invalid pointer in the table. I.e., when your module that called register_sysrq_key() exits, it must call unregister_sysrq_key() to clean up the sysrq key table entry that it used. Null pointers in the table are always safe. :)”h]”hXOf course, never ever leave an invalid pointer in the table. I.e., when your module that called register_sysrq_key() exits, it must call unregister_sysrq_key() to clean up the sysrq key table entry that it used. Null pointers in the table are always safe. :)”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjÕh²hubhÌ)�”}”(hXIf for some reason you feel the need to call the handle_sysrq function from within a function called by handle_sysrq, you must be aware that you are in a lock (you are also in an interrupt handler, which means don't sleep!), so you must call ``__handle_sysrq_nolock`` instead.”h]”(hŒôIf for some reason you feel the need to call the handle_sysrq function from within a function called by handle_sysrq, you must be aware that you are in a lock (you are also in an interrupt handler, which means don’t sleep!), so you must call ”…”�”}”(hj˜h²hh³Nh´NubjÇ)�”}”(hŒ``__handle_sysrq_nolock``”h]”hŒ__handle_sysrq_nolock”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhj˜ubhŒ instead.”…”�”}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjÕh²hubeh}”(h]”Œ;i-want-to-add-sysrq-key-events-to-a-module-how-does-it-work”ah ]”h"]”Œ=i want to add sysrq key events to a module, how does it work?”ah$]”h&]”uh1hµhh·h²hh³hÊh´Köubh¶)�”}”(hhh]”(h»)�”}”(hŒJWhen I hit a SysRq key combination only the header appears on the console?”h]”hŒJWhen I hit a SysRq key combination only the header appears on the console?”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÀh²hh³hÊh´MubhÌ)�”}”(hXÇSysrq output is subject to the same console loglevel control as all other console output. This means that if the kernel was booted 'quiet' as is common on distro kernels the output may not appear on the actual console, even though it will appear in the dmesg buffer, and be accessible via the dmesg command and to the consumers of ``/proc/kmsg``. As a specific exception the header line from the sysrq command is passed to all console consumers as if the current loglevel was maximum. If only the header is emitted it is almost certain that the kernel loglevel is too low. Should you require the output on the console channel then you will need to temporarily up the console loglevel using `alt-sysrq-8` or::”h]”(hXPSysrq output is subject to the same console loglevel control as all other console output. This means that if the kernel was booted ‘quiet’ as is common on distro kernels the output may not appear on the actual console, even though it will appear in the dmesg buffer, and be accessible via the dmesg command and to the consumers of ”…”�”}”(hjÑh²hh³Nh´NubjÇ)�”}”(hŒ``/proc/kmsg``”h]”hŒ /proc/kmsg”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÆhjÑubhX[. As a specific exception the header line from the sysrq command is passed to all console consumers as if the current loglevel was maximum. If only the header is emitted it is almost certain that the kernel loglevel is too low. Should you require the output on the console channel then you will need to temporarily up the console loglevel using ”…”�”}”(hjÑh²hh³Nh´Nubj4)�”}”(hŒ `alt-sysrq-8`”h]”hŒ alt-sysrq-8”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j3hjÑubhŒ or:”…”�”}”(hjÑh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´MhjÀh²hubjo)�”}”(hŒecho 8 > /proc/sysrq-trigger”h]”hŒecho 8 > /proc/sysrq-trigger”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”j~juh1jnh³hÊh´M'hjÀh²hubhÌ)�”}”(hŒcRemember to return the loglevel to normal after triggering the sysrq command you are interested in.”h]”hŒcRemember to return the loglevel to normal after triggering the sysrq command you are interested in.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M)hjÀh²hubeh}”(h]”ŒIwhen-i-hit-a-sysrq-key-combination-only-the-header-appears-on-the-console”ah ]”h"]”ŒJwhen i hit a sysrq key combination only the header appears on the console?”ah$]”h&]”uh1hµhh·h²hh³hÊh´Mubh¶)�”}”(hhh]”(h»)�”}”(hŒ%I have more questions, who can I ask?”h]”hŒ%I have more questions, who can I ask?”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj'h²hh³hÊh´M-ubj )�”}”(hhh]”j)�”}”(hŒMJust ask them on the linux-kernel mailing list: linux-kernel@vger.kernel.org ”h]”(j)�”}”(hŒ/Just ask them on the linux-kernel mailing list:”h]”hŒ/Just ask them on the linux-kernel mailing list:”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M0hj;ubj')�”}”(hhh]”hÌ)�”}”(hŒlinux-kernel@vger.kernel.org”h]”hŒ reference”“”)�”}”(hjRh]”hŒlinux-kernel@vger.kernel.org”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ#mailto:linux-kernel@vger.kernel.org”uh1jThjPubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M0hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÊh´M0hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj'h²hh³hÊh´Nubeh}”(h]”Œ#i-have-more-questions-who-can-i-ask”ah ]”h"]”Œ%i have more questions, who can i ask?”ah$]”h&]”uh1hµhh·h²hh³hÊh´M-ubh¶)�”}”(hhh]”(h»)�”}”(hŒCredits”h]”hŒCredits”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj…h²hh³hÊh´M3ubj()�”}”(hhh]”(j-)�”}”(hŒ(Written by Mydraal ”h]”hÌ)�”}”(hj›h]”(hŒWritten by Mydraal <”…”�”}”(hj�h²hh³Nh´NubjU)�”}”(hŒvulpyne@vulpyne.net”h]”hŒvulpyne@vulpyne.net”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:vulpyne@vulpyne.net”uh1jThj�ubhŒ>”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M5hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–h²hh³hÊh´Nubj-)�”}”(hŒ,Updated by Adam Sulmicki ”h]”hÌ)�”}”(hjÆh]”(hŒUpdated by Adam Sulmicki <”…”�”}”(hjÈh²hh³Nh´NubjU)�”}”(hŒadam@cfar.umd.edu”h]”hŒadam@cfar.umd.edu”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:adam@cfar.umd.edu”uh1jThjÈubhŒ>”…”�”}”(hjÈh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M6hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–h²hh³hÊh´Nubj-)�”}”(hŒBUpdated by Jeremy M. Dolan 2001/01/28 10:15:59”h]”hÌ)�”}”(hjñh]”(hŒUpdated by Jeremy M. Dolan <”…”�”}”(hjóh²hh³Nh´NubjU)�”}”(hŒjmd@turbogeek.org”h]”hŒjmd@turbogeek.org”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:jmd@turbogeek.org”uh1jThjóubhŒ> 2001/01/28 10:15:59”…”�”}”(hjóh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M7hjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–h²hh³hÊh´Nubj-)�”}”(hŒ?Added to by Crutcher Dunnavant ”h]”hÌ)�”}”(hjh]”(hŒ Added to by Crutcher Dunnavant <”…”�”}”(hjh²hh³Nh´NubjU)�”}”(hŒcrutcher+kernel@datastacks.com”h]”hŒcrutcher+kernel@datastacks.com”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ%mailto:crutcher+kernel@datastacks.com”uh1jThjubhŒ>”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´M8hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j,hj–h²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jŒj�uh1j'h³hÊh´M5hj…h²hubeh}”(h]”Œcredits”ah ]”h"]”Œcredits”ah$]”h&]”uh1hµhh·h²hh³hÊh´M3ubeh}”(h]”Œ$linux-magic-system-request-key-hacks”ah ]”h"]”Œ$linux magic system request key hacks”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”jÛŒ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”}”(jXjUhÿhüj÷jôj�jšjk jh jæ jã j?j<jÒjÏj½jºj$j!j‚jjPjMuŒ nametypes”}”(jX‰hÿ‰j÷‰j�‰jk ‰jæ ‰j?‰jÒ‰j½‰j$‰j‚‰jP‰uh}”(jUh·hühÛjôjjšjújh j jã jn j<jé jÏjBjºjÕj!jÀjj'jMj…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.