Qemu-ARM-Ubuntu 实验

 

Qemu-ARM-Ubuntu 实验一 环境设定 2010-05-08 04:27:23
标签: 环境 实验

本实验参照了http://opencsl.openfoundry.org/  的开放实验教程。这里记录了在Ubuntu 9.10上安装qemu的过程。不保证适用于其他系统,仅供参考。

 

安装qemu

 

1. 安装qemu

sudo apt-get install qemu kernel-package linux-source kqemu-source build-essential

 

2. 安装module-assistant

sudo apt-get install module-assistant

 

3. 安装kqemu加速器

sudo m-a –f get kqemu-source

 

4. 下载arm-test

sudo wget http://wiki.qemu.org/download/arm-test-0.2.tar.gz

tar xzvf arm-test-0.2.tar.gz

 

5. 启动ARM

qemu-system-arm -kernel zImage.integrator -initrd arm_root.img   cntl-alt-f1 to kill back to your system   我简单使用ctrl-c终止了qemu,不知道别的方法是什么   用buildroot制作toolchain   1.下载相关软件   sudo apt-get install bison flex gettext patch build-essential texinfo sudo apt-get install subversion sudo apt-get install libncurses5-dev

 

2. 下载buildroot原始代码

svn co -r 21163 svn://uclibc.org/trunk/buildroot

 

3. 更改configure并且编译

make menuconfig make

 

这里可能会遇到一个版本问题,我采用了old-release

wget --passive-ftp  -P /home/wisr/Documents/arm-test/buildroot/dl http://www.uclibc.org/downloads/old-releases/uClibc-0.9.29.tar.bz2

 

 

等待很长时间以后,编译完成了。

4.设置环境变量

export PATH=<buildroot>/build_arm/staging_dir/usr/bin:$PATH

这里<buildroot>是你自己buildroot的路径

 

reference website: http://www.hopelesscase.com/linuxnotes/qemu#head-7a0b7d1e65c8991da37befc15d77253b520b2ff0 http://opencsl.openfoundry.org/Lab01_intro.rst.html http://www.armadeus.com/wiki/index.php?title=Armadeus_3.2_Troubleshots
 
 
 
 
 

这次实验主要完成一个linux内核的编译

 

1. 下载内核文件

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2 tar jvxf linux-2.6.18.1.tar.bz2 cd linux-2.6.18.1   2. 清理已有的设置 make mrproper   3. 下载configure文件 wget http://opencsl.openfoundry.org/setting/linux-2.6.18.config make menuconfig ARCH=arm   4. 编译内核 make ARCH=arm CROSS_COMPILE=arm-linux-uclibc- 这里需要在sumversion.c中加入#include <linux/limits.h>   注意需要将auditing选项去掉,参见 http://www.shx-arm.com/qianjichu26.asp  

General setup ---&gt;
() Local version - append to kernel release
[*] Support for paging of anonymous memory (swap)
[*] System V IPC
[*] POSIX Message Queues
[*] BSD Process Accounting
[*]  BSD Process Accounting version 3 file format
[*] Sysctl support
[ ] Auditing support
(15) Kernel log buffer size (16 =&gt; 64KB, 17 =&gt; 128KB)
[*] Support for hot-pluggable devices
[*] Kernel Userspace Events
[*] Kernel .config support
[*] Configure standard kernel features (for small systems) ---&gt;

 

http://forum.ubuntu.org.cn/viewtopic.php?f=97&t=231443&start=0

 

尝试交叉编译了ARM-Linux内核,基本方法网上已经有论述,就是下载kernel源代码,然后
make ARCH=arm menuconfig
make bzImage
然后加载module之类

最后,kernel的image成功生成,但是加载module的时候失败。分析原因是一些驱动的ko文件没有
生成,基本的解决思路是在menuconfig里取消这些驱动。这个问题没有继续往下做了,因为已经花费
了较多时间了。

这个实验基本了解了Kernel内核编译的流程。注意很多时候,解决Kernel中的问题只需要简单的取消对应
的选项就好了。因为现在的Kernel规模很大,对应的drivers之类的也很多,全部选择很容易出现编译错误。
事实上并不是所有的驱动都需要编译到Kernel中。

接下来进行操作系统的学习,系统了解操作系统的概念,并且开始学习一个小的但是典型的操作系统。

 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值