Các tham số kernel acpi_osi = linux và acpi_backlight = nhà cung cấp làm gì?


21

Tôi gặp vấn đề với điều khiển độ sáng màn hình trong máy tính xách tay của mình và tôi đã sửa nó bằng cách thêm các tham số acpi_osi=linuxacpi_backlight=vendorvào tệp grub.cfg. Tôi muốn biết những thông số này có ý nghĩa gì và tại sao chúng hoạt động.

Câu trả lời:


28

Các tham số kernel được ghi lại tại kernel.org .

Để hiểu những gì acpi_osikhông, bạn cần phải biết ACPI hoạt động như thế nào. ACPI bao gồm các bảng được gọi là BIOS tải vào RAM trước khi hệ điều hành khởi động. Một số trong số chúng chỉ chứa thông tin về các thiết bị thiết yếu trên bo mạch chính ở định dạng cố định, nhưng một số như bảng DSDT chứa mã AML. Mã này được hệ điều hành thực thi và cung cấp cho HĐH một cấu trúc cây mô tả nhiều thiết bị trên bo mạch chính và các chức năng có thể gọi được HĐH thực thi khi bật chế độ tiết kiệm điện. Mã AML có thể hỏi HĐH đó là HĐH nào bằng cách gọi _OSIhàm. Điều này thường được các nhà cung cấp sử dụng để thực hiện các giải pháp, ví dụ như xung quanh các lỗi trong một số phiên bản Windows.

Vì nhiều nhà cung cấp phần cứng chỉ kiểm tra các sản phẩm của họ với phiên bản Windows mới nhất (tại thời điểm đó), các đường dẫn mã "thông thường" không có cách giải quyết thường bị lỗi. Bởi vì điều này Linux thường trả lời có khi được hỏi nếu đó là Windows. Linux cũng từng trả lời có khi được hỏi có phải là "Linux" không, nhưng điều đó khiến các nhà cung cấp BIOS khắc phục các lỗi hoặc thiếu chức năng trong phiên bản nhân Linux mới nhất (tại thời điểm đó) thay vì mở các báo cáo lỗi hoặc cung cấp các bản vá. Khi các lỗi này được khắc phục, các cách giải quyết đã gây ra các hình phạt hiệu suất không cần thiết và các vấn đề khác cho tất cả các phiên bản Linux sau này.

acpi_osi=Linux làm cho Linux trả lời lại một lần nữa khi được hỏi liệu đó có phải là "Linux" bằng mã ACPI hay không, do đó cho phép mã ACPI kích hoạt các cách giải quyết cho Linux và / hoặc vô hiệu hóa các cách giải quyết cho Windows.

acpi_backlight=vendorthay đổi thứ tự kiểm tra trình điều khiển ACPI cho đèn nền. Thông thường Linux sẽ sử dụng videotrình điều khiển chung , khi ACPI DSDT cung cấp thiết bị đèn nền yêu cầu khả năng tương thích tiêu chuẩn và sẽ chỉ kiểm tra các trình điều khiển cụ thể của nhà cung cấp khác nếu không tìm thấy thiết bị đó. acpi_backlight=vendorđảo ngược thứ tự này, để các trình điều khiển cụ thể của nhà cung cấp được thử trước tiên.


3

Kết quả Google đầu tiên cho "acpi_osi" giải thích acpi_osi=linux:

[...] BIOS thường vô hiệu hóa chức năng nếu Windows không được phát hiện [...] theo mặc định, kernel trả lời sai khi được hỏi nếu Linux đang chạy. acpi_osi=Linuxnói với kernel trả lời đúng. (xem drivers/acpi/osl.c) Có vẻ như bạn cần nói với BIOS sự thật.

Kết quả Google thứ hai cho "acpi_osi" giải thích acpi_backlight=vendor:

acpi_backlight=vendorsẽ thích lái xe cụ thể nhà cung cấp (ví dụ thinkpad_acpi, sony_acpivv) thay cho ACPI video.kotài xế.


Tôi cho rằng những câu trả lời này (đặc biệt là đối với acpi_osi) không đủ sức chịu đựng.
Cestarian
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.