ubuntu 编译内核

把已经下载好的内核代码包装进 /usr/src 中解码

1. 下载编译过程中的所需的软件依赖包.

sudo apt-get install libncurses5-dev libssl-dev  

sudo apt-get install build-essential openssl  

sudo apt-get install zlibc minizip  

sudo apt-get install libidn11-dev libidn11

2.打开/kernel/sys.c文件,加入linkage.h的头文件,在文件末尾加入要加入的系统调用函数.

代码段要用get_ds,set_fs,get_fs等函数保护比如:

//my call P orereation
asmlinkage void mycall_P(int semid, int index)
{
    struct sembuf sem;
    mm_segment_t old_fs=get_fs();
    set_fs(get_ds());
    sem.sem_num = index;
    sem.sem_op = -1;
    sem.sem_flg = 0;
    sys_semop(semid, &sem, 1);    //xitongdiaoyong
set_fs(old_fs);  
    return;
}


3.加入系统调用函数声明。在linux-4.9.84/arch/x86/include/asm/syscalls.h中加入asmlinkage void mycall(...)  //自己的系统调用函数定义

4.加入系统调用号。在linux-4.9.84/arch/x86/entry/syscalls/syscall_64.tbl

5. 编译内核和安装内核.

返回linux-4.9.84

sudo make mrproper

sudo make clean

sudo make menuconfig

6. 根据自己处理器的最大线程数目来编译.

sudo make -j8

7. 编译后安装内核到系统中.

sudo make modules_install

sudo make install

8. 重启加载内核.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值