จะทำให้ SysRq ทำงานบนแล็ปท็อปได้อย่างไร


12

My /proc/sys/kernel/sysrqมีหมายเลข 502 แต่ Alt + SysRq + ... ดูเหมือนจะไม่ทำงานบนแล็ปท็อป HP Pavilion ของฉัน ฉันจะแก้ไขได้อย่างไร

อัปเดต 1: ยังไงก็ตาม: ทั้งหน้าจอพิมพ์ของฉันและรหัสอื่น ๆ ไม่มีป้ายกำกับเพิ่มเติมเช่น "SysRq"

อัปเดต 2:

  • รุ่นฮาร์ดแวร์: HP Pavilion 17 Notebook PC
  • รูปแบบแป้นพิมพ์: เยอรมัน, QWERTZ

ดูเหมือนจะไม่ทำงาน
Al Klimov

คุณมีแล็ปท็อปรุ่นใดและรูปแบบแป้นพิมพ์แบบใด คุณลองใช้ปุ่มใด
Gilles 'หยุดความชั่วร้าย' ใน

ฉันได้ลองพิมพ์หน้าจอคีย์ด้วยและไม่มี Fn และมีและไม่มี CapsLock
อัล Klimov

คำตอบ:


15

แล็ปท็อปส่วนใหญ่ต้องการการกดFnเพื่อรับSysRqกุญแจ การกดFnมักจะไม่ส่งผลกระทบต่อAltปุ่ม (อย่างน้อยปุ่มซ้าย) แต่อาจส่งผลต่อตัวอักษรที่คุณกดหลังจากSysRqนั้น โชคดีที่คุณไม่จำเป็นต้องกดSysRqและปุ่มที่สามพร้อมกันก็พอที่จะAltกดค้างไว้ ลำดับต่อไปนี้ใช้ได้กับแล็ปท็อปทั้งหมดที่ฉันเคยเห็น:

  1. Altกดค้างไว้
  2. กดFn, กดSysRqปุ่มแล้วปล่อยทั้งสอง
  3. คีย์ตัวอักษรหรือเครื่องหมายวรรคตอนสั้น ๆ เช่นSการซิงค์
  4. Altปล่อย

ที่สำคัญมักจะเป็นกุญแจสำคัญเช่นเดียวกับSysRq PrintScreenหากแป้นพิมพ์ของคุณไม่มีคีย์ป้ายกำกับSysRqหรือPrintScreenอาจไม่มีรหัสที่ส่งรหัสสแกนที่ Linux คาดหวัง เพื่อจุดประสงค์ในการใช้เวทมนตร์ SysRq SysRqคีย์จะเป็นรหัสใดก็ตามที่ส่งรหัสสแกน 99

ด้วยแป้นพิมพ์ PS / 2 (รวมถึงแป้นพิมพ์ภายในของแล็ปท็อป) เพื่อค้นหารหัสสแกนที่คีย์ส่งเข้าสู่คอนโซลข้อความ (กดCtrl+ Alt+ F1เพื่อสลับไปยังคอนโซลข้อความและโดยปกติCtrl+ Alt+ F7เพื่อกลับไปที่ GUI ) showkey -sและเรียกใช้คำสั่ง showkey -sแสดงรหัสสแกนของแต่ละคีย์ขณะที่คุณพิมพ์ โดยปกติแล้วจะเป็นหนึ่งไบต์ (ตัวเลขฐานสิบหกสองหลัก) สำหรับการกดปุ่มและตามด้วยอีกไบต์สำหรับการปล่อยคีย์ e0สำหรับปุ่มไม่กี่คุณจะได้รับลำดับไบต์ที่ประกอบด้วยไบต์ที่สองเริ่มต้นด้วย กดปุ่มที่คุณสนใจจากนั้นรอ 10 วินาทีและshowkeyจะออก

ตอนนี้ที่คุณได้ระบุรหัสสแกนทำงานsetkeycodes … 99เป็นรากที่จะกำหนดว่าโค้ดสแกนไปยังคีย์รหัส 99 ตัวอย่างเช่นถ้าshowkey -sพิมพ์สำหรับคีย์ที่คุณเลือกวิ่ง0xe0 0x6f 0xe0 0xefsetkeycodes e06f 99

เพื่อให้การเปลี่ยนแปลงนี้อย่างถาวรทั้งเพิ่มsetkeycodesคำสั่ง/etc/rc.localหรือการกำหนดค่า udev จะเปลี่ยนแมป การกำหนดค่า udev เป็นทางออกสำหรับคีย์บอร์ด USB เท่านั้นsetkeycodesไม่มีผลกับคีย์บอร์ด USB


ดูเหมือนจะไม่ทำงาน
อัล Klimov

@AlKlimov คุณต้องกดปุ่ม SysRq หากแป้นพิมพ์ของคุณไม่มีคีย์ SysRq แสดงว่าเป็นปัญหา ดูคำตอบที่แก้ไขของฉัน
Gilles 'หยุดความชั่วร้าย' ใน

ฉันไม่สามารถเปิดคีย์ PrintScreen ได้ แต่ฉันสามารถเปิดได้เช่นปุ่ม F12 ของฉัน แปลกแปลก ..
อัล Klimov

Genius! ฉันลองด้วยและไม่มีปุ่ม fn หลายครั้ง แต่ไม่เคยคิดที่จะผสมกับแนวทางของคุณ ขอบคุณ!
Adam Plocher

ฉันได้รับ: setkeycodes: failed to set scancode 90 to keycode 99: ioctl KDSETKEYCODE: Invalid argument. น่าเสียดายที่ฉันมีแป้นพิมพ์ Apple บนแล็ปท็อปของฉัน
Toothrot

1

ฉันใช้แล็ปท็อป HP pavilion รุ่นใหม่กว่าปัญหาเดียวกัน สิ่งที่ใช้ได้ผลสำหรับฉันคือการกดแป้น AltGr ด้วยแป้นพิมพ์หน้าจอ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.