这学期对了一门操作系统,满怀着好奇装了虚拟机然后安了Ubuntu,这周作业是编译内核和安装个模块,妈耶,折腾了我一两天。终于弄完,CSDN上有挺多类似的教程,例如陈皓的跟我一起写Makefile,写的很详细并且容易懂,不过我建议想速成不深究的人可以看看我这篇。。。

Makefile有它自己独特的写法:

target ... : prerequisites ...
            command
            ...

...

请注意,command前面不是空格!command前面不是空格!command前面不是空格!而是tab!而是tab!而是tab!

好了,进入正题

先编写一个hello.c文件

终端输入命令:gedit hello.c

保存退出

输入gedit Makefile

这里当时我忘了注释,这里添加一个带注释的版本

obj-m:=hello.c

KERNELDIR:=/lib/modules/$(shell uname-r)/build  #Kernel的路径

PWD:=$(shell pwd)    #当前编辑器(gedit)的工作路径

default:
	make -C $(KERNELDIR) M=$(PWD) modules
clean:
	rm -f *.ko *.o *.symvers *.cmd *.cmd.o  #清除后缀分别为o,ko,cmd,cmd.o的文件

我之前跟着网上很多教程弄完到这一步之后输入make命令死活生不成.ko即insmod能识别的文件,一直没懂为什么,所以我特地去图书馆借了一本书,然而按着来还是没用,后来陆续看了很多教程,依旧不行,之后看到有些大佬说Linux越到高版本越复杂,于是我又升级了一下make,还是不行,最终我没有找到捷径,用的方法稍微复杂了一点,但.ko文件还是生成了。

这里贴上方法:

首先进入终端,因为这个操作需要改动文件,所以需要在root方式下进行操作,于是输入sudo su,输入密码后操作

先进入编辑器的工作路径,也就是hello.o的存放路径,例如我的就是/home/yintianhao,具体看你的系统

即输入命令cd /home/yintianhao (cd命令很多人应该都知道,change directory)

然后输入make -C /lib/modules/2.6.32/build M=/home/yintianhao(-C后面的路径根据内核而定,例如我的不是2.6.32而是4.15.12)

之后便会出现这个

通过ls命令可以看到有.ko文件生成

然后通过insmod命令安装模块,通过lsmod查看是否安装成功,如果列表里面就成功,显然我这成功了

之后可以通过rmmod移除模块,同样用lsmod查看是否删除成功

显然我这没有,成功,写实验报告去了,溜了溜了

利用Makefile安装helloworld模块(速成)的更多相关文章

  1. 利用npm 安装删除模块

    转自 涵一原文 利用npm 安装删除模块 1. npm安装模块 [npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录:[npm install -g xxx]利用npm安 ...

  2. Python3 利用pip安装BeautifulSoup4模块(Windows版)

    一.找到Python3的安装文件夹 二.将路径复制 三.Windows10 打开Windows PowerShell(管理员).Windows 8.8.1.7使用cmd 切换到相应目录 四.此目录下的 ...

  3. 利用pip安装模块(以安装pyperclip为例)

    >任务:利用pip安装pyperclip模块 >前提:你已经在你的电脑里面安装啦Python2.7的Windows版本,并且已经配置了环境变量 >实现步骤 >>打开你的P ...

  4. Python_pip_02_利用pip安装模块(以安装pyperclip为例)

    >任务:利用pip安装pyperclip模块 >前提 你已经在你的电脑里面安装啦Python2.7的Windows版本,并且已经配置了环境变量 >实现步骤 >>打开你的P ...

  5. npm安装删除模块以及cnpm淘宝镜像

    npm安装模块 [$ npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录: [$ npm install -g xxx]利用npm安装全局模块xxx: npm 删除模块 ...

  6. npm 安装 卸载 模块(转载)

    来源 https://blog.csdn.net/yihanzhi/article/details/75665959 利用npm 安装删除模块 npm安装模块 [npm install xxx]利用 ...

  7. npm 安装卸载模块

    npm安装模块 npm install xxx利用 npm 安装xxx模块到当前命令行所在目录 npm install -g xxx利用npm安装全局模块xxx 1 2 本地安装时将模块写入packa ...

  8. vue用npm安装删除模块element-ui mint-ui

    vue用npm安装删除模块element-ui mint-ui 在vue项目中先引入了element-ui,后来发现移动版的需要用mint-ui,所以需要先卸载了再安装.卸载element-ui:np ...

  9. 用 npm 安装删除模块

    npm安装模块 [npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录: [npm install -g xxx]利用npm安装全局模块xxx: 本地安装时将模块写入pac ...

随机推荐

  1. 2.7 Sobel导数

    OpenCV函数 Sobel(src_gray,grad_x/grad_y,ddepth,x_order,y_order,scale,delta,BORDER_DEFAULT ) Scharr( ) ...

  2. hdu-1034(模拟+小朋友分糖)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1034 参考文章:https://blog.csdn.net/zyy173533832/article/ ...

  3. Manacher算法,最长回文串

    给你10000长度字符串,然你求最长回文字串,输出长度,暴力算法肯定超时 #include <iostream> #include <string> #include < ...

  4. 深入浅出javascript(八)this、call和apply

    _________此篇日志属于重要记录,长期更新__________ this,call,apply这三个是进阶JS的重要一步,需要详细的记录. ➢ this 一.作为对象的方法调用. 当函数作为对象 ...

  5. 开始编写Golang代码

    介绍 本文主要讲述如何写一个简单的Go包和如何使用golang的工具,如何获取.编译和安装Go的包,以及如何使用go的命令. Go的工具需要将代码按照一定的方式来组织.所以请认真阅读本文. 代码的组织 ...

  6. Ubuntu下安装并配置TexStudio

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069715.html Ubuntu下安装并配置TexStudio Ubunt ...

  7. noip第15课作业

    1. 累加求和 给定n(1<=n<=100),用递归的方法计算1+2+3+4+5+......+(n-1)+n. 输入:一个大于等于1的整数. 输出:输出一个整数. [样例输入] 5 [样 ...

  8. C#、.Net经典面试题目及答案

    1 请你说说   .NET  中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类要多.结构不能申明有默认的构造函数,为结构的副本是又编译器创建 和销毁的,所以不需要默认的构造函数和 ...

  9. hud 3123 GCC

    题目 输入:n 和 mod 输出: Output the answer of (0! + 1! + 2! + 3! + 4! + ... + n!)%m. Constrains 0 < T &l ...

  10. hadoop一代集群运行代码案例

    hadoop一代集群运行代码案例 集群 一个 master,两个slave,IP分别是192.168.1.2.192.168.1.3.192.168.1.4               hadoop版 ...