您的位置:首页 > 编程语言 > PHP开发

马哥笔记第十四天内核编译、lftp、内核编译安装

2015-04-17 15:09 176 查看
内核参数配置

/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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  内核 lftp 编译安装