khann's IT와 경제 블로그

반응형

지난 시간에는 RISC-V의 개념과 Arm코어와의 비교를 포스팅했습니다.

 

RISC-V #1 - 개요

RISC-V #2 - RISC-V와 ARM 명령어 셋 비교

 

이번 포스트에서는 가상화를 통한 RISC-V를 부팅해보는 실습을 해보겠습니다.

 

가상화 도구

가상화 도구란? 물리적으로 존재하는 컴퓨터가 아닌, 다른 컴퓨터가 만들어내는 가상의 컴퓨터로써 Host가 구현하고자하는 Geust의 하드웨어를 소프트웨어적으로 구현하는 도구이다.

 

 

Arthitecture에 따른 가상화 도구(Hypervisor)의 종류

1. x86계통

x86계통의 가상화 머신(Hypervisor)은 대표적으로 virtual box와 vmware 두 가지가 존재한다.

virtual box

 

vmware

vmware는 무료버전과 유료버전이 존재하고 virtual box는 오픈소스(GPL)로써 무료로 배포되어있다.

 

2. 범용

qemu

x86계열과 저전력 프로세서를 범용으로 가상화할 수 있는 플랫폼으로 qemu가 존재한다.

오픈소스이며 이번 실습때 사용할 플랫폼이다.

 

3. Embedded

imperas

 

 

OVP(Open virtual Platform)의 대표 가상화 도구인 Imperas이다.

저전력 프로세스의 가상화에 특화되어있으며 유료이다.

 

 

 

Qemu를 통한 RISC-V의 리눅스 부팅

이번 실습에서는 Qemu를 통한 RISC-V의 가상화 및 리눅스 부팅을 실습할 것이다.

먼저 실습에 필요한 커널과 Storage disk이미지를 다운로드한다

 

Linux Kernel, Storage disk Image 다운(fedora)

kernel-bbl 다운

1
2
Wget https://fedorapeople.org/groups/risc-v/disk-images/bbl
 
cs

 

Disk img 다운

1
2
wget https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz
xzdec -d stage4-disk.img.xz > stage4-disk.img
cs

 

 

 

Qemu 설치

prerequisistes

1
2
3
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat1-dev
Sudo apt-get install libglib2.0-dev zlib1g-dev libpixman-1-dev
 
cs

 

source 다운로드

1
2
Git clone https://github.com/riscv/riscv-qemu.git
 
cs

source build

1
2
3
4
5
Mkdir build
Cd build
../configure --target-list=riscv64-softmmu 
make
 
cs

 

 

 

RISC-V 부팅

Qemu-system-riscv64 실행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
qemu-system-riscv64 \
-nographic \ 
-machine virt \ 
-smp 4 \ 
-m 2G \
-kernel bbl \
-object rng-random,filename=/dev/urandom,id=rng0 \ 
-device virtio-rng-device,rng=rng0 \ 
-append "console=ttyS0 ro root=/dev/vda" \ 
-device virtio-blk-device,drive=hd0 \ 
-drive file=stage4-disk.img,format=raw,id=hd0 \ 
-device virtio-net-device,netdev=usernet \ 
-netdev user,id=usernet,hostfwd=tcp::10000-:22
 
cs

 

 

Qemu-system-rsicv64 실행 중

 

Qemu-system-riscv64 실행 (user : root , pw : riscv)

 

 

부팅 및 로그인 완료

 

 

 

이상으로 가상화 환경에서 RISC-V를 부팅했습니다.

이제 gcc를 통해 크로스컴파일 등의 방법으로 risc-v에 맞게 컴파일된 elf파일을 위의 환경에서 실행해 볼 수도 있습니다. 

 

 

피드백은 언제든지 환영입니다.

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver