内核参数修改 内核编译 第14天

Linux内核:单内核,模块化

内核的某些模块

编译进内核本体 [*]

编译成内核模块 [M]

不选择使用     [ ]

内核的组成部分

/boot/vmlinuz-VERSION

/lib/modules/VERSION/

*.ko

模块间有可能有依赖关系

内核模块管理

lsmod:显示内核已装载的模块;

动态装卸载模块:

卸载:modprob -r 模块名

  rmmod 模块名

装载:modporb 模块名

insmod 模块路径 (使用modinfo可以查看)

查看某模块的详细信息

modinfo 模块名

检查并生成模块间依赖关系的命令

depmod

复制e1000模块至/mnt/sysroot目录,可在新的系统中启用网络功能

内核参数的配置:

/proc,/sys

/proc:内核映像

许多参数(读写,只读)

只读文件:输出统计信息

读写文件:设定内核工作机制

/proc/sys

不允许使用文本编辑器打开进行编写,而只能通过重定向或使用专用的工具;

/proc:虚拟成了文件系统

net/ipv4/ip_forward

几个常用参数:

kernel.hostname

vm.drop_caches

net.ipv4.icmp_echo_ignore_all

net.ipv4.ip_forward

ip地址属于内核,而非网卡。

修改内核参数的办法

echo “ “>/proc/sys/

sysctl –w net.ipv4.ip_forward=1

cat /proc/sys/net/ipv4/ipforward

配置文件:/etc/sysctl.conf

sysctl –a:显示sysctl可控制的所有内核参数;

sysctl –p:重读配置文件并生效之;

/sys:

Linux 2.4-:/dve所有设备都是事先预置。 

Linux 2.6+:/dev下所有设备文件能够按需创建。

kernel初始化时,根文件系统尚未挂载。

/sys中存入硬件设备的相关信息。

用户空间的某应用程序就可根据/sys中信息来为每个设备按需创建设备文件。 

udev:用户空间的程序,用于创建所需要设备, udevadmin

/etc/udev/rules.d目录下

ramdisk:/boot/initramfs-VERSION.img

创建工具:mkinitrd  CentOS5

  dracut  CentOS6

Dracut /boot/initramfs-`uname –r`.img `uname –r`

展开initramfs文件:

cp /boot/initramfs-RELEASE.img /tmp/initramfs.img.gz

gzip –d /tmp/initramfs.img.gz

mkdir /tmp/initramfs

cd /tmp/initramfs

cpio –id < ../initramfs.img

bash子进程:

exec COMMAND:能启动command为一个进程,此进程会取代当前shell进程;

echo $DISPLAY 显示当前的桌面和屏幕;

screen工具:

启动新的屏幕:screen

退出新屏幕:exit 关闭屏幕

拆除新屏幕:Ctrl+a,d  临时隐藏屏幕;

screen –ls :查看所有被隐藏屏幕的ID

screen –r SID:连接至某隐藏的屏幕;

lftp工具:ftp客户端工具

lftp HOST

-u USERNAME,PASSWORD

-p PORT

-e ‘CMD’

lftp:子命令

help:获取帮助信息

cd:切换目录

lcd:切换本地系统目录

get FILE:下载文件;

!COMMAND:执行shell命令,而非FTP命令

mget FILE1…FILEn:下载多个文件,支持使用通配符

mirror DIR:镜像目录至本地

put FILE:上传文件

put FILE1…FILEn:上传多个文件

lftpget:类似于wget:下载指定URL

kernel:

www.kernel.org

编译内核前提:查看本地硬件信息常用工具

1、 查看CPU信息:

cat /proc/cpuinfo

x86info:不常用 需要额外安装

lscup

2、查看PCI信息

lspci

-v

3、查看USB

lsusb

4、查看块设备

lsblk

1、 查看所有硬件

/boot/config-2.6.32… 所有硬件信息整合到此文件中

编译:交叉编译

cross-compilling

编译内核的步骤:(安装好开发环境) CentOS6:Development Tools; Server Platform Development; curese-devel)

第一步:配置内核

make config

make allyesconfig

make allnoconfig

make menuconfig

make gconfig(依赖于Gnome桌面环境及Gnome的图形开发环境, –gkt2)

make kconfig(依赖于KDE桌面环境及KDE图形开发环境,qt)

第二步:编译

make

第三步:安装内核模块

make modules_install

安装位置:/lib/modules/VERSION

分析模块间依赖关系并成dep文件

第四步:安装内核

make install

安装内核:/boot/vmlinuz-VERSION

编辑grub.conf,添加一新的title

获取源代码,展开指定目录下:

tar xf Linux-3.10… -C /usr/src

ln –sv linux-3.10.10 linux

cd linux

make menuconfig

编辑完成后自动保存成.config文件

可以先将/boot下的config文件复制到Linux目录中,将名字改为.config,再使用make menuconfig来修改配置。

后续的编译,开始之前的清理工作

make clean

清理编译的文件,但保留配置文件;

make mrproper

移除所有编译生成的文件,配置文件和备份文件;

make distclean

完全清理

 

1、 将编译生成的文件保存至别处;

mkdir /path/to/somewhere

cd /path/to/somewhere

./configure –ksource=/usr/src/linux

2、 如何只编译内核的部分代码

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

cd /usr/src/linux

例如: make SUBDIR=arch/

 make diver/net/

(2) 只编译部分模块

make M=path/to/dir

make M=drivers/net

(3) 只编译一个模块

make path/to/dir/MOD_NAME.ko

例如:

make drivers/net/Ethernet/intel/e1000/e1000.ko

(4) 将编译生成的文件保存至别处

make O=/path/to/some/where

1. 交叉编译

make ARCH=arch

例如:

make ARCH=arm

获取ARCH的可用默认配置

make ARCH=arch help 

例如:

make ARCH=arm acs5k_defconfig

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/4441

(0)
petmasterpetmaster
上一篇 2016-01-16
下一篇 2016-01-18

相关推荐

  • LVS 工作模型和调度算法

    简介   LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 LVS是四层负载均衡,也就是说建立在OSI模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS支持TCP/UDP的负载均衡 &nbs…

    Linux干货 2016-12-19
  • 网络设备及工作

    集线器集线器又叫Hub,是一种多用于星形网络组织的中心设备。具备中继器放大信号的特点,集线器是一种半双工,同一时间只能接收或发送数据,不能同时既接受又发送数据,是冲突型设备,共享带宽,放大信号的同时放大噪声,不隔离广播,不能成环,不安全。 二层交换机二层交换机的工作原理能自学习构造MAC地址表,基于MAC地址表进行转发、划分冲突域,对MAC地址实现过滤等功能…

    Linux干货 2017-10-30
  • 网络管理基础

    什么是网络?    在计算机领域中,网络是信息传输,接受,共享的虚拟平台,通过它把各个点,面体的信息联系到一起, 从而实现这些资源的共享。 网路物理组件     终端:可发送和接受数据的,如计算机。移动设备,打印机,服务器….    互联设备:互联…

    Linux干货 2016-09-06
  • socket编程原理

    1、问题的引入 1) 普通的I/O操作过程: UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O操作的进程。然…

    Linux干货 2015-04-10
  • Linux磁盘与文件系统管理的一些命令

    fdisk fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。 输入m列出可以执行的命令 p:显示磁盘分区表 n:new,新建分区 d:delete,删除分区 t:更改系统类型 l:列出已知分区类型 w:保存并退出 q:不保存退出…

    Linux干货 2017-04-23
  • 堡垒机-麒麟开源堡垒机 V 1.3 正式发布

    麒麟开源堡垒机团队经过1个月的努力,发布V 1.3版本,本版本主要收集了5月开发的小功能,并且增加了大用户量、大设备量,纵深目录层级的优化支持,产品 V1.3  光盘主要新增功能如下(相对 V1.2光盘) 1.增加苹果MAC OS系统客户端的WEB访问支持 2.增加CA认证支持,内置CA证书  3.增加ssh 公私钥认证方式中,私钥中有密…

    Linux干货 2016-06-09