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 |