「インストール - Wi-Fiドライバ」の版間の差分
34行目: | 34行目: | ||
sudo zypper update | sudo zypper update | ||
sudo zypper install -t pattern devel_kernel dkms | sudo zypper install -t pattern devel_kernel dkms | ||
<br> | |||
==== Wi-Fiデバイスの確認 ==== | |||
Wi-FiデバイスをPCに接続して、デバイスが認識されているかどうかを確認する。<br> | |||
sudo hwinfo --network | |||
<br> | <br> | ||
==== ソースコードのダウンロード ==== | ==== ソースコードのダウンロード ==== | ||
39行目: | 43行目: | ||
git clone https://github.com/morrownr/8821au-20210708 RTL8821AU | git clone https://github.com/morrownr/8821au-20210708 RTL8821AU | ||
<br> | <br> | ||
==== RTL8821AUドライバのインストール (セキュアブートが無効の場合) ==== | ==== RTL8821AUドライバのインストール (セキュアブートが無効の場合) ==== | ||
ダウンロードしたソースコードがあるディレクトリに移動して、RTL8821AUドライバをビルドする。<br> | ダウンロードしたソースコードがあるディレクトリに移動して、RTL8821AUドライバをビルドする。<br> |
2023年3月20日 (月) 21:39時点における版
概要
LinuxでWi-Fiデバイスを使用する場合、専用ドライバをインストールする必要がある可能性がある。
ここでは、Wi-Fiデバイスの各チップにおいて、専用ドライバのインストール手順を記載する。
RTL8821AU
搭載しているデバイス
- ALFA AWUS036ACS
- Buffalo WI-U2-433DHP
- Edimax EW-7811UTC
- Edimax EW-7811UAC
- Edimax EW-7811UCB
- ELECOM WDC-433DU2H
- GMYLE - AC450
- Netgear A6100
- Netis WF2180
- Planex GW-450S
- EDUP EP-1607
※注意1
Wi-Fiデバイスを選定するための情報を探す場合は、ここをクリックして、メインメニューの項目2を参照すること。
推奨デバイスの情報とリンクが表示される。
※注意2
上記で選定したWi-Fiデバイスを購入する場合、シングルステートかつシングルファンクションのWi-Fiデバイスを検索することを推奨する。
マルチファンクションアダプタ、無線LANおよびBluetoothは、問題がある可能性がある。
RTL8821AUチップセットはマルチファンクションであり、RTL8811AUチップセットはシングルファンクションである。
シングルステートおよびマルチステートアダプタに関する詳細は、ここをクリックして、メインメニューの項目1を参照すること。
ビルドに必要なライブラリのインストール
システムパッケージの更新とビルドに必要なライブラリのインストールする。
sudo zypper update sudo zypper install -t pattern devel_kernel dkms
Wi-Fiデバイスの確認
Wi-FiデバイスをPCに接続して、デバイスが認識されているかどうかを確認する。
sudo hwinfo --network
ソースコードのダウンロード
RTL8821AUドライバのソースコードをダウンロードする。
git clone https://github.com/morrownr/8821au-20210708 RTL8821AU
RTL8821AUドライバのインストール (セキュアブートが無効の場合)
ダウンロードしたソースコードがあるディレクトリに移動して、RTL8821AUドライバをビルドする。
cd <RTL8821AUドライバのソースディレクトリ> make -j $(nproc)
RTL8821AUドライバをインストールする。
sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au sudo cp 8821au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au # 任意 cd /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au sudo zstd --rm rtk_btusb.ko
※注意
Linuxカーネルをアップデートした場合は自動的にRTL8821AUドライバが削除されるため、再度、RTL8821AUドライバをインストールする必要がある。
RTL8821AUドライバをデプロイする。
sudo depmod -a $(uname -r)
RTL8821AUドライバを読み込む。
sudo modprobe -v 8821au
RTL8821AUドライバのインストール (セキュアブートが有効の場合)
ダウンロードしたソースコードがあるディレクトリに移動して、RTL8821AUドライバをビルドする。
cd <RTL8821AUドライバのソースディレクトリ> make -j $(nproc)
まず、署名に必要な設定ファイルを作成する。
mkdir -p ~/.MOK/RTL8821AU && cd ~/.MOK/RTL8821AU vi RTL8821AU.config
# ~/.MOK/RTL8821AU/RTL8821AU.configファイル [ req ] default_bits = 4096 distinguished_name = req_distinguished_name prompt = no string_mask = utf8only x509_extensions = myexts [ req_distinguished_name ] O = SUSE Linux Products GmbH (User Add RTL8821AU) # 任意の名前 CN = SUSE Linux Enterprise Secure Boot (User Add RTL8821AU) # 任意の名前 emailAddress = suse@localhost # 任意のメールアドレス [ myexts ] basicConstraints=critical,CA:FALSE keyUsage=digitalSignature subjectKeyIdentifier=hash authorityKeyIdentifier=keyid
キーペアを作成する。
openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config ./RTL8821AU.config \ -outform DER -out ./RTL8821AU.der -keyout ./RTL8821AU.priv \ -addext "extendedKeyUsage=codeSigning"
次に、MOK(Module owned Key)にキーをインポートする。
--root-pw
オプションを付加することにより、再起動時のRealtek RTL8821AUモジュールの署名において、rootパスワードが必要となる。
sudo mokutil --import ./RTL8821AU.der --root-pw
PCを再起動して、上記のキーの署名する。
sudo systemctl reboot
RTL8821AUドライバをインストールする。
sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au sudo cp 8821au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au
Realtek RTL8821AUドライバ(8821au.ko)を署名する。
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 \ ./RTL8821AU.priv ./RTL8821AU.der \ /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko
必要であれば、Realtek RTL8821AUモジュールをXZ形式またはZstandard形式に圧縮する。(任意)
# XZ形式の場合 cd /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au sudo xz -f 8821au.ko # Zstandard形式の場合 cd /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au sudo zstd --rm 8821au.ko
※注意
Linuxカーネルをアップデートした場合は自動的にRTL8821AUドライバが削除されるため、再度、RTL8821AUドライバをインストールする必要がある。
RTL8821AUドライバをデプロイする。
sudo depmod -a $(uname -r)
RTL8821AUドライバを読み込む。
sudo modprobe -v 8821au
RTL8821AUドライバのアンインストール (セキュアブートが無効の場合)
RTL8821AUドライバをアンインストールする。
cd <RTL8821AUドライバのソースディレクトリ> sudo make uninstall
RTL8821AUドライバファイルを削除する。
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko # または sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko.xz # または sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko.zst
ドライバ群をデプロイする。
sudo depmod -a $(uname -r)
RTL8821AUドライバのアンインストール (セキュアブートが有効の場合)
RTL8821AUドライバをアンインストールする。
cd <RTL8821AUドライバのソースディレクトリ> sudo make uninstall
RTL8821AUドライバファイルを削除する。
sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko # または sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko.xz # または sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8821au/8821au.ko.zst
ドライバ群をデプロイする。
sudo depmod -a $(uname -r)
次に、Realtek RTL8821AUドライバの署名を削除する。
Realtek RTL8821AUモジュールの署名を削除する場合、以下のコマンドを実行して再起動する。
--root-pw
オプションを付加することにより、再起動時のRealtek RTL8821AUデバイスの署名の削除において、rootパスワードが必要となる。
cd <Realtek RTL8821AUモジュールの署名ファイルが存在するディレクトリ> sudo mokutil --delete ./RTL8821AU.der --root-pw sudo systemctl reboot