WSL2의 Ubuntu에서 Yocto(QEMU 사용) 시도
개요
WSL2가 실행하는 Ubuntu에서 QEMU를 사용해 요코토를 시동을 걸었다.
WSL2를 제외하고는 기본적으로 Yocto의 빠른 시작을 실행하기 때문에 특별히 참고할 만한 정보가 없을 수도 있다.WSL2도 시도할 수 있다는 메시지를 전달했으면 좋겠다는 생각에 이 글을 썼다.
또한 MacBook의 BootCamp에서 더블 부팅된 Windows 10의 WSL에서 환경이 시도되었습니다.
WSL 소개
Windows Subsystem for Linux의 약어로, Windows 10에서 Linux를 실행하는 구조입니다.
WSL에는 버전 1과 버전 2(WSL2)가 있는데 WSL2는 Hyper-V를 이용하여 리눅스 핵의 완전한 시뮬레이션을 실현했다.Yocto 빌드를 실행하려면 WSL2가 필요합니다.
이 기사는 가져오기 방법을 생략했지만 다음 페이지와 Google 검색을 통해 간단하게 진행할 수 있다고 생각합니다.
요cto란?
웹사이트의 Google 번역에 따르면 다음과 같습니다.
Yocto Project는 오픈 소스의 합작 프로젝트로 제품의 하드웨어 구조가 어떻든지 간에 개발자는 끼워넣는 제품 디자인을 위한 리눅스 기반 시스템을 만드는 데 도움이 된다.Yocto Project는 유연한 도구 모음과 개발 환경을 제공하여 전 세계의 끼워넣기식 장치 개발자들이 공유 기술, 소프트웨어 창고, 설정과 최선의 실천을 통해 이러한 개성화된 리눅스 이미지를 만들 수 있도록 한다.
Yocto를 사용하면 내장 장치 전용 Linux를 구축할 수 있습니다.
실제로 요cto로 구축된 커널을 가동하려면 타깃으로 끼워넣는 장치(Raspberry Pi 등도 가능)가 필요하고, QEMU 기기를 아날로그화한 소프트웨어를 사용하면 실제 기기가 없어도 커널을 가동해 볼 수 있다.
Yocto의 구축에서 QEMU의 실행에 이르기까지
Yocto를 구축하고 QEMU로 실행하기 전의 프로세스를 문서화합니다.
필요한 패키지 설치
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
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
클론 포키
$ git clone http://git.yoctoproject.org/git/poky
$ cd poky
$ git checkout tags/yocto-3.1.2 -b my-yocto-3.1.2
지점은 최신yocto-3.1.2를 선택했다.환경 설정 스크립트 실행
$ source oe-init-build-env
구축 실행
$ bitbake core-image-minimal
core-image-minimal은 가장 작게 구성된 이미지입니다.다른 GUI가 존재하는 이미지도 있고, 코어-image-sato 등 기본값도 준비되어 있다.위에서 설명한 대로 빌드가 실행되지만 처음 실행될 때 다음 WARNING이 나타날 수 있습니다.(위의 그림은 두 번째 실행이기 때문에 표시되지 않을 수 있습니다)
WARNING: You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space
Google翻訳:
WSLv2でビットベイクを実行しています。これは正しく機能しますが、ストレージスペースが不足しないように、最終的にVHDXファイルを最適化する必要があります。
요코토를 구축할 때 매우 큰 용량(30GB 정도)을 사용하고 WSL에 사용된 디스크 크기는 자동으로 조정되기 때문에 커진다.WSL2는 한번 확보한 디스크를 호스트에 반납하지 않은 것으로 보이기 때문에 최적화가 필요하다.이 방법에 관해서는 뒤에서 서술할 것이다.
빌딩은 내 환경에서 3시간 정도 걸렸다.
QEMU 구축 이미지 실행
$ runqemu qemux86-64
위 작업을 수행한 후 다음 오류가 발생했습니다.runqemu - ERROR - Failed to run qemu: Could not initialize SDL(x11 not available) - exiting
검색 조사를 해보면 다음과 같다.어쨌든 nographic를 더하면 된다고 합니다.
$ runqemu qemux86-64 nographic
순조롭게 시동이 걸렸다!
로그인은 루트가 없는 경로로 들어갈 수 있습니다.
또 QEMU를 끝내고 싶을 때는'shutdown-h now'등으로 끝내면 된다.
VHDX 파일 최적화 및 디스크 열기
우선 WSL2의 Ubuntu에서 아래 목록을 보면 매우 큰 사이즈가 된다.
$ du -sm poky/build
48899 poky/build
상술한 말은 50GB 정도다.(나도 GUI 버전을 만들어 보았는데 사이즈가 좀 크다.)build 디렉터리에bitbake를 실행할 때 다운로드한 파일과 구축된 내장 이미지가 포함되어 있습니다.
빌딩이 끝나면 워크 파일을 자동으로 삭제하도록 설정할 수도 있다.
이build 디렉터리를 삭제합니다.
$ rm -rf build
호스트 OS(Windows 측)에서 VHDX 파일의 크기를 확인합니다.VHDX 파일은 환경에 따라 다르지만 다음과 같이 구성됩니다.
C:\Users\[ユーザ名]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
사이즈는 아래와 같습니다.Ubuntu에서 파일을 삭제해도 디스크 크기가 열리지 않습니다.디스크를 열기 위해 VHDX 파일을 최적화합니다.
우선 wsl을 닫기 위해서 PowerShell에서 다음을 시작합니다.
> wsl --shutdown
PowerShell에서 다음 명령을 실행합니다.> Optimize-VHD -Path .\ext4.vhdx -Mode full
사이즈를 다시 확인하면 사이즈가 작아집니다.또한 Optimize-VHD가 실행되지 않을 경우 다음 작업을 수행하여 Optimize-VHD를 유효하게 해야 합니다.
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Reference
이 문제에 관하여(WSL2의 Ubuntu에서 Yocto(QEMU 사용) 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/blackengineer/articles/525cd174a0f333cce430텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)