WSL2 세팅

WSL2 세팅

안녕하세요, pingu52입니다.

이번 글에서는 Windows 11 기준으로 WSL2(Windows Subsystem for Linux) 를 이용해
안정적인 Linux 빌드 환경(=임베디드/Yocto/크로스 컴파일용) 을 만드는 방법을 정리합니다.


목표#

  • Windows 11에서 WSL2 + Ubuntu 설치
  • 기본 개발툴(컴파일러/디버깅/네트워크) 세팅
  • 임베디드 빌드(특히 Yocto)에서 성능/경로/디스크 이슈 피하기

준비#

  • Windows 11 최신 업데이트 권장
  • 디스크 여유(중요):
    • 일반 임베디드 빌드: 수십 GB
    • Yocto: 프로젝트에 따라 100GB~300GB+ 도 흔함
  • Windows Terminal(있으면 편함)
  • 관리자 권한 PowerShell/터미널

1. WSL2 설치#

관리자 PowerShell을 열고 아래 실행:

Terminal window
wsl --install

기본 배포판(보통 Ubuntu)이 설치됩니다.
이미 설치되어 있다면 WSL 자체 업데이트만 해도 좋습니다.

WSL 버전/커널을 최신으로 업데이트:

Terminal window
wsl --update
wsl --version

설치 및 업데이트 확인:

Terminal window
wsl -v

(선택) 설치 할 수 있는 리눅스 배포판 확인

Terminal window
wsl --list --online

2. Ubuntu 실행 및 초기 설정#

설치 후 Ubuntu를 실행하면 사용자 계정을 만들라고 나옵니다.

Ubuntu 들어오면 가장 먼저 업데이트:

Terminal window
sudo apt update
sudo apt upgrade -y

3. (중요) 빌드 작업은 /mnt/c에서 하지 말기#

WSL에서 Windows 드라이브는 /mnt/c, /mnt/d처럼 마운트됩니다.

하지만 대규모 빌드(특히 Yocto)

  • 파일 I/O가 엄청 많고
  • 작은 파일을 수만~수십만 개 만지기 때문에

/mnt/c 같은 Windows 파일시스템에서 돌리면 속도도 느리고, 권한/대소문자/링크 문제로 터질 확률이 올라갑니다.

권장 구조#

  • 소스/빌드 디렉터리는 WSL의 Linux 파일시스템(예: ~/repo) 에 둔다.
  • Windows에서 공유가 필요하면 나중에 \\wsl$로 접근한다.

예시:

Terminal window
mkdir -p ~/repo
cd ~/repo

Windows 탐색기에서 접근하려면:

  • 탐색기 주소창에 \\wsl$\Ubuntu\home\<username>\repo

4. 기본 개발 툴 설치#

임베디드/빌드 환경이면 아래는 거의 고정으로 설치합니다.

Terminal window
sudo apt install -y \
build-essential \
gcc g++ make cmake ninja-build \
git curl wget unzip zip tar \
pkg-config \
python3 python3-pip python3-venv \
ca-certificates gnupg lsb-release \
openssh-client \
net-tools iputils-ping dnsutils \
vim nano

추가로 편의 툴:

Terminal window
sudo apt install -y htop tree jq ripgrep fd-find

5. VS Code 연동 (Remote - WSL)#

Windows에 VS Code 설치 후 확장:

  • Remote - WSL

Ubuntu에서 프로젝트 폴더로 이동 후:

Terminal window
code .

처음 실행 시 WSL 서버가 설치되면서 자동으로 연결됩니다.


6. Yocto 빌드 준비#

Yocto는 의존성이 많아서 최소 패키지 세트를 같이 정리해둡니다.
(배포판/Yocto 버전에 따라 조금 다를 수 있음)

Terminal window
sudo apt install -y \
gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat \
cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping \
python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm \
python3-subunit mesa-common-dev zstd lz4

Yocto는 디스크/CPU/메모리를 정말 많이 씁니다.

  • 가능하면 WSL용 디스크 여유 크게 확보
  • 빌드 폴더를 Linux 파일시스템에 두기(중요)

요약#

  • 설치는 wsl --install로 끝내고, Ubuntu에서는 apt update/upgrade부터 진행한다.
  • 대규모 빌드(특히 Yocto)는 절대 /mnt/c에서 돌리지 말고, WSL의 Linux 파일시스템(~/work)에 둔다.