A20开发之内核编译

       今天,花了一天的时间去摸索Cubieboard2的内核编译,总算是编译成功了。

        首先,环境要求:

      

1.主机操作系统:请务必使用 Ubuntu12.04 64 位操作系统,否则会出现未知的编译错误

    

2.搭建一个交叉编译环境,在 Ubuntu12.04 主机上安装必要的交叉编译工具链和软件包:

     $sudo apt-get update
     $sudo apt-get upgrade
     $sudo apt-get install ia32-libs
     $sudo apt-get install ncurses-dev
     $sudo apt-get install build-essential git u-boot-tools
     $sudo apt-get install texinfo texlive ccache zlib1g-dev gawk bison flex gettext uuid-dev
     $sudo apt-get install build-essential u-boot-tools uboot-mkimage
     $sudo apt-get install binutils-arm-linux-gnueabihf gcc-arm-linux-gnueabi
     $sudo apt-get install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf
     $ sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev
     $sudo apt-get install git wget fakeroot kernel-package zlib1g-dev libncurses5-dev

    

3.安装ewline">安装fex2bin/bin2fex 工具
      $ git clone https://github.com/cubieboard/sunxi-tools
      $ cd sunxi-tools
      $ make
      $ sudo cp fex2bin bin2fex /usr/bin

        

4.从Github上获取源码

$ mkdir linux-sdk-card
确保这个文件夹为普通用户权限
$ cd linux-sdk-card

1.下载内核源码:
$ git clone https://github.com/cubieboard/linux-sdk-kernel-source.git
重命名仓库名称:
$ mv linux-sdk-kernel-source linux-sunxi
这个内核由 cubietech 维护,版本为 3.4.79,会不定时 merge 社区的提交

2.下载打包固件脚本相关源码:
$ git clone https://github.com/cubieboard/linux-sdk-card-tools.git
重命名仓库名称:
$ mv linux-sdk-card-tools tools
主要是打包固件的脚本文件和环境变量,

3.下载发行版的配置文件
$ git clone https://github.com/cubieboard/linux-sdk-card-products.git
重命名仓库名称:
$ mv linux-sdk-card-products products
包含了官方支持固件的配置和属性,主要是板子的一些具体的配置

 4.下载发行版的文件系统和 uboot 文件:
直接访问链接: http://pan.baidu.com/s/1i3nALZf ,下载文件系统和 U-boot
这个仓库主要存放的是发型版的文件系统和 U-boot 二进制文件
U-boot Bin :包含了 A10 A20 U-boot bin 文件,下载完后解压到 SDK/binaries
Cubieez : debian 桌面发型版 Debian Server : debian 命令行版  把文件系统也放在Binaries,

这里我选择:cubieez-lxde-20140916.tar.gz 


然后 linux-sdk-card中的各级目录如下:binaries  linux-sunxi    products  tools


其次,开始编译:

$ cd linux-sdk-card
$ source tools/scripts/envsetup.sh

会出现选择板子配置的界面,我选择CB2和cubieez,即1和0。

接着,source tools/scripts/envsetup.sh,就开始编译整个系统了。

当出现make: Leaving directory `/home/luobs/cubieboard/linux-sdk-card/linux-sunxi'表示编译完成


      接着,就可以烧写镜像到TF卡了

编译 tf 卡刷写 nand/tsd flash 的启动卡
$cb_build_flash_card_image
编译内核和打包文件系统
$cb_install_flash_card nand sdb pack

当出现表示成功了

luobs@baony10-GAMING:~/cubieboard/linux-sdk-card$ cb_install_flash_card nand sdb pack
cp: cannot stat 鈥home/luobs/cubieboard/linux-sdk-card/binaries/card_flash_nand_rootfs.tar.gz鈥 No such file or directory
cp: cannot stat 鈥home/luobs/cubieboard/linux-sdk-card/binaries/card_flash_rootfs.tar.gz鈥 No such file or directory
鈥home/luobs/cubieboard/linux-sdk-card/build/cb2/cb2-cubieez/linux/arch/arm/boot/uImage鈥-> 鈥tmp/sdc1/uImage鈥
鈥home/luobs/cubieboard/linux-sdk-card/products/cb2/cb2-cubieez/configs/nand/uEnv-mmc.txt鈥-> 鈥tmp/sdc1/uEnv.txt鈥
Check ok: /dev/sdb
254+1 records in
254+1 records out
260980 bytes (261 kB) copied, 0.0582744 s, 4.5 MB/s
Build successfully
mount ok
鈥home/luobs/cubieboard/linux-sdk-card/output/cb2/cb2-cubieez/rootfs.tar.gz鈥-> 鈥tmp/sdc2/rootfs.tar.gz鈥
mkdir: created directory 鈥tmp/sdc2/bootfs鈥
鈥home/luobs/cubieboard/linux-sdk-card/build/cb2/cb2-cubieez/linux/arch/arm/boot/uImage鈥-> 鈥tmp/sdc2/bootfs/uImage鈥
鈥home/luobs/cubieboard/linux-sdk-card/products/cb2/cb2-cubieez/configs/nand/uEnv-nand.txt鈥-> 鈥tmp/sdc2/bootfs/uEnv.txt鈥


cp ok
tar: /home/luobs/cubieboard/linux-sdk-card/output/cb2/cb2-cubieez/card_flash_nand_rootfs.tar.gz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
cp: missing destination file operand after 鈥tmp/sdc2/bootfs/u-boot.bin鈥
Try 'cp --help' for more information.
鈥home/luobs/cubieboard/linux-sdk-card/products/cb2/cb2-cubieez/configs/nand/install.sh鈥-> 鈥tmp/sdc2/bin/install.sh鈥
tar ok
ddsize=1767 !
1767+0 records in
1767+0 records out
1852833792 bytes (1.9 GB) copied, 99.2337 s, 18.7 MB/s


至此,整个A20的编译过程就完成了。

若有疑问,请参考A10&A20 Linux卡固件SDK使用说明。







  


   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值