Linux内核的Hello World驱动
文章目录
- Linux内核的Hello World驱动
- 1、内核模块的一些概念
- 1.1 License
- 1.2 Author
- 1.3 模块描述
- 1.4 模块版本
- 2、简单的内核驱动实现
- 2.1 init函数
- 2.2 exit函数
- 2.3 内核日志输出
- 2.4 完整代码
- 2.5 内核模块编译
- 3、内核模块加载、卸载及模块信息查询
本文将详细介绍如何编写在Orange Pi 5开发板上一个简单的Linux内核驱动程序。在编写Linux驱动之前,首先了解一下与内核模块的概念。
1、内核模块的一些概念
1.1 License
GPL,或GNU通用公共许可证,是一种用于软件的开源许可证。如果您的软件是根据GPL条款许可的,它是免费的。然而,这里的“免费”并不意味着免费软件,它也可以是付费软件。相反,根据GPL,“自由”意味着自由。正如GPL的支持者自豪地宣称的那样:free as in freedom, not free beer
。
Linux 内核根据 GNU 通用公共许可证版本 2 获得许可。此许可证授予您自由使用、研究、修改和共享软件的权利。 但是,当软件被重新分发、修改或未修改时,GPL 要求您在相同的许可下使用源代码重新分发软件。 如果对 Linux 内核进行了修改(例如使其适应您的硬件),则它是内核的衍生作品,因此必须在 GPLv2 下发布。 但是,您只需要在设备开始分发给您的客户时这样做,而不是分发给全世界。
以下许可证标识目前被接受为表示自由软件模块: