WSL2

장승현·2023년 2월 12일
0

ROS

목록 보기
2/3
post-thumbnail

Overview

WSL은 Windows Subsystem for Linux의 줄임말로, 윈도우에서 리눅스 환경을 사용 가능

Installation

DISM으로 WSL 관련 기능 활성화

터미널 창을 관리자 권한으로 실행하여 다음 명령어들을 실행

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

→ Microsoft-Windows-Subsystem-Linux 기능을 활성화하는 명령어

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

→ VirtualMachinePlatform 기능을 활성화하는 명령어

WSL 설치

터미널 창을 관리자 권한으로 실행한 상태에서 다음 명령어를 실행하여 wsl을 설치

wsl --install -d Ubuntu-18.04

기본적으로 wsl2가 설정되나, wsl -l -v명령어를 통해 버전 확인

wsl —set-version <distro name> 2명령어를 통해 버전 변경

→Ubuntu 18.04 버전이 아닌 다른 버전을 설치할 경우, wsl —list —online명령어를 실행하여 사용 가능한 배포판 목록을 확인 후 wsl —install -d <Distribution Name>으로 설치 가능

설치 후, WSL2의 경우 Linux 커널 업데이트를 따로 설치해야 함

Linux 커널 업데이트 패키지 설치

WSL 설치 방법 참조

Terminal Setting

  1. Terminal 실행
  2. Terminal 상단 탭 바의 화살표를 클릭하고 설정 클릭
  3. 새 프로필 추가에서 프로필 복제 칸에 펭귄 Ubuntu 선택하고 중복 클릭
  4. 추가된 프로필을 클릭하고 시작 디렉터리에 %USERPROFILE% 입력하여 사용

Tip : 설정에서 시작 창을 wsl2로 설정하여 편리하게 사용 가능

WSL GUI Program

WSL에서 GUI 프로그램을 사용하기 위해서는 XLaunch는 필수

XLaunch

Installation

아래 사이트에서 xlaunch 설치 가능

XLanch 설치 링크

Setting

  1. 설치 후 실행한 다음, 설정 창에서 Next를 클릭해 Extra Settings으로 이동

  2. Native opengl 항목을 체크 해제하고, Disable access control 항목을 체크 및 Additional parameters for VcXsrv에 -ac를 추가

  3. 다음 창에서 Save configuration 클릭 후 저장

  4. window + r 누른 후, shell:startup 입력하여 시작 프로그램 폴더로 이동 후 configuration 삽입

    → GUI 프로그램을 위해 매번 xlaunch를 실행하고 설정하는 것이 번거롭기에, 시작 프로그램 폴더로 configuration을 삽입하여 컴퓨터가 켜질 때마다 자동으로 실행 가능하게 함

  5. Ubuntu에 디스플레이 환경변수를 설정해주기 위해 wsl을 실행하고 vim ~/.bashrc명령어 입력

  6. 아래 소스를 가장 하단에 입력

    → 호스트와 이더넷이 분리되어 동적으로 IP가 할당되기 때문에, VcXsrv서버와 통신을 하기 위해서 입력

    export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
    export LIBGL_ALWAYS_INDIRECT=0

  7. 마지막으로 VcXsrv의 방화벽을 허용하고 완료
    Windows 보안 > 하단의 방화벽에서 앱 허용 > 설정 변경을 누르고 VcXsrv의 방화벽을 모두 허용

Error

환경변수를 설정해주지 않으면 해당 에러 발생
Could not connect to any X display.

환경변수를 설정했음에도 위 에러가 발생한다면, echo $DISPLAY로 IP 확인

IP가 두 개가 나온다면,
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0" 대신
export DISPLAY=:0을 입력

아무것도 나오지 않는다면 방화벽 허용을 하지 않아서 생기는 문제

WSL Tips

WSL 폴더 접근

\\wsl$ 경로를 사용하여 접근 가능

profile
늦더라도 끝이 강한 내가 되자

0개의 댓글