ผมมีปัญหากับการควบคุมความสว่างหน้าจอแล็ปท็อปของฉันและฉันคงได้โดยการเพิ่มacpi_osi=linux
และพารามิเตอร์ไปยังแฟ้มacpi_backlight=vendor
grub.cfg
ฉันต้องการทราบว่าพารามิเตอร์เหล่านี้มีความหมายอย่างไรและทำไมจึงทำงาน
ผมมีปัญหากับการควบคุมความสว่างหน้าจอแล็ปท็อปของฉันและฉันคงได้โดยการเพิ่มacpi_osi=linux
และพารามิเตอร์ไปยังแฟ้มacpi_backlight=vendor
grub.cfg
ฉันต้องการทราบว่าพารามิเตอร์เหล่านี้มีความหมายอย่างไรและทำไมจึงทำงาน
คำตอบ:
พารามิเตอร์เคอร์เนลจะถูกบันทึกไว้ kernel.org
เพื่อให้เข้าใจถึงสิ่งที่acpi_osi
ต้องทำคุณต้องรู้ว่า ACPI ทำงานอย่างไร ACPI ประกอบด้วยตารางที่เรียกว่า BIOS โหลดเข้าสู่ RAM ก่อนที่ระบบปฏิบัติการจะเริ่มต้นขึ้น บางคนก็มีข้อมูลเกี่ยวกับอุปกรณ์ที่จำเป็นในเมนบอร์ดในรูปแบบคงที่ แต่บางอย่างเช่นตาราง DSDT มีรหัส AML รหัสนี้ถูกเรียกใช้งานโดยระบบปฏิบัติการและให้โครงสร้างระบบปฏิบัติการแก่ต้นไม้ซึ่งอธิบายถึงอุปกรณ์จำนวนมากบนเมนบอร์ดและฟังก์ชั่นที่เรียกใช้ได้ซึ่งดำเนินการโดยระบบปฏิบัติการเมื่อเปิดใช้งานเช่นการประหยัดพลังงาน รหัส AML สามารถถาม OS ว่าเป็น OS ใดโดยการเรียกใช้_OSI
ฟังก์ชัน ผู้ขายมักใช้วิธีนี้เพื่อแก้ไขปัญหาเช่นรอบข้อบกพร่องใน Windows บางรุ่น
เนื่องจากผู้จำหน่ายฮาร์ดแวร์หลายรายทำการทดสอบผลิตภัณฑ์ของพวกเขาด้วย Windows รุ่นล่าสุด (ในเวลานั้น) พา ธ โค้ด "ปกติ" ที่ไม่มีการแก้ไขปัญหามักจะมีปัญหา เพราะ Linux นี้มักจะตอบว่าใช่เมื่อถูกถามว่าเป็น Windows หรือไม่ ลีนุกซ์ใช้เพื่อตอบว่าใช่เมื่อถูกถามว่าเป็น "Linux" หรือไม่, ซึ่งทำให้ผู้ขาย BIOS ทำงานกับข้อบกพร่องหรือฟังก์ชันการทำงานที่ขาดหายไปในเคอร์เนลลีนุกซ์รุ่นล่าสุด (ในเวลานั้น)แทนที่จะเปิดรายงานข้อผิดพลาดหรือจัดหาแพตช์ เมื่อข้อบกพร่องเหล่านี้ได้รับการแก้ไขการแก้ปัญหาทำให้เกิดการลงโทษประสิทธิภาพที่ไม่จำเป็นและปัญหาอื่น ๆ สำหรับรุ่น Linux ในภายหลังทั้งหมด
acpi_osi=Linux
ทำให้ Linux ตอบใช่อีกครั้งเมื่อถูกถามว่าเป็น "Linux" โดยรหัส ACPI หรือไม่จึงอนุญาตให้ใช้รหัส ACPI เพื่อเปิดใช้งานการแก้ไขปัญหาสำหรับ Linux และ / หรือปิดการใช้งานการแก้ไขปัญหาสำหรับ Windows
acpi_backlight=vendor
เปลี่ยนลำดับการตรวจสอบไดรเวอร์ ACPI สำหรับแบ็คไลท์ โดยปกติแล้ว Linux จะใช้video
ไดรเวอร์ทั่วไปเมื่อ ACPI DSDT จัดหาอุปกรณ์แบ็คไลท์ที่อ้างถึงความเข้ากันได้มาตรฐานและจะตรวจสอบไดรเวอร์เฉพาะของผู้จำหน่ายรายอื่นหากไม่พบอุปกรณ์ดังกล่าว acpi_backlight=vendor
กลับคำสั่งนี้เพื่อให้พยายามเฉพาะไดรเวอร์ของผู้ขายก่อน
ผลลัพธ์แรกของ Google สำหรับ "acpi_osi"อธิบายacpi_osi=linux
:
[... ] ไบออสมักจะปิดการใช้งานฟังก์ชั่นหากตรวจไม่พบ Windows [... ] โดยค่าเริ่มต้นเคอร์เนลจะตอบสนองเป็นเท็จเมื่อถูกถามว่า Linux กำลังทำงานอยู่หรือไม่
acpi_osi=Linux
บอกเคอร์เนลให้ตอบสนองจริง (ดูdrivers/acpi/osl.c
) ดูเหมือนว่าคุณต้องบอกความจริงกับ BIOS
ผลการค้นหา Google ครั้งที่สองสำหรับ "acpi_osi"อธิบายacpi_backlight=vendor
:
acpi_backlight=vendor
จะชอบไดรเวอร์เฉพาะผู้ขาย (เช่นthinkpad_acpi
,sony_acpi
ฯลฯ ) แทนของ ACPIvideo.ko
ไดรเวอร์