2018/05/10 09:26 zhoulinhua@2018-05-10
一、源码
相关链接:http://www.at91.com/linux4sam/bin/view/Linux4SAM
1.a91bootstrap源码获取
git clone git://github.com/linux4sam/at91bootstrap.git Cloning into 'at91bootstrap'... remote: Reusing existing pack: 2476, done. remote: Counting objects: 167, done. remote: Compressing objects: 100% (167/167), done. remote: Total 2643 (delta 135), reused 0 (delta 0) Receiving objects: 100% (2643/2643), 2.06 MiB | 270 KiB/s, done. Resolving deltas: 100% (1809/1809), done.
2.u-boot源码获取
1)克隆Linux4sam GitHub uboot存储库
git clone git://github.com/linux4sam/u-boot-at91.git Cloning into 'u-boot-at91'... remote: Counting objects: 219350, done. remote: Compressing objects: 100% (40142/40142), done. remote: Total 219350 (delta 175755), reused 219350 (delta 175755) Receiving objects: 100% (219350/219350), 56.01 MiB | 1.24 MiB/s, done. Resolving deltas: 100% (175755/175755), done. $ cd u-boot-at91 2)源代码已经从主分支中获取,它指向我们使用的最新分支。如果您想要使用另一个分支,您可以列出它们并使用其中一个分支:
git branch -r origin/HEAD -> origin/master origin/master origin/u-boot-2012.10-at91 origin/u-boot-2013.07-at91 origin/u-boot-2014.07-at91 origin/u-boot-2015.01-at91 origin/u-boot-2016.03-at91 origin/u-boot-2017.03-at91 origin/uboot_5series_1.x $ git checkout origin/u-boot-2017.03-at91 -b u-boot-2017.03-at91 Branch u-boot-2017.03-at91 set up to track remote branch u-boot-2017.03-at91 from origin. Switched to a new branch 'u-boot-2017.03-at91'
3.Linux内核源码获取
1)克隆Linux4sam GitHub Linux存储库
$ git clone git://github.com/linux4sam/linux-at91.git Cloning into 'linux-at91'... remote: Counting objects: 4524288, done. remote: Compressing objects: 100% (721/721), done. remote: Total 4524288 (delta 385), reused 1 (delta 1), pack-reused 4523564 Receiving objects: 100% (4524288/4524288), 1.22 GiB | 1.35 MiB/s, done. Resolving deltas: 100% (3777338/3777338), done. Checking connectivity... done. Checking out files: 100% (49565/49565), done.
源代码已经从主分支中获取,它指向我们使用的最新分支
二、安装交叉编译环境 1.ubuntu下安装ARM 交叉编译器:
sudo apt-get install gcc-arm-linux-gnueabi export CROSS_COMPILE=arm-linux-gnueabi-
别的linux主机:
wget -c https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabi/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz tar xf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz export CROSS_COMPILE=`pwd`/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-
2.a91bootstrap编译
cd at91bootstrap
make at91sam9x5ekdf_uboot_defconfig
make
在binaries目录下得到at91sam9x5ek-dataflashboot--3.8.10.bin可执行文件
3. uboot编译
cd u-boot-at91
make at91sam9x5ek_spiflash_defconfig
make
在根目下得到u-boot.bin可执行文件
4. 编译kernel
1)编译:Image、zImage
cd linux-at91
make ARCH=arm at91_dt_defconfig
#make ARCH=arm menuconfig
arch/arm/boot目录下得到Image、zImage
make ARCH=arm
2)编译:uImage
a. 指定mkimage工具路径添加为环境变量;
export PATH=/workspace/at91/u-boot-at91/tools:$PATH
b. 编译uImage
make ARCH=arm uImage LOADADDR=0x20008000
arch/arm/boot目录下得到uImage
5.编译DTB
cd linux-at91
make ARCH=arm dtbs
在arch/arm/boot/dts目录下查看编译出来的dtb,选择合适的dtb文件烧入;