CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 5930|回复: 5

板子到手也有一个礼拜了,发个自己做TF卡系统的过程

[复制链接]
发表于 2014-4-22 17:03:22 | 显示全部楼层 |阅读模式
本帖最后由 slangel 于 2014-4-24 18:46 编辑

搭建平台 debian7.0
板子:CB2
生成系统:debian7.0 arm

特别注意:不要使用CB官方的kernel(内核)配置文件,会造成内核跑飞,猜测官方链接里的是给CB1用的!!!


1.生成一个最小系统
        #首先去debian的官网去下一个 debian-armhf 的最新iso文件,然后挂载到目录里,我这里是在mnt下建立一个cdrom的目录
        debootstrap --arch=armhf --no-check-gpg --foreign wheezy /mnt/rootfs file:/mnt/cdrom
        --no-check-gpg 不检测光盘gpg文件
        --foreign 安装外部工具包

        #安装arm模拟环境以便执行 chroot 命令
        apt-get install qemu-user-static

        #copy 建立好的rootfs/usr/bin 目录里
        qemu-arm-static

        #安装核心包 这里只能使用绝对路径
        LC_ALL=C LANGUAGE=C LANG=C chroot . /debootstrap/debootstrap --second-stage
        LC_ALL=C LANGUAGE=C LANG=C chroot . dpkg --configure -a

        #更改root密码
        chroot . passwd

2.修改rootfs各种文件
        #修改/etc/fstab
        #注意 第二行的 / ext4 表示根分区是ext4格式
        /dev/mmcblk0p1 /boot vfat defaults 0 2
        /dev/mmcblk0p2 / ext4 defaults,noatime 0 1

        #修改/etc/inittab
        T0:2345:respawn:/sbin/getty -L ttyS0 115200 linux

        #修改/etc/network/interfaces 为自动获取IP
        auto eth0
        iface eth0 inet dhcp

3.编译内核
        #加载默认A20的配置文件
        make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig
      

        #可以进行核心裁剪与配置,也可以省略此步直接用官方的配置文件
        make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

        #编译核心 -j4 是你CPU数量
        make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

        #编译完成后检查一下目录是否有 uImage 这个文件
        路径:arch/arm/boot/
        
        #安装模块文件到rootfs,进入核心目录
        make /*核心根目录*/ INSTALL_MOD_PATH/*rootfs根目录*/ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install
        

4.编译U-BOOT
        #获取官方U-BOOT的配置名称
        grep sunxi boards.cfg | awk '{print $7}'
        
        #加载对应的板子配置文件
        make CROSS_COMPILE=arm-linux-gnueabihf- {TARGET}_config

        #编译 u-boot
        make CROSS_COMPILE=arm-linux-gnueabihf-

        #编译完成后检查目录是否有u-boot-sunxi-with-spl.bin
        路径:u-boot根目录

6.生成boot.src文件
        #手动建立一个boot.cmd的文本文件输入以下内容
        setenv bootargs console=ttyS0,115200 noinitrd root=/dev/mmcblk0p2 rootfstype=ext4 rootwait panic=10 ${extra}
        fatload mmc 0 0x43000000 boot/script.bin
        fatload mmc 0 0x48000000 boot/uImage
        bootm 0x48000000

        #生成
        mkimage -C none -A arm -T script -d boot.cmd boot.scr

7.生成 script.bin文件
        #先修改官方的配置文件,比如加入MAC地址使其固定
        [dynamic]
        MAC = "AABBCCDDEE00"

        #然后需要编译sunxi-tools直接进入目录后
        make fex2bin
        
        #然后编译
        fex2bin cubieboard2.fex script.bin

8.TF卡分区
        #申明一个环境变量 sdX 的 X表示你实际的设备,用磁盘工具看
        export card=/dev/sdX

        #填充一个TF卡的前1M为0
        dd if=/dev/zero of=$card bs=1M count=1

        #重新装载TF卡
        sfdisk -R $card

        #fdisk开始分区
        fdisk $card
        键入以下:n,回车,回车,回车,+64M
                n,回车,回车,回车,回车
                t,1,c
                w//保存分区表

        #格式化分区
        mkfs.vfat ${card}1
        mkfs.ext4 ${card}2 //必须等待完成

9.写入u-boot
        #进入u-boot根目录
        dd if=u-boot-sunxi-with-spl.bin of=$card bs=1024 seek=8
        #复制前面的 boot.scr 到根目录下
        #加载前面的64M的分区,在根目录下建立一个 boot 文件夹
        #复制前面的 uImage 路径:/*核心目录*/arch/arm/boot/
        #复制前面的 script.bin

10.写入rootfs文件到第二个分区
        #首先进入rootfs目录进行打包,一定要先进入该目录 注意命令行最后有个 * 号
        tar -cvf /*自定义的包存放位置*/XXX.tar *
        
        #打开打包好的roofs,选择解压缩到第二个分区的根目录下,系统制作完成
                        
        
        







回复

使用道具 举报

 楼主| 发表于 2014-4-22 17:05:47 | 显示全部楼层
所需要的工具全部可以在 https://github.com/linux-sunxi/
下载到,编译环境我直接用的Linaro toolchain,去官方网站下载解压缩,然后添加到环境变量里就可以了
回复 支持 反对

使用道具 举报

发表于 2014-4-23 02:35:20 | 显示全部楼层
說明很仔細,謝謝
回复 支持 反对

使用道具 举报

发表于 2014-4-23 10:33:19 | 显示全部楼层
非常不错。第一步应该是生成文件系统吧??
回复 支持 反对

使用道具 举报

发表于 2014-4-23 10:39:00 | 显示全部楼层
你好,请问大家,你的板子在哪里买的? 我想买一块玩玩
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-23 11:12:53 | 显示全部楼层
sunbeyond 发表于 2014-4-23 10:33
非常不错。第一步应该是生成文件系统吧??

是的,通过光盘生成一个最小系统rootfs,网上好多都是从FTP下载的,太慢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-24 00:11 , Processed in 0.023197 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部