linux 内核编译详解 (ubuntu 10.04 内核 2.6.32-36 升级内核 2.6.38.8 )

Linux系统升级及内核版本升级 一、背景 工作中有时会遇到系统版本过旧,无法满足安全扫描后的安全要求,系统漏洞数量多,处理难度较大,这时,我们就需要升级OS或Linux内核版本; 二、升级操作 2.1、 redhat/CentOS系统 三、附录:包升级命令 1)配置yum更新源 /etc/yum.repos.d目录下新建主机的yum源,.repos文件中,repositoryid:指定一个仓库,name指定仓库名称, baseurl:指定仓库的URL,mirrorlist指定仓库的镜像站点,enable是否启用本仓库,gpgcheck 阅读详情

内核编译实验环境:Ubuntu 10.04 内核版本 2.6.32-36-generic


过程概述:

下载源码:下载链接:http://www.kernel.org/pub/linux/kernel/v2.6/

配置内核:make menuconfig

编译内核:make bzImage

编译内核模块:make modules

安装内核模块:make modules_install

安装内核:make install

完成最后遗留工作


一、内核编译的准备工作:

1。使用root用户,方便以后操作

jb@jb-laptop:~$ su
密码:
root@jb-laptop:/home/jb#

2。查看自己内核版本,以便选择新编译版本

root@jb-laptop:/home/jb# uname -r
2.6.32-36-generic
root@jb-laptop:/home/jb#

3。下载升级版本源码,供编译使用

下载链接:http://www.kernel.org/pub/linux/kernel/v2.6/

http://www.kernel.org

我下载的是

linux-2.6.38.8.tar.gz 

格式选择:gz和bz2

都可以,bz2的压缩程度高一点,只是解压缩命令不一样而已

4。解压缩源码

root@jb-laptop:/home/jb# tar -zxvf linux-2.6.38.8.tar.gz 

如果是bz2格式的话使用 tar -jxvf  linux.tar.bz2

5。复制源码到 目录/usr/src/下

root@jb-laptop:/home/jb# mv linux-2.6.38.8  /usr/src/

二、开始编译内核:

1。检查有无不正确的.o文件和依赖关系: make mrproper (其实这一步可以省略,因为是刚下载好的源码,一定是干净的;如果使用的是已经编译过的code,则需要做这一步)

2。配置Kernel选项:make menuconfig (这一步很重要,它决定了你可以个人定制化你的Kernel。当你使用menuconfig时,会有一些选择列出来) 主列表如下:

 

    General Setup: 常规的配置,比如Kernel config, CPU Group,Aduiting等等

    Loadable module support: 定制你要加载哪些modules

    Enable the block layer: 主要是块设备和大文件的设置

    Processor type and features: 处理器配置和定制化

    Power management options: 电源管理的定制化,比如Hibernate这样的

    Bus options: PCI总线的定制

    Executable file formats: 主要是设置ELF的配置

    Networking support: 定制网络选项,包括Wireless,Bluetooth和Network选项

    Device Drivers: 定制你需要加载的设备驱动

    Fireware Drivers: BIOS和EFI这样的固件驱动设置

    File System: 文件系统的设置,包括EXT3, EXT4, FAT, CD/DVD...等等N种

    Kernel hacking: 主要是设置Kernel debugging的,做内核调试会有用

    Security options: 安全选项

    Cryptographic API: 加密设置,包括MD5, SHA1, CRC等等N种加密算法的配置

    Virtualization: 虚拟化设置

    Library routines: 主要定制CRC校验的function

 

    上面是16大项,每一项都有N多小项,说真的这个里面每一项都够研究一阵子的。不过对内核编译而言,你可以全部采用默认选项(会延长编译时间)。设置好了menuconfig,保存退出。


如果出现下面的错误:

*** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 *** 
 *** Install ncurses (ncurses-devel) and try again.
 *** 
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2

解决方案:

apt-get install libncurses5-dev

现在可以 make menuconfig 了

3。编译源码生成内核镜像:

make bzImage 

该命令首先编译生成vmlinux,然后压缩生成bzImage(路径是 /usr/src/kernel-version/arch/i386/boot/ )

可以查看有没有bzImage生成

4。编译内核模块

make modules

5。安装内核模块

make modules_install

内核模块编译好后需要安装到Linux系统的相应目录中才可以使用,使用“make modules_install”命令安装内核模块。“/lib/modules/”目录用于存放Linux系统中的内核模块,内核的各个版本都在该目录下建有子目录用于存放内核模块。

该命令首先在/lib/modules/中创建一个以内核发行号为名称的目录,然后根据内核配置生成需要的模块

6。生成新内核

make install

把编译好的内核放入/boot中,会把vmlinuz和System.map复制到/boot目录下,并建立相关的链接

7。完成最后的工作

有些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

尽量不要手动去修改grub.cfg文件,搞不好连电脑都启动不了

8。重启电脑

reboot

然后在grub引导界面上选择你的新内核

至此,所有的工作就搞定啦,体验你的新内核吧

三、参考链接:

System.map、vmlinuz、initrd.img的产生和作用 

http://dogking.chinaunix.com/space.php?uid=22896670&do=blog&id=189483

内核编译之vmlinuz vmlinux system.map initrd

http://hi.baidu.com/masterfoo/blog/item/3cdd88aa312b91bdca130ca4.html

Linux内核编译步骤(基于Ubuntu10.04+2.6.35.2 Kernel)

http://blog.youkuaiyun.com/zufeng_chen/article/details/5824544

ubuntu10.10下内核编译,解决开机启动出现Could not load /lib/modules/.../modules.dep的问题

http://blog.youkuaiyun.com/renclear/article/details/6461753


Linux学习-Ubuntu基础语法 cd / //进入到根目录“/ls //查看根目录“/”下的文件以及文件夹当我们进入到根目录“/”里面以后终端提示符“$”前面的符号“~”变成了“/”,这是因为当我们在终端中切换了目录以后“$”前面就会显示切换以后的目录路径。我们来看一下根目录“/”中的一些重要的文件夹:/bin :存储一些二进制可执行命令文件,/usr/bin 也存放了一些基于用户的命令文件。/sbin :存储了很多系统命令,/usr/sbin 也存储了许多系统命令。/root :超级用户 root 的根目录文件。 阅读详情

相关推荐

Linux通用系统高危漏洞修复案例

2024年3月28日,监 Linux kernel权限提升漏洞(CVE-2024-1086)的PoC/EXP在互联网上公开,该漏洞的CVSS评分为7.8,目前漏洞细节已经公开披露,美国网络安全与基础设施安全局(CISA)6月1日也更新了其已知漏洞(KEV)目录,要求联邦机构在 2024 年 6 月 20 日之前打上补丁,修复追踪编号为 CVE-2024-1086 的 Linux 内核权限提升漏洞。由于该漏洞的公开性,攻击者可能会利用这个漏洞进行恶意攻击,因此建议尽快采取修复措施。

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 4931

Linux编译2.6.32

====================================== 6.32.7下载 ========================================== Linux内核下载 1.解压 tar zxvf *.tar 2.cp -r linux -2.6.*/ /usr/src (一定是这个目录下,不然报错) 3.make mrproper(检查有无不正确的.o文件依赖) 4.make clean 5.make menuconfig (一定要有这步,生成.config文..

paul123456789io的博客 306

DeepSeek赋能CAD:从API调用到智能设计工作流的实战指南

本文详细介绍了如何利用DeepSeek AI技术赋能CAD设计工作流,从API调用到智能设计优化的实战指南。通过Python环境配置、API接入详解以及四大智能设计场景的实战案例,帮助CAD设计师实现参数化设计优化、自动规范检查等高效工作方式,大幅提升设计效率和质量。

weixin_29092579的博客 623

linux-2.6.32的编译

虽然一直对linux抱有企图,但直到前几天才开始实际动手。首先是自己编译linux内核。 编译在ubuntu 10.04下进行,系统使用的版本是linux-2.6.32-28,自己编译的是linux-2.6.32。 现在linux编译配置变得比较傻瓜化,默认会把许多不必要的模

qb_2008的专栏 3120

SurfaceControlViewHost使用介绍

可以看到,主要用途:是把一个进程的View显示到另外一个进程里面。

chadm.xiang 1284

u3d逆向学习之纯C内存读写与ImGui绘制(Android)

方法:需要在/proc/pid/maps文件查找模块名,一行行遍历所有内存,第一个参数为模块名,第二个参数为索引index(因为该模块会有多个,index为正序遍历第index个该模块),若找到了则使用。32位游戏的指针大小采用4字节,而64位游戏的指针大小采用8字节(这里需要注意),数据地址以16进制存储,使用unsigned long类型 ,该函数只有一个参数,数据地址,返回该地址的指针跳转地址。文件,比较其中的内容是否与传入的包名相同,如果相同,则返回该进程的PID。

zhoujunjie2004的博客 1687

linux 2.6.32内核编译,linux编译内核2.6.32.67

上传linux内核至主机,linux内核文件格式为tar.xz。[root@centos home]# xz -d linux-2.6.32.67.tar.xz[root@centos home]# lslinux-2.6.32.67.tarxz -d解压后,会删除tar.xz文件,仅留下tar包[root@centos home]# tar xvf linux-2.6.32.67.tar -C ...

weixin_39724004的博客 317

强化学习赋能宇树机器狗:Isaac Gym与MuJoCo仿真训练全解析

本文详细解析了如何利用Isaac Gym和MuJoCo两大仿真平台为宇树机器狗构建强化学习训练管道。内容涵盖环境配置、模型导入、PPO算法框架设计、奖励函数构建以及从仿真到实机的策略迁移技巧,为开发者提供了一套完整的宇树狗仿真训练实践方案。

zeta9的博客 619

linux内核编译

编译内核linux-2.6.32的内核     1    编译前准备工作 l  拷贝内核代码到src目录 cp ./ linux-2.6.32.63.tar.xz /usr/src/   l  解压缩代码 tar -xvf linux-2.6.32.63.tar.xz 2    生成编译需要的配置文件 l  进入解压后的源码目录内,执行环境清空操作 cd /usr/src/l

swun_212的专栏 393

TI C2000 , .cmd文件,.TI.ramfunc,将程序分配为在RAM中运行/Flash运行的配置方法和原理讲解,(如28375S ,280049,28335等等芯片)

1 基础知识讲解 1.1 在RAM中运行还是在flash中运行指的是什么? 1.1.1 背景:程序编译完之后生成的.bin文件,.bin文件中包含代码段,代码段中全是汇编指令,而汇编指令中包含多个函数,各函数头的地址不同,如存在A函数和B函数,假设RAM地址区间是0x0000-0x8000,flash的地址区间是0xA000-0xF000,A函数要调用B函数,则A函数调用B函数的那段汇编指令中包含的是B函数头的存储地址,A函数和B函数都在flash中有存储 1.1.2 情况1:B函数是配置为在RAM中运行,

weixin_43776284的博客 8065

第3版•系统集成项目管理工程师(中级) │ 告别迷茫!案例分析高分攻略

🥏第3版•系统集成项目管理工程师(中级) │ 告别迷茫!案例分析高分攻略

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3867

交叉编译环境的搭建(Linux-2.6.32内核)

Linux-2.6.32交叉编译环境的搭建

今晚打老虎吖的博客 4402

光谱数据预处理综合

除了化学信息,光谱还包含其他不相关或不需要的信息,如电噪声,基质背景,杂散光,散射效应等。在用化学计量学方法建立校准模型时,利用预处理方法消除光谱数据中的无关信息和噪声是非常必要的。

qq_44204759的博客 5190

Ubuntu 内核编译详解 (ubuntu 10.04 内核 2.6.32-36 升级内核 2.6.38.8 )

内核编译实验环境:Ubuntu 10.04 内核版本 2.6.32-36-generic 1。使用root用户,方便以后操作 jb@jb-laptop:~$ su 密码: root@jb-laptop:/home/jb# 2。查看自己内核版本 root@jb-laptop:/home/jb# uname -r 2.6.32-36-generic root@jb-laptop

276

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构

本文记录的是基于的YOLOv11网络模型轻量化方法研究。GhostNet中的Ghost模块和Ghost瓶颈结构是其轻量化的关键。Ghost模块克服了传统卷积层计算资源需求大的问题,Ghost瓶颈则合理设计了通道数量的变化以及与捷径连接的方式,能更好地在减少计算成本的同时保持较高性能,从而提升模型在移动设备上的应用能力和效率。

Limiiiing的博客 1430

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RK3568 学习笔记 : 单独编译 Linux version 4.19 内核

RK3568 学习笔记 : 单独编译 Linux version 4.19 内核

坚韧与专注 4771

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ubuntu下编译2.6.36内核

转帖地址:http://sun9700.iteye.com/blog/805579 学习LDD3的开始遍要求编译内核 现将编译的过程整理如下: 1.准备工作 下载源码: 到http://www.kernel.org/下载2.6.36内核并解压 我开启了root, 并解压到/root/src/linux-2.6.36/下 下载工具: apt-get instal...

iteye_15589的博客 157

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

编译linux内核

内核编译实验环境:Ubuntu 10.04 内核版本 2.6.32-36-generic 过程概述: 下载源码:下载链接:http://www.kernel.org/pub/linux/kernel/v2.6/ 配置内核:make menuconfig 编译内核:make bzImage 编译内核模块:make modules 安装内核模

千里之行,始于足下 1090

编译内核

内核编译实验环境:Ubuntu 10.04 内核版本 2.6.32-36-generic 过程概述: 下载源码:下载链接:http://www.kernel.org/pub/linux/kernel/v2.6/ 配置内核:make menuconfig 编译内核:make bzImage 编译内核模块:make modules 安装内核模块:make modules

linengeir的专栏 1085

如何在不同Linux发行版上使用8821cu驱动:Ubuntu、Fedora、openSUSE实战指南

如果你正在寻找一款适用于RTL8811CU、RTL8821CU、RTL8821CUH和RTL8731AU芯片组USB WiFi适配器的Linux驱动,那么8821cu驱动正是你需要的终极解决方案!这款驱动支持Linux内核5.10至6.17版本,为你的无线网络设备提供完整的IEEE 802.11 b/g/n/ac WiFi兼容性,无论是Ubuntu、Fedora还是openSUSE用户,都能轻松安

gitblog_00518的博客 672

在s3c2440上linux镜像在nand flash中吗,Linux2.6.39在S3C2440上的移植

1、主机环境:VMare下Ubuntu10.04 ,1G内存。2、编译编译环境:arm-linux-gcc3、开发板:Micro2440,2M nor flash,256M nand flash。4、u-boot-version:u-boot-2010.065、linux -version:Linux-2.6.39一、下载并解压内核源码a)在命令行终端中可以通过下列方式下载,当然用其它下载工具下载...

weixin_34489089的博客 212

Ubuntu 24.04 LTS 桌面版安装:3种分区方案对比与移动系统实战

本文详细对比了Ubuntu 24.04 LTS桌面版安装中的3种分区方案,包括单根分区、独立/home分区和移动系统方案,并提供了实战脚本和性能测试数据。独立/home分区在系统升级和数据管理方面表现优异,适合开发者使用。文章还包含移动系统安装的特殊配置技巧和常见问题解决方法。

weixin_34387468的博客 385

Linux 7.2内核slab分配器延迟构建freelist优化解析与验证

这次我们来看一个 Linux 内核层面的重要性能优化。Linux 7.2 版本在内核的 slab 内存分配器上动了一次“大手术”,核心改动是“延迟构建 freelist”。这个改动听起来很底层,但带来的效果却很直接:在某些场景下,能让内存分配操作最高提速 70%。对于追求极致性能的服务器、数据库、嵌入式系统和高并发应用来说,这无疑是一个值得关注的底层重构。 slab 分配器是 Linux 内核中管理小块内存的核心机制,很多我们熟悉的 kmalloc 、 kzalloc 等函数都依赖它。它的性能直接影响到整个

weixin_33796205的博客 306

Ubuntu

2 echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse 3 deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse 4 deb http:/...

145

VMware实现新版本的Linux(>2.6.36)与Windows共享

这几天因工作需要,需要使用VMware(7.1.3)以及ubuntu 32bit,使用ubuntu11.04的32bit版本,在安装完成后,设置VMware中的Shared Folders后,在/mnt/hgfs下面竟然打不到共享目录!     在命令行下输入vmware-hg

1605
上一篇: Ubuntu 内核编译详解 (ubuntu 10.04 内核 2.6.32-36 升级内核 2.6.38.8 )
下一篇: windows 7 80端口被NT kernel & System 占用 pid 4
jinble03
博客等级 码龄17年 38粉丝 12原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值