Sony 筆記本控制驅動 (SNC) Readme

此迷你驅動程式驅動 Sony Vaio 筆記型電腦 ACPI BIOS 中存在的 SNC 和 SPIC 裝置。該驅動程式在同一(希望一致的)介面下混合了兩個裝置的功能。這也意味著 sonypi 驅動程式現在已被 sony-laptop 取代。

Fn 鍵(熱鍵):

某些型號透過 SNC 或 SPIC 裝置報告熱鍵,此類事件透過 ACPI 子系統作為 acpi 事件和透過 INPUT 子系統報告。檢視 /proc/bus/input/devices 的日誌,找出這些事件是什麼,以及驅動程式建立了哪些輸入裝置。此外,使用 debug 選項載入驅動程式將在核心日誌中報告所有事件。

傳遞給輸入系統(可以使用 udev 重新對映)的“掃描碼”是 sony-laptop.c 模組中 “sony_laptop_input_keycode_map” 表的索引。例如,“FN/E”鍵組合(某些型號上為 EJECTCD)生成掃描碼 20 (0x14)。

背光控制:

如果您的筆記型電腦型號支援,您將在 /sys/class/backlight/sony/ 目錄中找到 sysfs 檔案。您將能夠查詢和設定當前的螢幕亮度

brightness

獲取/設定螢幕亮度(0 到 7 之間的整數)

actual_brightness

讀取此檔案將查詢硬體以獲取實際亮度值

max_brightness

最大亮度值

平臺特定:

載入 sony-laptop 模組將建立一個 /sys/devices/platform/sony-laptop/ 目錄,其中填充了一些檔案。

然後,您可以使用標準的 UNIX 工具從這些檔案讀取/寫入整數值。

這些檔案是

brightness_default

筆記型電腦重啟時將設定的螢幕亮度

cdpower

開啟/關閉內部 CD 驅動器

audiopower

開啟/關閉內部音效卡

lanpower

開啟/關閉內部乙太網卡(僅在除錯模式下)

bluetoothpower

開啟/關閉內部藍牙裝置

fanspeed

獲取/設定風扇速度

請注意,如果您的特定筆記型電腦型號不支援某些檔案,則這些檔案可能會缺失。

示例用法

# echo "1" > /sys/devices/platform/sony-laptop/brightness_default

為下一次及以後的重啟設定最低螢幕亮度

# echo "8" > /sys/devices/platform/sony-laptop/brightness_default

為下一次及以後的重啟設定最高螢幕亮度

# cat /sys/devices/platform/sony-laptop/brightness_default

檢索該值

# echo "0" > /sys/devices/platform/sony-laptop/audiopower

關閉音效卡電源

# echo "1" > /sys/devices/platform/sony-laptop/audiopower

開啟音效卡電源。

RFkill 控制:

較新的 Vaio 型號公開了一組一致的 ACPI 方法來控制射頻發射裝置。如果您是此類筆記型電腦的幸運所有者,您將在 /sys/class/rfkill 下找到必要的 rfkill 裝置。檢查那些以 sony-* 開頭的裝置。

# grep . /sys/class/rfkill/*/{state,name}

開發:

如果您想幫助開發此驅動程式(並且您不害怕使用 ACPI BIOS 進行奇怪操作可能對您的筆記型電腦產生的任何副作用),請載入驅動程式並傳遞選項 ‘debug=1’。

重複

如果您不喜歡冒險,請不要這樣做。

在您的核心日誌中,您將找到 SNC 裝置在您的筆記型電腦上擁有的所有 ACPI 方法的列表。

  • 對於新型號,您將看到一長串毫無意義的方法名稱,讀取 DSDT 表原始碼應該揭示出

  1. SNC 裝置使用內部功能查詢表

  2. SN00 用於在查詢表中查詢值

  3. SN06 和 SN07 用於基於偏移量呼叫真實方法,您可以使用 SN00 迭代該表來獲得偏移量

  4. SN02 用於啟用事件。

功能查詢表中的某些值或多或少是已知的,請參閱所有 sony_call_snc_handle 呼叫的程式碼,其他值則更加模糊。

  • 對於舊型號,您可以看到用於開啟/關閉 CD 驅動器的 GCDP/GCDP 方法,但還有其他方法,並且它們通常因型號而異。

我不知道這些方法是做什麼的。

對於其中一些方法(在多個 Vaio 型號上發現的最新方法),sony-laptop 驅動程式會在 /sys/devices/platform/sony-laptop 下建立一個條目,就像 ‘cdpower’ 一樣。您可以透過進一步編輯原始碼來建立與您自己的筆記型電腦方法相對應的其他條目(請參閱 ‘sony_nc_values’ 表,並使用 SNC_HANDLE_NAMES 宏向此表新增一個新條目,其中包含您的 get/set 方法名稱)。

你的任務,如果你接受的話,就是嘗試找出這些條目是做什麼用的,方法是從這些檔案讀取/寫入隨機值,並找出對你的筆記型電腦的影響。

如果您發現任何有趣的事情,請將其報告給我,我不會否認對您行為的所有了解:)

另請參閱 http://www.linux.it/~malattia/wiki/index.php/Sony_drivers 以獲取其他有用資訊。

錯誤/限制:

  • 此驅動程式不是基於索尼的官方文件(因為沒有官方文件),因此無法保證此驅動程式可以正常工作或做正確的事情。雖然這沒有發生在我身上,但這個驅動程式可能會對您的筆記型電腦造成非常糟糕的事情,包括永久性損壞。

  • sony-laptop 和 sonypi 驅動程式根本不互動。將來,sonypi 將被刪除並由 sony-laptop 替換。

  • spicctrl 是用於透過 /dev/sonypi 與 sonypi 驅動程式通訊的使用者空間工具,它也已被棄用,因為它的所有功能現在都可以透過 sysfs 樹透過 sony-laptop 獲得。