linux中的編譯驅(qū)動(dòng)到內(nèi)核方式
編譯驅(qū)動(dòng)到內(nèi)核
1 創(chuàng)建/kernel/drivers/helloworld文件夾
新建/kernel/drivers/hello文件夾 新建/kernel/drivers/hello/hello.c文件 新建/kernel/drivers/hello/Makefile文件 新建/kernel/drivers/hello/Kconfig文件
2 編寫驅(qū)動(dòng)程序文件
(/kernel/drivers/hello/hello.c)
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello World enter\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Hello World exit\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_DESCRIPTION("A Sample Hello World Module");
MODULE_ALIAS("A Sample module");
3 編寫Makefile文件
(/kernel/drivers/hello/Makefile)
obj-$(CONFIG_HELLO) += hello.o
4 編寫Kconfig文件
(/kernel/drivers/hello/Kconfig)
menu "ADD_SUB" config HELLO tristate "helloworld module test" endmenu
5 修改父目錄Makefile文件
(/kernel/drivers/Makefile)
obj-$(CONFIG_HELLO) += hello/
6 修改父目錄Kconfig文件
(/kernel/drivers/Kconfig)
source "drivers/hello/Kconfig"
注意:先執(zhí)行make xxx_defconfig再執(zhí)行make menuconfig
編譯驅(qū)動(dòng)到內(nèi)核有兩種方式
1 在make xxx_defconfig內(nèi)添加
CONFIG_HELLO = y
2 在make menuconfig內(nèi)使能
找到kconfig編寫的helloworld module test選項(xiàng)
- y表示編譯文件到內(nèi)核
- m表示編譯文件為模塊,會(huì)在/kernel/drivers/hello目錄下生成hello.ko文件。
- n表示不編譯文件到內(nèi)核
配置完成以后Save保存到.config文件中,最后Exit退出。
?總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Apache虛擬主機(jī)的配置和泛域名解析實(shí)現(xiàn)代碼
Apache虛擬主機(jī)的配置和泛域名解析實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-03-03
Linux中crontab定時(shí)任務(wù)不執(zhí)行的原因
本篇文章主要介紹了Linux中crontab定時(shí)任務(wù)不執(zhí)行的原因,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
關(guān)于Linux搭建RabbitMQ集群環(huán)境圖文詳解
這篇文章主要介紹了關(guān)于Linux搭建RabbitMQ集群環(huán)境圖文詳解,RabbitMQ天然支持集群,集群是保證可靠性的一種方式,同時(shí)可以通過水平擴(kuò)展以達(dá)到增加消息吞吐量能力的目的,需要的朋友可以參考下2023-05-05
重啟寶塔面板后提示-ModuleNotFoundError: No module named ''geventwebso
這篇文章主要介紹了重啟寶塔面板后提示-ModuleNotFoundError: No module named 'geventwebsocket',本文給出了解決方法,需要的朋友可以參考下2019-11-11
crontab定時(shí)任務(wù)不執(zhí)行的一些原因總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于crontab定時(shí)任務(wù)不執(zhí)行的一些原因,對(duì)每種可能發(fā)生的原因都給出了解決方法,對(duì)遇到這個(gè)問題的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
詳解CentOS5.5 下搭建 PHP 環(huán)境(最佳的LAMP環(huán)境)
本篇文章詳細(xì)介紹了詳解CentOS5.5 下搭建 PHP 環(huán)境(最佳的LAMP環(huán)境),有需要的小伙伴可以參考下。2016-10-10

