世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com

  • 首页
  • 北京世界杯
  • 世界杯新秀
  • 世界杯16强名单

最新发表

  • 在哪里分期买手机比较好?10个正规优质平台可以免息
  • 【六袆 - windows】windows计划任务,命令行执行,开启计划任务,关闭计划任务,查询计划任务
  • 1998世界杯1/8决赛:阿根廷2
  • 宜人贷通过了多久到账
  • 这个夏天,打篮球的女生带你领略自由篮球的魅力!
  • cs系列一共有多少个版本_cs1.6和cs2有哪些区别
  • 《魔域》战士宝宝搭配心得分享
  • 玫琳凯祛斑效果怎么样
  • 冬日鹳影丨东方白鹳:优雅的鸟界“国宝”
  • 42Wh大电池,32分钟回血50%,华硕无畏16 笔记本充电实测!

友情链接

Copyright © 2022 世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com All Rights Reserved.

Linux内核源代码编译生成内核对象文件(.ko文件)的方法

北京世界杯 · 2025-07-07 23:10:36

1.准备

需要准备好Linux内核源码(作者使用的是Linux-5.15.36),对应的交叉编译工具(如果编译工具不匹配,大概率在编译过程中会有报错或提示显示,作者使用的如图是arm-cross-tools),需要编译成.ko文件的内核模块代码(如图在test目录下),rootfs是配置所需的根目录

test目录下的hello.c代码如下:

#include

#include

MODULE_LICENSE("GPL");

MODULE_AUTHOR("T_C");

int hiworld(void)

{

printk(KERN_INFO "Hello, world!\n");

return 0;

}

void saybye(void)

{

printk(KERN_INFO "Goodbye, world!\n");

}

module_init(hiworld);

module_exit(saybye);

2.环境变量声明

声明目标机架构

export ARCH=arm

声明交叉编译器前缀,声明成功,则-v有效

export PATH=/home/tc/Desktop/test/arm-cross-tools/bin:$PATH

export CROSS_COMPILE=arm-jwoe-linux-gnueabi-

3.内核配置,并编译

方法1(有配置文件):

一般配置好的配置文件可以存放在linux-5.15.36/arch/arm/configs目录下,如:

作者的配置文件是zynq_myc_defconfig,-j4是为了加快编译速度

方法2(无配置文件):

没有配置文件,则需要自己进行配置

//进入内核配置界面,进行配置选项

make menuconfig

//配置完成后,进行编译

make -j4

4.创建内核对象文件(.ko)

生成内容:make -C 内核源代码路径 M=内核模块代码路径 modules

方法(制作Makefile):

//打开Makefile

vi Makefile

//写入以下内容

ARCH=arm KERNELDIR=/home/tc/DeskTop/test/linux-5.15.36

ifneq ($(KERNELRELEASE),) # call from kernel build system obj-m := hello.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules endif

clean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

depend .depend dep: $(CC) $(EXTRA_CFLAGS) -M *.c > .depend

ifeq (.depend,$(wildcard .depend)) include .depend endif

//写完后,保存关闭

:wq!

//make,进行编译

make

如图

5.验证

将hello.ko下载到开发板中,如图,加载模块和卸载模块


Category:人物
世界杯救赎!一位37岁、5娃、刚失业中年男子的求职记