第1步 Linux配置菜单及内核移植
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux配置菜单及内核移植
每次修改与增加内容者,需在文档修订记录中进行记录
一、说明
1.硬件平台
SEP0718 eASIC开发板
2.Linux BSP
0718-android-kernel-2.6.29
linux-v3.4(SEP4020)
二、配置菜单
进入BSP顶层目录后执行make menuconfig(调用arch/arm/Kconfig文件),即执行BSP的内核配置。
1.配置菜单选项介绍(SEP0718)
主菜单"Linux Kernel Configuration"
⏹Kconfig中指定:mainmenu "Linux Kernel Configuration"
General setup
⏹Kconfig中source "init/Kconfig":menu "General setup"
⏹系统常规设置(略)
⏹重点配置选项
●RCU Subsystem:Classic RCU
●(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)
●(0) Default panic timeout
●Choose SLAB allocator (SLUB (Unqueued Allocator))
Enable the block layer
⏹init/Kconfig中source "block/Kconfig":"Enable the block layer"
⏹块设备层设置
⏹重要配置选项
●Default I/O scheduler (No-op)
System Type
⏹Kconfig中:menu "System Type"
⏹CPU类型及特性(略)
⏹重要配置选项(在内核移植部分介绍为何会出现这些选项)
●ARM system type (SEP0718)
●SEP0718 Implementations(EASIC0718)
●Support ARM V6K processor extensions
●Support Thumb user binaries
Kernel Features
⏹Kconfig中:menu "Kernel Features"
⏹重要配置选项
●Memory split (3G/1G user/kernel split)
●(4096) Low address space to protect from user allocation
Boot options
⏹Kconfig中:menu "Boot options"
⏹重要配置选项
●(0x0) Compressed ROM boot loader base address
●(0x0) Compressed ROM boot loader BSS address
●(root=/dev/mtdblock1 rootfstype=yaffs mem=64mb
console=ttyS1,115200 init=/init)
Device Drivers
⏹Kconfig中:menu "Device Drivers"
⏹重要配置选项
●Input device support(Horizontal/V ertical)
●Character devices(Serial drivers)
Kernel hacking
⏹Kconfig中:source "arch/arm/Kconfig.debug":menu "Kernel
hacking"
⏹重要配置选项
●(1024) Warn for stack frames larger than (needs gcc 4.4)
Load an Alternate Configuration File
Save an Alternate Configuration File
⏹内核配置后,自动生成.config文件,顶层Makefile间接包含.config
文件并根据其定义的变量编译内核。
2.配置菜单中的参数(SEP4020)
Linux-V3.4/arch/arm/mm/Kconfig
ARCH_SEP4020选中后,默认选择CPU_ARM720T
Linux-V3.4/drivers/char/Kconfig
ARCH_SEP4020选中后,SEP4020_CHAR有效。因此,当前目录下的makefile中的obj-$(CONFIG_SEP4020_CHAR) += sep4020_char/
执行
Linux-V3.4/arch/arm/mach-4020/Kconfig:
ARCH_SEP4020选中,才会出现此菜单项
GFD4020选中后,ARCH_4020有效。因此,当前目录下的makefile 中的obj-$(CONFIG_ARCH_4020) +=4020.o执行
三、内核移植
下载linux-2.6.28.5源码包
将0718-android-kernel-2.6.29移植至linux-2.6.28.5
1.修改linux-
2.6.28.5/makefile文件,指定编译平台及编译器
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
2.将0718-android-kernel-2.6.29/arch/arm/mach-sep0718复制到
linux-2.6.28.5相应目录下