这学期对了一门操作系统,满怀着好奇装了虚拟机然后安了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. 2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)

    传送门 有点难调啊.其实是我自己sb了 不过交上去1A1A1A还是平衡了一下心态. 所以这道题怎么做呢? 我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/ ...

  2. 最全js表单验证

    /***************************************************************** 表单校验工具类 (linjq) ***************** ...

  3. eclipse 创建servlet 出现继承 HttpServlet 报红线

    eclipse创建servlet出现红线: 解决方案1,鼠标右键项目 -> 鼠标右击项目——>Build Path——> 点击comfigure Build Path进入-----& ...

  4. 振动器(Vibrator)

    package com.wwj.serviceandboardcast;   import android.app.Activity; import android.app.Service; impo ...

  5. idea操作快捷键

    Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ ...

  6. Django工程搭建

    -----环境安装 1.创建虚拟环境 mkvirtualenv django_py3_1.11 -p python3   2.安装django pip install django==1.11.11 ...

  7. Java异常、事件、多线程

    异常     捕捉异常,以便程序继续执行,同时可进行异常处理使程序更加健壮.     Throwble类,派生Exception类和Error类,Exception类供应用程序用,Error类系统保留 ...

  8. ScheduledExecutorService的使用

    http://407827531.iteye.com/blog/1329597 ScheduledExecutorService接口 在ExecutorService的基础上,ScheduledExe ...

  9. 数据压缩之经典——哈夫曼编码(Huffman)

    (笔记图片截图自课程Image and video processing: From Mars to Hollywood with a stop at the hospital的教学视频,使用时请注意 ...

  10. hdu 4927 组合+公式

    http://acm.hdu.edu.cn/showproblem.php?pid=4927 给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1−ai,直到序列长度 ...