Dell U2723QE 모니터 구입

새로 만든 개발용PC에 사용할 모니터를 고민하다가, Dell U2723QE 모니터로 결정하고 구입하였음.

Dell UltraSharp 27 4K USB-C 허브 모니터 – U2723QE

출처: Dell.com

화질이야 어짜피 IPS 패널 정도면, 큰 무리는 없을듯 하고… 27인치냐 32인치냐를 한참 고민했었는데… 27인치에서 4k를 Native 해상도로 사용하기엔 살짝 무리가 있고, 32인치는 Native 해상도로 사용하기엔 큰 문제가 없는데, 맥북 등에서 레티나 해상도로 사용하면 글자가 엄청나게 커지니… 또 책상의 크기도 반영하여 27인치로 결정

또 하나 재밌는 기능이 포함되어 있는데, KVM 기능이 내장되어 있음. 모니터 하나를 가지고 2대의 PC에서 사용할 수 있는 기능인데, 모니터의 입력 소스를 선택하면 해당되는 PC로 키보드와 마우스를 자동으로 전환해 줌. 따라서 편하게 메인PC를 사용하다가 노트북을 붙여서 사용할 때도 큰 무리없이 함께 사용 가능. Good!

출처: Dell.com

가격은 공식 홈페이지에선 이상한 가격으로 되어 있는데, 대충 799,000원이 공식 가격인듯… (할인은 얄짤도 없다는…)

작업용 PC 조립

노트북으로는 살짝 사양이 부족하여, 집에서 개인적으로 사용할 PC를 조립하였습니다. 살짝 공돌이 마인드가 발생하여 최적화된 케이스를 찾다가 FormD사의 T1 v2 모델을 선정하였습니다.

Mini ITX보드만 들어갈 수 있고, SFX 파워, 그래픽 카드 등을 넣으면 거의 빈 공간이 없는 작은 사이즈의 케이스인데, 도전하는 마음으로..^^ 국내에는 팔지 않아, 해외 주문을 하였고, 며칠 후 관세 납입하라는 문자가 와서 수령하고 조립 시작..

대충 들어간 부품 목록은

  • CPU: Intel Core i9-12gen 12900KF (엘더레이크)
  • M/B: ASUS ROG STRIX B660-I GAMING WIFI
  • RAM: 삼성전자 DDR5-4800 (32GB) * 2EA
  • POWER: FSP DAGGER PRO 850W GOLD Full Modular (SFF)
  • GPU: COLORFUL 지포스 RTX 3090 Ti 토마호크 EX D6X 24GB
  • AIO: [FRACTAL DESIGN] Lumen S24
  • CASE: FormD T1 – SANDWICH KIT – TITANIUM COLOR
  • Cooler: Noctua NF-A12x15 PWM Premium Quiet Slim Fan 4-Pin x 2EA

케이스는 그야 말로 부품레벨로만 제공되고, 따로 조립 메뉴얼로 첨부되지 않습니다. 유투브의 여러 영상으로 통해 참고하는 수 밖에는 없었고, 조립을 하다가 여러번 나사를 풀고 조이는 작업을 반복해야 합니다. (상황에 따라)

꾸역꾸역 부품 집어넣고, 케이블 정리하고, 부팅까지 되는걸 확인하고 하니, 꽤나 만족스럽습니다. 수냉 쿨러 특성상 열이 발생해도 소음은 조용한 수준입니다.

본체 크기는 저 정도입니다. 아주 작은 크기이고, 사방으로 타공되어 있어 공기 순환도 아주 잘되는 편입니다.

Unityhub 설치 on Ubuntu 22.04

Unity를 사용하기 위해 Ubuntu 22.04에서 Unityhub 설치 과정을 진행해도 Unityhub가 실행되지 않는다.

검색해본 결과, libssl 버전이 안맞아서 그런 것인데, Ubuntu 22.04에 설치되는건 libssl3이고 Unityhub가 사용하는건 libssl1 이다.

간단히 libssl1을 받아서 설치해주면 해결됨.

$ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

Unityhub 설치 과정은…

$ sudo sh -c 'echo "deb https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list'
$ wget -qO - https://hub.unity3d.com/linux/keys/public | sudo tee /etc/apt/trusted.gpg.d/unityhub.asc
$ sudo apt update
$ sudo apt install unityhub

WSL2에서 외부네트웍에 브릿지하여 사용하기

WSL2에서 Ubuntu 등을 설치하면 기본적으로는 내부 프라이빗 네트워크망을 사용한다. 즉, 아이피 대역이 아예 다른 서브네트웍 망을 생성하여 사용한다는 얘기.

따라서 ipconfig를 이용하여 할당된 IP를 확인해보면,

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.175.35  netmask 255.255.240.0  broadcast 172.24.175.255
        inet6 fe80::215:5dff:fea8:1061  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:a8:10:61  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.24.175.35 등으로 할당된다.

여러가지 이유로 윈도우에서 접속되어 있는 외부네트웍을 접속하고, 또 외부에서 WSL2 안의 시스템에 접속하고 싶을 때가 있는데, 이때는 WSL2의 Bridge 기능을 사용하면 된다.

먼저 Hyper-V 매니저를 설치하고, 실행한다. Windows 추가 기능 관리자를 사용하여 설치할 수 있다.

설치하고, 재부팅을 완료한 이후에, Hyper-V 매니저를 실행하면, 다음과 같이 보일텐데…

메뉴의 Action > Virtual Switch Manager를 실행한다.

이제 New virtual network switch를 클릭고, 외부 네트웍에 브릿지 해야 하므로 External를 선택한 후, Create Virtual Switch를 클릭한다.

이름은 적당히 입력하고 (나중에 사용해야 하므로 적당히…), Connection Type에서 External Network를 선택하고, 현재 외부망에 연결되어 있는 네트웍카드를 선택한다. (예시의 경우엔, 현재 노트북을 이용하여 무선랜으로 외부망에 접속중이므로, 무선랜카드를 선택하였음.)

Apply를 눌러 적용한다.

자, 이제 현재 사용자의 홈디렉토리에 .wslconfig 파일을 생성하고, 다음과 같이 입력한 후, 저장한다.

[WSL2]
networkingMode = bridged
vmSwitch = New Virtual Switch

vmSwitch의 이름은 아까 전 단계에서 생성했던 Virtual Network Switch 이름을 입력하면 된다.

PowerShell를 관리자 권한으로 실행하여 다음과 같이 WSL2를 아예 종료한다.

PS C:\WINDOWS\system32> .\wsl.exe --shutdown

이제 WSL2를 다시 실행한 다음, ifconfig를 실행해 보면,

~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.193  netmask 255.255.255.0  broadcast 192.168.100.255
        ether 5c:bb:f6:9e:ee:fa  txqueuelen 1000  (Ethernet)
        RX packets 2  bytes 684 (684.0 B)
        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

정상적으로 외부 네트웍망의 아이피를 할당받았음을 알 수 있다.
끝!

WSL2에서 윈도우에 연결된 USB 장치 사용하기

공식적으론 지원하지 않음. 하지만 오픈소스로 개발된 툴을 설치하면 윈도우에 연결된 USB 장치를 WSL2 내부에서 사용 가능.

과정 정리.

일단 WSL2는 설치하였고, 여기에선 Ubuntu 20.04.4 LTS를 설치하였음.

먼저 usbipd (https://github.com/dorssel/usbipd-win) 설치

https://github.com/dorssel/usbipd-win/releases/latest 에서 최신 버전의 설치 파일을 받아서 설치. 설치후 재부팅 필요.

윈도우에서 Power Shell을 관리자 권한으로 실행. 터미널 화면에서,

PS C:\WINDOWS\system32> usbipd wsl list
BUSID  VID:PID    DEVICE                                                        STATE
2-1    27c6:533c  Goodix fingerprint                                            Not attached
2-5    0c45:6a0c  Integrated Webcam                                             Not attached
2-13   10c4:ea60  Silicon Labs CP210x USB to UART Bridge (COM3)                 Not attached
2-14   8087:0026  Intel(R) Wireless Bluetooth(R)                                Not attached
3-2    2188:6533  CalDigit Thunderbolt 3 Audio, USB Input Device                Not attached
4-2    0853:0148  USB Input Device                                              Not attached
4-8    2188:0747  USB Mass Storage Device                                       Not attached
9-1    046d:c539  USB Input Device                                              Not attached
9-2    413c:b080  Dell DA20 Adapter                                             Not attached

와 같이 현재 윈도우PC에 연결된 USB 장치 리스트들이 보임. 오른쪽에는 현재 WSL에 연결되어 있는지 여부가 표시됨.

WSL2의 Ubuntu 20.04를 실행하고, 다음과 같이 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

이제 다시 파워셀로 돌아가서, 다음과 같이 WSL2에 연결될 디바이스를 attach 해줌.

PS C:\WINDOWS\system32> usbipd wsl attach --busid=2-13

버스아이디 번호는 위 리스트에서 참고.

WSL2의 Ubuntu에서 dmesg로 연결을 확인해보면,

...
[  981.156497] vhci_hcd vhci_hcd.0: pdev(0) rhport(0) sockfd(3)
[  981.157731] vhci_hcd vhci_hcd.0: devid(131085) speed(2) speed_str(full-speed)
[  981.159973] vhci_hcd vhci_hcd.0: Device attached
[  981.438826] vhci_hcd: vhci_device speed not set
[  981.508832] usb 1-1: new full-speed USB device number 3 using vhci_hcd
[  981.588445] vhci_hcd: vhci_device speed not set
[  981.658522] usb 1-1: SetAddress Request (3) to port 0
[  981.730925] usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[  981.731956] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  981.732837] usb 1-1: Product: CP2102 USB to UART Bridge Controller
[  981.733628] usb 1-1: Manufacturer: Silicon Labs
[  981.734221] usb 1-1: SerialNumber: 0001
[  981.744934] cp210x 1-1:1.0: cp210x converter detected
[  981.751507] usb 1-1: cp210x converter now attached to ttyUSB0

와 같이 정상적으로 연결되고, /dev에 장치가 생성됨을 볼 수 있음. 연결을 해제하려면 파워쉘에서

PS C:\WINDOWS\system32> usbipd wsl detach --busid=2-13

를 입력하면,

[ 1048.211316] vhci_hcd: connection closed
[ 1048.211480] vhci_hcd: stop threads
[ 1048.212982] vhci_hcd: release socket
[ 1048.213452] vhci_hcd: disconnect device
[ 1048.214003] usb 1-1: USB disconnect, device number 3
[ 1048.214792] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[ 1048.215669] cp210x 1-1:1.0: device disconnected

정상적으로 연결 해제.

이제 실제 리눅스 시스템에서와 마찬가지로 장치 사용 가능.

덧.

장치를 attach 하는 도중 다음과 같은 에러가 발생하면,

usbipd: error: WSL kernel is not USBIP capable; update with 'wsl --update'.

위에서 제시한 해결 방법대로, wsl를 업데이트 해주면 됨.

참고링크: