본문 바로가기

Programming

Settingup ARMv7 environment with QEMU


armv7_zImage

1. ARMv7 이 지원되는 QEMU 1.5.50 이상의 버전을 설치(ubuntu apt-get 으로는 1.4 정도가 설치되니 소스 직접 받아서 make 해야함)


2. 여기 첨부시켜놓은 zImage 커널이미지를 준비.


3. Linaro Ubuntu 12.04 파일시스템 다운로드 http://releases.linaro.org/12.04/ubuntu/precise-images/developer/linaro-precise-developer-20120426-86.tar.gz

tar -zxvf linaro-preci...... 해서 압축해제.


4. 다음과 같이 3 에서 받은 파일시스템을 마운트.

qemu-img create -f raw rootfs.img 3G

mkfs.ext3 rootfs.img

mkdir mnt

mount -o loop rootfs.img mnt

rsync -a binary/boot/filesystem.dir/ mnt/

umount mnt

5. 다음과 같이 qemu-system-arm 을 vexpress-a9 으로 실행

qemu-system-arm -M vexpress-a9 -m 512 -kernel zImage -sd rootfs.img -append "root=/dev/mmcblk0 rw physmap.enabled=0 console=ttyAMA0" -net nic -net user,hostfwd=tcp:0.0.0.0:2222-10.0.2.15:22 -nographic

6. 부팅한 뒤에 /etc/network/interfaces 파일에 eth0 DHCP 설정스크립트 작성

auto eth0

iface eth0 inet dhcp

7. ifup eth0 로 DHCP 할당받음.

이제 외부에서 2222 포트로 접속하면 22로 리다이렉션해줌. 그러나 아직 openssh-server 가 설치되어있지 않은 상태임.

8. apt-get install openssh-server 로 sshd 설치.(놀랍게도 apt-get 까지 지원됨...)

9. gdb, gcc 다 있으므로 모든 환경 셋팅완료!





'Programming' 카테고리의 다른 글

Secret of SET_FS and KERNEL_DS in Linux Kernel  (0) 2013.12.31
Apache2 SSL Configuration  (0) 2013.11.28
How NX is implemented in x86 Linux  (0) 2013.10.22
Preemptive kernel vs Non-preemptive kernel  (0) 2013.10.14
Linux kernel memory allocation  (0) 2013.09.25