ubuntu下添加一个module

入门级别的小例子,记录以备己用而已。

/home/yutao/桌面/helloworld目录下有两个文件:helloworld.c和Makefile

helloworld.c

#include <linux/init.h>
#include <linux/kernel.h>  
#include <linux/module.h>

static int hello_init(void)
{ 
    printk("Hello! This is the helloworld module!\n");
    return 0;
} 

static void hello_exit(void)
{
    printk("Module exit! Bye Bye!\n");
    return;
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

Makefile

obj-m := helloworld.o
KERNELBUILD := /lib/modules/2.6.32.61/build
all:
	make -C $(KERNELBUILD) M=$(shell pwd) modules
clean:
	rm -rf *.o  *.ko  *.mod.c .tmp_versions modules* Module*

留意/lib/modules/2.6.32.61/build,这是我当前kernel版本对应的地址。

在终端中uname -r 显示2.6.32.61

代码就ok了,然后编译:

在当前目录下make就可以

还是在当前路径下安装module的命令:sudo insmod helloworld.ko

查看输出的log信息:dmesg | tail -10

卸载模块:rmmod helloworld


### 如何在 Ubuntu 20.04 上安装特定模块 在 Ubuntu 20.04 中,安装特定模块通常涉及以下几个方面:确认依赖项、使用包管理器 `apt` 或其他工具(如 `pip`, `npm` 等),以及可能的手动编译过程。以下是针对不同类型的模块的通用方法。 #### 使用 APT 安装系统级模块 APT 是 Ubuntu 默认的包管理工具,适用于大多数官方支持的软件和库。如果目标模块是一个标准的 Linux 库或程序,则可以通过以下方式安装: ```bash sudo apt update sudo apt install <module-name> ``` 例如,安装 Apache HTTP Server 的命令如下: ```bash sudo apt update sudo apt install apache2 ``` 这里 `<module-name>` 需替换为目标模块的实际名称[^3]。 #### 对于 Python 模块 (PyPI) Python 社区提供了 PyPI(Python Package Index)作为第三方模块仓库。可以使用 `pip` 工具来安装这些模块。首先确保已安装 `pip`: ```bash sudo apt install python3-pip ``` 接着通过 pip 安装所需的模块: ```bash pip3 install <module-name> ``` 例如,安装 NumPy 模块可执行以下命令: ```bash pip3 install numpy ``` #### 对于 Node.js 模块 (NPM) Node.js 生态系统的模块存储在 NPM 注册表中。先验证是否已经安装了 Node.js 和 npm: ```bash node -v && npm -v ``` 如果没有安装,可通过以下命令完成安装: ```bash curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs ``` 之后即可利用 npm 来安装所需模块: ```bash npm install -g <module-name> ``` 比如安装 Express 框架: ```bash npm install -g express-generator ``` #### 手动编译安装复杂模块 对于某些不提供预构建二进制文件或者需要定制化配置的模块,可以选择手动编译的方式。一般流程包括获取源代码、解压、配置环境变量、编译和安装等步骤。假设要安装某个 C/C++ 编写的库 libexample.so: 1. 下载源码压缩包; 2. 解压到工作目录下; 3. 进入该目录并运行 configure 脚本初始化构建参数; 4. 执行 make 构建项目; 5. 最后用 make install 将产物部署至系统路径。 具体指令序列可能是这样的: ```bash wget http://example.com/libexample.tar.gz tar xfz libexample.tar.gz cd libexample/ ./configure --prefix=/usr/local make sudo make install ``` 以上每一步都需依据实际项目的文档指导调整相应选项[^1]。 #### 结合 PPA 添加额外资源 有时目标模块不在官方仓库里,这时可以从社区维护的个人包存档(PPA)引入新的镜像地址。以 PHP 多版本支持为例,操作如下所示: ```bash sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.0-cli ``` 此案例展示了如何切换到更高版次PHP实例[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值