ubuntu 12.10 x64 下编译新内核 + 系统调用方法

吐槽:

一个小东西弄了好几次不成功,x64就是要special judge 啊。。。sad

 download

老师给的地址有点儿慢, 推荐给力 的 https://www.kernel.org/ 这个地址 。 下载最新的稳定 3.8.4 版本

复制kernel到/usr/src中

sudo cp linux-3.8.4.tar.xz /usr/src

然后在图形界面check一下确实有这个文件,解压缩

sudo xz -d linux-3.8.4.tar.xz
sudo tar -xvf linux-3.8.4.tar

第一次弄的时候需要编辑器:

sudo apt-get install libncurses-dev kernel-package bzip2 make ncurses-dev fake

下面就开始始修改内核源码了

1、/linux-3.8.4/kernel/sys.c 文件

sudo gedit sys.c
文件末尾添加新的系统调用函数

asmlinkage int sys_#Name#(#参数#){
            printk("#输出#");
           return #返回值#;
}

2、arch/x86/syscalls/syscall_64.tbl

sudo gedit syscall_64.tbl

在 313 号调用下加入 314 号调用

314  common  dscall   sys_dscall

下面开始编译

/linux-3.8.4

sudo make mrproper //清除之前记录
sudo make menuconfig // exit
sudo make -j4 // 要跑一个小时。。。。

无 error 后安装内核

sudo make modules_install
sudo make install

重启内核

sudo reboot

Test:

#include<stdio.h>
int main(){
     int res = syscall(314 , 100);
    printf("100 * 100 = %d\n" , res);
    return 0;
}

运行

gcc test.c -o test -g  // 生成可执行文件
./test //执行
sudo dmesg -c //查看系统调用log

结果——

输出 100 * 100 = 10000

系统调用中显示——DS CALL Succeed


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值