Linux 内核编译
来源:互联网 发布:python and 编辑:程序博客网 时间:2024/06/11 00:26
1、下载内核,解压
tar -xjvf linux-2.6.22.6
2、进入内核根目录,打补丁
cd linux-2.6.22.6
patch -p1 < ../linux-2.6.22.6_jz2440.patch
3、配置
a、直接make menuconfig(时间久)
b、使用默认配置(先针对具体架构配置)
cd arch/arm/configs
make s3c2410_defconfig (把配置信息写入内核根目录下.config中)
make menuconfig
c、使用厂家提供的配置文件
cp config_厂家 .config
make menuconfig
5、编译
make(编译内核)
或make uImage(编译内核给u-boot可使用:头部+编译好的内核)
make uImage位于arch/arm/Makefile里面,顶层Makefile会调用它
(include $(srctree)/arch/$(ARCH)/Makefile)以及两个autoconf.h
(1)此时 .config生成include/linux/autoconf.h
定义某块宏为1,决定C源代码是否编译该模块
(2) .config还生成include/config/auto.conf
定义某块宏为1,子目录下的Makefile(也是该模块源码的上层目录)决定把该模块编译进内核(obj_y += xxx.0)还是编译成模块.ko(obj_m += xxx.0)
(3)依赖关系
uImage : vmlinux(真正的内核)make uImage位于arch/arm/Makefile里面,顶层Makefile会调用它vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE1)vmlinux-init := $(head-y) $(init-y)2)vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)3)vmlinux-all := $(vmlinux-init) $(vmlinux-main)4)vmlinux-lds := arch/$(ARCH)/kernel/vmlinux.lds1)head-y = arch/arm/kernel/head.o arch/arm/kernel/init_task.o init/built-in.ohead-y在arch/arm/Makefile里面定义:head-y := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o顶层Makefile,意思就是把init目录下所有涉及文件编译成built-in.o,故init-y := init/init-y := $(patsubst %/, %/built-in.o, $(init-y))init-y :=init/built-in.o2)core-y = usr/kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o block/built-in.ocore-y := usr/core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/core-y := $(patsubst %/, %/built-in.o, $(core-y))libs-y = lib/lib.a lib/built-in.odrivers-y = drivers/built-in.o sound/built-in.o net-y = net/built-in.o 4)连接脚本为:arch/arm/kernel/vmlinux.lds由编译时vmlinux.lds.S生成
6、了解内核的编译过程阅读内核目录下\Documentation\kbuild\makefiles.txt
- Linux内核:编译内核
- 【LINUX内核】LINUX内核编译
- Android编译 & Linux内核编译
- linux内核编译kernel编译
- Linux编译内核详解
- Linux编译内核详解
- linux内核编译
- 菜鸟编译Linux内核
- linux内核编译详解
- LINUX内核编译(ZT)
- Linux 内核编译 全功略
- 第一次编译linux内核
- linux内核编译步骤
- Linux内核编译步骤
- Linux 内核编译详解
- Linux内核编译详解
- Linux内核编译
- linux内核编译
- C
- note_cloud--加载笔记列表
- Android图片优化,减少内存压力,提高app流畅度
- Ehcache教程(一)----Ehcache简介
- bzoj1395: [Baltic2005]Trip
- Linux 内核编译
- Python学习手册1-模块
- 搜狗实习面试总结
- CSU-ACM2017暑期训练3-递推与递归I
- Linux常用命令--文件管理一
- 基于numpy+pandas的单层神经网络
- 数据结构——链表
- 分类型的listview
- 软件安装