พารามิเตอร์เคอร์เนล acpi_osi = linux และ acpi_backlight = ผู้ขายทำอะไรได้บ้าง


21

ผมมีปัญหากับการควบคุมความสว่างหน้าจอแล็ปท็อปของฉันและฉันคงได้โดยการเพิ่มacpi_osi=linuxและพารามิเตอร์ไปยังแฟ้มacpi_backlight=vendor grub.cfgฉันต้องการทราบว่าพารามิเตอร์เหล่านี้มีความหมายอย่างไรและทำไมจึงทำงาน

คำตอบ:


28

พารามิเตอร์เคอร์เนลจะถูกบันทึกไว้ 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กลับคำสั่งนี้เพื่อให้พยายามเฉพาะไดรเวอร์ของผู้ขายก่อน


3

ผลลัพธ์แรกของ 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ฯลฯ ) แทนของ ACPI video.koไดรเวอร์


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