TIL/2025

Ubuntu 서버에 QEMU 환경 셋업 해봤니?

고무 오리 2025. 2. 6. 00:21
728x90
📢 개발 용 보드가 없는데 제품 환경에서 코드 테스트 해보고 싶다면? QEMU를 사용하자!

 

 

🚀 QEMU 사용 용도와 이유

💡 개발 용 보드가 없는데 제품 환경에서 코드 테스트를 해보고 싶다면?

💡 ARM 기반 기기에서 동작할 프로그램을 미리 실행해보고 싶다면?

 

QEMU를 사용하세요! 

QEMU는 다양한 ARM 프로세서 보드 환경을 에뮬레이션할 수 있어요

실제 하드웨어가 없어도, 가상의 환경에서 테스트하고 디버깅할 수 있죠!

 

 

🛠️ Ubuntu에 QEMU 환경 설치하기

🤔 내가 원하는 Board Emulator가 안 보인다고?!

ubuntu 서버에 QEMU 환경을 세팅한다면 apt로 설치 하면 되겠죠?

sudo apt update
sudo apt install qemu-system-arm

 

설치가 끝났으니 내가 쓰고 싶은 Board Emulator 환경이 존재하는지 확인해봅니다

qemu-system-arm -machine help | grep mps3-an536​

 

그런데… 아무 결과도 안 나온다?! 😱

  • 기본 apt install로 설치한 QEMU는 구버전이라 최신 보드를 지원하지 않기 때문!

 

🔧 최신 QEMU 수동 설치하기

아래 내용 따라하면 어렵지 않아!

sudo apt update

# QEMU build를 위한 라이브러리 설치
sudo apt install -y git build-essential libglib2.0-dev libpixman-1-dev zlib1g-dev

# QEMU build를 위한 python 라이브러리 설치 용 venv 가상환경 세팅
python3 -m venv ./venv
source ./venv/bin/activate

# QEMU 코드 clone
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu

# 타겟 보드 있는지 확인
grep -i "mps3-an536" -r hw/arm

# build를 위한 config 설정 (--prefix가 설치 위치)
./configure --target-list=arm-softmmu,arm-linux-user --prefix=/usr/local

# Trouble shooting
# (!) If you faced python package issues
# pip install xxxxx

# (!) Ninja Error
# sudo apt update
# sudo apt install ninja-build

# QEMU 코드 빌드! QEMU 설치!
make -j$(nproc)
sudo make install

# 환경 변수 체크 (기존에 설치 된 /usr/bin/qemu-system-arm 보다 높은 우선순위를 가지도록 순서 조정)
# Check if there is a /usr/local/bin
echo $PATH

# Check if it is working well
qemu-system-arm --version
qemu-system-arm -machine help | grep mps3-an536

 

 

🎉 최신 QEMU 설치 완료

sudo apt install qemu-system-arm 도 설치 했다면 /usr/bin , /usr/local/bin 두 경로에 qemu-system-arm이 있을 것임

  • /usr/bin : apt install 로 설치한 것 → 구버전
  • /usr/local/bin : 수동으로 설치한 것 → 최신

환경 변수 설정 상 /usr/local/bin 이 먼저 나오면 항상 최신 qemu-system-arm 을 실행 함!

 

 

728x90