0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windowsしか対応していないWifiドングルをLinuxで無理やり使う

Last updated at Posted at 2024-10-16

結論

qemuを使う

確認環境

fedora 40

必要なもの

Windows OSのライセンス

手順

ホスト-ゲスト間のIP通信

tapデバイスの起動

sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 up
sudo ip addr add 10.0.2.10/24 dev tap0

QEMUの起動

USBパススルー(PCIの場合は別途)

lsusbでUSBバスとデバイスを確認

$ lsusb
...
Bus 001 Device 018: ID 0411:037d BUFFALO INC. (formerly MelCo., Inc.) 802.11n NIC
...

Qemuの起動

WindowsをQemuで起動する。
Windows用qcow2の作成は空のqcow2を用意し、
WindowsのISOを指定してcdrom boot、インストールするだけなので詳細は省略

コマンド例

sudo qemu-system-x86_64 -M q35,smm=on -smp 2 -m 8G /opt/vdisk/win11.qcow2 -net nic -net tap,ifname=tap0,script=no,downscript=no -net user,smb=/opt/share -enable-kvm -device qemu-xhci -device usb-host,hostbus=1,hostaddr=18

必要なのは以下

  • tapの指定 -net tap,ifname=tap0,script=no,downscript=no
  • USBパススルー -device qemu-xhci -device usb-host,hostbus=1,hostaddr=18

ここの118Bus 001 Device 018に該当する。

Windows側の設定

ゲスト-インターネット間

USBパススルーが正常にできていればデバイスマネージャで見える。
ドライバのインストールをWindows内で行う。
インストールが終わればWifi経由でゲストからインターネットにつながるはず。

インターネット共有

インターネット共有を行うとLAN側IPが固定されるため、
その回避を行う必要がある。

レジストリエディタを起動し、
HKLM > SYSTEM > CurrentControlSet > services > SharedAccess > Parameters > ScopeAddress
10.0.2.15に変更する。

コントロールパネル -> ネットワークとインターネット -> アダプターの設定の変更
で Wifiを選択する。
プロパティー -> 共有 -> ネットワークのほかのユーザーに、このコンピュータ-のインターネット接続をとおしての接続を許可する
にチェックを入れる。

ホストマシン(Linux)

DNSの設定は各自で

$ ping -w1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=27.6 ms

PCIの場合

PCIの場合はLinuxのドライバを上書きする必要がある。

lspciで該当のデバイスを確認します。
以降アドレスが0000:02:00.0として説明します。

$ lspci
...
0000:02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
...
sudo -i
modprobe vfio-pci
echo vfio-pci > /sys/bus/pci/devices/0000:02:00.0/driver_override
echo 0000:02:00.0 > /sys/bus/pci/drivers_probe

qemu起動時にvfio-pciを指定する。
-device vfio-pci,host=0000:02:00.0

戻し方

sudo -i
echo -n "0000:02:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind
echo "" > /sys/bus/pci/devices/0000:02:00.0/driver_override
echo -n "0000:02:00.0" > /sys/bus/pci/drivers_probe
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?