怎么为DragonBoard 410c定制Linaro Linux系统
2015-11-20 13:30
489 查看
我们在前面博客中已经介绍过,DragonBoard 410c兼容96Boards消费版(CE)规范。咱们先来了解一下96Boards规范。
96Boards 是 ARM 开放平台规范,是第一个定义 Cortex-A 开发板的开放规范,该规范由Linaro社区委员会组织维护。标准化扩展 Peripheral I/O 总线,显示和相机等。定位移动、嵌入及数字家庭领域。允许硬件生态系统开发一系列兼容组件的产品,在其生命周期可以在任意兼容 96Boards 的平台上使用。
DragonBoard 410c基于Linaro的96board规范,有助于开发商、制造商、大学和商业制造商利用骁龙410处理器的能力,例如下一代机器人、医疗设备、楼宇自动化、数字标牌和游戏机等。
上一篇博客已经介绍了Android系统的定制方法,今天将介绍如何为DragonBoard 410c定制Linaro Linux系统。
~/DragonBoard/toolchain/:
tar xvf gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
根据tags信息,我们可以看到,DragonBoard 410c的最新Linux源码是15.09版本,下面我们来下载Linux源码。
~/DragonBoard/
git clone -n http://git.linaro.org/landing-teams/working/qualcomm/kernel.git
cd kernel
git checkout -b kernel-15.09 ubuntu-qcom-dragonboard410c-15.09
现在,我们已经下载到Linux源码了,大家可以根据自己的需要修改kernel代码。
export ARCH=arm64
export CROSS_COMPILE=<path to your GCC cross compiler>/aarch64-linux-gnu-
前面第一步我们已经下载了交叉编译器,所以CROSS_COMPILE设置为如下:
export CROSS_COMPILE=~/DragonBoard/toolchain/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
在15.09版本上存在一个build的问题,所以我们需要通过cherry-pick来修复一下:
git cherry-pick -n e4df9dd88bb3b37d84db277e0f6a5d59cf5ac737
已经万事俱备了,下面我们开始编译kernel:
make defconfig distro.config
make -j4 Image dtbs KERNELRELEASE=4.2.0-linaro-lt-qcom
首先,我们需要下载安装dt工具以及镜像生成工具。
sudo apt-get install device-tree-compiler
git clone git://codeaurora.org/quic/kernel/skales
然后,编译dt镜像:
./skales/dtbTool -o dt.img -s 2048 arch/arm64/boot/dts/qcom/
init ramdisk镜像可以通过以下命令获取:
wget http://builds.96boards.org/releases/dragonboard410c/linaro/ubuntu/15.09/initrd.img-4.2.0-linaro-lt-qcom
已经都准备好了,下面我们就可以生成boot image了。
./skales/mkbootimg –kernel arch/arm64/boot/Image \
–ramdisk initrd.img-4.2.0-linaro-lt-qcom \
–output boot-db410c.img \
–dt dt.img \
–pagesize 2048 \
–base 0x80000000 \
–cmdline “root=/dev/disk/by-partlabel/rootfs rw rootwait console=ttyMSM0,115200n8”
sudo fastboot boot boot-db410c.img
如果可以正常启动,那么我们就可以通过fastboot命令烧写了。
sudo fastboot flash boot boot-db410c.img
96Boards 是 ARM 开放平台规范,是第一个定义 Cortex-A 开发板的开放规范,该规范由Linaro社区委员会组织维护。标准化扩展 Peripheral I/O 总线,显示和相机等。定位移动、嵌入及数字家庭领域。允许硬件生态系统开发一系列兼容组件的产品,在其生命周期可以在任意兼容 96Boards 的平台上使用。
DragonBoard 410c基于Linaro的96board规范,有助于开发商、制造商、大学和商业制造商利用骁龙410处理器的能力,例如下一代机器人、医疗设备、楼宇自动化、数字标牌和游戏机等。
上一篇博客已经介绍了Android系统的定制方法,今天将介绍如何为DragonBoard 410c定制Linaro Linux系统。
环境准备
1、交叉编译环境准备
DragonBoard 410c是一个64位的ARMv8平台,所以在PC机上编译ARM架构的代码需要交叉编译环境。首先下载Linaro GCC cross compiler,然后将下载的压缩包解压到你自己指定的目录下:~/DragonBoard/toolchain/:
tar xvf gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz
2、下载Linux Kernel源码
Linux Kernel的代码信息可以通过 Linaro Qualcomm Landing Team git repository来查找。根据tags信息,我们可以看到,DragonBoard 410c的最新Linux源码是15.09版本,下面我们来下载Linux源码。
~/DragonBoard/
git clone -n http://git.linaro.org/landing-teams/working/qualcomm/kernel.git
cd kernel
git checkout -b kernel-15.09 ubuntu-qcom-dragonboard410c-15.09
现在,我们已经下载到Linux源码了,大家可以根据自己的需要修改kernel代码。
3、编译kernel
首先,我们先要设置环境变量:export ARCH=arm64
export CROSS_COMPILE=<path to your GCC cross compiler>/aarch64-linux-gnu-
前面第一步我们已经下载了交叉编译器,所以CROSS_COMPILE设置为如下:
export CROSS_COMPILE=~/DragonBoard/toolchain/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
在15.09版本上存在一个build的问题,所以我们需要通过cherry-pick来修复一下:
git cherry-pick -n e4df9dd88bb3b37d84db277e0f6a5d59cf5ac737
已经万事俱备了,下面我们开始编译kernel:
make defconfig distro.config
make -j4 Image dtbs KERNELRELEASE=4.2.0-linaro-lt-qcom
4、编译boot image
boot image是由三部分组成的:设备树表镜像(dt.img)、kernel镜像(Image)和init ramdisk镜像。kernel镜像我们在上面已经编译出来了,下面我们来看看其他两部分从哪里获取。首先,我们需要下载安装dt工具以及镜像生成工具。
sudo apt-get install device-tree-compiler
git clone git://codeaurora.org/quic/kernel/skales
然后,编译dt镜像:
./skales/dtbTool -o dt.img -s 2048 arch/arm64/boot/dts/qcom/
init ramdisk镜像可以通过以下命令获取:
wget http://builds.96boards.org/releases/dragonboard410c/linaro/ubuntu/15.09/initrd.img-4.2.0-linaro-lt-qcom
已经都准备好了,下面我们就可以生成boot image了。
./skales/mkbootimg –kernel arch/arm64/boot/Image \
–ramdisk initrd.img-4.2.0-linaro-lt-qcom \
–output boot-db410c.img \
–dt dt.img \
–pagesize 2048 \
–base 0x80000000 \
–cmdline “root=/dev/disk/by-partlabel/rootfs rw rootwait console=ttyMSM0,115200n8”
5、烧写boot image
在烧写前,我们可以先测试一下boot image能否正常工作。sudo fastboot boot boot-db410c.img
如果可以正常启动,那么我们就可以通过fastboot命令烧写了。
sudo fastboot flash boot boot-db410c.img
相关文章推荐
- linux共享资料地址
- 在Linux 上,编写一个每秒接收 100万UDP数据包的程序究竟有多难?
- [转]linux awk命令详解
- Linux下OpenSSL 安装图文详解
- 对Linux(Unix)的基础知识归纳
- 于erlang依赖的linux调优
- Linux CentOS6.0图文安装教程
- ARM Linux系统调用
- Linux命令大观
- Linux命令缩写来由
- linux sed命令
- Linux常用的增删改查目录命令
- centos7安装rabbitmq
- Centos 7 gem install -v=0.12.0 pcaprub 出错解决办法
- linux命令学习笔记(28):tar命令
- SVN管理多个项目版本库 (windows,linux 通用)
- Centos 开放端口
- Linux查看系统信息
- 第九天-linux文件类型和文件扩展名详细介绍
- Linux -- FresBSD的镜像文件说明