• ์—…๋ฐ์ดํŠธ: ์—ฌ์ „ํžˆ ๋ธŒ๋ฆฟ์ง€ ๋ชจ๋“œ์—์„  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ ๋จธ์‹ ๊ณผ ํ˜ธ์ŠคํŠธ ๋จธ์‹ ์—์„œ ๋™์‹œ์— ์ธํ„ฐ๋„ท ์ ‘์†์„ ํ•  ๊ฒฝ์šฐ์— ์„œ๋กœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.


    WSL2์˜ ์„œ๋ธŒ ๋จธ์‹ ์—์„œ ์™ธ๋ถ€IP๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ๋„คํŠธ์›Œํฌ ์นด๋“œ์— ๋ธŒ๋ฆฟ์ง€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌ์ŠคํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ ์šฉ ์‹œ ๋ฌธ์ œ๋กœ๋Š” ์—…๋กœ๋“œ ์†๋„๊ฐ€ ๋ฌด์ฐจ๋ณ„๋กœ ์ €ํ•˜๋˜๋Š” ์ฆ์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋ก  ๋””๋ฐ”์ด์Šค ์„ค์ •์—์„œ, ์ƒˆ๋กœ ์ƒ์„ฑ๋œ Virtual Ethernet Adapter์˜ ์˜ต์…˜์—์„œ Large Send Offload Version 2 (IPv4) ,Large Send Offload Version 2 (IPv6) ํ•ญ๋ชฉ์„ Enable์—์„œ Disable๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

    ๋‘ ๊ฐœ ํ•ญ๋ชฉ ๋ชจ๋‘ Disabled๋กœ ์„ค์ •ํ•˜๊ณ , ๋‹ค์‹œ ์†๋„ ์ฒดํฌ๋ฅผ ํ•ด๋ณด๋ฉด,

    ์•„์ง ์‚ด์ง ์ €ํ•˜๋˜๋Š”๋“ฏ ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ ๊ฑฐ์˜ ์ •์ƒ์œผ๋กœ ๋Œ์•„์™”์Šต๋‹ˆ๋‹ค.

  • 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 ๊ถŒํ•œ์œผ๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์ ๋„ ๋ญ”๊ฐ€ ์„ค์ •์ด ๋” ํ•„์š”ํ•œ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฐธ๊ณ ๋งํฌ: https://github.com/dorssel/usbipd-win, https://learn.microsoft.com/ko-kr/windows/wsl/connect-usb

    WSL2๋Š” ์œˆ๋„์šฐ์—์„œ ์‹คํ–‰๋˜๋Š” ์ผ์ข…์˜ ๊ฐ€์ƒ๋จธ์‹ ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์œˆ๋„์šฐ์— ์—ฐ๊ฒฐ๋œ USB ๋””๋ฐ”์ด์Šค (์•„๋‘์ด๋…ธ๋ณด๋“œ, ์›น์บ  ๋“ฑ)๋ฅผ WSL2์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” USB/IP ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” usb-ipd๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    [v] ์œˆ๋„์šฐ์—์„œ usbipd ์„ค์น˜

    ๋จผ์ € ์„ค์น˜๋ฅผ ์œ„ํ•ด์„œ, ์ปค๋งจ๋“œ ์ฐฝ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    > winget install usbipd  
    Microsoft Windows [Version 10.0.22621.1194] 
    (c) Microsoft Corporation. All rights reserved.        
                                                                                                                                                                                             C:\Windows\System32> winget install usbipd  
    The `msstore` source requires that you view the following agreements before using.
    Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
    The source requires the current machine's 2-letter geographic region to be sent to the backend
    service to function properly (ex. "US").
    Do you agree to all the source agreements terms?
    [Y] Yes  [N] No: y
    
    Found usbipd-win [dorssel.usbipd-win] Version 2.4.1 
    This application is licensed to you by its owner. 
    Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
    Downloading https://github.com/dorssel/usbipd-win/releases/download/v2.4.1/usbipd-win_2.4.1.msi
    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  9.99 MB / 9.99 MB 
    Successfully verified installer hash 
    Starting package install...  
    Successfully installed  

    winget์€ ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ž…๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ๋‚˜๋ฉด ์ž๋™์œผ๋กœ ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

    [v] Linux ๋จธ์‹ ์—์„œ USBIP ๋„๊ตฌ ๋ฐ ํ•˜๋“œ์›จ์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์น˜

    WSL2๋ฅผ ์‹คํ–‰ํ•˜๊ณ , Ubuntu ๋จธ์‹ ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜์—ฌ usbipd ํด๋ผ์ด์–ธํŠธ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    $ sudo apt install linux-tools-virtual hwdata
    $ sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

    ์ด์ œ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.


    ์˜ˆ์‹œ๋กœ, ๋…ธํŠธ๋ถ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” USB Serial ์ปจ๋ฒ„ํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ด๋ด…๋‹ˆ๋‹ค.

    ๋จผ์ € ๋””๋ฐ”์ด์Šค๋ฅผ WSL2 ๋จธ์‹ ์— attach ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋งจ๋“œ์ฐฝ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์‹คํ–‰ํ•œ ๋‹ค์Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜์—ฌ usb ๋””๋ฐ”์ด์Šค๋ฅผ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

    >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 

    ์ œ ๋…ธํŠธ๋ถ์—์„œ USB Serial ์ปจ๋ฒ„ํ„ฐ๊ฐ€ ๋ฒ„์Šค ์•„์ด๋”” 2-2์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” Not attached ์ƒํƒœ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด ๋””๋ฐ”์ด์Šค๋ฅผ WSL2์— ์—ฐ๊ฒฐํ•ด๋ด…๋‹ˆ๋‹ค.

    > usbipd wsl attach -b 2-2
    > usbipd wsl list
    BUSID  VID:PID    DEVICE                                                        STATE 
    2-1    27c6:533c  Goodix fingerprint                                            Not attached 
    2-2    1a86:7523  USB-SERIAL CH340 (COM6)                                       Attached - Ubuntu 
    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 

    Attachํ•œ ์ดํ›„ ๋””๋ฐ”์ด์Šค ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด Ubuntu์— Attached ๋œ ์ƒํƒœ๋กœ ํ™•์ธ์ด ๋ฉ๋‹ˆ๋‹ค.

    ์ด์ œ Ubuntu ๋จธ์‹ ์œผ๋กœ ์ด๋™ํ•ด์„œ, dmesg๋กœ ์—ฐ๊ฒฐ์ด ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

    $ sudo dmesg
    ...
    
    [  827.577688] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
    [  827.578223] vhci_hcd vhci_hcd.0: devid(131074) speed(2) speed_str(full-speed)
    [  827.578767] vhci_hcd vhci_hcd.0: Device attached
    [  827.850429] vhci_hcd: vhci_device speed not set
    [  827.920445] usb 1-1: new high-speed USB device number 3 using vhci_hcd
    [  828.000576] vhci_hcd: vhci_device speed not set
    [  828.150453] vhci_hcd: vhci_device speed not set
    [  828.220264] usb 1-1: new full-speed USB device number 4 using vhci_hcd
    [  828.300294] vhci_hcd: vhci_device speed not set
    [  828.370303] usb 1-1: SetAddress Request (4) to port 0
    [  828.410565] usb 1-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.63
    [  828.412926] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
    [  828.413663] usb 1-1: Product: USB2.0-Serial
    [  828.415868] ch341 1-1:1.0: ch341-uart converter detected
    [  828.419568] usb 1-1: ch341-uart converter now attached to ttyUSB0

    ์‹ค์ œ๋กœ ๋””๋ฐ”์ด์Šค๊ฐ€ Ubuntu์— ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ „ ๋ธ”๋กœ๊ทธ์—์„œ ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด์šฉ์ธ๋ฐ, ์œˆ๋„์šฐ๋ฅผ ํฌ๋งทํ•œ ํ›„ ์ƒˆ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณธ ๊ฒฐ๊ณผ ์ •๋ฆฌ. ๋ณ„๋‹ค๋ฅธ ์ฐจ์ด ์—†์ด ์ž˜๋จ.


    ๋ง#1: ํ˜„์žฌ ์›์ธ์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์ด ๋ธŒ๋ฆฟ์ง€๋กœ ์„ค์ •์„ ํ•ด๋†“์œผ๋ฉด, ์ธํ„ฐ๋„ท ์—…๋กœ๋“œ ์†๋„ ๋ฐ ๋…ธ์…˜ ๋“ฑ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์˜ ์†๋„๊ฐ€ ๋ฏธ์นœ๋“ฏ์ด ๋Š๋ ค์ง€๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ, ๊ฐ™์€ ์ฆ์ƒ์„ ํ˜ธ์†Œํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋‹ค์ˆ˜์žˆ๋„ค์š”. ๋ฒ„๊ทธ์ธ๋“ฏํ•œ๋ฐ… ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.


    WLS2์˜ ์„œ๋ธŒ ๋จธ์‹ ๋“ค์˜ ๋„คํŠธ์›Œํฌ๋Š” ๋‚ด๋ถ€ ํ”„๋ผ์ด๋น—๋ง์„ ์‚ฌ์šฉํ•œ๋‹ค. ์™ธ๋ถ€ ๋Œ€์—ญ๊ณผ๋Š” ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ, ์˜ˆ๋ฅผ ๋“ค์–ด Ubuntu๋ฅผ ์„ค์น˜ํ•˜๊ณ  ifconfig๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด,

    $ ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.21.50.26  netmask 255.255.240.0  broadcast 172.21.63.255
            inet6 fe80::215:5dff:fec8:7eef  prefixlen 64  scopeid 0x20<link>
            ether 00:15:5d:c8:7e:ef  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 7  bytes 586 (586.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    ์™€ ๊ฐ™์ด 172.21.50.xx ๋Œ€์—ญ์˜ ์•„์ดํ”ผ๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.

    ์‚ฌ์šฉ ๋ชฉ์ ์— ๋”ฐ๋ผ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์œˆ๋„์šฐ ๋จธ์‹ ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ธŒ๋ฆฟ์ง€ํ•˜์—ฌ ์™ธ๋ถ€์—์„œ๋„ ์ ‘์†์ด ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด WSL2์˜ Bridge ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

    ๋จผ์ € ์œˆ๋„์šฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์ค‘ Hyper-V ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

    ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜๊ณ , ์žฌ๋ถ€ํŒ….

    Hyper-V Manager๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

    ๋ฉ”๋‰ด > Action > Virtual Switch Manager๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

    ์šฐ์ธก Create virtual switch์—์„œ External๋ฅผ ์„ ํƒํ•˜๊ณ , Create Virtual Switch๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

    ์ด๋ฆ„์„ ์ ๋‹นํžˆ ์ž…๋ ฅํ•˜๊ณ  (์—ฌ๊ธฐ์„  wsl2-external), Connection type์—์„œ๋Š” External network์—์„œ ์™ธ๋ถ€๋ง๊ณผ ์—ฐ๊ฒฐํ•  Network ์นด๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค. ํ˜„์žฌ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์€ ๋…ธํŠธ๋ถ์ด๋ผ ์—ฌ๊ธฐ์—์„  ๋…ธํŠธ๋ถ์˜ WiFi ์นด๋“œ๋ฅผ ์„ ํƒํ•จ.

    ๋„คํŠธ์›Œํฌ ์„ค์ • ๊ณผ์ •์—์„œ ํ˜„์žฌ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์ธ๋ฐ, ๊ทธ๋ƒฅ Yes๋ฅผ ๋ˆŒ๋Ÿฌ ์ง„ํ–‰ํ•œ๋‹ค.

    ์ด์ œ Hyper-V Manager๋ฅผ ์ข…๋ฃŒํ•˜๊ณ , ์‚ฌ์šฉ์ž ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ (C:\User\<user-name>\)์— .wslconfig ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.

    [WSL2]
    networkingMode = bridged
    vmSwitch = wsl2-external

    networkingMode๋ฅผ bridged๋กœ ์„ค์ •ํ•˜๊ณ , vmSwitch์—๋Š” ์ „ ๊ณผ์ •์—์„œ ์ƒ์„ฑํ•œ Virtual Switch ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค.

    ์ฝ”๋งจ๋“œ ์ฐฝ์„ ์—ด๊ณ , wsl2๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ•œ๋‹ค.

    > C:\Windows\System32\wsl.exe --shutdown

    ์ด์ œ wsl2์˜ ์„œ๋ธŒ ๋จธ์‹ , ์˜ˆ๋ฅผ ๋“ค๋ฉด Ubuntu๋ฅผ ์‹œ์ž‘ํ•ด์„œ ifconfig ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด,

    $ ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.237  netmask 255.255.255.0  broadcast 192.168.1.255
            ether 5c:bb:f6:9e:ee:fa  txqueuelen 1000  (Ethernet)
            RX packets 17  bytes 2506 (2.5 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 2  bytes 684 (684.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    ์™€ ๊ฐ™์ด ์™ธ๋ถ€๋ง์˜ IP๋ฅผ ํ• ๋‹น๋ฐ›์•„ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ์™ธ๋ถ€์—์„œ ์ ‘์†๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ๋„ ๋ฌธ์ œ๊ฐ€ ์—†์Œ.

  • ์ฐธ๊ณ ๋ฆผํฌ: https://docs.nvidia.com/cuda/wsl-user-guide/index.html

    WSL2๋กœ ์„ค์น˜ํ•œ Ubuntu์—์„œ CUDA๋ฅผ ์„ค์น˜ํ•˜๋ฉด GPU ๊ฐ€์†์— ๊ด€๋ จํ•œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋ฌผ๋ก  ์œˆ๋„์šฐ์—์„œ NVIDIA ๋“œ๋ผ์ด๋ฒ„ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ. https://www.nvidia.com/Download/index.aspx. ์„ค์น˜๋ฐฉ๋ฒ•์€ ์œ„ ๋งํฌ๋ฅผ ์ฐธ๊ณ . ๊ถŒ์žฅ๋œ ๋ฐฉ๋ฒ•๋Œ€๋กœ WSL-Ubuntu ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•œ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. Ubuntu๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.

    $ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
    $ sudo dpkg -i cuda-keyring_1.0-1_all.deb
    $ sudo apt-get -y install cuda

    ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ํ™•์ธ.

    ์™„๋ฃŒ.

  • ์ฐธ๊ณ ๋งํฌ: https://learn.microsoft.com/ko-kr/windows/wsl/install

    ํ˜„์žฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ: Windows 11 Pro 22H2

    ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋งจ๋“œ ์ฐฝ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.

    > wsl --install

    ์ž๋™์œผ๋กœ ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด Ubuntu 22.04๊นŒ์ง€ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋จ.

    > wsl --install                                                                                       Installing: Virtual Machine Platform                                                                                    Virtual Machine Platform has been installed.                                                                            Installing: Windows Subsystem for Linux                                                                                 Windows Subsystem for Linux has been installed.                                                                         Installing: Ubuntu                                                                                                      Ubuntu has been installed.                                                                                              The requested operation is successful. Changes will not be effective until the system is rebooted.                                                                                                                        

    ์žฌ๋ถ€ํŒ… ํ•„์š”.

    ์‹œ์ž‘๋ฉ”๋‰ด์—์„œ Ubuntu ํ™•์ธ ๊ฐ€๋Šฅ. ์ถ”๊ฐ€๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ Linux๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, Microsoft Store๋ฅผ ํ†ตํ•ด์„œ ์„ค์น˜ ์ง„ํ–‰ํ•œ๋‹ค.

    ์ฒ˜์Œ ์‹คํ–‰ ์‹œ, ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋‚˜๋ฉด Ubuntu๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋จ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ์ด์ œ ๊ธฐ๋ณธ Ubuntu์™€ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

    ๊ธฐ๋ณธ์ ์œผ๋กœ wsl2๋กœ ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋œ๋‹ค๊ณ  ํ•จ. (์˜ˆ์ „์—” wsl1์œผ๋กœ ๋˜์—ˆ๋Š”๋ฐ…) ํ™•์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด ๋จ.

    > wsl -l -v
      NAME      STATE           VERSION
    * Ubuntu    Running         2

    ์™„๋ฃŒ

  • ROS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋‹ˆ, ROS์˜ ๋ฒ„์ „ ํŒŒํŽธํ™” ๋•๋ถ„(?)์— Ubuntu์˜ ๋ฒ„์ „์„ ๋‹ฌ๋ฆฌ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ROS2์˜ ์ตœ์‹  LTS ๋ฒ„์ „์€ Humble๋กœ Ubuntu 22.04์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ROS1์˜ ๊ฒฝ์šฐ ์ตœ์ข… LTS ๋ฒ„์ „์ด Noetic์œผ๋กœ Ubuntu 20.04์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋‘๊ฐœ์˜ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ๋‘ ๊ฐœ์˜ Ubuntu ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์œผ๋‚˜, ๊ฐœ๋ฐœ ์‹œ์— ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๊ธฐ๋„ ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ต์œก ์‹œ ์ผ๋ฐ˜ํ™” ํ•˜๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์ข€ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋˜ ์™ธ์žฅ USB ํ˜น์€ SSD๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ์ฃผ๋ ์ฃผ๋  ๋งค๋‹ฌ๊ณ  ๋‹ค๋‹ˆ๊ธฐ์—” ์ข€ ๋ถˆํŽธํ•˜์ฃ .

    ํ•˜๋‚˜์˜ ๋””์Šคํฌ์— ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜๋งŒ ๋ถ„๋ฆฌํ•˜๋ฉด, ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฒ„์ „์˜ Ubuntu๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋จผ์ € ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์˜ Ubuntu ๋ฐฐํฌํŒ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์œˆ๋„์šฐ์™€ ๋ฉ€ํ‹ฐ๋ถ€ํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

    ์„ค์น˜ ๊ณผ์ •์—์„œ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜์„ ์„ค์ •ํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ์ด๋•Œ ๋‚˜์ค‘์— ์„ค์น˜ํ•  ๋ฐฐํฌํŒ์˜ ๋ฃจํŠธ ์˜์—ญ๋„ ํ™•๋ณดํ•ด๋‘ก๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    /dev/sda1    /boot    EFI     2000MB
    /dev/sda2    /        ext4    200000MB
    /dev/sda3    None     ext4    200000MB
    /dev/sda4    swap     swap    32768MB

    ์žฅ์น˜๋ฒˆํ˜ธ๋Š” ์‚ฌ์šฉ์ž๋งˆ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฐ์•ˆํ•˜์‹œ๊ณ , ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ๋ณด๋ฉด, ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜(/)๋งŒ ๋ถ„๋ฆฌํ•ด ๋‘” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์„ค์น˜๊ณผ์ •์„ ์ง„ํ–‰ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ค์Œ์œผ๋กœ,

    ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•  ๋ฐฐํฌํŒ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ๋Š” ๊ธฐ์กด์˜ ์„ค์น˜๋ฐฉ๋ฒ•์ด ์•„๋‹Œ, Try Ubuntu ๋“ฑย ์ž„์‹œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“œ๋กœ ๋ถ€ํŒ…์„ ์™„๋ฃŒํ•œ ํ›„, ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    $ ubiquity -b

    ์œ„ ๋ช…๋ น์€ ์„ค์น˜ ์ง„ํ–‰ ์‹œ ๋ถ€ํŠธ๋กœ๋” ์„ค์น˜๋ฅผ ํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์„ค์น˜๊ณผ์ •์€ ๊ธฐ์กด๊ณผ ๋™์ผํ•˜๊ณ , ๋‹ค๋งŒ ํŒŒํ‹ฐ์…˜ ์„ค์ • ๋ถ€๋ถ„์—์„œ ๊ธฐ์กด์— ํ™•๋ณดํ•ด๋‘์—ˆ๋˜ ํŒŒํ‹ฐ์…˜์„ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. (์œ„์™€ ๊ฐ™์€ ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ /dev/sda3)

    ์ด์ œ ์ „ ๊ณผ์ •์—์„œ ์„ค์น˜ํ•œ ์ตœ์‹  ๋ฐฐํฌํŒ์œผ๋กœ ๋ถ€ํŒ…ํ•œ ํ›„,

    $ sudo update-grub2

    ์„ ์ž…๋ ฅํ•˜๋ฉด, ์ž๋™์œผ๋กœ grub์—์„œ ๋ชจ๋“  ํŒŒํ‹ฐ์…˜์˜ ๋ฃจํŠธ ํŒŒํ‹ฐ์…˜์„ ์ธ์‹ํ•ด์„œ ๋ถ€ํŒ…๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

    Grub์˜ ๊ธฐ๋ณธ ์„ค์ •์ด ๋ณ„๋‹ค๋ฅธ ์ž…๋ ฅ์ด ์—†์œผ๋ฉด, ํœ™ ๊ทธ๋ƒฅ ์ง€๋‚˜๊ฐ€๊ฒŒ ๋˜์–ด ์žˆ์–ด, /etc/default/grub ํŒŒ์ผ์„ ์—ด์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ด์ค€๋‹ค.

    # If you change this file, run 'update-grub' afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration'
    
    GRUB_DEFAULT=0
    GRUB_TIMEOUT_STYLE=menu
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""

    ๋‹ค์‹œ,

    $ sudo update-grub2

    ํ•ด์ฃผ๊ณ , ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ grub ์ฐฝ์ด ๋œจ๊ณ , ๋ถ€ํŒ…ํ•  ๊ณณ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ.

  • ์œˆ๋„์šฐ11๋กœ ํŒ์˜ฌ๋ฆผํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ถˆํŽธํ•œ ๋ถ€๋ถ„์ด ๋ฐ”ํƒ•ํ™”๋ฉด์—์„œ ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ, ๊ธฐ์กด ๋ฉ”๋‰ด๊ฐ€ ๋‹ค ๋‚˜ํƒ€๋‚˜๋Š”๊ฒŒ ์•„๋‹ˆ๊ณ  ํ•ญ์ƒ “๋” ๋งŽ์€ ์˜ต์…˜”์„ ๋ˆŒ๋Ÿฌ์•ผ๋งŒ ๋ณด์ด๋Š” ์ ์ž…๋‹ˆ๋‹ค.

    ์ด๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„ ,

    CMD์ฐฝ์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    > reg.exe add โ€œHKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32โ€ /f /ve

    ๊ทธ๋Ÿฐ ๋‹ค์Œ, explorer.exe๋ฅผ ๊ฐ•์ œ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

    > taskkill /f /im explorer.exe

    ๋‹ค์‹œ explorer.exe๋ฅผ ์‹คํ–‰ํ•ด ์ค๋‹ˆ๋‹ค.

    > explorer.exe

    ์ด์ œ ํ™•์ธํ•ด๋ณด๋ฉด, ๋” ๋งŽ์€ ์˜ต์…˜ ๋ฉ”๋‰ด๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ๋ชจ๋“  ๋ฉ”๋‰ด๊ฐ€ ์ž˜ ๋ณด์ด๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


    ๋‹ค์‹œ ์ด์ „์œผ๋กœ ๋ณต๊ตฌํ•˜๋ ค๋ฉด,

    > reg.exe delete โ€œHKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}โ€ /f
    > taskkill /f /im explorer.exe
    > explorer
  • ์•„์ฃผ ๊ฐ„๋งŒ์— ์œˆ๋„์šฐ๋ฅผ ์ƒˆ๋กœ ์„ค์น˜ํ•ด์•ผ ํ•  ์ผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋“€์–ผ๋ถ€ํŒ…์œผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ๋ฆฌ๋ˆ…์Šค์—์„œ USB ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง€์šด๋‹ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ์ด ์œˆ๋„์šฐ ํŒŒํ‹ฐ์…˜์„ ์•„์ฃผ ๊น”๋”ํ•˜๊ฒŒ ์ง€์›Œ๋ฒ„๋ฆฌ๋Š” ์‚ฌ๊ณ ๋ฅผ ์น˜๋Š” ๋ฐ”๋žŒ์—… ๋ณต๊ตฌ USB ์Šคํ‹ฑ์„ ๋งŒ๋“ค๊ณ , ์œˆ๋„์šฐ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋„์ค‘์— ์•„๋ฌด ์ƒ๊ฐ์—†์ด live ๊ณ„์ •๊ณผ ์—ฐ๊ฒฐํ•˜๋„๋ก ํ•˜์˜€๋Š”๋ฐ, ์ด๊ฒŒ ์ž๊พธ ์ด์ƒํ•˜๊ฒŒ ๊ผฌ์ด๋Š” ํ˜„์ƒ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

    ๊ธฐ์กด User ํ™ˆ ํด๋”์— Desktop / Documents / Downloads / Videos / Pictures ๋“ฑ์ด ์ƒ์„ฑ๋˜๊ณ  ์—ฌ๊ธฐ์— ์ž๋ฃŒ๊ฐ€ ๋ชจ์•„์ง€๋Š” ํ˜•ํƒœ์˜€๋Š”๋ฐ, ๋ผ์ด๋ธŒ ๊ณ„์ •๊ณผ ์—ฐ๋™ํ•˜๋ฉด ๊ธฐ๋ณธ์œผ๋กœ ์ด ์œ ์ € ํด๋”๊ฐ€ ์›๋“œ๋ผ์ด๋ธŒ์™€ ๋งํฌ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ํ˜•ํƒœ๋กœ Desktop ํด๋”๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” C:\Users\<user-id>\Desktop ์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

    ์›ƒ๊ธด ์ ์€ ์›๋“œ๋ผ์ด๋ธŒ๋ฅผ ์ง€์šฐ๋ฉด ์ด ๋งํฌ๊ฐ€ ๋ณต์›๋˜๋‚˜ ํ–ˆ๋”๋‹ˆ, ๊ทธ๊ฒƒ๋„ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ Desktop ๋””๋ ‰ํ† ๋ฆฌ๋Š” OneDrive ํ•˜์œ„์— ์œ„์น˜ํ•ด ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ž˜๋ชปํ•ด์„œ ์ง€์šฐ๋ฉด ํƒ์ƒ‰๊ธฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์—๋Ÿฌ๋ฅผ ๋ฟœ๊ณ , ์ง€ ๋ง˜๋Œ€๋กœ ๋ณต๊ตฌํ•ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

    ์˜ˆ์ „์—๋Š” ์„ค์น˜ ๊ณผ์ •์—์„œ ๋กœ์ปฌ ๊ณ„์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ์ง€๋ฅผ ์ฃผ์—ˆ์ง€๋งŒ, ์–ผ๋งˆ์ „๋ถ€ํ„ฐ์ธ๊ฐ€ ๋ฌด์กฐ๊ฑด ๋ผ์ด๋ธŒ ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ณ  ์›๋“œ๋ผ์ด๋ธŒ ์‚ฌ์šฉ์„ ๊ฐ•์ œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํšŒํ”ผํ•˜๋ ค๋ฉด, ์„ค์น˜ ์‹œ ๋„คํŠธ์› ์—ฐ๊ฒฐ ๊ณผ์ •์—์„œ Shift + F10 ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ CMD์ฐฝ์„ ์‹คํ–‰ํ•˜๊ณ  oobe\bypaddnro๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๋‹ค์‹œ ์žฌ๋ถ€ํŒ…๋˜๊ณ  ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ ์—†์ด ๋กœ์ปฌ ๊ณ„์ • ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๊น”๋”ํ•˜๊ฒŒ, ์ด์ „์ฒ˜๋Ÿผ User ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ‘์— ์œ„ ์‚ฌ์šฉ์ž ํด๋”๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์œ„์น˜ํ•ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›๋ผ์ด๋ธŒ์™€์˜ ์‹ฑํฌ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ŠคํŒ€๋ฑ ๊ตฌ์ž…์€ ๊ฑฐ์˜ ํ•œ๋‹ฌ ์ „์ด์—ˆ๋Š”๋ฐ, ์‚ฌ ๋†“๊ณ  ํ•œ ๋‘๋ฒˆ ์ผœ๋ณธ ๋‹ค์Œ ๋ฐฉ์น˜ ์ˆ˜์ค€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์šฉ๋Ÿ‰์ด ์ž‘์€ 64GB ๋ชจ๋ธ์„ ๊ตฌ์ž…ํ–ˆ๊ณ , ์–ด์งœํ”ผ SSD๋ฅผ ๊ต์ฒดํ•˜๋ ค๊ณ  ๋งˆ์Œ ๋จน์€์ง€๋ผ, SSD๊ฐ€ ์˜ค๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ณ„๋‹ค๋ฅธ ํ•  ์ผ์ด ์—†์–ด์„œ…

    ๊ต์ฒด ๋‚œ์ด๋„๋Š” ๋„ˆ๋ฌด๋‚˜ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋ช‡๊ฐœ ๋‚˜์‚ฌ ํ’€๊ณ , ๊ทธ๋ƒฅ ๊ต์ฒดํ•˜๋ฉด ๋์ธ๊ฑฐ๋ผ, 10๋ถ„ ์ •๋„ ๊ฑธ๋ฆฐ๋“ฏ ํ•˜๋„ค์š”.

    ๊ตฌ๋งคํ–ˆ๋˜ 1TB SSD๊ฐ€ ๋„์ฐฉ์„ ํ–ˆ๊ณ , ๊ต์ฒด ๋ฐฉ๋ฒ•๊นŒ์ง€ ์ƒ์„ธํžˆ ์ ํ˜€์ ธ ์žˆ๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ต์ฒด ์„ฑ๊ณต.

    https://www.ifixit.com/Guide/Steam+Deck+SSD+Replacement/148989

    ๋‹ค์Œ์œผ๋กœ, ๋ณต๊ตฌ ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณต๊ตฌ๊นŒ์ง€ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    https://help.steampowered.com/en/faqs/view/1b71-edf2-eb6d-2bb3

    ์ด์ œ, ๊ตฌ์ž…ํ•  ๋•Œ ๊ณ„ํšํ–ˆ๋˜๋Œ€๋กœ, ๋กœ๋ด‡์˜ ์›๊ฒฉ์ œ์–ด๋ฅผ ์œ„ํ•œ ์šฐ๋ถ„ํˆฌ ์„ค์น˜ or ๊ฒŒ์ž„ ์•ฝ๊ฐ„ (^^;;)์„ ํ•ด๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

Join 900+ subscribers

Stay in the loop with everything you need to know.