WSL2์์ usb-ipd๋ฅผ ์ด์ฉํด์ ๋๋ฐ์ด์ค๋ฅผ ์ฐ๊ฒฐํ ์ ์์์ต๋๋ค๋ง, ํ์ฌ์ WSL2 ๊ธฐ๋ณธ ์ปค๋์์ ์น์บ ์ ์ง์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์น์บ ์ WSL2์์ ์ฌ์ฉํ๊ธฐ ์ํด์ ์ปค๋์ ์ฌ๋น๋ํด์ค์ผ ํฉ๋๋ค.
Ubuntu๋ฅผ ์คํํ๊ณ , ๋จผ์ ๋น๋์ ํ์ํ ํจํค์ง๋ฅผ ์ค์นํด์ค๋๋ค.
$ sudo apt install build-essential flex bison dwarves libssl-dev libelf-dev bc libncurses-dev
๋ค์์ผ๋ก, ์ปค๋ ์์ค๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ํ์ฌ ๋ฆด๋ฆฌ์ฆ๋ ์ต์ ๋ฒ์ ์ 5.15.90.1์
๋๋ค. ๊ด๋ จ๋ Repository๋ https://github.com/microsoft/WSL2-Linux-Kernel ์์ ํ์ธํ ์ ์์ต๋๋ค.
$ mkdir ~/tmp
$ cd ~/tmp
$ wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.15.90.1.tar.gz
$ tar zxf linux-msft-wsl-5.15.90.1.tar.gz
$ cd WSL2-Linux-Kernel-linux-msft-wsl-5.15.90.1
๊ธฐ์กด ์ปค๋ ์ต์
์ ๊ฐ์ ธ์์ ๋ณต์ฌํด๋์ต๋๋ค.
$ cp /proc/config.gz
$ gunzip config.gz
$ mv config .config
์ปค๋ ๋น๋ ์ต์
์ ์กฐ์ ํ๊ธฐ ์ํด์ ๋ค์์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ค๋๋ค.
$ make menuconfig
์นด๋ฉ๋ผ์ ๊ด๋ จํ ๋ช๊ฐ์ง ์ต์
์ ์กฐ์ ํด์ค๋๋ค. ์ต์
์ Space Bar๋ฅผ ๋๋ฅด๋ฉด ์กฐ์ ๊ฐ๋ฅํฉ๋๋ค. ํ์ ๋ฉ๋ด๋ฅผ ์ฐพ์์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด์ค๋๋ค.
Device Driver --> <*> Multimedia Support
Multimedia Support --> [*] Filter media drivers
Multimedia Support --> Media device types --> [*] Cameras and video grabbers
Multimedia Support --> Video4Linux options -> [*] V4L2 sub-device userspace API
Multimedia Support --> Media drivers --> [*] Media USB Adapters
Media USB Adapters --> <*> USB Video Class (UVC)
Media USB Adapters --> <*> GSPCA based webcams
์ค์ ์ด ์๋ฃ๋๋ฉด, ์ ์ฅํ ํ ๋ค์ ํฐ๋ฏธ๋๋ก ๋์ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ์ฌ ๋น๋๋ฅผ ์งํํด์ค๋๋ค.
$ make -j8
๋น๋๊ฐ ์๋ฃ๋์์ต๋๋ค.
GZIP arch/x86/boot/compressed/vmlinux.bin.gz
MKPIGGY arch/x86/boot/compressed/piggy.S
AS arch/x86/boot/compressed/piggy.o
LD arch/x86/boot/compressed/vmlinux
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#1)
๋ค์์ผ๋ก ๋ชจ๋์ ๋น๋ํ๊ณ ์ค์นํด์ค๋๋ค.
$ sudo make modules_install
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
DEPMOD /lib/modules/5.15.90.1-microsoft-standard-WSL2
๋, ๋น๋๋ ์ปค๋์ ์ค์นํด์ค๋๋ค.
$ sudo make install
arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support
sh ./arch/x86/boot/install.sh 5.15.90.1-microsoft-standard-WSL2 \
arch/x86/boot/bzImage System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 5.15.90.1-microsoft-standard-WSL2 /boot/vmlinuz-5.15.90.1-microsoft-standard-WSL2
๋, ๋น๋๋ ์ปค๋ ์ด๋ฏธ์ง vmlinux
๋ฅผ C:\์ ์์์ ๋๋ ํ ๋ฆฌ๋ก ๋ณต์ฌํด์ค๋๋ค.
$ sudo cp -rf vmlinux /mnt/c/Kernels
์ด์ Ubuntu์์์ ์์
์ ๋ชจ๋ ์๋ฃ๋์์ต๋๋ค.
๋จผ์ WSL2๋ฅผ ์ข
๋ฃํฉ๋๋ค.
> wsl2 --shutdown
์๋์ฐ์์ ํ๋๋ ํ ๋ฆฌ์ .wslconfig ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ค๋๋ค.
[WSL2]
networkingMode = bridged
vmSwitch = wsl2-external
kernel = C:\\Kernels\\vmlinux
์ด์ ๋ค์ Ubuntu๋ฅผ ์คํํฉ๋๋ค.
์ปค๋์ด ์ ๋ก๋ฉ๋์๋์ง ๋น๋ ๋ฒํธ ํ์ธ
$ uname -a
Linux DESKTOP-HFMFSCL 5.15.90.1-microsoft-standard-WSL2 #1 SMP Tue Feb 14 09:51:42 KST 2023 x86_64 x86_64 x86_64 GNU/Linux
์ด์ ์น์บ ์ด ์ ์ฐ๊ฒฐ๋๋์ง ํ์ธํด๋ด
๋๋ค.
๋จผ์ ์๋์ฐ์ ์ปค๋งจ๋ ์ฐฝ์์ usbipd๋ฅผ ์ด์ฉํด ์น์บ ์ attach ํด์ค๋๋ค.
> usbipd wsl list
BUSID VID:PID DEVICE STATE
2-1 27c6:533c Goodix fingerprint Not attached
2-2 1a86:7523 USB-SERIAL CH340 (COM6) Not attached
2-5 0c45:6a0c Integrated Webcam Not attached
2-14 8087:0026 Intel(R) Wireless Bluetooth(R) Not attached
6-2 0bda:8153 Realtek USB GbE Family Controller Not attached
7-1 05ac:024f USB Input Device Not attached
7-3 046d:c539 USB Input Device Not attached
7-4 0bda:49a7 Realtek USB2.0 Audio, USB Input Device Not attached
> usbipd wsl attach -b 2-5
Ubuntu๋ฅผ ์คํํ๊ณ ์ปค๋ ๋ฉ์์ง๋ฅผ ํ์ธํด๋ด
๋๋ค.
$ sudo dmesg
...
[ 120.428941] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[ 120.430636] vhci_hcd vhci_hcd.0: devid(131077) speed(3) speed_str(high-speed)
[ 120.431905] vhci_hcd vhci_hcd.0: Device attached
[ 120.781071] usb 1-1: new high-speed USB device number 2 using vhci_hcd
[ 120.931358] usb 1-1: SetAddress Request (2) to port 0
[ 120.985548] usb 1-1: New USB device found, idVendor=0c45, idProduct=6a0c, bcdDevice= 1.30
[ 120.986274] usb 1-1: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 120.986647] usb 1-1: Product: Integrated_Webcam_HD
[ 120.986898] usb 1-1: Manufacturer: CKFJH67N3010300037T0
[ 121.004725] usb 1-1: Found UVC 1.00 device Integrated_Webcam_HD (0c45:6a0c)
[ 121.023621] input: Integrated_Webcam_HD: Integrate as /devices/platform/vhci_hcd.0/usb1/1-1/1-1:1.0/input/input0
[ 121.026970] usb 1-1: Found UVC 1.00 device Integrated_Webcam_HD (0c45:6a0c)
[ 121.038030] input: Integrated_Webcam_HD: Integrate as /devices/platform/vhci_hcd.0/usb1/1-1/1-1:1.2/input/input1
/dev ๋๋ ํ ๋ฆฌ์ video0๊ฐ ์์ฑ๋์๋์ง ํ์ธํฉ๋๋ค.
$ ll /dev/video*
crw------- 1 root root 81, 0 Feb 14 10:31 /dev/video0
crw------- 1 root root 81, 1 Feb 14 10:31 /dev/video1
crw------- 1 root root 81, 2 Feb 14 10:31 /dev/video2
crw------- 1 root root 81, 3 Feb 14 10:31 /dev/video3
v4l2-ctrl ๋ช
๋ น์ด๋ก ๋๋ฐ์ด์ค ํ์ธ
$ sudo v4l2-ctl --list-devices
Integrated_Webcam_HD: Integrate (usb-vhci_hcd.0-1):
/dev/video0
/dev/video1
/dev/video2
/dev/video3
/dev/media0
/dev/media1
์์์… ์ ๊ฒฝ์ฐ์ ๊ฒ์์ ํ๋ฉด๋ง ๋์ค๊ณ ์๋๋ฐ, ์ด ๋ถ๋ถ์ ๋ค์ ํ์ธํด๋ด์ผ๊ฒ ์ต๋๋ค. ๋ sudo ๊ถํ์ผ๋ก๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ ๋ ๋ญ๊ฐ ์ค์ ์ด ๋ ํ์ํ๋ฏ ํฉ๋๋ค.
2 responses