ワイヤレスハードブロック


2

Ubuntu 13.10(x64)でLenovo Yoga 2 11 "を使用しています。wifiにわずかな問題があります(bluetoothは動作しています)

私は試した:

sudo rfkill list

状態:

0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: yes
1: ideapad_bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: yes
2: phy0: wireless LAN
    Soft blocked: no
    Hard blocked: no
3: hci0: bluetooth
    Soft blocked: no
    Hard blocked: no

次:

sudo rfkill unblock all
sudo rfkill unblock number

彼らはソフトブロックのみで動作します...私のハードブロックはまだ「はい」です。

私のヨガにはハードウェアボタンがありません。BIOSで設定を試しましたが、機能しませんでした。

誰か他のソリューションがある場合、私は非常に感謝します。


F7を押して機内モードを無効にしてみて、問題が解決するかどうかを確認してください。
ミッチ

私は... befor ...良いヒントやwokringない試してみました
oliverbediを

この答えは、この問題に対して私が見つけた最も合理的なもののようですが、私はLinuxのコーダーではありません。実装方法についてもう少し詳しく教えていただけますか?ideapad_laptop.cのコピーを入手しましたが、どうすればよいですか?3行をファイルのどこかにコピーするだけですか?私の知る限り、モジュールの作成はそれほど難しくありません。make ... sudo make install ...およびmodprobe、ただし、ファイルとは関係のない出力を作成します。ありがとう。

回答:


2

だから、IdeaPad Yoga 2は私のようにrfkillを半ブロックしたように聞こえます。次のように修正する方法を見つけました。

rfkillは、idead-laptopモジュールによって駆動される組み込みECによって制御されます。このモジュールは、Yoga 2のいくつかの間違った部分を微調整しますが、ありがたいことに、永続的に物を壊すような方法ではありません。

ECは、列挙されたコマンドとプロパティの読み取りおよび書き込みメソッドを備えたACPIプラットフォームデバイスとして存在します。ローカルLinuxソースツリーでideapad-laptop.cを見ると、その構造はかなり明白です。

関心のある3ビットがあります:VPCCMD_W_RF:一般にRFデバイスをオン/オフしますか?これはideapad_laptop.cでは使用されませんが、その逆のVPCCMD_R_RF -is-であるため、興味深いものです。VPCCMD_W_BT:Bluetoothデバイスのオン/オフを切り替えます。VPCCMD_W_WIFI:Wi-Fiのオン/オフを切り替えます。

これらのコマンドごとに、1を送信すると機能がオンになり、0でオフになります。私は、W_RFが実際にヨガで機能していないと疑っています。ideapad-laptopドライバーはその設定を確認し、BTおよびWIFIデバイスの永続的な rfkillフラグをオンにします。

これを修正するには、ローカルバージョンのideapad-laptop.cドライバーをコンパイルします。このドライバーは、できるだけ早く次のコマンドを実行し、その後モジュールを中止します。

write_ec_cmd(ideapad_handle, VPCCMD_W_RF, 1);
write_ec_cmd(ideapad_handle, VPCCMD_W_BT, 1);
write_ec_cmd(ideapad_handle, VPCCMD_W_WIFI, 1);

その後、/ etc / modprobe.d / whatever.conf内のファイルにideapad-laptopモジュールをブラックリストideapad-laptopオプションとともに保持するようにしました。

それ以来、私は順調に働いています。

残念ながら、ideapad-laptopモジュールはカーネルバージョンから別のカーネルバージョンに変更されているため、ビルドされたモジュールを完全なソースファイル用にダンプすることはできませんが、write_ec_cmd文字列をそのファイルで検索し、外部モジュールを構築するためのhttps://www.kernel.org/doc/Documentation/kbuild/modules.txtにあるような指示であれば、問題ありません。

おそらくdebugfsファイルの1つに配置して、debugfsファイルをcattして実行し、rfkillボタンを誤って押す前にモジュールをアンロードすることをお勧めします。

これで、リストをrfkillでき、ブロックされていない自分を確認できるはずです!



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.