|
本帖最后由 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,选择解压缩到第二个分区的根目录下,系统制作完成
|
|