Linux编译内核

查看内核:

#uname [OPTION]

[OPTION]

-r 显示内核版本和release号。

用户空间访问、监控内核的方式:

/proc

/sys

伪文件系统:

/proc/sys 目录中很多文件是可读写的。

/sys 某些文件可写

设定内核参数值的方法:

临时生效,重启后失效:

#echo VALUE > /proc/sys/FILE

#sysctl -w DIR.FILE=VALUE

在/proc/sys目录下可以忽略/proc/sys,剩余路径用DIR.FILE表示。

例如:

#echo 1 > /proc/sys/vm/dorp_caches

#sysctl -w vm.dorp_caches=1

#sysctl -w kernel.hostname=test.com

#sysctl -w net.ipv4.ip_forward=1

永久有效,不立即生效:

修改/etc/sysctl.conf文件。修改后使用sysctl -p让系统重读文件,立即成效。

编辑格式如下:

DIR.FILE=VALUE

#sysctl [OPTION] DIR.FILE=VALUE

[OPTION]

-w 临时改变某参数的值。

-p FILE 从指定的FILE中加载系统参数,立即生效。如不指定即从/etc/sysctl.conf中加载。

-a 显示所有内核参数及其值。

内核模块管理:

#lsmod 列出当前内核中装载的模块和模块名称。

显示格式如下:

Module 模块名称

Size 大小

Used by 使用次数、被哪个文件调用等信息。

#modprobe [OPTION] MODNAME 装载名称为MODNAME的模块。会处理模块间的依赖关系。

[OPTION]

-r 卸载模块

#modinfo MODNAME 查看模块具体信息。

#insmod MODDIR 装载模块。

#rmmod MODNAME 卸载模块。

#depmod MODDIR 生成模块间依赖关系。并保存到该目录中。

例如:

#lsmod |grep floppy

#modproble -r floppy

#modinf mii

#insmod /lib/modules/KERNEL_VERSION/kernel/drivers/net/mii.ko

#rmmod mii

内核中的功能除了核心功能以外,在编译时,大多数功能都有3种选择:

1.不使用此功能。

2.编译成内核模块。

3.编译进内核。

编译内核:

0.安装开发库和工具:

#yum groupinstall "Development Tools" "Development Libaries"

1.内核下载完成后,解压存放在/usr/src下。可以创建软链接简化访问。

#tar -xf KERNELFILE -C /usr/src

/usr/src/KERNELVERSION

#cd /usr/src

#ln -s KERNELVERSION SIMPLENAME

2.将当前内核的配置文件复制为要编译的内核的.config文件。这样有效避免一定程度上自选功能生成的.config文件因为功能选择不当或依赖关系造成无法启动,重复进行多次编译。

#cp /boot/config-KERNEL_VERSION  /usr/src/SIMPLENAME/.config

3.开始编译:

#cd SIMPLENAME

图形界面下:

需要安装图形界面开发库。

#make geconfig Gnome环境使用。GNOME Software Development

#make kconfig KDE环境使用。KDE Software Development

文本:

#make menuconfig

其中:

*:编译进内核。

M:编译成模块

空: 不使用此功能。

#make

#make modules_install 安装内核模块。

#make install

4.编译initrd

#mkinitrd INITRDFILE KERNELVERSION 创建initrd文件。

编译内核的常见情况:

1.编译内核过程中中断:

使用screen工具。

2.编译后再次编译:

删除整个文件夹重新解压后编译。

如有必要先备份.config文件。

#make clean 清理此前编译好的二级制模块。

#make mrproper 清理此前编译进行的所有操作。

时间: 2024-10-12 01:02:42

Linux编译内核的相关文章

linux编译内核make menuconfig报错Unable to find the ncurses libraries解决办法

在 linux 编译内核时 make menuconfig 报了下面的错误. *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** Install ncurses (ncurses-devel) and try again. 这是因为系统中缺少 ncurses-devel,安装一下就可以

Linux 编译内核

编译内核步骤: 1.先查看自己OS使用的内核版本 [email protected]:~$ uname -r4.4.0-51-generic[email protected]:~$ 2.如果安装系统时,自动安装了源码.在 /usr/src 目录下有对应的使用的版本目录(ubuntu安装完一般没有源码需要自己下载).如下: 后缀generic表示通用版. [email protected]:/usr/src$ lslinux-headers-4.4.0-21  linux-headers-4.4.

linux编译内核步骤与错误解决

1.查看内核版本 实验环境 [[email protected] src]# uname -r 2.6.32-358.el6.x86_64 2.安装图形依赖包 yum install -y ncurses ncurses-devel 3.下载内核 [[email protected] src]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.2.tar.xz 解压 [[email protected] src]# tar

linux编译内核2.6.32.67

上传linux内核至主机,linux内核文件格式为tar.xz. [[email protected] home]# xz -d linux-2.6.32.67.tar.xz    [[email protected] home]# ls     linux-2.6.32.67.tar xz -d解压后,会删除tar.xz文件,仅留下tar包 [[email protected] home]# tar xvf linux-2.6.32.67.tar -C /usr/src 展开归档文件至/usr

嵌入式Linux编译内核步骤 / 重点解决机器码问题

嵌入式系统更新内核 1. 前言 手里有一块Friendly ARM的MINI2451的板子,这周试着编译内核,然后更新一下这个板子的Linux内核,想要更新Linux Kernel 4.1版本,但是种种原因实在是没有更新成功:于是使用Friendly ARM板子提供的3.6版本的内核,但是他们的内核全都配置好了,你只需要按照常规的方法进行编译就好了,貌似不能更深入的理解内核, 后来我从kernel.org官网上下载原版内核,然后一点点的把2451这个板子需要文件移植过去,可谓是问题百出啊,也学习

linux 编译内核 /boot空间不足?

/boot空间一般分配100M的空间,本来是够用的,由于频繁的更新导致旧的不再使用的内核文件也保留在boot空间里,占着位置,所以把这些不用的内核文件下载掉boot空间就能释放出一部分, 具体做法为 1.使用dpkg --get-selections | grep linux查看内核的安装状况,凡是带image都是旧的内核 2.使用uname -a 查看当前的内核版本 3.一般当前版本之前的版本都可以删除,我自己习惯把当前版本的前一个版本保留下来 4.删除的指令是 sudo apt-get re

【原创】Linux编译内核

前面的添加必备库,编译软件什么请自行百度.. 拷贝至user/src sudo cp linux-4.0.6.tar.xz /usr/src 进入src目录: cd /usr/src 接下来解压 先解压 tar.xz文件 我们先输入 sudo xz –d linux-4.0.6.tar.xz 得到tar后缀文件 在键入sudo tar –xvf  linux-4.0.6.tar 解压完成. 进入目录: cd linux-4.0.6/ 做净化:make mrproper   然后是配置内核.我们保

14、linux编译内核安装介绍

1.linux内核的组成部分: kernel文件: kernel object:内核模块 ramdisk:辅助性文件,用来驱动rootfs所在硬件设备. 2.linux启动流程: POST--->BOOT Sequence(bios中设定的启动顺序)--->从启动设备的mbr中引导grub第一阶段--->kernel(有时会借助于ramdisk文件)--->rootfs(根切换)--->/sbin/init(用户空间的第一个程序,它的配置文件存放于:/etc/inittab;

编译内核制作一个小型的linux系统

前言 今天我将会给大家带来如何定制一个属于自己linux系统,也就是编译内核,那为什么要编译内核呢? 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统管理,决定着系统的性能和稳定性.Linux作为一个自由软件,在广 大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核的bug,并增加了许多新的特性.如果用户想要使用这些新特性,或想根据自己的系统度身定制一 个更高效,更稳定的内核,就需要重新编译内核 对开源操作系统(主要是指Linux)的内核源代码在本机进行