����Linux�Ż�
Linux����

qemu�kernelѧϰ����

����ʱ��:2016-10-08 15:31:11��Դ:���Ͳ�--����Զ����:Kevin_Mr
qemu���
�ȿ���ά���ٿƵĽ��ͣ�ʲô��qemu
QEMU��һ����Fabrice Bellard����д��ģ�⴦��������������������Bochs��PearPC���ƣ��������ijЩ�����������߱������ԣ�����ٶȼ���ƽ̨�����ԡ�����KVM������Ϊkqemu������������kqemu�ѱ�KVM�滻�������Դ�ļ�������QEMU��ģ�����ӽ���ʵ���Ե��ٶȡ�QEMU��������Ҫ����ģʽ��
User modeģ��ģʽ���༴���û�ģʽ��QEMU��������ЩΪ��ͬ���봦���������Linux���򡣶�Wine��Dosemu������ҪĿ�ꡣ
System modeģ��ģʽ���༴��ϵͳģʽ��QEMU��ģ����������ϵͳ���������봦�����������ܱ��豸����ʹ��ΪϵͳԴ������в��Լ���������������ס�������������һ������������������ͬ������ԡ�
�����֮��qemu����һ����������������ǿ�����������Լ������IJ���ϵͳ�������ѧϰ�ں˻�������������˵������൱���㣬�����׿������壬����һ̨�ʼDZ����ԾͿ���ѧϰ�ں˲���ģ����룬����ֱ��������������Ƿdz����㣬�ϻ�����˵��������
 
���ذ�װqemu
���߲��Թ�ubuntu 12.10 �� ubuntu 16.04�����汾��ubuntu 12.10apt�ṩ��qemu�汾���϶�arm verpress����֧�ֵIJ����ã�����ǰ��˵�ģ��������ﲻ�ã���Ҳ��֪������
��ubuntu 16.04 apt�ṩ����2.5�汾��qemu���汾�Ƚ��£��Ͳ����Լ����밲װ�ˡ�
���ַ�ʽȫƾ����ϲ�á�
root-># lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:    16.04
Codename:   xenial
root-># qemu-system-arm -version
QEMU emulator version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.4), Copyright (c) 2003-2008 Fabrice Bellard
 
ubuntu apt-get��ʽ��װ
root-># apt-get install qemu-system-arm
ʹ�ô�������Զ����������ϵ��ɰ�װ���̣���װ��ɿ���ͨ��qemu-system-arm -version
���԰�װ�Ƿ�ɹ���
 
�Լ����ذ�װ
ubuntu ��apt��ʵ��qemu�İ�װ�������ǰ汾�ϵͶ�vexpress��֧�ֲ��ã��˴�ֱ�����ؽϸ߰汾��qemu�Լ��ֶ���װ��
wget http://wiki.qemu-project.org/download/qemu-2.0.2.tar.bz2
������Ҫ��װqemu�����Ļ���
apt-get install libglib2.0-dev zlib1g-dev
������ɺ�װǰ��Ҫ�������ã�ʹ��֧��ARM�ܹ��µ����е���
cd qemu/
./configure --target-list=arm-softmmu --audio-drv-list=
make 
make install
 
���ر����ں�
�����ں�
�������е�www.kernel.org���������°��ں�
qemu�kernelѧϰ����
root-># wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.gz
 
�����ں�
root-># apt-get install libncurses5-dev   
root->#tar -zxvf linux-3.16.tar.gz 
root-># cd linux-3.16
root-># cp arch/arm/configs/vexpress_defconfig  .config
root-># make menuconfig CROSS_COMPILE=arm-linux- ARCH=arm
root-># make -j4 CROSS_COMPILE=arm-linux- ARCH=arm
qemuģ����õ�armоƬ��ARM������vexpress A9,���Ĵ�������Դ�Ϊ������
 
����qemu���ں������Ƿ�ɹ�
qemu-system-arm  -M vexpress-a9 -m 512M -nographic -append "console=ttyAMA0" -kernel  /root/zImage-3.0
����򵥽�����qemu����IJ�����
-M vexpress-a9 ģ��vexpress-a9���壬�����ʹ��-M ?��������ȡ��qemu�汾֧�ֵ����е���
-m 512M �������������ڴ�512M
-kernel /root/zImage-3.16  ����qemu���������ں˾���·��
-nographic ��ʹ��ͼ�λ����棬ֻʹ�ô���
-append "console=ttyAMA0" �ں�������������������ں�vexpress�������У������豸���ĸ�tty�� 
�������������ظ��ļ�ϵͳ��ʱ�����kernel painc��˵���ں��Ѿ����������ˡ�Ȼ����Ҫ�������ļ�ϵͳ��
 
�������ļ�ϵͳ
����busybox
wget http://www.busybox.net/downloads/busybox-1.20.2.tar.bz2 
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make install 
��װ��ɺ󣬻���busyboxĿ¼������_installĿ¼����Ŀ¼�µij�����ǵ�����������Ҫ�����
 
�γɸ��ļ�ϵͳ
1.����rootfsĿ¼����Ŀ¼�������ļ�ϵͳ�ڵ��ļ�ȫ���ŵ�����
sudo mkdir rootfs
2.����busybox�����Ŀ¼��
sudo cp busybox-1.20.2/_install/* -r rootfs/
 
�������ļ�ϵͳ����
1.����32M��С�ľ���
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
2.��ʽ����ext3�ļ�ϵͳ
mkfs.ext3 a9rootfs.ext3
3.���ļ�������������
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
cp -r rootfs/* tmpfs/
sudo umount tmpfs
 
ʹ��qemu�����Զ���ϵͳ
qemu-system-arm -M vexpress-a9 -m 512M -kernel /root/zImage-3.16 -nographic -append "root=/dev/mmcblk0  console=ttyAMA0" -sd a9rootfs.ext3 
���ں�������ӡ������������ʾ�����֣�����qemu��arm�����ʹ����ˣ����� �������ں�ѧϰ�ˡ�
����Ŀǰ��ʽ���صĸ��ļ�ϵͳʹ���������鷳��ÿ���޸���������±���֮����Ҫ���������ļ�ϵͳ������˸��Ƽ���ߵ�������
 
ʹ��nfs�ļ�ϵͳ����
��װnfs�������
sudo apt-get install nfs-kernel-server
����nfs�����ļ���
��ǰ�ߴ�����rootfs�ļ��е�Ȩ���޸�Ϊ777
sudo chmod 777 /root/rootfs
�޸�/etc/exports�ļ�
sudo vim /etc/exports
����/root/rootfs *(rw,insecure,sync,no_root_squash)
����nfs����
sudo /etc/init.d/nfs-kernel-server start
����һ��nfs�����Ƿ��ɹ�
sudo mount -t 127.0.0.1:/root/rootfs /mnt/
ls /mnt�鿴�Ƿ���سɹ�
sudo umount /mnt
 
qemu����nfs���ļ�ϵͳ
qemu-system-arm  -M vexpress-a9 -m 512M -nographic -append "console=ttyAMA0 root=/dev/nfs nfsroot=/root/rootfs rw ip=dhcp nousb" -kernel  /root/zImage-3.16
����nfsroot=�����nfs���ļ�ϵͳλ��
ip=dhcpָ��qemu guest os ��ip���䷽ʽ
 
���˿��Ժܷ����ʹ��qemu����nfs�ļ�ϵͳ�����ں�ѧϰ�Ϳ����ˡ�
���Ĵ��ԵĽ�����qemu��ں�ѧϰ�Ĺ��̣�û�й���Ĺ�עϸ�ڣ�����Ȥ�Ŀ����о�һЩqemu������������qemu���������ã��Լ�����ϸ���ļ�ϵͳ����������
 
�������ø��µ�ַ��//m.ajphoenix.com/linux/24855.html