キーボードバックライトコントロールキーが機能しないため、4.17.1用のASUSノートブックドライバを追跡しています。さらに、ドライバをロードできず、常に「該当デバイスがありません」と報告されることを発見しました。それから、これはacpiドライバのadd()メソッド(asus_acpi_add)が入力されていないためであることがわかりました。少なくとも4.4.14のようないくつかの以前のカーネルバージョンには同じ問題がありますが、まだ動作しているバージョンが見つかりませんでした。
誰に手がかりがありますか?ありがとうございます。 -木材
答え1
モジュールをロードした後にシステムにPNP IDが含まれているか、またはデバイスが含まれていることをファームウェアが示す場合、asus_acpi_add
ACPIサブシステムはこの関数を呼び出す必要があります。これは、アドレスを引数として使用するモジュール初期化呼び出しによってソートされます。この構造には、このドライバが認識するPNP / ACPI IDテーブルが要素として含まれています。ATK0100
ATK0101
acpi_bus_register_driver
static struct acpi_driver asus_acpi_driver
.ids
したがって、最初に確認する必要があるのは、システムにATK0100またはATK0101デバイスIDがあるかどうかです。
以下を実行してください。
cat /sys/bus/pnp/devices/*/id
結果は、1行に1つずつPNP IDのリストでなければなりません。リストにATK0100
norが含まれていない場合、モジュールATK0101
がロードされない理由は、ACPIファームウェアがモジュールで使用するインターフェイスを宣言していないためです。
Stack Overflowに関するその他の質問からasus_wmi
モジュールが実際にラップトップで自動的に検出されると述べました。このモジュールがアクセスするWMIインターフェイスには、キーボードバックライト制御を含む多くのその他の機能があるようです。ハードウェアでサポートされている機能は明らかにSFUN値で示されていますが、開発者はSFUN値の数ビットの意味だけを知っていますasus_wmi
。
したがって、asus-nb-wmi.c
ソースコードファイルには、Asusノートブックモデルのリストと、各モデルのコントロールキードライバの特定の設定が含まれています。 FX503はまだリストにないようです。独自のカーネルをコンパイルできる場合は、ノートブックモデルをリストに追加し、同様の機能を持つ他のASUSノートブックモデルで奇妙な値をテストしてみてください。ハードウェア/ファームウェアの実装はあまり変わらず、動作する設定を見つけることができます。
これが成功した場合は、asus_wmi
ドライバーの作成者に結果を報告してください。これはあなたの仕事があなたと同じモデルを使用している他の人にも役立ちます。あなたの名前は、Linuxカーネルの貢献者の長いリストにも追加されます。
また、ドライバ開発者に電子メールを送ってアドバイスを求めることもできます。努力することを望むなら、開発者はより具体的な試みを提案するかもしれません。