linux - RTL8821CE(wifi)驱动安装问题: KBUILD_MODNAME

标签 linux makefile cross-compiling

我为运行 Linux Mint 19 的新 HP 17z 笔记本电脑下载了以下驱动程序:https://github.com/endlessm/linux/tree/master/drivers/net/wireless/rtl8821ce

根据指令修改生成文件后,我运行了“make”命令并收到以下错误:

z

ermacroyd@DALEK:~/Downloads/rtl8821ce$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.15.0-20-generic/build M=/home/zermacroyd/Downloads/rtl8821ce  modules
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-20-generic'
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_cmd.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_security.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_debug.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_io.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_ioctl_query.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_ioctl_set.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_ieee80211.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_mlme.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_mlme_ext.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_mi.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_wlan_util.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_vht.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_pwrctrl.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_rf.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_recv.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_sta_mgt.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_ap.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_xmit.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_p2p.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_tdls.o
  CC [M]  /home/zermacroyd/Downloads/rtl8821ce/core/rtw_br_ext.o
In file included from ./include/linux/printk.h:350:0,
                 from ./include/linux/kernel.h:14,
                 from ./include/linux/skbuff.h:17,
                 from ./include/linux/if_arp.h:26,
                 from /home/zermacroyd/Downloads/rtl8821ce/core/rtw_br_ext.c:23:
./include/net/inet_connection_sock.h: In function ‘inet_csk_clear_xmit_timer’:
./include/linux/dynamic_debug.h:77:14: error: ‘KBUILD_MODNAME’ undeclared (first use in this function); did you mean ‘KBUILD_BASENAME’?
   .modname = KBUILD_MODNAME,   \
              ^
./include/linux/dynamic_debug.h:99:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA_KEY’
  DEFINE_DYNAMIC_DEBUG_METADATA_KEY(name, fmt, .key.dd_key_false, \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dynamic_debug.h:125:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
  DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);  \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/printk.h:354:2: note: in expansion of macro ‘dynamic_pr_debug’
  dynamic_pr_debug(fmt, ##__VA_ARGS__)
  ^~~~~~~~~~~~~~~~
./include/net/inet_connection_sock.h:216:3: note: in expansion of macro ‘pr_debug’
   pr_debug("%s", inet_csk_timer_bug_msg);
   ^~~~~~~~
./include/linux/dynamic_debug.h:77:14: note: each undeclared identifier is reported only once for each function it appears in
   .modname = KBUILD_MODNAME,   \
              ^
./include/linux/dynamic_debug.h:99:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA_KEY’
  DEFINE_DYNAMIC_DEBUG_METADATA_KEY(name, fmt, .key.dd_key_false, \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dynamic_debug.h:125:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
  DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);  \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/printk.h:354:2: note: in expansion of macro ‘dynamic_pr_debug’
  dynamic_pr_debug(fmt, ##__VA_ARGS__)
  ^~~~~~~~~~~~~~~~
./include/net/inet_connection_sock.h:216:3: note: in expansion of macro ‘pr_debug’
   pr_debug("%s", inet_csk_timer_bug_msg);
   ^~~~~~~~
./include/net/inet_connection_sock.h: In function ‘inet_csk_reset_xmit_timer’:
./include/linux/dynamic_debug.h:77:14: error: ‘KBUILD_MODNAME’ undeclared (first use in this function); did you mean ‘KBUILD_BASENAME’?
   .modname = KBUILD_MODNAME,   \
              ^
./include/linux/dynamic_debug.h:99:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA_KEY’
  DEFINE_DYNAMIC_DEBUG_METADATA_KEY(name, fmt, .key.dd_key_false, \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/dynamic_debug.h:125:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
  DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt);  \
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/printk.h:354:2: note: in expansion of macro ‘dynamic_pr_debug’
  dynamic_pr_debug(fmt, ##__VA_ARGS__)
  ^~~~~~~~~~~~~~~~
./include/net/inet_connection_sock.h:232:3: note: in expansion of macro ‘pr_debug’
   pr_debug("reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\n",
   ^~~~~~~~
scripts/Makefile.build:332: recipe for target '/home/zermacroyd/Downloads/rtl8821ce/core/rtw_br_ext.o' failed
make[2]: *** [/home/zermacroyd/Downloads/rtl8821ce/core/rtw_br_ext.o] Error 1
Makefile:1552: recipe for target '_module_/home/zermacroyd/Downloads/rtl8821ce' failed
make[1]: *** [_module_/home/zermacroyd/Downloads/rtl8821ce] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-20-generic'
Makefile:1897: recipe for target 'modules' failed
make: *** [modules] Error 2

问题文件是 rtw_br_ext.c,它使用 Linux 内核的 header 。所以 makefile 中没有 KBUILD 标志。解决此问题的最佳方法是什么?

最佳答案

不要更改 make 文件。 在不进行更改的情况下运行该文件,它将运行正常。 在那个 Github url 上,没有更改 make 文件的说明。

关于linux - RTL8821CE(wifi)驱动安装问题: KBUILD_MODNAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601723/

相关文章:

c++ - 之前缺少模板参数

testing - Automake:将本地便利行为添加到 "make check"

linux - BASH - 从管道中出现的奇怪字符

c - 从 Linux 内核模块的用户空间打开文件

c - 写入帧缓冲区

c - Makefile No such directory or file 错误

c++ - 通用 ELF 中的重定位 (EM : 40)

Ubuntu下用mingw交叉编译git仓库

找不到 CMAKE 交叉编译库

linux - 使用 C/C++ 应用程序持续监控 linux 控制台日志