标签:内核编译安装
内核参数配置
/proc: 内核映像:许多参数(读写,只读),/proc:把内核参数net.ipv4.ip_forward虚拟成文件系统:net/ipv4/ip_forward
只读文件:输出统计信息
读写文件:设定内核工作特性,不允许使用文本编辑器打开进行编写,而只能使用重定向的方式或使用专用的工具
几个常用参数:
kernel.hostname:设定主机名
vm.drop_caches:回收虚拟内存中buffers、cache中的空间。例如: echo 1 > /proc/sys/vm/drop_caches
net.ipv4.icmp_echo_ignore_all:禁止其他主机ping该主机。echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
net.ipv4.ip_forward:定义本机路由器功能是否开启。echo 1 >/proc/sys/net/ipv4/ip_forward
sysctl:配置内核参数专用工具,读取配置文件/etc/sysctl.conf,常用选项如下:
-w:VARAIABLE=VALUE指定内核参数修改值例如:sysctl -w net.ipv4.ip_forward=1
-a:显示sysctl可修改所有内核参数
-p:重读配置文件/etc/sysctl.conf并立即生效例如:sysctl -p
sys:kernel在初始化硬件时,根文件系统尚未挂载,内核会把所有探测到的硬件信息全部映射到/sys目录中,用户空间udev程序就可根据/sys中信息来为每个设备按需创建设备文件。
udev通过udevadmin命令读取sys目录下硬件信息,检查该硬件设备是否存在,没有就添加并创建设备文件,hotplug会实时监测sys目录,如有设备加入或减去就会通知udev创建或移除设备文件。例如,插入或移除u盘
udev创建设备文件是根据udev规则进行,规则文件在/etc/udev/rules.d/
dracut创建虚拟根文件例如:dracut /boot/initramfs-$(uname -r).img $(uname -r)
展开initramfs文件:之前需要查看压缩类型file initramfs-RELEASE.img
# cp /boot/initramfs-RELEASE.img /tmp/initramfs.img.gz
# gzip -d /tmp/initramfs.img.gz
# mkdir /tmp/initramfs
# cd /tmp/initramfs
# cpio -id < /tmp/initramfs.img.gz
exec COMMAND :能启动command为一个进程,此进程会取代当前shell进程;
screen工具:启动新屏幕:screen、exit, 关闭屏幕、Ctrl+a, d:切换屏幕、
screen -ls: 查看所有被隐藏的屏幕SID、screen -r SID打开屏幕
lftp: ftp客户端工具
-u USERNAME,PASSWORD:指定用户名和密码。
-p PORT:指定端口。
-e ‘CMD‘:执行一个命令 :例如 lftp -u root,root -p 123 192.17.54.1
lftp: 命令:
help: 获取帮助
cd: 切换远程服务器上的文件系统目录
lcd: 切换本地文件系统目录
get FILE: 下载、mget FILE1...: 下载多个文件,支持使用通配符
!COMMAND: 执行本地shell命令,而非ftp服务器上命令
mirror DIR: 镜像目录至本地
put FILE:上传文件、mput FILE1...:上传多个文件
lftpget类似于wget: 下载指定URL
Linux内核编译安装,
在编译前需要先收集硬件信息,也可以根据系统收集的硬件信息进行编译/boot/config文件中
查看CPU信息:cat /proc/cpuinfo、lscpu
查看PCI:lspci -v
查看USB:lsusb
查看块设备:lsblk
编译:linux支持交叉编译,在本机上根据需要运行的主机平台和硬件信息进行编译。
编译内核的步骤:(必须安装好开发环境,c6: Development Tools, Server Platform Development, ncurses-devel),先检查包是否安装完毕:yumgrouplist,之后安装所需包:yum groupinstall “Development Tools”
第一步:配置内核
make config:手动指定功能开启或关闭
make allyesconfig:开启内核中所有功能编译
make allnoconfig:不开启任何功能编译
make menuconfig:打开文本控制界面,让用户手动选择开启或关闭那些功能
make gconfig:依赖GNome桌面环境及GNome的图形开发环境,gtk2
make kconfig :依赖KDE桌面环境及KDE的图形开发环境,qt
第二步:编译
make -j 2 :-j指定用几颗cpu进行编译,编译速度可以提升。
第三步:安装内核模块
make modules_install
安装位置:/lib/modules/VERSION/,分析模块间依赖关系并成dep文件
第四步:安装内核
make install,安装是否成功检查grub.conf中是否添加新的启动项。
安装内核:/boot/vmlinuz-VERSION,编辑grub.conf,添加一新的title
获取内核源代码,展开指定目录下:tar xf linux-version.tar.xz -C /usr/src
在已有的内核上进行二次编译前需做清理操作:
make clean:清理编译的文件,但保留配置文件
make mrproper:移除所有编译生成的文件、配置文件和备份文件
make distclea:完全清理
将编译生成的文件保存至别处:
mkdir /path/to/somewhere
cd /path/to/somewhere
./configure --ksource=/usr/src/linux
如何只编译内核的部分代码:
只编译某子目录中的相关代码:cd /usr/src/linux、make path/to/dir/
只编译部分模块:make M=path/to/dir。例如:make M=drivers/net/
只编译一个模块: make path/to/dir/MOD_NAME.ko。例如:make drivers/net/ethernet/intel/e1000/e1000.ko
将编译生成的文件保存至别处:make O=/path/to/somewhere
交叉编译:
make ARCH=arch,
获取某ARCH的可用的默认配置:make ARCH=arch help。例如:make ARCH=arm acs5k_defconfig
标签:内核编译安装
原文地址:http://5990383.blog.51cto.com/5980383/1633879