linux内核编辑命令,Linux内核编写

如何编译Linux内核

1、大概步骤:

我们提供的服务有:成都网站设计、网站制作、外贸营销网站建设、微信公众号开发、网站优化、网站认证、梁子湖ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的梁子湖网站制作公司

1、安装开发包组

2、下载源码文件

3、.config:准备文本配置文件

4、make menuconfig:配置内核选项

5、make [-j #]

6、make modules_install:安装模块

7、make install :安装内核相关文件

安装bzImage为/boot/vmlinuz-VERSION-RELEASE (去boot目录下查看)

生成initramfs文件

8、编辑grub的配置文件

2、编译配置选项

配置内核选项

支持“更新”模式进行配置: make help

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

(b) make menuconfig:基于curses的文本窗口界面

(c) make gconfig:基于GTK (GNOME)环境窗口界面

(d) make xconfig:基于QT(KDE)环境的窗口界面

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

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

(b) make allyesconfig: 所有选项均回答为“yes“

(c) make allnoconfig: 所有选项均回答为"no“

3、编译

全编译:make [-j #]

编译内核的一部分功能:

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

# cd /usr/src/linux

# make dir/

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

# cd /usr/src/linux

# make dir/file.ko

例如:只为e1000编译驱动:

#make drivers/net/ethernet/intel/e1000/e1000.ko

4、编译内核

如何交叉编译内核:

编译的目标平台与当前平台不相同;

# make ARCH=arch_name

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

# make ARCH=arch_name help

# make ARCH=arm help

5、清理删除

在已经执行过编译操作的内核源码树做重新编译:

需要事先清理操作:

# make clean:清理大多数编译生成的文件,但会保留config文件等

# make mrproper: 清理所有编译生成的文件、 config及某些备份文件

# make distclean: mrproper、 patches以及编辑器备份文件

卸载内核

删除/lib/modules/目录下不需要的内核库文件

删除/usr/src/linux/目录下不需要的内核源码

删除/boot目录下启动的内核和内核映像文件

更改grub的配置文件,删除不需要的内核启动列表

需要解决更多linux问题,详情请看

望采纳

如何修改 Linux 内核配置

由于Linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。

首先打开/etc/sysctl.conf文件,查看如下两行的设置值,这里是:

kernel.shmall

=

2097152

kernel.shmmax

=

4294967295

如果系统默认的配置比这里给出的值大,就不要修改原有配置。同时在/etc/sysctl.conf文件最后,添加以下内容:

fs.file-max

=

6553600

kernel.shmmni

=

4096

kernel.sem

=

250

32000

100

128

net.ipv4.ip_local_port_range

=

1024

65000

net.core.rmem_default

=

4194304

net.core.rmem_max

=

4194304

net.core.wmem_default

=

262144

net.core.wmem_max

=

262144

这里的“fs.file-max

=

6553600”其实是由“fs.file-max

=

512

*

PROCESSES”得到的,我们指定PROCESSES的值为12800,即为“fs.file-max

=512

*12800”。

sysctl.conf文件修改完毕后,接着执行“sysctl

-p”使设置生效。

[root@localhost

~]#

sysctl

-p

常用的内核参数的含义如下。

kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即“4294967295/1024/1024/1024=4G”。

kernel.shmmni:表示单个共享内存段的最小值,一般为4kB,即4096bit.

kernel.shmall:表示可用共享内存的总量,单位是页,在32位系统上一页等于4kB,也就是4096字节。

fs.file-max:表示文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量。

ip_local_port_range:表示端口的范围,为指定的内容。

kernel.sem:表示设置的信号量,这4个参数内容大小固定。

net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。

net.core.rmem_max

:表示接收套接字缓冲区大小的最大值(以字节为单位)

net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。

net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。

在linux0.12系统中编译0.12内核时,使用什么命令

1、运行 、运行Linux0.12系统 系统 Linux-0.12-080324/bochssrc-0.12hd.bxrc /usr/src/linux目录键入 目录键入make命令 目录键入 命令 生成引导启动映像文件Image 生成引导启动映像文件 直接存入硬盘映像 dd bs=8192 if=Image of /dev/fd0 存入软盘映像 mcopy Image b: mcopy System.map b:

2、注意 、 如果新的引导启动Image文件与软盘上的根文件 文件与软盘上的根文件 如果新的引导启动 系统rootimage-0.12一起使用,那么在编译 一起使用, 系统 一起使用 之前Makefile文件,注释掉 文件, 之前 文件 注释掉”ROOT_DEV”


网页标题:linux内核编辑命令,Linux内核编写
地址分享:http://pwwzsj.com/article/hohsed.html