美文网首页
编译内核

编译内核

作者: 萍水间人 | 来源:发表于2019-02-22 20:52 被阅读18次

写在前面

建议在编译内核之前了解一下内核的目录结构, 这样至少不会被绕晕

下载内核源码

sudo apt search linux-source

搜索源码包

下载源码

sudo apt install linux-source-4.15.0

这样就下载了源码包了

会直接放到这个目录下来


默认下载位置

我直接解压到了自己的用户目录下

解压命令

tar -xvf linux-source-4.15.0.tar.bz2 -C ~

最新版的tar命令可以智能的识别压缩的算法

进入目录之前,做一件事情

sudo chmod 777 -R linux.source-4.15.0

省去后面不必要的权限麻烦

编写自定义函数

进入到 kernel 目录下

kernel目录

执行

vim sys.c

直接按 G 跳到文件末尾, 然后按 O 在最后一行的上一行添加代码, 进入编辑模式

asmlinkage long sys_helloworld(void){

    printk( "helloworld!");

    return 1;

}
vim sys.c

添加声明

进入到如下目录:

pwd

执行如下命令

vim syscalls.h

插入

 asmlinkage long sys_helloworld(void); 

如图:


image.png

添加系统调用id

进入到如下目录

pwd

在最后一行插入


image.png

配置内核

先make clean一下


之后再补充

相关文章

  • Ubuntu内核升级方法

    Ubuntu内核升级有两种方法: 1. 下载Linux内核,进行编译,具体步骤可参照ubuntu内核编译教程-编译...

  • Linux内核编译

    本次内核编译环境 平台 CentOS 7(字符终端) 编译内核版本 4.12,内核可以去官网h...

  • 迅为IMX6Q开发板-非设备树内核-单独编译内核驱动

    内核驱动不仅可以将驱动编译到内核中,还可以动态的编译内核驱动。本文档介绍如何以模块的方式编译内核驱动。 要动态的编...

  • 迅为4418开发板-驱动-以模块的方式编译内核驱动

    内核驱动不仅可以将驱动编译到内核中,还可以动态的编译内核驱动。本文档介绍如何以模块的方式编译内核驱动。 要动态的编...

  • Linux小系统(二)-内核编译

    Linux内核编译 内核下载与解压 内核下载 内核下载地址 解压 编译 安装开发环境 参考文档 Linux-4.4...

  • Ubuntu18 安装编译内核+自定义内核版本名

    一、 实验目的 完成一个Linux内核的编译,包括下载内核、配置内核、编译和安装内核。 二、实验内容 1)下载Li...

  • 驱动程序的编译方式

    一、直接内建在内核中 二、编译成内核模块 三、不编译到内核中 默认的编译方式为n 这个可以在Kconfig 里面查...

  • 内核模块学习

    linux内核的框架很大,组件很多,如果把所有东西全编译进内核,内核会很大,如果我们要进行修改时,还要重新编译内核...

  • 编译内核

    先把下载的内核解压展开归档 tar -xvf linux-4.12.tar.xz 把linux系统中的/boot/...

  • 内核编译

    变异内核要安装两个包组Development toolsServer Platform DevelopmentDe...

网友评论

      本文标题:编译内核

      本文链接:https://www.haomeiwen.com/subject/rodyyqtx.html