Ubuntu 12.04内核升级和添加系统调用
来源:互联网 发布:c专家编程有必要看吗 编辑:程序博客网 时间:2024/09/21 09:02
一、 Ubuntu12.04内核升级
1准备条件:
安装有Unbuntu12.04的机器或者虚拟机
下载最新的稳定版Linux内核源码:下载地址是http://www.kernel.org/,现在最新的稳定版本是3.9.4 (提示,目前最新的内核是3.14.4,本教程对内核的高低不受影响。)
2内核拷贝到/usr/src文件夹中
因为我是从本地系统直接复制到虚拟机里的这个文件夹中,所以会出现权限问题。要先拷贝到别的权限较低的文件夹中然后在终端进入root权限进行移动。
移动文件到指定文件夹(命令前加sudo)
解压命令:
sudo xz -d linux-3.9.4.tar.xz
sudo tar -xvf linux-3.9.4.tar
第一条命令大概执行40秒到一分钟
解压之后:
解压完成,下面开始配置编译和安装
3进入linux-3.9.4目录,清除残留的.config和.o文件
输入命令:
make mrproper
4配置编译选项
1)安装ncurses
ncurses(new curses)是一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。它是一个虚拟终端中的“类GUI”应用软件工具箱。它还优化了屏幕刷新方法,以减少使用远程shell时遇到的延迟。Menuconfig配置就用到了ncurses库。
安装方法有两种:
a.直接在线安装,命令:sudo apt-get install libncurses5-dev
b.下载离线包,编译安装。下面介绍过程。
推荐用在线安装,不过下面还是介绍手动编译安装过程。
进入ncurses-5.9目录,依次执行下面的命令:
cd ncurses-5.9
./configure
make
sudo make install
2)拷贝原有的内核配置文件
进入/boot目录,里面有个config开头的文件,通过cp命令拷贝到新内核目录下,然后用mv命令进行改名为.config
命令:cp/boot/config-`uname -r` ./.config
现在内核文件夹下/usr/src/linux-3.9.4执行命令
sudo make menuconfig
在前面的配置界面选择加载,把目录下的.config加载进来,然后再保存。
5确定依赖性
命令:
sudo make dep
提示没有必要,可能是加载以前配置文件的原因
6清理编译中间文件
命令:
sudo make clean
7生成新内核
命令:
sudo make bzImage
时间:大概半小时
8生成modules
sudo make modules
9安装modules
make modules_install
10建立要载入ramdisk的映像文件
如果你的系统是跑在虚拟机里,那么这一步一定需要。
mkinittramfs -o /boot/initrd-linux3.9.4.img3.9.4
11安装内核
make install
12配置grub引导程序
输入命令:sudo update-grub, grub引导程序自动生成
13重启。
重启系统,从grub菜单中选中新内核引导linux。
二、添加自定义系统调用
1添加系统调用函数,修改文件:/usr/src /linux-3.9.4/kernel/sys.c
2添加系统调用号,修改文件/usr/src /linux-3.9.4/arch/x86/systemcalls/syscall_32.tbl
3添加声明到头文件,修改文件,/usr/src /linux-3.9.4/include/linux/syscalls.h
4重新编译内核
见第一部分
5测试
测试代码
#include <unistd.h>
#include <stdio.h>
int main()
{
syscall(351,1);
return1;
}
查看运行结果命令
sudo dmesg -c
测试结果
- Ubuntu 12.04内核升级和添加系统调用
- 内核版本升级和添加Linux系统调用
- 【Linux操作系统分析】Ubuntu12.04内核升级和添加系统调用
- ubuntu升级系统内核
- Linux 操作系统内核升级及系统调用的添加
- 内核添加系统调用
- Ubuntu 14.04升级系统内核
- Ubuntu 14.04 内核版本Linux 3.13 添加系统调用
- ubuntu添加系统调用
- ubuntu 12.04内核升级
- ubuntu 12.04 升级内核
- ubuntu 12.04 升级内核
- linux内核添加系统调用
- Linux内核添加系统调用
- linux内核添加系统调用
- linux内核--添加系统调用
- ubuntu12.04内核升级与添加系统调用(貌似是科大某人写的。。SA)
- Ubuntu 16.04 Linux系统内核升级方法
- 基于Instrumentation的JAVA代码热替换
- nirsoft工具
- hdu1847畅通工程续
- 别让手机变成泄露个人信息的推动者
- C\C++代码优化的27个建议
- Ubuntu 12.04内核升级和添加系统调用
- poj 1125 Stockbroker Grapevine
- Android Touch系统简介(二):实例详解onInterceptTouchEvent与onTouchEvent的调用过程
- 常用UI控件和常用类
- View DrawingCache的理解
- QT 不能响应mouserelease事件
- codeforce 5C Longest Regular Bracket Sequence
- android外语对照表
- android获取硬件信息