偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1748)
分类: LINUX
2012-11-27 10:35:38
skyeye是模拟硬件开发板的模拟器,想在skyeye上运行linux内核需根据你所需要的体系结构来进行交叉编译。上s3c6410是arm11系列的开发板,所以我们需要arm-linux-tools的交叉编译工具。
下载交叉编译工具:交叉编译工具可以自己制作,也可以到网上下载别人已经编译好的交叉编译工具。不过下载别人的会由于版本的问题二到时候编译内核出现很多意想不到的问题,所以交叉编译工具尽可能选教新的。
我用的交叉编译工具:arm-linux-tools-4.2.1.tar.gz
内核为:linux-2.6.35.tar.bz2
下载交叉编译工具arm-linux-tools-4.2.1.tar.gz后解压,
tar zxvf arm-linux-tools-4.2.1.tar.gz -C ~/
这样解压后,在~/下就有一个usr是目录,这个目录中的~ /usr/local/bin下就是交叉编译的命令,这时可以在.bash中把这个路径指明为环境变量,从而可以系统可以找到这些命令,但也可以不用,就 是你每次用这些arm-linux-的命令必须指明这些命令的路径。
2、编译内核
下载内核linux-2.6.35.tar.bz2,然后解压,进入解压的目录,开始交叉编译内核:
1)、make s3c6410_defconfig;
注:这个命令可能会出错,说没有s3c6410_defoncig的信息,这时可以 cp arch/arm/configs/s3c6400_defconfig .config
2)、make ARCH=arm CROSS_COMPILE=~/usr/local/bin/arm-linux- menuconfig, 之后进入图形界面进行内核配置,
Boot options ---> 进入第三行,修改里面的值为:console=ttySAC0,115200 root=/dev/ram init=/linuxrc initrd=0x50800000,2M rw
然后退出内核配置,并保存
3)、编译内核:make ARCH=arm CROSS_COMPILE=~/usr/local/bin/arm-linux-
3)、制作目录s3c6410,并刚才生成的vmlinux拷贝到s3c6410中
3)、下载skyeye最新版本,至少在skyeye-1-3-2上版本,然后根据里面的手册进行安装
4)、在目录s3c6410中制作skyeye.conf, 如下:
# skyeye config file for S3C6410X
arch:arm cpu: arm11 mach: s3c6410x # physical memory mem_bank: map=M, type=RW, addr=0x50000000, size=0x00800000 mem_bank: map=M, type=RW, addr=0x50800000, size=0x00800000, file=./initrd.img mem_bank: map=M, type=RW, addr=0x51000000, size=0x19000000 # all peripherals I/O mapping area mem_bank: map=I, type=RW, addr=0x70000000, size=0x10000000 mem_bank: map=I, type=RW, addr=0x80000000, size=0x10000000 uart:mod = term 5)、制作文件系统,也可以从skyeye的测试文件中拷贝文件系统 6)、在skyeye上运行内核: /opt/skyeye/bin/skeye -e vmlinux -l0x500000000,0xffffff