結論から言うとダメだったのですが、丸3日費やしてUbuntuのWifi設定に挑んだ記録です。疲れましたが色々勉強したので、また行う日の為の備忘録として、こちらのページをもしご覧になられた方がいたら少しでもお役に立てればと書いています。前回こちらで設定したUbuntuですが、パソコンの寿命で間もなく使えなくなり、子ども用のパソコンとしてOSなしの中古ノートパソコンを購入して前回と同様にUbuntu20.04をインストールしました。
中古のノートパソコンはジャンクワールドさんで購入しました。
目次
Wi-Fiアダプターが見つかりません
まずはこれ。前回はすんなりいったのに。。。Wi-Fi設定に「Wi-Fiアダプターが見つかりません」と表示され、有線も繋いでみたけど繋がらない。こうゆう場合は、以下のコマンドを試してみるらしいです。
lshw -C network
*-network DISABLED
description: Wireless interface
product: AR9462 Wireless Network Adapter
vendor: Qualcomm Atheros
physical id: 0
bus info: pci@0000:06:00.0
logical name: wlp6s0
version: 01
serial: b0:c0:90:60:a5:59
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list rom ethernet physical wireless
configuration: broadcast=yes driver=ath9k driverversion=5.11.0-27-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:18 memory:a9100000-a917ffff memory:a9180000-a918ffff
*-network
description: Ethernet interface
product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:07:00.0
logical name: enp7s0
version: 0c
serial: 20:47:47:59:b2:d9
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.11.0-27-generic firmware=rtl8168g-2_0.0.1 02/06/13 latency=0 link=no multicast=yes port=twisted pair
resources: irq:19 ioport:3000(size=256) memory:a9000000-a9000fff memory:c0000000-c0003fff
「lshw」はハードウェアの情報を表示するコマンドで、lshw -C networkでネットワークの情報をみます。networkがDISABLEDなのでワイヤレスインターフェイスが無効なっています。
rfkill list
例えば、飛行機のモードにしたりなど無線接続をOFFにしている場合があるので、その状況をみるコマンドです。Hardがyesになっていました。
Soft blocked: no
Hard blocked: yes
Softは飛行機モードをオンにした時などにyesとなり、HardはBIOSモードでWifiがオフになっていたり、機種によってはWifiのスイッチが側面についていたりするそうですが、BIOSもOK、Wifiのスイッチもないし、しかも飛行機モードをオンにするとSoftがyesでHardがnoに変わります。rfkill unlock allでもダメ。わからん・・・
lscpi | grep Network
ドライバーの情報も調べます。無線LAN内蔵モデルなので[lspci]、USB接続なら[lsusb]でドライバー名が分かるらしいです。
06:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
sudo lscpi -vvv -s 06:00.0 | grep Karnel
さらに詳細を調べたい場合です。
Kernel driver in use: ath9k
Kernel modules: ath9k
こちらからアダプターはAR9462、ドライバーはath9kであることが分かります。Kernelドライバーが表示されない場合はドライバーが認識されないまたは入っていないので、入れる必要があるそうです。
ドライバー探して入れてみる
Ubuntu用のatu9kドライバがFirmware-ath9k-htc Download (DEB) (pkgs.org)にあったので、入れてみる事にしました。sudo apt installが有線も繋がっていないので使えない。。のでここのリンクから直接Windowsのパソコンに保存してUSBで持ってきました。
sudo apt install ./firmware-ath9k-htc_1.4.0-97-g75b3e59+dfsg-3_all.deb
このようにすればdebファイルを直接指定してインストールできます。しかし、全然状況変わらない。ここでギブ・・・・・・・・。他にも色々試したんですが、もうほとんど無駄だったので割愛します。blacklist×××に書いてみてとか色々あったんですけどね。。。因みに/etc/modprobe.d/blacklist-ideapad.confに「blacklist ath9k」とか書いておくとそのドライバーは起動されないみたいです。
USB Wifiのインストール
USB Wifiの購入
次に挑戦したのが、USB Wifiです。こちらのページにUbuntuで使えるUSB Wifiの情報がありました。
Linuxで使えるUSB Wifiの探索 (Ubuntu 20.04LTS) – Qiita
こちらのページにあった挿すだけでいいという「PLANEX GW-450D2」ドライバがよかったのですが、生産終了らしく、、、安定していていいという「TP-Link Archer T2U ver.3 AC600」を購入することにしました。こちらRTL8812auドライバを自力でインストールしないといけません。gitでソースを持ってきます。
git clone https://github.com/aircrack-ng/rtl8812au.git
これをUSBでUbuntuに持っていきますが、インストールにはdkmsパッケージが必要でこれがドツボにハマる。。。
Windows Subsystem for Linux (WSL)
インストールしたUbuntuにはdkmsパッケージは入っていません。オフラインなのでsudo apt installが使えない。
オフライン環境のUbuntuでapt install – Qiita
こちらのページを見つけました。なるほど、Windowsでコマンドが使えれば持ってきてUSBで移動できるということで、そうゆうものがないか探すとありました。WSLというWindowでもLinuxみたいにできるツールです。こんなのあったんだ。インストール方法は色々載っているので割愛しますが、インストールしてみると、エラーが・・・・。この時点で呪われてると思いましたが、、、、
WslRegisterDistribution failed with error: 0x80370102
【WSL2】wsl2のインストールで0x80370102 エラーが出たときの対処方法【HP】 – 技術メモ、Tips、忘備録 (hatenablog.com)
こちらのページにあるように、Biosを起動し、System Configuration ⇒ Virtualization TechnologyをEnableで行けました。
dkmsパッケージインストール
wslでdkmsでパッケージをインストールし、/var/cache/apt/archivesにインストールされたdebファイルが格納されているので、全部Ubuntuに持ってきました。そして、このコマンドををたたくと、
sudo apt install ./dkms_2.8.1-5ubuntu2_all.deb
出るわ、出るわ山のようなエラーが。dkmsをインストールする為に必要なコマンドがインストールされてないと怒られます。オンラインだとこれを勝手にやってくれるんですけどね。。それっぽいdebファイルをみつけて片っ端から「sudo apt install ./×××deb」コマンドをたたきます。さらにまたインストールする為に必要なコマンドがインストールされてないと怒られるので、それっぽいのを探してインストールします。30個くらいやったような・・・我ながらアホな事をしてると思いましたが・・・これでツイにdkmsのインストールが出来た時は感動しました(笑)
ドライバーのビルド
cd rtl8812au
sudo make dkms_install
これで遂に行けると思ったのですが、またもやエラーが・・・
Building module:
cleaning build area...(bad exit status: 2)
...(bad exit status: 2) KSRC=/lib/modules/5.11.0-27-generic/build
ERROR (dkms apport): binary package for 8812au: 5.6.4.2_35491.20191025 not found
Error! Bad return status for module build on kernel: 5.11.0-27-generic (x86_64)
Consult /var/lib/dkms/8812au/5.6.4.2_35491.20191025/build/make.log for more information.
なんで・・・。また検索するとこんなのがあり、
wireless – DKMS Build Issue with Kernel (4.15.0-20-generic) – Ask Ubuntu
もっと新しいバージョンがいるのかと、持ってきてビルドしてみると同じ結果に。。。make.logを見てみると、「4^M何とかかんとか」と書かれているエラーが、あとgccがインストールされていないエラーも。Linuxで行の末尾に「^M」と書かれているのって、LinuxとWindowsで改行コードが違っていてWindowのファイルを持ってくると出たりするんですよね。この場合viエディターで「:%s」「ctrl+v」「ctrl+m」「//g」と打つと「:%s/^M//g」と表示され改行一括置換の技なんですが、(昔凄いやったので手が勝手に動く。)ファイルが沢山ありすぎて、もう一度wslで改行置換しない設定をして持ってきました。gccも入れました。これでmakeしたら出来ました!ここで2,3時間費やしたような。。なんでこんなバージョン違うってエラー出すねん(怒)
Secure Bootのオフ
最後のエラーです(笑)ドライバーのmakeが終わったらこんなのが出てきました。
Your system has UEFI Secure Boot enabled. │ │ UEFI Secure Boot requires additional configuration to work with │ third-party drivers. │ │ The system will assist you in configuring UEFI Secure Boot. To permit │ the use of third-party drivers, a new Machine-Owner Key (MOK) has been │ generated. This key now needs to be enrolled in your system's firmware. │ │ To ensure that this change is being made by you as an authorized user, │ and not by an attacker, you must choose a password now and then confirm │ the change after reboot using the same password, in both the "Enroll │ MOK" and "Change Secure Boot state" menus that will be presented to you │ when this system reboots.
なんか、パスワード聞かれるとか書いてますけど再起動してもそんなの出てこないし、BIOSでSecure Bootをオフにしてドライバーを再ビルドしたら出なくなりました。再起動すると、「USB Wifi」の項目が画面上に出てきて、これでやっと行けると思ったのですが、「USB Wifi」にも
「Wi-Fiアダプターが見つかりません」
同じだ。振り出しに戻ったようで、ここでギブ・・・・・・・・・・・・・・・・・・・。結局Windowsを入れることにしました。普通はこれで行けるはずなんですけどねぇ。Linuxって最近のWifiドライバーに対応してなかったりするみたいで、やっぱり厳しいなぁ。使いたかったのですが。
しかし、Windowsでfindとかgrepとかのコマンド使いたい時があるので、WSLは知る事が出来てよかったです。Linuxでの仕事の期間が一番長かったので。コマンド大好き。あと、Linuxのviエディターが大好きで、愛してます(笑)忘れているコマンドも思い出して、viも使おう。