Linux内核修改.doc_第1页
Linux内核修改.doc_第2页
Linux内核修改.doc_第3页
Linux内核修改.doc_第4页
Linux内核修改.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 LinuxLinux 内核编译 内核编译 1 编写目的编写目的 2 2 任务概述任务概述 2 2 1 下载新内核 2 3 1 1 在普通用户 zhen 下创建 root 用户 3 1 2 查看系统先前内核版本 2 2 修改新内核系统调用 2 2 3 进行新内核编译 2 3 实验步骤实验步骤 2 3 1 准备工作 2 3 2 下载最新内核 3 3 3 解压新版内核 3 3 4 安装必要的工具 4 3 5 内核修改 5 3 5 1 添加新的系统调用 5 3 5 2 添加系统调用号 5 3 5 3 添加系统调用的处理函数 6 3 6 清除从前编译内核时残留的 O 文件和不必要的关联 如果从前没有进行内核编译的话 则可以省略这一步 6 3 7 确保ASM LINUX和SCSI等链接是指向要升级的内核源代码 7 3 8 配置内核 修改相关参数 8 3 8 1 配置内核参数 8 3 8 2 修改内核范围 更新后能否启动至关重要 10 3 8 3 生成依赖 10 3 8 4 编译二进制内核映像文件 11 3 9 配置启动管理器 13 3 10 选择已编译的内核版本 14 3 11 重启系统 14 3 12 修改编译内核完成 15 4 测试新系统调用测试新系统调用 15 4 1 编写测试程序 15 5 实验总结实验总结 16 2 1 编写目的编写目的 针对 Ubuntu10 04 中 通过下载新的内核版本 并且修改新版本内核中的 系统调用看 然后 在其系统中编译 加载新内核 2 任务概述任务概述 2 12 1 下载新内核下载新内核 http www kernel org 2 22 2 修改新内核系统调用修改新内核系统调用 添加新的系统调用函数 用来判断输入数据的奇偶性 2 32 3 进行新内核编译进行新内核编译 通过修改新版内核后 进行加载编译 最后通过编写测试程序进行测试 3 实验步骤实验步骤 3 13 1 准备工作准备工作 3 1 1 在普通用户 zhen 下创建 root 用户 编译内核需要 root 权限 首先在终端输入 sudo passwd root 命令 激活 root 用户并设置密码 然后重新用 root 登录系统 3 1 2 查看系统先前内核版本 3 终端下 使用命令 uname r 3 23 2 下载最新内核下载最新内核 我这里使用的内核版本是 3 33 3 解压新版内核解压新版内核 将新版内核复制到 usr src 目录下 在终端下用命令 cd usr src 进入到该文件目录 解压内核 linux 2 6 36 tar bz2 在终端进入 在终端进入 cd usr src 目录输入一下命令 目录输入一下命令 bzip2 d linux 2 6 36 tar bz2 4 tar xvf linux 2 6 36 tar 5 文件将解压到文件将解压到 usr src linux 目录中目录中 使用命令 ln s linux 2 6 36 linux 3 43 4 安装必要的工具安装必要的工具 在终端下输入一下命令 在终端下输入一下命令 sudo apt get install build essential kernel package libncurses5 dev fakeroot 6 sudo aptitude install libqt3 headers libqt3 mt dev libqt3 compat headers libqt3 mt 7 3 53 5 内核修改内核修改 3 5 13 5 1 添加新的系统调用添加新的系统调用 在文件 在文件 usr src linux arch x86 kernel syscall table 32 S 最后增加一个系统表项 最后增加一个系统表项 long sys mycall 3 5 23 5 2 添加系统调用号添加系统调用号 usr src linux include asm generic unistd h 中添加 中添加 8 3 5 33 5 3 添加系统调用的处理函数添加系统调用的处理函数 在在 usr src linux kernel sys c 中添加以下处理函数 中添加以下处理函数 3 63 6 清除从前编译内核时残留的清除从前编译内核时残留的 o o 文件和不必要的关联 如果从前没有进文件和不必要的关联 如果从前没有进 行内核编译的话 则可以省略这一步 行内核编译的话 则可以省略这一步 终端下切换至终端下切换至 cd usr src linux 输入以下命令 输入以下命令 9 3 73 7 asmasm linuxlinux 和和 scsiscsi 等链接是指向要升级的内核源代码等链接是指向要升级的内核源代码 cd usr include rm r asm linux scsi ln s usr src linux include asm generic asm ln s usr src linux include linux linux ln s usr src linux include scsi scsi 3 83 8 配置内核 修改相关参数配置内核 修改相关参数 3 8 13 8 1 如何配置内核参数 如何配置内核参数 y 将该功能编译进内核 n 不将该功能编译进内核 m 将该功能编译成在需要时动态插入到内核中的模块 单击 Main Menu 按钮 返回主配置窗口 单击 Next 按钮 配置下一个配置项 单击 Prev 按钮 配置上一个配置项 选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块 有利于缩减内 核 减少内核消耗的内存 与内核关心紧密而且经常使用的部分功能代码直接编译到内核中 终端下终端下 修改路径为修改路径为 cd usr src linux 在图形界面下 在图形界面下 make xconfig 10 3 8 23 8 2 修改内核范围修改内核范围 更新后能否启动至关重要更新后能否启动至关重要 1 文件系统文件系统 请务必要选中 ext3 文件系统 File systems Ext3 journalling file system support Ext3 Security Labels JBD ext3 debugging support 一定要修改 以上三项一定要选上 而且要内建 即标 这个非常重要 在配置完后一定要检查一下 config 文件有没有 CONFIG EXT3 FS y 这一项 如果不是 CONFIG EXT3 FS y 而是 CONFIG EXT3 FS m 你在运行内核 时就会遇上以下错误 pivotroot pivot root sysroot sysroot initrd failed 11 2 网卡驱动网卡驱动 在在 Ubuntu10 04 中已默认选择 可省略这一步中已默认选择 可省略这一步 请务必把自己网卡对应的驱动编译进内核 比较普遍的网卡是 realtek 8139 以下就是这种网卡的配置 以供 参考 Device Drivers Networking support Ethernet 10 or 100Mbit RealTek RTL 8139 C PCI Fast Ethernet Adapter support EXPERIMENTAL RealTek RTL 8139 PCI Fast Ethernet Adapter support 3 声卡驱 声卡驱 在在 Ubuntu10 04 中已默认选择 可省略这一步中已默认选择 可省略这一步 选择自己声卡对应的驱动编译进内核 比较普遍的声卡是 i810 audio 以下就是这种声卡的配置 以供参考 Device Drivers Sound Sound card support Advanced Linux Sound Architecture Advanced Linux Sound Architecture Sequencer support Sequencer dummy client OSS Mixer API OSS PCM digital audio API OSS Sequencer API RTC Timer support PCI devices 12 Intel i8x0 MX440 SiS 7012 Ali 5455 NForce Audio AMD768 8111 Open Sound System Open Sound System DEPRECATED 3 8 33 8 3 生成依赖生成依赖 配置内核后 返回命令窗口 为确保关键文件 在正确的位置输入以下命令 make dep 这一步不是必须的这一步不是必须的 为确保所有有关文件都处于最新版本状态 需要输入命令 make clean 检查是否生成依赖 dependency 信息并清除旧的编译结果 3 8 43 8 4 编译二进制内核映像文件编译二进制内核映像文件 在在 usr src linux 目录下建立二进制的内核映像文件 命令如下 目录下建立二进制的内核映像文件 命令如下 make bzImage 13 make modules 14 make modules install 模块被编译且安装到模块被编译且安装到 usr lib 目录下 目录下 至此 内核被编译完成 内核模块也编译完成并被安装 至此 内核被编译完成 内核模块也编译完成并被安装 经过以上的步骤 我们终于得到了新版本的内核 为了能够使用新版本的内核 我们还需要做一些改动 经过以上的步骤 我们终于得到了新版本的内核 为了能够使用新版本的内核 我们还需要做一些改动 cp usr src linux System map boot System map 2 6 36 cp usr src linux arch i386 boot bzImage boot vmlinuz 2 6 36 cp config boot config 2 6 36 mkinitramfs o boot initrd img 2 6 36 2 6 36 修改修改 boot 下的两个链接下的两个链接 System map 和和 vmlinuz 使其指向新内核的文件 使其指向新内核的文件 cd boot rm f System map vmlinuz ln s vmlinuz 2 6 36 vmlinuz ln s System map 2 6 36 System map 15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论