首页 > 系统 > Linux > 正文

从头开始构建LINUX[内核更新和资料]

2024-06-28 13:24:00
字体:
来源:转载
供稿:网友
从头开始构建linux[内核更新和资料]

了解了LFS的内容后,至于内核的更新就一目了然了http://www.CUOXin.com/2018/p/3979305.htmlhttp://www.CUOXin.com/2018/p/3981399.html

不过有些资料LFS上也没有,如下是概要的汇总了相关的资料

内核更新

http://jingyan.baidu.com/article/08b6a591f187ff14a809228a.html

1、内核版本显示命令uname-r(uname查看操作系统信息,r选项查看内核版本)

2、升级步骤

l下载内核源码包linux-2.6.38.8.tar.bz2

l根目录下建一个目录cd/mkdirlinux-2.6.38.8

l复制源代码到目录中cplinux-2.6.38.8.tar.bz2linux-2.6.38.8/linux-2.6.38.8/

l解压源码包tarxjvflinux-2.6.38.8.tar.bz2

l进入解压出的目录cdlinux-2.6.38.8

l执行makemenuconfig配置内核并保存,注意CPU的选择

l执行内核make命令

l编译内核模块makemodules

l安装内核模块makemodules_install

l安装内核makeinstall

l重启计算机reboot

3、升级脚本install_new_core

#!/bin/sh

cd/

mkdirlinux-2.6.38.8

cplinux-2.6.38.8.tar.bz2linux-2.6.38.8

cdlinux-2.6.38.8

tarxjvflinux-2.6.38.8.tar.bz2

cdlinux-2.6.38.8

makemenuconfig

make

makemodules

makemodules_install

makeinstall

reboot

最后创建initrd文件:mkinitramfs-o/boot/initrd.img-linux-3.2.12

4、修改脚本权限并执行脚本chmodu+xinstall_new_core./install_new_core

http://blog.csdn.net/jinble03/article/details/7070982

有些linux版本在makeinstall之后会自动生成initd.img和修改引导程序文件grub.cfg,但是Ubuntu10.04并不会,所以就得我们自己来搞定啦

首先是生成initrd.img。

mkinitramfs2.6.38.8-o/boot/initrd.img-2.6.38.8

如果系统提示没有安装mkinitramfs,那就apt-getinstallmkinitramfs

接着修改引导程序文件grub.cfg

update-grub2

.准备工作切换为管理员权限,sudo–i输入用户密码进入root权限apt-getinstallbuild-essentialkernel-packagelibncurses5-devlibqt3-headersbuild-essential(基本的编程库(gcc,make等)kernel-package(Debian系统里生成kernel-image的一些配置文件和工具)libncurses5-dev(mekemenuconfig要调用的)

libqt3-headers(makexconfig要调用的)

makeinstall以后,系统自动更新了启动项,可以cat/boot/grub/grub.cfg看下.之前的启动项不能删除,如果编译内核不成功,之前的启动项又不见了,你的系统也就跪了

Linux内核更新

http://www.zhukun.net/archives/6172

Linux内核Ramdisk(initrd)机制

http://blog.csdn.net/ruixj/article/details/3772752

在早期的Linux系统中,一般就只有软盘或者硬盘被用来作为Linux的根文件系统,因此很容易把这些设备的驱动程序集成到内核中。但是现在根文件系统可能保存在各种存储设备上,包括SCSI,SATA,U盘等等。因此把这些设备驱动程序全部编译到内核中显得不太方便。在Linux内核模块自动加载机制的介绍中,我们看到利用udevd可以实现实现内核模块的自动加载,因此我们希望根文件系统的设备驱动程序也能够实现自动加载。但是这里有一个矛盾,udevd是一个可执行文件,在根文件系统被挂载前,是不可能执行udevd的,但是如果udevd没有启动,那就无法自动加载根根据系统设备的驱动程序,同时也无法在/dev目录下建立相应的设备节点。为了解决这个矛盾,于是出现了initrd(bootloaderinitializedRAMdisk)。initrd是一个被压缩过的小型根目录,这个目录中包含了启动阶段中必须的驱动模块,可执行文件和启动脚本。包括上面提到的udevd,当系统启动的时候,booload会把initrd文件读到内存中,然后把initrd的起始地址告诉内核。内核在运行过程中会解压initrd,然后把initrd挂载为根目录,然后执行根目录中的/initrc脚本,您可以在这个脚本中运行initrd中的udevd,让它来自动加载设备驱动程序以及在/dev目录下建立必要的设备节点。在udevd自动加载磁盘驱动程序之后,就可以mount真正的根目录,并切换到这个根目录中。

vmlinuz,Initrd和system.map

http://blog.csdn.net/powersaven/article/details/4107544

U盘安装Linux系统

http://www.CUOXin.com/geekard/archive/2012/05/06/2486464.html

LiveCD

可以直接引导为可用Linux系统的CD

http://blog.csdn.net/taochenchang/article/details/7622762

http://www.ibm.com/developerworks/cn/linux/l-fedora-livecd/index.html

GRUB2

http://linux-wiki.cn/wiki/Grub2%E9%85%8D%E7%BD%AE


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表