原创作品:http://write.blog.youkuaiyun.com/postedit/7956383
欢迎大家一起交流学习,知识在与分享。
希望结交一些志同道和之士
QQ: 474530676
longguopeng168@163.com
资料存放在根目录下/up6410/
主机操作:
安装编译器:
[root@localhost ~]# mkdir /usr/local/arm
[root@localhost ~]# tar jxf /up6410/src/arm-linux-gcc-4.3.2.tar.bz2 -C /usr/local/arm
[root@localhost ~]# vim /.bash_profile
PATH=/usr/local/arm/4.3.2/bin:$PATH
[root@localhost ~]# source /.bash_profile 或 注销
-----------------------------------------------------------------------------------------
3,解压完成后将目录加到环境变量里
[root@longguopeng ~] vim /etc/profile
在最后加一行
export PATH=/usr/local/arm/4.3.2/bin:$PATH
4,重新运行文件
[root@longguopeng ~] source /etc/profile //生效
[root@longguopeng ~] . /etc/profile
5,启动完成就可以直接输入arm-linux-gcc 命令编译了
编译目录就是在/nfsroot下
*******************************************************************************************************************
编译u-boot:
cd /up6410/src
tar jxf u-boot-1.1.6.tar.bz2
cd u-boot-1.1.6
make up6410_sd_config
make
cp u-boot.bin /tftpboot/u-boot-sd.bin
make up6410_nand_config
make
cp u-boot.bin /tftpboot/my-boot-nand.bin
****************************************************************************************************************
编译内核:
第一步:
解压内核压缩包:
[root@localhost ~]# cd /up6410/src
[root@localhost src]# tar jxf linux-2.6.28.tar.bz2
第二步:
进到linux-2.6.28
[root@localhost src]# cd linux-2.6.28
第三步:
1:告诉Makefile 哪些要编译
1) 在这个目录下执行 make config ,
这样的话会有很多项要选择,所以可以直接
make defconfig 编译默认选项
2) 在这个目录下执行 make menuconfig
进到内核定制对话框,最终保存之后会生成一个.config(这个文件是隐藏的)
3)因为在当前目录下已经有一个up6410_config
文件,所以可以暂时不去定制内核,直接将这个文件命名为.config文件就可以了
[root@localhost linux-2.6.28]# cp up6410_config .config
[root@localhost linux-2.6.28]# make zImage
[root@localhost linux-2.6.28]# cp arch/arm/boot/zImage /tftpboot //将内核移到tftpboot
***********************************************************************************************************************************
制作根文件系统:
[root@localhost ~]# cd /up6410/src
[root@localhost src]# tar jxf busybox-1.19.4.tar.bz2 //不显示进度条
[root@localhost src]# cd busybox-1.19.4
[root@localhost busybox-1.19.4] vim Makefile
---------------------------
:164 //直接跳转到164行
164:CROSS_COMPILE ?= arm-linux-
190:ARCH ?= arm
---------------------------
[root@localhost busybox-1.19.4]# make defconfig //默认 配置 //或者 make menuconfig(显示配置菜单)
[root@localhost busybox-1.19.4]# make busybox
[root@localhost busybox-1.19.4]# mkdir /nfsroot
[root@localhost busybox-1.19.4]# chmod 777 /nfsroot //修改权限
[root@localhost busybox-1.19.4]# make install CONFIG_PREFIX=/nfsroot //安装到相应的目录
//也可以
[root@localhost busybox-1.19.4]# cp -rf _install/* /nfsroot/
[root@localhost busybox-1.19.4]# cd /nfsroot
[root@localhost nfsroot]# mkdir dev etc lib proc sys tmp mnt
[root@localhost nfsroot]# mkdir -p lib/modules/2.6.28.6 #for rmmod //模块命令
[root@localhost nfsroot]# ll /dev/console //查看
[root@localhost nfsroot]# mknod dev/console c 5 1 //先创建串口
cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/* lib///拷贝所有的
只需这三个 ld-linux.so.3 libc.so.6 libm.so.6
[root@localhost nfsroot] cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ld-linux.so.3 lib/
[root@localhost nfsroot] cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/libc.so.6 lib/
[root@localhost nfsroot] cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/libm.so.6 lib/
[root@localhost nfsroot] vim etc/fstab
------------------------------------
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
------------------------------------
root@localhost nfsroot] mkdir etc/init.d
root@localhost nfsroot] vim etc/init.d/rcS
----------------------------------
#!/bin/sh
mount -a
echo "XXXXXXXXXXXXXXX"
echo "XXXXXXXXXXXXXXX"
echo "XXXXXlongXXXXX"
echo "XXXXXXXXXXXXXXX"
echo "XXXXXXXXXXXXXXX"
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
mdev -s
----------------------------------
root@localhost nfsroot] chmod +x etc/init.d/rcS
root@localhost nfsroot] tar cf ../mini_rootfs.tar *
************************************************************************************************************************************