LinuxDown

LinuxDown.com
Linux系统下载网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

安装必要工具**--

2023年5月25日 61点热度

一、安装必要工具

***********************************

1.安装module-init-tools-3.2.tar.gz

下载地址:

安装方式:

#tarzxvfmodule-init-tools-3.2.tar.gz

#cdmodules-init-tools-3.2

#./configure--prefix=/

#makemoveold

#makeallinstall

#./generate-modprobe.conf/etc/modprobe.conf

2.升级mkinitrd

下载地址:我没有升级mkinitrd,下载地址到goole里搜吧。

说明:

假如你启动,加载模块没有给出模块与内核版本不兼容的信息,就不用重新下载mkinitrd程序来编译模块生成initrd。由于2.6相对于2.4来说,模块不是每位都改动linux 内核编译文件说明,

假如你使用的模块没有改动,就哪些都不用做.

具体的:

1)假如你不使用lvm2或使用lvm来做volumemanagement,你就无需下载新版mkinitrd

2)假如你没有使用2.6中新的模块,或则新的模块早已编译进内核,就意味着与2.4使用的initrd.img没有变化,就连initrd.img也无需生成

initrd.img是由bootload加载入显存的,ext3编成模块加在initrd中照样可以启动,按我的理解,ext3并非要编译进内核中,但具体实践中,

若果没编译进内核中,会出现类似如下错误:

mount:error19mountingext3

pivotroot:pivot_root(/sysroot,/sysroot/initrd)failed:2

umount/initrd/procfail:2

Freeingunusedkernelmemory:244kfreed

Kernelpanic–notsyncing:Noinitfound.Trypassinginit=optiontokernel.

而这可以通过重新生成initrd.img来解决。所谓在grub.conf中root=LABLE=必须更改成绝对分区编号,虽然也就是由于没有生成重新生成initrd.img的问题导致。

假如须要安装最新的mkinitrd,请注意:新的mkinitrd,它须要lvm2和device-mapper

用rpm-ivh--nodepsmkinitrd-4.1.18-2.i386.rpm进行安装

安装lvm2-2.00.25-1.01.i386.rpm时请用rpm-ivh--nodepslvm2-2.00.25-1.01.i386.rpm

3.安装hotplug工具,假如没有此工具,则USB键盘虽然在启动显示ok加载上了也不能用,2.6.15内核可使用hotplug-2004_09_23.tar.gz

下载地址:

安装方式:

#tarzxvfhotplug-2004_09_23.tar.gz

#cdhotplug-2004_09_23

#makeinstall

4.下载最新的Kernel源代码

下载地址:

***********************************

二、准备Kernel源代码树

***********************************

1、下载到tarball包以后LINUX 删除目录,将内核tarball包复制到/usr/src目录下,假设包在当前目录中,运行以下命令:

#cplinux-2.6.0.tar.gz/usr/src

2、转到/usr/src目录并解开tarball包,

#cd/usr/src

#tarxvzflinux-2.6.0.tar.gz

默认情况下(使用Intelx86CPU系列)linux教程,下边这一步可以省略。

3、将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

#cd/usr/include

#rm-Rfasmlinux

#ln-s/usr/src/linux/include/asm-i386asm(假如你使用其它CPU例如PPC,那就须要联接到相应的目录)

#ln-s/usr/src/linux/include/linuxlinux

#ln-s/usr/src/linux/include/scsiscsi

4、如果你还下载了补丁包,则打上补丁,你也可以运行scripts/patch-kernel脚本文件手动打上补丁(打算好补丁包)或#zcatpatch-2.6.0.gz|patch-p1(我偷懒不打补丁的)。

5、修改内核源代码(升级2.6就是为了优化,干脆连源代码也改了吧)

1)更改/usr/src/linux/include/linux/posix_types.h

设置fd_set支持的最大数目

#define__FD_SETSIZE1024--->;65536

2)更改/usr/src/linux/include/linux/fs.h

设置最大打开文件数目(TCP联接数目)

#defineINR_OPEN1024--->;65536

#defineNR_FILE8192--->;65536

#defineNR_RESERVED_FILES10--->;128

linux 内核 用什么编译_linux 内核编译文件说明_linux 内核编译文件说明

3)更改/usr/src/linux/include/net/tcp.h

设置TIMEOUT的时间为一秒

#defineTCP_TIMEWAIT_LEN(60*HZ)60--->;1*HZ

设置在backlog队列里的半联接的重试次数,每次就会花相应的时间,本质上也是降低重试时间

#defineTCP_SYNACK_RETRIES5--->;3

***********************************

三、定制内核

***********************************

配制内核之前请清除源代码树,假如还没有步入/usr/src/linux-2.6.0目录,请步入此目录,命令如下:

#makeclean

#makemrproper(这步是为确保原代码目录下没有不正确的.o文件及文件的互相依赖,刚解开的tarball包不需此步骤)

注:可以使用makehelp来查看帮助。

之后可以使用以下四个命令来配置内核:

#makegconfig(须要Gtk开发库的支持)

#makexconfig(须要Qt开发库的支持)

#makeconfig

#makemenuconfig(推荐)

配置核心选项

#makemenuconfig

基本上保持默认选项就可以了,而且要注意的是必须把ext2和ext3文件系统支持编进内核,否则升级内核重新启动是会有错误:

Kernelpanic:Noinitfound.Trypassinginit=optiontokernel

ext2和ext3文件系统配置为:(全部选择)

Filesystems--->

Secondextendedfssupport

Ext2extendedattributes

Ext2POSIXAccessControlLists

Ext2SecurityLabels

Ext3journallingfilesystemsupport

Ext3extendedattributes

Ext3POSIXAccessControlLists

Ext3SecurityLabels

JBB(ext3)debuggingsupport

注意:

假如你是ext3文件系统,则在订制内核配置文件时把对Ext3、Ext2文件的支持直接编译进内核,否则linux 内核编译文件说明,等你启用新内核时机器才会当掉,出错信息如下:

kernelpanic:noinitfound,trypassinginit=optiontokernel......

或则是:

kernelpanic:VFS:Unabletomountrootfsonunknown-block(0,0)

把对Ext3、Ext2文件系统的支持直接编译进内核,可解决此问题,还有把对“Moduleunloading“选项也选上,否则的话,你在新内核环境下将难以卸载

内核模块(rmmod命令不能用)。

***********************************

四、编译内核及模块

***********************************

配置完内核后,开始编译:

#makedep(编译2.6内核无需此步骤)

#make-jn(n代表同时编译的进程,可以推动编译速率,n由你的配置决定,我的配置用15-25)

注意:此命令已完成makebzImage及makemodules的工作,生成的bzImage内核文件在arch/i386/boot目录中,你的CPU不同内核文件储存位置也不同

注:这一步比较历时,依照机器配置,可能会消耗30分钟或更长时间。

***********************************

五、编译可加载模块和安装新内核

***********************************

假如用户在配置内核时设置了可加载模块,则须要对这种模块进行编译,便于将来使用insmod命令进行加载。

#makemodules-j25

#makemodules_install(安装内核模块到/lib/modules/2.x.x下)

#makeinstall(完成mkinitrd命令及内核(bzImage)和System.map的拷贝)

完成后,请查看/boot目录,文件名是有区别的,如是GRUB引导,makeinstall命令已帮你手动更改了引导选项,对于LILO则要手工更改,重画引导记录。

***********************************

六、修改相应文件已适应2.6内核

***********************************

1.内核2.6的usb设备名与内核2.4大不相同。所以我们要改一下哈哈。

在安装module-init-tools程序包时生成的/etc/modprobe.conf配置文件却依然使用usb-ohci这个名子

aliasusb-controllerusb-ohci

aliasusb-controller1ehci-hcd

因而,要把它改为:

aliasusb-controllerohci-hcd

aliasusb-controller1ehci-hcd

2.须要改一个最重要的文件/etc/rc.sysconfig这是一个ln联接。正真的文件在/etc/rc.d/里

#vi/etc/rc.sysinit

把/proc/ksyms改为如下所示(注:用于配置了HOTPLUG的支持)

KSYMS=/proc/ksyms

改为:

KSYMS=/proc/kallsyms

3.把所有mount-f-tusbdevfsusbdevfs改为mount-f-tusbfsusbfs我查看了就二个。

4.构建一个/sys系统这部我也不晓得为什么,但你是用默认的/proc/bus/usb下就提示找不到drivers文件。昏死了。

#mkdir/sys

6.更改rc.sysconfig文件

在mount-f/proc下加入

mount-f/sys这一行

7.#Mount/proc(doneheresovolumelabelscanworkwithfsck)

action$"Mountingprocfilesystem:"mount-n-tproc/proc/proc

action$"Mountingsysfsfilesystem:"mount-n-tsysfs/sys/sys

加入前面这行

8.更改fstab

#vi/etc/fstab加入如下

none/syssysfsdefaults00

.

9.更改/etc/init.d/halt为如下

awk'$2~/^/$|^/proc|^/dev/{next}

改为

awk'$2~/^/$|^/proc|^/sys|^/dev/{next}

10.把needusbstorage=这段改成如下

needusbstorage=

if[$usb="1"];then

needusbstorage=`LC_ALL=Cgrep-e"^I.*Cls=08"/proc/bus/usb/devices2>/dev/null`

LC_ALL=Cgrep'hid'/proc/bus/usb/drivers||action$"InitializingUSBHIDinterface:"modprobehid2>/dev/null

action$"InitializingUSBkeyboard:"modprobekeybdev2>/dev/null

action$"InitializingUSBmouse:"modprobemousedev2>/dev/null

fi

改成如下:

needusbstorage=

if[$usb="1"];then

needusbstorage=`LC_ALL=Cgrep-e"^I.*Cls=08"/sys/bus/usb/devices2>/dev/null`

action$"InitializingUSBHIDinterface:"modprobeusbhid2>/dev/null

action$"InitializingUSBkeyboard:"modprobeusbkbd2>/dev/null

action$"InitializingUSBmouse:"modprobeusbmouse2>/dev/null

fi

这种完成就reboot吧!希望在启动时全是ok.

补充:

***********************************

七、手动安装新内核和System.map

***********************************

1、将新内核和System.map文件拷贝到/boot目录下

#cp/usr/src/linux-2.6/arch/i386/boot/bzImage/boot/vmlinuz-2.6.15-10custom

#cp/usr/src/linux-2.6/System.map/boot/System.map-2.6.15-10custom

#cd/boot

#rm-fSystem.map(删掉原先的联接)

#ln-sSystem.map-2.6.15-10customSystem.map(重新构建联接)

***********************************

八、配置LILO

***********************************

1.配置/etc/lilo.conf文件,在该文件中加入下边几行:

image=/boot/vmlinuz-2.6.15-10custom

label=linux-custom

initrd=/boot/initrd-2.6.15-10.img

read-only

root=/dev/hda3(这与你的具体配置有关)

并把default=linux改为default=linux-custom

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 内核 加载 模块 目录 补丁
最后更新:2023年5月25日

Linux系统下载网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux系统下载网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
可用性对比Banshee的应用起来非常简单,你知道吗 解决Linux CPU高负载,8招搞定! 《鸡你太美》都没有对应歌词…… Linux设备驱动开发详解4:8个问题解决方案 嵌入式Linux系统的构建和管理方式发生了什么? 哪些电脑可安装Linux?十大特点解析! Linux服务器的优势是什么? 什么是分区讲解系统?安装linux系统的主要步骤对应的知识点 RedHat磁盘分区指南:规划磁盘信息 Linux操作系统的安装方法(42页珍藏版) Linux硬盘对拷技巧:详解与注意事项 编程语言驱动AI走出20世纪90年代的人工智能冬季 嵌入式Linux系统的开发环境是什么样的?? Linux编写.sh文件的技巧 linux支持asp吗 Linux是否支持ASP? Linux操作系统是个什么东西?喉咙的技术? Linux配置Go环境变量,8步搞定! 微软向20万名开发者集中展示人工智能 linux mysql 启动 Linux下MySQL启动与常见问题 基于POSIX和Unix的多线程和多cpu的操作系统
Linux文件自动补齐技巧可用性对比Banshee的应用起来非常简单,你知道吗轻松管理MySQL,这8个Linux工具必备Linux基础——远程访问及控制(OpenSSH服务端)Linux系统移植,嵌入式必备!最小化安装“图形化界面”有什么区别?(Linux基础知识)Linux内核中的五大子系统CPU玩转Linux用户空间MTD,享受高效闪存系统Linux搜索文件夹,快速找到你需要的!java编译后的文件加密保护防止反编译的工具Linux查看SSL版本,轻松掌握Linux基础知识:LINUX软件配置文件常见格式及应用程序发掘Linux系统潜力,提高生产力centos教程:解决CentOS7没有图形化界面,以及怎么安装魅族为何要推出Ubuntu手机?Linux日志监控软件,构建完善系统Linux安装必备:分区知识详解什么是GPG?GPG(GNUPrivacyGuard)使用非对称加密算法Linux如何指定复制文件?常用的Linux文件系统相关命令--清理文件的命令
Linux下MySQL下载安装教程,快速学会MySQL安装! 磁盘配额设置:EXT4与XFS的区别与注意事项 抢占Linux开发招聘先机,这些技能你必须掌握! Linux必备:零错误MQ下载、安装及使用全攻略 解锁Linux声卡创新 KX驱动,音效焕发新生! 两年前的预言几乎都成为现实,Meizu魅族M9智能手机 关于Linux操作系统LSB命令的十个方面详细分析! 解密Linux系统下的/dev目录:作用与意义 Fedora 25轻松安装智能fcitx输入法 Linux必备:64位Tomcat下载安装教程 玩转Linux Shell编程实例,掌握基础知识! 7-ZipZS中文多语免费版开源免费解压缩软件 深入探究Linux设备驱动开发,第三版详解! GNU/Linux操作系统上运行的Linux内核版本 Linux、BSD及Mac上复制文件的方式可能你 (Linux基础知识)Linux常用命令ls(list)功能介绍 Linux支持的文件系统类型及详细介绍 下载Linux红帽64系统,安装教程一网打尽! 嵌入式Linux系统的构建和管理方式发生了什么? Linux服务器必备!Tomcat8下载安装指南!
标签聚合
centos linux系统 电脑 软件 文件目录 操作 虚拟机 sudo linux服务器 命令模式
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 16篇
  • 2023年5月 / 124篇
  • 2023年4月 / 115篇
  • 2023年3月 / 265篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxDown.com ALL RIGHTS RESERVED.

京ICP备14023444号-2