linux基础编译,linux基础之内核编译(示例代码)

本文详细介绍了Linux内核的编译安装过程,包括配置内核选项、多线程编译、模块安装和内核安装。同时,讲解了如何获取目标主机的硬件信息,如CPU和PCI设备,并提到了不同方式的配置选项,如menuconfig和gconfig。此外,还阐述了内核重新编译的清理步骤,如make clean、make mrproper和make distclean。
摘要由CSDN通过智能技术生成

编译内核:

程序包的编译安装:

./configure, make, make install

前提:开发环境(开发工具,开发库),头文件:/usr/include

开源:源代码 --> 可执行格式

发行版:以“通用”的目标;

前提:

(1) 准备好开发环境;

(2) 获取目标主机上硬件设备的相关信息;

(3) 获取到目标主机系统功能的相关信息,例如要启用的文件系统;

(4) 获取内核源代码包:www.kernel.org

准备开发环境:

CentOS 6.7:

包组:

Development Tools

Server Platform Development

CentOS 7:

包组:

Development Tools

Server Platform Development

包:

ncurses-devel

获取目标主机上硬件设备的相关信息:

CPU:

~]# cat  /proc/info

~]# lscpu

~]# x86info -a

PCI设备:

~]# lspci

-v

-vv

~]# lsusb

-v

-vv

~]# lsblk

了解全部硬件设备信息:

~]# hal-device

内核编译过程:

步骤:

~]# tar  xf  linux-3.10.67.tar.xz  -C  /usr/src

~]# cd  /usr/src

~]# ln  -s  linux-3.10.67  linux

~]# cd  linux

~]# make menuconfig        配置内核选项

~]# make  [-j #]   编译内核,可使用-j指定编译线程数量

~]# make modules_install 安装内核模块

~]# make install   安装内核

重启系统,选择使用新内核;

screen命令:

打开screen: ~]# screen

拆除screen: Ctrl+a, d

列出screen: ~]# screen  -ls

连接至screen: ~]# screen  -r   SCREEN_ID

关闭screen:  ~]# exit

过程的详细说明:

(1)  配置内核选项

支持“更新”模式进行配置:在已有的.config文件的基础之上进行“修改”配置;

(a) make config:基于命令行以遍历的方式去配置内核中可配置的每个选项;

(b) make  menuconfig:基于cureses的文本配置窗口;

(c) make  gconfig:基于GTK开发环境的窗口界面;  包组“桌面平台开发”

(d) make  xonfig:基于QT开发环境的窗口界面;

支持“全新配置”模式进行配置:

(a) make  defconfig:基于内核为目标平台提供的“默认”配置为模板进行配置;

(b) make   allnoconfig:所有选项均为“no”;

(2) 编译

(a) 多线程编译:make  [-j #]

(b) 编译内核中的一部分代码:

(i) 只编译某子目录中的相关代码:

# cd  /usr/src/linux

# make  path/to/dir/

(ii)只编译一个特定的模块

# cd  /usr/src/linux

# make  path/to/dir/file.ko

(c) 如何交叉编译:

目标平台与当前编译操作所在的平台不同;

# make  ARCH=arch_name

要获取特定目标平台的使用帮助:

# make  ARCH=arch_name help

(3) 如何在执行过编译操作的内核源码树上做重新编译:

事先清理操作:

# make clean:清理编译生成的绝大多数文件,但会保留config,及编译外部模块所需要的文件;

# make mrproper:清理编译生成的所有文件,包括配置生成的config文件及某些备份文件;

# make distclean:相当于mrproper,额外清理各种patches以及编辑器备份文件;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值