使用skyeye运行uboot, linux-2.6.31和busybox
来源:互联网 发布:信捷plc编程案例 编辑:程序博客网 时间:2024/06/12 00:34
http://21cnbao.blog.51cto.com/109393/213771
LDD6410工程网址为:
http://code.google.com/p/ldd6410
代码通过svn管理,获取方法:
# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://ldd6410.googlecode.com/svn/trunk/ ldd6410-read-only
svn checkout http://ldd6410.googlecode.com/svn/trunk/ ldd6410-read-only
本页讲解如何使用LDD6410工程的代码在skyeye中运行uboot、2.6.31内核及文件系统。由于目前skyeye还不支持s3c6410,所以我们生成的映像都是s3c2410的。 支持如何功能:
- cs8900网卡
- 320*240 16bpp LCD
- tftp
- nfs
- u-boot
- linux-2.6.31
- busybox
- 从u-boot引导linux-2.6.31
主机端配置
安装skyeye
在主机端执行:
sudo apt-get install skyeye
安装配置tftp服务器
在主机端执行:sudo apt-get install tftpd-hpasudo vim /etc/default/tftpd-hpa修改文件内容为:
sudo mkdir /home/tftp
sudo chmod 777 /home/tftpRUN_DAEMON="yes开启tftp服务:
OPTIONS="-l -c -s /home/tftp"sudo /etc/init.d/tftpd-hpa start
Starting HPA's tftpd: in.tftpd.
skyeye target从主机下载文件的方式是:tftp -r file -g 10.0.0.1
安装配置NFS服务器
在主机端执行:apt-get install nfs-kernel-serversudo vim /etc/exports修改该文件内容为:
cd /home
sudo ln -s tftp nfs/home/nfs *(sync,rw)
运行exportfs -rv 开启NFS服务:/etc/init.d/nfs-kernel-server restart在skyeye target上mount nfs的方法是:mount -t nfs -o nolock 10.0.0.1:/home/nfs /mnt
编译uboot、内核和文件系统
编译u-boot
进入工程源代码目录ldd6410/s3c-u-boot-1.1.6,运行make smdk2410_config,接着运行make得到u-boot映像。
编译内核
将ldd6410项目ldd6410/patches/2410-skyeye_ldd6410-project.patch拷贝到linux 2.6.31源代码目录,打patch:patch -p0 < 2410-skyeye_ldd6410-project.patch接着运行: make smdk2410_skyeye_defconfig配置内核 make vmlinux得到内核的vmlinux映像。
制作根文件系统initrd.img
进入ldd6410工程代码的如下目录:ldd6410/utils/busybox-1.15.1 运行make menuconfig选择必要的项目,然后运行make,make install。make install运行的结果是会生成install,busybox对应的linuxrc, /bin, /sbin, /usr就在该目录了。 有了 busybox 后制作 initrd.img 就容易多了,只是说起来比较烦琐。以命令演示如下: 创建映像文件并挂到 initrd 目录mkdir initrd
将添加 busybox 到此映像文件
dd if=/dev/zero of=initrd.img bs=1k count=4096
mke2fs -F -v initrd.img
mount -o loop initrd.img initrdcd initrd
创建必要的目录
cp -r ../_install/* .mkdir proc lib etc dev root home var tmp
建立设备文件
chmod 777 tmpcd dev
创建脚本文件 etc/inittab, 内容如下:
mknod -m 644 console c 5 1
mknod -m 644 null c 1 3
mknod -m 640 ram b 1 1
mknod -m 644 mem c 1 1
cd ..::sysinit:/etc/init.d/rcS
设置此脚本执行权限
::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -achmod 644 etc/inittab
创建脚本文件 etc/init.d/rcS, 内容如下:#!/bin/sh
设置此脚本执行权限
/bin/mount -t proc none /proc
/sbin/ifconfig lo 127.0.0.1 up
/sbin/ifconfig eth0 10.0.0.2 netmask 255.0.0.0 up
hostname skyeye
mkdir /var/tmp
mkdir /var/log
mkdir /var/run
mkdir /var/lock
/bin/ashchmod 755 etc/init.d/rcS
最后一步,执行实际的写入操作,生成 initrd.imgcd ..
umount initrd
运行
将编译得到的u-boot、vmlinux、initrd.img放入同一目录,将vmlinux拷入tftp服务器根目录。 可以直接运行Linux,使用http://ldd6410.googlecode.com/files/ldd6410-skyeye-pack.tar.gz 中的skyeye-standalone.conf配置文件,结合内核映像vmlinux:
sudo skyeye -e vmlinux -c skyeye-standalone.conf也可以先启动u-boot,然后在uboot中下载vmlinux并启动它,使用http://ldd6410.googlecode.com/files/ldd6410-skyeye-pack.tar.gz 中的skyeye-with-uboot.conf 配置文件,结合先前编译得到的u-boot:sudo skyeye -e u-boot -c skyeye-with-uboot.conf
在u-boot正常启动后,从tftp服务器下载vmlinux:tftp 0xc0000000 vmlinux
接着运行bootelf 0xc0000000,Linux内核开始启动。
0 0
- 使用skyeye运行uboot, linux-2.6.31和busybox
- skyeye + ulibc + busybox + linux kernel
- skyeye下运行 linux-2.6.x
- 使用skyeye运行ucos
- 使用skyeye运行《Linux设备驱动开发详解》的实例
- 学习和使用skyeye
- 一步一步教你在skyeye上运行uboot
- 一步一步教你在skyeye上运行uboot
- 步一步教你在skyeye上运行uboot
- uboot/linux/busybox/yaffs2源代码下载地址
- uboot/linux/busybox/yaffs2源代码下载地址
- uboot/linux/busybox/yaffs2源代码下载地址
- 使用 SkyEye 模拟 ARM Linux
- SkyEye下直接运行Linux镜像
- skyeye模拟uboot启动linux(initrd方式)
- linux中root、uboot、kernel、busybox和文件系统之间是什么关系?
- Skyeye安装笔记和使用
- skyeye的安装和使用
- 聚集索引和非聚集索引的区别理解
- [资源下载] 谷歌工程师推荐的学习资料
- akoj-1211-统计数字
- sicily 1093
- 树莓派平台4位共阴数码管Python编程
- 使用skyeye运行uboot, linux-2.6.31和busybox
- 向左对齐的Gallery
- quicksort--python--others
- java 集合总览
- 最长的无重复字符的字符串 longest substring with no repeating characters
- Hadoop即将过时了吗?
- Unity MeshBaker 合并网格和材质
- When Linux Runs Out of Memory
- Java webp转jpg