您的位置:首页 > 运维架构 > Linux

Linux内核移植实验之---内核的配置和编译

2016-11-07 14:03 323 查看
                                                 实验四  内核的配置和编译

【实验目的】

了解内核的编译过程及配置选项的内容

说明:在本系统移植课程实验中命令行提示符 “$”表示是在主机上执行,“#”表示在目标板执行

【实验环境】

• 主机:ubuntu 12.04发行版

• 目标机:FS4412平台

• 交叉编译工具:arm-none-linux-gnueabi-gcc

【实验步骤】

• 解压内核

将linux-3.14.tar.xz拷贝到/home/linux下并解压

$ tar  xvf  linux-3.14.tar.xz
$ cd  linux-3.14
• 修改内核顶层目录下的Makefile

$ vim Makefile
修改:

ARCH?= $(SUBARCH)
CROSS_COMPILE?= $(CONFIG_CROSS_COMPILE:"%"=%)
为:

ARCH?= arm
CROSS_COMPILE?=
bbb9
arm-none-linux-gnueabi-
• 导入默认配置

$ make  exynos_defconfig
• 配置内核

$ make
 menuconfig
System Type  --->
(2) S3C UART to use for low-level messages
该命令执行时会弹出一个菜单,我们可以对内核进行详细的配置。这里我们先查看一下,内核都提供了那些功能!

• 编译内核

$ make
 uImage
通过上述操作我们能够在arch/arm/boot目录下生成一个uImage文件,这就是经过压缩的内核镜像。

如果编译过程中提示缺少mkimage工具,需将第二天编译的uboot源码中的tools/mkimage拷贝到ubuntu的/usr/bin目录下

$ cp  u-boot-2013.01/tools/mkimage  /usr/bin
修改设备树文件

生成设备树文件,以参考板origen的设备数文件为参考。

$
cp arch/arm/boot/dts/exynos4412-origen.dts
 arch/arm/boot/dts/exynos4412-fs4412.dts
 

添加新文件需修改Makefile才能编译

$ vim arch/arm/boot/dts/Makefile



exynos4412-origen.dtb \
下添加如下内容

exynos4412-fs4412.dtb \
• 编译设备树文件

$ make dtbs
• 拷贝内核和设备树文件到/tftpboot目录下

$ cp  arm/arm/boot/uImage  /tftpboot
$
cp  arch/arm/boot/dts/exynos4412-fs4412.dtb
 /tftpboot/
• 修改uboot启动参数

重启板子在系统倒计时是按任意键结束启动,输入如下内容修改uboot环境变量:

# setenv serverip 192.168.9.120
# setenv ipaddr 192.168.9.233
# setenv bootcmd tftp 41000000
uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 – 42000000
#setenv bootargs root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs
rw console=ttySAC2,115200  init=/linuxrc
 ip=192.168.9.233
# saveenv
注意:192.168.9.120
对应Ubuntu的ip

 192.168.9.233
对应板子的ip

      这两个ip应该根据自己的实际情况适当修改

重启开发板查看现象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: