VM下ubuntu14.04安装编译linux-2.6.34内核

2023-11-08

Linux2.6所有内核下载地址

http://www.kernel.org/pub/linux/kernel/v2.6/

选择:

1.解压

gf@ubuntu:~$ ls
Desktop    Downloads         linux-2.6.34.tar.bz2  Pictures  Templates
Documents  examples.desktop  Music                 Public    Videos
gf@ubuntu:~$ sudo tar xvjf linux-2.6.34.tar.bz2 -C /usr/src/

2.进入目录

gf@ubuntu:~$ cd /usr/src
gf@ubuntu:/usr/src$ ls
linux-2.6.34  linux-headers-4.4.0-142  linux-headers-4.4.0-142-generic
gf@ubuntu:/usr/src$ cd linux-2.6.34

3.切换root用户

gf@ubuntu:/usr/src/linux-2.6.34$ sudo su

4.安装依赖包

root@ubuntu:/usr/src/linux-2.6.34# apt-get install build-essential kernel-package libncurses5-dev

5.执行配置文件

root@ubuntu:/usr/src/linux-2.6.34# make menuconfig

6.编译

root@ubuntu:/usr/src/linux-2.6.34# make 

遇到的错误:

1.错误:

arch/x86/kernel/ptrace.c:1778:17: error: conflicting types for ‘syscall_trace_leave’
 asmregparm void syscall_trace_leave(struct pt_regs *regs)
                 ^
In file included from /usr/src/linux-2.6.34/arch/x86/include/asm/vm86.h:130:0,
                 from /usr/src/linux-2.6.34/arch/x86/include/asm/processor.h:10,
                 from /usr/src/linux-2.6.34/arch/x86/include/asm/thread_info.h:22,
                 from include/linux/thread_info.h:56,
                 from include/linux/preempt.h:9,
                 from include/linux/spinlock.h:50,
                 from include/linux/seqlock.h:29,
                 from include/linux/time.h:8,
                 from include/linux/timex.h:56,
                 from include/linux/sched.h:56,
                 from arch/x86/kernel/ptrace.c:11:
/usr/src/linux-2.6.34/arch/x86/include/asm/ptrace.h:147:13: note: previous declaration of ‘syscall_trace_leave’ was here
 extern void syscall_trace_leave(struct pt_regs *);
             ^
make[2]: *** [arch/x86/kernel/ptrace.o] 错误 1
make[1]: *** [arch/x86/kernel] 错误 2
make: *** [arch/x86] 错误 2
root@ubuntu:/usr/src/linux-2.6.34# 

解决:

root@ubuntu:/usr/src/linux-2.6.34# vim /usr/src/linux-2.6.34/arch/x86/include/asm/ptrace.h
(1)将147行的syscall_trace_enter和syscall_trace_leave注释掉
(2)添加:
#include <linux/linkage.h>
extern asmregparm long syscall_trace_enter(struct pt_regs *);
extern asmregparm void syscall_trace_leave(struct pt_regs *);

2.错误;

gcc: error: elf_i386: 没有那个文件或目录
gcc: error: unrecognized command line option ‘-m’
make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [arch/x86] 错误 2

解决:

root@ubuntu:/usr/src/linux-2.6.34#vim arch/x86/vdso/Makefile
然后把”-m elf_x86_64” 替换为 “-m64“,把”-m elf_i386” 替换为 “-m32“

3.错误:

drivers/net/igbvf/igbvf.h:129:15: error: duplicate member ‘page’
  struct page *page;
               ^
make[3]: *** [drivers/net/igbvf/ethtool.o] 错误 1
make[2]: *** [drivers/net/igbvf] 错误 2
make[1]: *** [drivers/net] 错误 2
make: *** [drivers] 错误 2

解决:

root@ubuntu:/usr/src/linux-2.6.34# vim drivers/net/igbvf/igbvf.h

修改129行如下:

7.直接编译和安装模块

root@ubuntu:/usr/src/linux-2.6.34# make modules_install install

8.安装内核

root@ubuntu:/usr/src/linux-2.6.34# make install

9.创建initrd文件

root@ubuntu:/usr/src/linux-2.6.34# gedit /etc/default/grub

10.配置grub引导

root@ubuntu:/usr/src/linux-2.6.34# gedit /etc/default/grub
添加:GRUB_TIMEOUT_STYLE=menu
修改:GRUB_HIDDEN_TIMEOUT=0改为大于0的数
root@ubuntu:/usr/src/linux-2.6.34# update-grub

执行完这一步基本上就完成了内核的编译和安装,重启ubuntu应该就行了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VM下ubuntu14.04安装编译linux-2.6.34内核 的相关文章

  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 让 MongoDB 在 Linux 上监听远程连接

    我已在 Windows 本地计算机上 上成功安装 MongoDB 作为服务 但现在我想将 MongoDb 移动到单独的服务器 所以我将 tarball 解压到网络上的虚拟服务器 运行 Linux 当我从本地计算机使用 PuTTY 连接到服务
  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志

随机推荐

  • java添加字符串数组_java – 如何将字符串数组的元素添加到字符串数组列表?...

    你已经有了内置的方法 List species Arrays asList speciesArr 注意 您应该使用List lt String gt 不是ArrayList lt String gt 种类 Arrays asList返回一个
  • 支付宝固定备注固定金额收款码

    目录 文章目录 目录 源码说明 独立项目结构 页面效果 部分源码 云盘下载 源码说明 提供支付宝收款码生成源码 包括生成的链接原理和生成二维码的代码都有 收款码特点是 固定金额 固定备注 独立项目结构 页面效果 部分源码
  • MyBatisPlus学习(1)—— 初始化环境配置 + BaseMapper

    一 添加依赖 首先创建springboot工程 然后在pom xml中添加mybatis plus相关依赖
  • BottomNavigationView取消水波纹动画

    BottomNavigationView取消水波纹动画 不得不说 BottomNavigationView 以下简称BNV fragment ViewPager用来实现一些基础的项目效果实在是不错 但BNV自带的缩放动画 水波纹动画使得用户
  • 解决用C#操作mysql数据库出错无法回滚的问题

    mysql同时执行多条命令 部分成功部分失败 返回的结果是操作失败 但是成功的部分不会自动回滚 网上搜到解决方法 可以判断返回值 只要有一条语句操作失败返回值就会是0 此时调用回滚 相关代码有很多 可以百度到 我一开始按照上述流程始终无法回
  • 什么是死锁?如何避免和解决死锁问题?

    1 什么是死锁 如何避免和解决死锁问题 死锁是指在多线程或多进程环境中 两个或多个进程 或线程 互相持有对方所需资源 导致它们都无法继续执行的一种状态 死锁问题通常涉及以下四个必要条件 互斥条件 资源只能被一个进程 或线程 占用 请求与保持
  • ContextCapture导入点云进行重建

    ContextCapture导入点云进行重建 ContextCapture导入点云进行重建 点云 PointCloud 导入点云 静态站点云 移动测量点云 输入文件 数据属性 字段 Fields ContextCapture的坐标系 管理点
  • 理解Java中的抽象

    在计算机科学中 抽象是一种过程 在这个过程中 数据和程序定义的形式与代表的内涵语言相似 同时隐藏了实现细节 抽象 一个概念或者想法不和任何特定的具体实例绑死 目录 什么是抽象 抽象的形式 如何在Java中使用抽象 什么是抽象 简单地说 抽象
  • SpringBoot事务注解@transactional无法生效的七个场景

    1 数据库引擎不支持事务 这里以 MySQL 为例 其 MyISAM 引擎是不支持事务操作的 InnoDB 才是支持事务的引擎 一般要支持事务都会使用 InnoDB 2 没有被 Spring 管理 Service public class
  • ugui非常不友好!自定义控件创建流程

    layout post title Unity ugui非常不友好 自定义控件创建流程 key 201905232043 tags unity ugui 刚接触unity ugui 以下几点非常不友好 好的工具软件都有顺手的快捷键 为有如此
  • 强烈推荐:网工利器PNETLab模拟器

    前言 我们在学习和实践网络技术的时候 很少有采用真的交换机 路由器 所以这时候就需要虚拟的网络设备来搭建虚拟的网络环境 以给我们的学习和实践带来便利 此模拟器与eve相识 涵盖了很多组件 不仅可以模拟各种网络设备比如cisco junipe
  • Linux性能优化实战 47-48 服务器丢包的检测思路

    一 消息收发流程图及丢包可能原因 1 在网卡收包后 环形缓冲区可能会因为溢出而丢包 2 在链路层 可能会因为网络帧校验失败 QoS 等而丢包 3 在 IP 层 可能会因为路由失败 组包大小超过 MTU 等而丢包 4 在传输层 可能会因为端口
  • js数值进制转换

    int toString 16 converts int to hex eg 12 gt C int toString 8 converts int to octal eg 12 gt 14 parseInt string 16 conve
  • LeetCode 495. 提莫攻击

    题目链接 点击这里 AC代码 class Solution public int findPoisonedDuration vector
  • 用频谱仪测量晶体频率的方法

    摘要 用频谱仪测量晶体的时钟频率 查看时钟的频偏 关键字 频谱仪晶体频率频偏 一 背景与现象 怎样精确的测量晶体的时钟频率 是每一个硬件工程师所面临测量问题 用频率计测试晶体频率 又担心探头本身的寄生电容会影响晶体本身的负载电容 造成测试的
  • PGSQL 导出数据库表结构

    之前要将数据库的表结构给做成markdow来写开发设计文档或是接口文档 去找各种开源工具 组件 整理了一个SQL语句可以查询出表结构 样式如下 SQL语句 里面的jiahui表示数据库的schema 默认是public SELECT CAS
  • R语言学习笔记6

    13 初级统计学 描述原始数据 数值型变量 数字型变量 是将观测值以数值形式存储的变量 连续型变量 可以在某个区间取任何值 任何位数 离散型变量 只能取离散型数据 在取值范围里 取得是有限个数 分类变量 两类 名义变量 不能按照逻辑顺序排列
  • js数据结构之栈

    1 栈数据结构 栈是一种遵从后进先出 LIFO 原则的有序集合 新添加或待删除的元素都保存在栈的同一端 称作栈顶 另一端就叫栈底 在栈里 新元素都靠近栈顶 旧元素都接近栈底 在现实生活中也能发现许多栈的例子 例如 下图中的一摞书 栈也被用在
  • springcloud-gateway网关聚合swagger实现多个服务接口切换

    正经学徒 佛系记录 不搞事情 springcloud是由多个不同的springboot服务组成的 微服务使用swagger有两种方法 如下 方法一 不推荐 但是是方法二的前置条件 对每个需要生成接口的项目集成swagger 具体方法点击查看
  • VM下ubuntu14.04安装编译linux-2.6.34内核

    Linux2 6所有内核下载地址 http www kernel org pub linux kernel v2 6 选择 1 解压 gf ubuntu ls Desktop Downloads linux 2 6 34 tar bz2 P