i386용 Buildroot를 사용하여 임베디드 Linux를 컴파일했습니다. 너무 많이 수정하지는 않았고 기본값만 사용했습니다. 이제 qemu에서 실행하고 싶습니다. 하지만 내가 보는 유일한 것은 다음과 같습니다.
다음 옵션으로 qemu를 실행하고 있습니다.
qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256
왜 이런 일이 발생합니까? buildroot 문서의 예와 같이 컴파일했습니다.
답변1
유효한 명령
제대로 작동하는지 확인하기 위해 Buildroot에서 QEMU를 빌드하도록 하고 Buildroot에서 제공하는 정확한 QEMU CLI를 사용할 수 있습니다.https://github.com/buildroot/buildroot/blob/2019.05/board/qemu/x86_64/readme.txt
git clone https://github.com/buildroot/buildroot
cd buildroot
git checkout 2019.05
make qemu_x86_64_defconfig
printf '
BR2_CCACHE=y
BR2_PACKAGE_HOST_QEMU=y
BR2_PACKAGE_HOST_QEMU_LINUX_USER_MODE=n
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y
BR2_PACKAGE_HOST_QEMU_VDE2=y
' >> .config
make olddefconfig
time make BR2_JLEVEL="$(nproc)" HOST_QEMU_OPTS='--enable-sdl --with-sdlabi=2.0'
./output/host/bin/qemu-system-x86_64 \
-M pc \
-kernel output/images/bzImage \
-drive file=output/images/rootfs.ext2,if=virtio,format=raw \
-append "rootwait root=/dev/vda" \
-net nic,model=virtio \
-net user \
;
이제 셸에 있으며 root
사용자 이름(비밀번호 없음)을 사용하여 로그인할 수 있습니다.
그러나 기본 Buildroot 버전에는 기본적으로 X11과 같은 흥미로운 GUI가 없습니다. 이는 프로젝트의 가장 일반적인 사용 사례가 아니기 때문입니다. 나는 이것을 다음에서 다루었습니다.내 Linux Buildroot 시스템에 X11을 어떻게 설치합니까?
그러나 Buildroot는 내 요구 사항의 실행 부분(더 많은 자동화, 더 많은 시작 유형, GDB 단계 디버깅)에 충분히 집중하지 않았기 때문에 이 프로젝트에서 몇 가지 추가 스크립트를 사용하여 이를 확장했습니다.https://github.com/cirosantilli/linux-kernel-module-cheat
다음에 언급된 기타 ISA:https://cirosantilli.com/linux-kernel-module-cheat/#buildroot-hello-world
Buildroot 2019.08 QEMU 3.1.1 버전의 x86_64 빌드가 손상되어 QEMU 빌드가 실패합니다...QEMU 3.1.1 빌드 실패
우분투 19.04에서 테스트되었습니다.