# tiny6410-project 一、配置交叉编译环境 编写envsetup.sh脚本 #!/bin/bash export ARCH=arm export CC_PATH=/home/me/work/FriendlyARM/toolschain/4.5.1/bin export CROSS_COMPILE=${CC_PATH}/arm-none-linux-gnueabi- export PATH=${PATH}:${CC_PATH} 打开新终端窗口时必须先执行source envsetup.sh,这样就成功配置编译环境 二、编译u-boot 1. 配置u-boot-mini6410 make xxxx_config 如果不知道板子的具体配置选项,就查看u-boot-mini6410/Makefile tiny6410 的板子:使用NAND Flash 256 M 打开u-boot-mini6410/Makefile 与6410 相关的板子信息如下: smdk6410_config : unconfig @$(MKCONFIG) $(@:_config=) arm s3c64xx smdk6410 samsung s3c6410 mini6410_nand_config-ram128 : unconfig @$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 NAND ram128 mini6410_sd_config-ram128 : unconfig @$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 SD ram128 mini6410_nand_config-ram256 : unconfig @$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 NAND ram256 mini6410_sd_config-ram256 : unconfig @$(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 SD ram256 执行 : make mini6410_nand_config-ram256 2. 执行make ,多核CPU可以指定多线程编译+ “-jn” 三、编译kernel 1. 配置kernel【linux-2.6.38】 cp config_linux_mini6410 .config 备注: 友善之臂已经帮我们配置,执行make menuconfig 等配置,生成.config。再将.config 重名config_linux_mini6410【 这一步可以执行 make savedefconfig】,所以我们只要拷贝,就可以了。如果你要配置其他选项还需要执行make menuconfig。 2. 执行make ,多核CPU可以指定多线程编译+ “-jn” 四、编译文件系统 1. 配置文件系统【busybox-1.17.2】 cp fa.config .config 2. 执行make ,多核CPU可以指定多线程编译+ “-jn” 3. mkdir rootfs 创建rootfs目录,再该目录下创建以下目录 mkdir proc sys dev tmp mnt root home opt var 4. 将busybox-1.17.2目录下examples/bootfloppy/etc拷贝到rootfs目录下 5. 修改etc/init.d/rcS 文件 #! /bin/sh /bin/mount -n -t ramfs ramfs /var /bin/mount -n -t ramfs ramfs /tmp /bin/mount -n -t sysfs none /sys /bin/mount -n -t ramfs none /dev /bin/mkdir /var/tmp /bin/mkdir /var/modules /bin/mkdir /var/run /bin/mkdir /var/log /bin/mkdir -p /dev/pts /bin/mkdir -p /dev/shm /sbin/mdev -s /bin/mount -a 6. 修改etc/fstab 文件 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 none /dev/pts devpts defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 7.修改etc/inittab 文件 ::sysinit:/etc/init.d/rcS #::respawn:-/bin/sh #::respawn:-/bin/login console::askfirst:-/bin/sh ::ctrlaltdel:/bin/umount -a -r 8. 修改etc/profile 文件 # /etc/profile: system-wide .profile file for the Bourne shells echo echo -n "Processing /etc/profile... " # no-op #echo "Done" echo "Welcome to tiny6410" export HOME=/root export PS1="[root@tiny6410\w]# " echo "enjoy it" echo 9. /dev目录下创建console字符设备 mknod console c 5 1 如果不创建这个字符设备,就算系统烧录到板子上,启动会报错“/init 不能打开/r/dev/console: 没有这个文件或者目录” 10. 制作文件系统镜像 mkyaffs2image-128M rootfs rootfs.img 五、烧系统 1. 插上SD卡,使用SD-Flasher工具把Superboot 烧写到SD中,把必要的系统文件复制到SD卡的images目录中就可以了。 #This line cannot be removed. by FriendlyARM(www.arm9.net) LCD-Mode = No LCD-Type = S70 CheckOneButton=No Action=install OS= Linux USB-Mode=No //如果使用USB烧录的话,修改成Yes VerifyNandWrite=No StatusType = Beeper| LED #################### Linux ##################### Linux-BootLoader = u-boot.bin //自己编译的u-boot.bin Linux-Kernel = Linux/zImage //自己编译的zImage Linux-CommandLine = root=/dev/mtdblock2 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200 Linux-RootFs-InstallImage = Linux/rootfs.img //自己制作的文件系统镜像 #Linux-RootFs-RunImage = Linux/rootfs.ext3 2. 开关拨到靠近网口铜柱一端,就是从SD卡读取。插上SD卡,接通电源。自动烧写程序。关电源,拔出SD卡,开关拨到网口铜柱另一端,重新上电,系统就正常跑起来了。