红联Linux门户
Linux帮助

构建BBB内核

发布时间:2016-11-13 09:59:41来源:linux网站作者:bigPillow
说明:文中全部翻译的英文文档
文中是编译BeagleBone Black的内核
 
1.下载交叉编译工具连,假如你是ubuntu直接执行:
apt-get install gcc-arm-linux-gnueabi
其他管理器需要执行:
yum install gcc-arm-linux-gnu
 
2.有可能你的系统没有lzop需要安装一下,不然make的时候可能提示错误:
apt-get install lzop
 
3.为了后面可以正确的执行 mkimage 还需要下载uboot:
wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
tar -xjf u-boot-latest.tar.bz2
cd u-boot-<version>
Building <= v1014.07: make tools-only   
Building >= v1014.10: make sandbox_defconfig tools-only 
#下面是安装工具
sudo install tools/mkimage /usr/local/bin
 
4.接下来就是下载内核镜像并且编译它:
#下载源码
git clone git://github.com/beagleboard/kernel.git
cd kernel
git checkout 3.8
#下面是下载源码包,可能需要很长的时间(与网速有关)
./patch.sh
#选择配置文件
cp configs/beaglebone kernel/arch/arm/configs/beaglebone_defconfig
#下载固件
wget http://arago-project.org/git/projects/?p=am33x-cm3.git\;a=blob_plain\;f=bin/am335x-pm-firmware.bin\;hb=HEAD -O kernel/firmware/am335x-pm-firmware.bin
#进入源码目录
cd kernel
#可以编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- beaglebone_defconfig
#编译镜像,需要几分钟的时间
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage uImage dtbs 
#
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage-dtb.am335x-boneblack
This step builds the kernel for the BBB
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules
到这里就可以了,主要把生成的arch/arm/boot/zImage拷贝到BBB板子的原系统下的/boot/uboot/ 下替换掉原来的zImage,重启后就进入了新的系统。
 
5.当然,除此之外也可以下载到内存中然后去执行,后先在
arch/arm/boot/uImage-dtb.am335x-boneblack拷贝到你的tftp的目录,当然,为了操作方便,可以给uImage-dtb.am335x-boneblack起个新的名字,这里,将其拷贝成 uImage-BBB
接来下执行mkimage 检测镜像是否是正确的:
[user@sl61 tftpboot]$ mkimage -l uImage-BBB
Image Name: Linux-3.8.13-00650-g5506bfa
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4278313 Bytes = 4178.04 kB = 4.08 MB
Load Address: 80008000
Entry Point: 80008000
[user@sl61 tftpboot]$
一切执行完毕,就可以通过uboot下载该镜像,重启BBB开发板,然后快速按下空格键进入uboot命令行模式,进入之后,执行:
setenv autoload no
#通过DHCP获取ip地址
dhcp
#现在评估板应该就有一个正确的IP地址了,假如地址为192.168.1.70,且假设tftp服务器地址为 192.168.1.76执行:
setenv serverip 192.168.1.76
#通过tftp将镜像下载到内存里面
tftp 0x80200000 uImage-BBB
#设置启动环境变量
setenv bootargs console=ttyO0,115200n8 quiet root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait
#启动内核
bootm 0x80200000
 
下面是针对不同uboot的启动界面:
构建BBB内核
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25967.html