从头开始构建LINUX[内核更新和资料]
了解了LFS的内容后,至于内核的更新就一目了然了 http://www.cnblogs.com/2018/p/3979305.html http://www.cnblogs.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 / mkdir linux-2.6.38.8
l 复制源代码到目录中 cp linux-2.6.38.8.tar.bz2 linux-2.6.38.8 /linux-2.6.38.8/
l 解压源码包 tar xjvf linux-2.6.38.8.tar.bz2
l 进入解压出的目录 cd linux-2.6.38.8
l 执行make menuconfig配置内核并保存,注意CPU的选择
l 执行内核make命令
l 编译内核模块 make modules
l 安装内核模块make modules_install
l 安装内核make install
l 重启计算机reboot
3、升级脚本install_new_core
#!/bin/sh
cd /
mkdir linux-2.6.38.8
cp linux-2.6.38.8.tar.bz2 linux-2.6.38.8
cd linux-2.6.38.8
tar xjvf linux-2.6.38.8.tar.bz2
cd linux-2.6.38.8
make menuconfig
make
make modules
make modules_install
make install
reboot
最后创建initrd 文件: mkinitramfs -o /boot/initrd.img-linux-3.2.12
4、修改脚本权限并执行脚本chmod u+x install_new_core ./install_new_core
http://blog.csdn.net/jinble03/article/details/7070982
有些linux版本在make install之后会自动生成initd.img和修改引导程序文件grub.cfg,但是ubuntu10.04并不会,所以就得我们自己来搞定啦
首先是生成initrd.img。
mkinitramfs 2.6.38.8 -o /boot/initrd.img-2.6.38.8
如果系统提示没有安装mkinitramfs,那就apt-get install mkinitramfs
接着修改引导程序文件grub.cfg
update-grub2
. 准备工作
切换为管理员权限,sudo –i 输入用户密码 进入root 权限
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
build-essential (基本的编程库(gcc, make 等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig 要调用的)
libqt3-headers (make xconfig 要调用的)
make install 以后,系统自动更新了启动项,可以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(boot loader initialized RAM disk)。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.cnblogs.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
从头开始构建LINUX[内核更新和资料]的更多相关文章
- 十天学Linux内核之第八天---构建Linux内核
原文:十天学Linux内核之第八天---构建Linux内核 今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看 ...
- 24小时学通Linux内核之构建Linux内核
今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看齐,不然就只能和代码为伴了的~~话说没了腊八粥但还是有代码, ...
- Linux 内核协议栈 学习资料
终极资料 1.<Understanding Linux Network Internals> 2.<TCP/IP Architecture, Design and Implement ...
- Linux内核协议栈相关资料链接
1.Linux内核网络分析(个人博客集合,分析较清晰) http://blog.csdn.net/qy532846454/article/category/1385933/2
- 从头开始构建LINUX [LFS]
“LINUX就是这个范”有一章专门介绍了Linux的构建,过程详细,很有意思.结合这方面的资料简要汇集一下 LFS 这个站点提供了从源代码构建一个Linux的详细步骤 书 http://archive ...
- linux内核更新前后配置文件的比较
说明:这里先给出一个比较的结果,作为记录,后续会给出内核配置差异的详细解释. [root@xiaolyu linux-4.7.2]# diff .config .config_bak 3c3< ...
- 从头开始构建LINUX [LFS 脚本]
脚本共享在这 http://pan.baidu.com/s/1nt6yiH7 version-check.sh : 这个是检查HOST机器的软件依赖情况 host-dep.sh:针对ubuntu10_ ...
- 构建linux内核源码树
编写驱动程序时,需要内核源码树的支持.内核源码树时从内核源代码编译得到的.下面开始构造内核源代码的步骤.以Ubuntu为例子 1. 下载内源代码,位置www.kernel.org. (注意:源码树内核 ...
- xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持
Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...
随机推荐
- Windows系统盘占用空间分析
磁盘分析 本机的系统盘是C盘,操作系统是Windows 7 专业版,通过磁盘属性可以看到C盘的已用空间是69.4G. 而我们运行自己编写的脚本(脚本程序参考附录,统计原理:计算目录下各个文件的大小,然 ...
- Android开发输入法遮盖屏幕底部按钮
方法一: 在你的activity中的oncreate中setContentView之前写上这个代码: getWindow().setSoftInputMode(WindowManager.Layout ...
- js的作业题
<script type="text/javascript"> //var a=3; //switch(a) // { // case 1: // alert(&quo ...
- .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...
- UWP开发之Mvvmlight实践四:{x:bind}和{Binding}区别详解
{x:bind}是随着UWP被推出而被添加的,可以说是Win10 UWP开发专有扩展.虽然 {x:Bind} 缺少{Binding} 中的一些功能,但它运行时所花费的时间和使用的内存量均比 {Bind ...
- 改用C++生成自动化数据表
改用C++生成自动化数据表 前面的文章中,我们讨论了使用一个基于.NET的第三方程序库来从程序中来生成数据表.在我看来,这整个思路是非常有用的,例如为显示测试结果.我经常会自己在博客中尝试各种像这样的 ...
- Linux分区:超过2TB硬盘分区
测试iscsi服务是否正常 [root@FocusBackup ~]# service iscsi restart 停止 iscsi: ...
- 相克军_Oracle体系_随堂笔记012-undo
undo表空间中undo段是自动生成的,oracle自动使用undo表空间的undo段. 作为高级DBA,需要了解Oracle是如何使用undo段的.这样出了性能问题才能够解决. 1.Undo表空 ...
- Node.js Express 路由文件分类
前言 基于上一篇Web Api Controller分类,在MVC中我们通常要按自己的业务来划分Controller层, 好处多多,那么Express框架作为Node.js的一款MVC框架,那么自然也 ...
- Angularjs CURD
前言 基于一个手机端的项目使用了angularjs,硬着头皮去用,有很多的疑问还需要一一去验证,刚开始总是感觉找不到北,总是感觉有很多概念,而且似乎ng既夹杂MVC又夹杂MVVM的思想, 忙里偷闲敲了 ...