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应该根据自己的实际情况适当修改
重启开发板查看现象
【实验目的】
了解内核的编译过程及配置选项的内容
说明:在本系统移植课程实验中命令行提示符 “$”表示是在主机上执行,“#”表示在目标板执行
【实验环境】
• 主机: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应该根据自己的实际情况适当修改
重启开发板查看现象
相关文章推荐
- Linux内核配置、编译和内核安装
- <2012 12 06> FL2440开发板的U-boot-2010.09版本移植(十一)U-boot引导内核设置、编译linux内核、编译文件系统、加载...
- 嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译
- 嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作-- 配置Linux内核
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
- Linux内核(5)——系统调用与内核编译实验
- Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
- 内核开发基础3——Linux内核配置与编译
- linux内核编译步骤 + Linux 2.6.19.x 内核编译配置选项简介
- Linux内核|实验三 安装、配置、编译Linux内核
- 2.内核配置与编译,内核移植
- Linux内核及文件系统配置编译 - 关于内核配置
- Linux内核编译实战-Linux配置与编译内核
- linux内核编译步骤 + Linux 2.6.19.x 内核编译配置选项简介
- Linux内核移植 part3:Exynos4412内核编译
- linux内核配置编译移植(基于x86的)
- 【内核】Linux内核Initrd机制解析,内核更新步骤,grub配置说明