邀请 LitchiCheng,sonicfirr,damiaa参与回复。
我在编译驱动模块的时候出现下面的问题,也搜索过相关解答:linux内核编译报错问题code/include/uapi/linux/types.h:5:10: fatal error: asm/types.h: 没有那个文件或目录_./include/uapi/linux/types.h:5:10: fatal error: as-CSDN博客 但是对我不起作用,请问大家又遇到这种情况吗?是怎么解答的。
报错代码:
make -C /home/tang/linux/LuckFox_RV1106/luckfox-pico/sysdrv/source/kernel M=/home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver modules
make[1]: 进入目录“/home/tang/linux/LuckFox_RV1106/luckfox-pico/sysdrv/source/kernel”
CC [M] /home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver/st7789_driver.o
In file included from ./include/linux/types.h:6:0,
from ./include/linux/list.h:5,
from ./include/linux/module.h:12,
from /home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver/st7789_driver.c:1:
./include/uapi/linux/types.h:5:10: fatal error: asm/types.h: No such file or directory
#include <asm/types.h>
^~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.build:273: recipe for target '/home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver/st7789_driver.o' failed
make[2]: *** [/home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver/st7789_driver.o] Error 1
Makefile:1917: recipe for target '/home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver' failed
make[1]: *** [/home/tang/linux/LuckFox_RV1106/workspace/driver/st7735/st7735_driver] Error 2
make[1]: 离开目录“/home/tang/linux/LuckFox_RV1106/luckfox-pico/sysdrv/source/kernel”
Makefile:8: recipe for target 'kernel_modules' failed
make: *** [kernel_modules] Error 2
注:在我虚拟机的/usr/include目录下有这个头文件<asm/types.h>,如下图
这里我的这个问题本身没有解决,但是解决一个问题有很多方法。这里我换了一种方法,我本身是想把驱动编译成模块然后拷贝到系统里然后用modprobe加载驱动的,但是情况如上所见,遇到了一点问题。于是后面我是直接干脆把驱动编译进内核里了。
步骤是将自己写好的驱动复制到内核的drivers目录,然后编写内核目录下的Kconfig文件和Makefile文件,最后使用make menuconfig选择自己写的驱动编译进内核。
单独编译程序,先不编译模块试试,直接用工具里的交叉编译器试试
https://wiki.luckfox.com/Luckfox-Pico/Luckfox-Pico-FAQ 第19个常见问题
引用: onepiecetttt 发表于 2024-2-28 19:37 https://wiki.luckfox.com/Luckfox-Pico/Luckfox-Pico-FAQ 第19个常见问题
终于解决了,谢谢