ARM 관련 공부를 하기 위해, RPI를 구했는데 기계를 들고 다니면 귀찮을것 같아서
가상환경을 돌리려고 찾아보다. 시간을 많이 빼앗아서 정리하려 한다.
처음에는 VirtualBox의 rpi.ova 파일을 찾아서 가동시켰다. 잘 되기는 하는데 너무 오래된 패키지와
환경구축 등 귀찮은게 한두가지가 아니라서..
환경이 가추어진 RPI Image를 QEMU를 이용해서 돌릴 필요성 느낌
환경 : ubuntu 15.04 32bit
Download 위치 : http://downloads.raspberrypi.org/raspbian/images/
해당 URL에서 원하는 Image를 찾아서 wget으로 다운
Disk Image : 2016-02-09-raspbian-jessie.img
Downlaod 위치 : https://github.com/dhruvvyas90/qemu-rpi-kernel
git clone url 으로 커널 이미지를 다운 받았다.
Kernel Image : kernel-qemu-4.1.7-jessie
기본적으로 qemu를 설치해놓아야 한다.
apt-get install qemu-system-arm과 같이 apt로 쉽게 다운 받을수 있다.
준비물 : qemu, image, kernel
시작
richong@ubuntu:~/qemu$ sudo fdisk -l 2016-02-09-raspbian-jessie.img
Disk 2016-02-09-raspbian-jessie.img: 3.9 GiB, 4127195136 bytes, 8060928 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3e7fd08e
Device Boot Start End Sectors Size Id Type
2016-02-09-raspbian-jessie.img1 8192 131071 122880 60M c W95 FAT32 (
2016-02-09-raspbian-jessie.img2 131072 8060927 7929856 3.8G 83 Linux
2016-02-09-raspbian-jessie.img2 131072 8060927 7929856 3.8G 83 Linux
Units: sectors of 1 * 512 = 512 bytes
위 두부분을 확인하면 131072 sector부터 img가 시작이된다.
ㄹ이유는 찾아보지 않았지만 image2, Linux해당 부분이 가동 이미지에 수정이 필요하다.
여튼 저 img2를 이미지로 인식 시키는게 목표이다.
offset을 계산해보면 512 * 131072 = 67108864
mount를 통해서 해당 2016-02-09-raspbian-jessie.img2 만 등록시킨다.
richong@ubuntu:~/qemu$ sudo mount -v -o offset=67108864 -t ext4 2016-02-09-raspbian-jessie.img ./tmp
와같이 offset설정을 통해서 img2을 tmp 폴더에 마운트 시켰다.
그러면 tmp에는 img2 내용이 올라가있을 것이다.
richong@ubuntu:~/qemu/tmp$ ls
bin dev home lost+found mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
다음으로 해당 tmp에 /etc/ld.so.preload 파일을 수정해주어야 한다.
richong@ubuntu:~/qemu/tmp/etc$ cat /etc/ld.so.preload
/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
richong@ubuntu:~/qemu/tmp/etc$ vim /etc/ld.so.preload
gdb까지 잘 된다. 근데 인터넷 설정은 안되어있다...
[추가]
위와 같이 하면 구축에 있어서 부족한 부분이 있다.
http://www.linux-mitterteich.de/fileadmin/datafile/papers/2013/qemu_raspiemu_lug_18_sep_2013.pdf
해당 자료도 참고하면서 마무리 지었다.
'기타[etc]' 카테고리의 다른 글
arm cross compile (0) | 2016.12.06 |
---|---|
/etc/apt/sources.list 파일 수정 (0) | 2016.12.06 |
C++ Virtual (0) | 2016.11.27 |
효율적인 strstr 함수 만들기 (0) | 2016.11.20 |
DLL 정리 (2) | 2016.11.18 |