mac80211/cfg80211模块编译安装

这篇具有很好参考价值的文章主要介绍了mac80211/cfg80211模块编译安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

下载kernel

 wget http://mirrors.163.com/kernel/v6.x/linux-6.0.9.tar.xz

解压kernel

tar -Jxvf linux-6.0.9.tar.xz

mac80211_hwsim.ko编译

mkdir mac80211_hwsim
cd mac80211_hwsim
cp linux-6.0.9/drivers/net/wireless/mac80211_hwsim.c mac80211_hwsim/
cp linux-6.0.9/drivers/net/wireless/mac80211_hwsim.h mac80211_hwsim/

mac80211_hwsim目录下新建Makefile文件,添加如下内容

KERNEL_VERSION = $(shell uname -r)

obj-m += mac80211_hwsim.o

build: kernel_modules

kernel_modules:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) modules

clean:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) clean

执行make命令

make

libarc4.ko编译

mkdir lib_crypto
cp linux-6.0.9/lib/crypto/* lib_crypto/.
cd lib_crypto/

修改其中的Makefile,如下

# SPDX-License-Identifier: GPL-2.0

KERNEL_VERSION = $(shell uname -r)

# chacha is used by the /dev/random driver which is always builtin
obj-y						+= chacha.o
obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC)		+= libchacha.o

obj-$(CONFIG_CRYPTO_LIB_AES)			+= libaes.o
libaes-y					:= aes.o

obj-$(CONFIG_CRYPTO_LIB_ARC4)			+= libarc4.o
libarc4-y					:= arc4.o

# blake2s is used by the /dev/random driver which is always builtin
obj-y						+= libblake2s.o
libblake2s-y					:= blake2s.o
libblake2s-$(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC)	+= blake2s-generic.o

obj-$(CONFIG_CRYPTO_LIB_CHACHA20POLY1305)	+= libchacha20poly1305.o
libchacha20poly1305-y				+= chacha20poly1305.o

obj-$(CONFIG_CRYPTO_LIB_CURVE25519_GENERIC)	+= libcurve25519-generic.o
libcurve25519-generic-y				:= curve25519-fiat32.o
libcurve25519-generic-$(CONFIG_ARCH_SUPPORTS_INT128)	:= curve25519-hacl64.o
libcurve25519-generic-y				+= curve25519-generic.o

obj-$(CONFIG_CRYPTO_LIB_CURVE25519)		+= libcurve25519.o
libcurve25519-y					+= curve25519.o

obj-$(CONFIG_CRYPTO_LIB_DES)			+= libdes.o
libdes-y					:= des.o

obj-$(CONFIG_CRYPTO_LIB_POLY1305_GENERIC)	+= libpoly1305.o
libpoly1305-y					:= poly1305-donna32.o
libpoly1305-$(CONFIG_ARCH_SUPPORTS_INT128)	:= poly1305-donna64.o
libpoly1305-y					+= poly1305.o

obj-$(CONFIG_CRYPTO_LIB_SHA1)			+= libsha1.o
libsha1-y					:= sha1.o

obj-$(CONFIG_CRYPTO_LIB_SHA256)			+= libsha256.o
libsha256-y					:= sha256.o

ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y)
libblake2s-y					+= blake2s-selftest.o
libchacha20poly1305-y				+= chacha20poly1305-selftest.o
libcurve25519-y					+= curve25519-selftest.o
endif

build: kernel_modules

kernel_modules:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) modules

clean:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) clean

执行make命令即可

w512@w512-pc:~/wlan_test/lib_crypto$ make
w512@w512-pc:~/wlan_test/lib_crypto$ ls *.ko -alh
-rw-rw-r-- 1 w512 w512 110K 1126 22:16 libarc4.ko
-rw-rw-r-- 1 w512 w512 324K 1126 22:16 libchacha20poly1305.ko
-rw-rw-r-- 1 w512 w512 109K 1126 22:16 libchacha.ko
-rw-rw-r-- 1 w512 w512 631K 1126 22:16 libcurve25519-generic.ko
-rw-rw-r-- 1 w512 w512 105K 1126 22:16 libcurve25519.ko
-rw-rw-r-- 1 w512 w512 215K 1126 22:16 libdes.ko
-rw-rw-r-- 1 w512 w512 143K 1126 22:16 libpoly1305.ko

cfg80211.ko编译

mkdir cfg80211
cp -r linux-6.0.9/net/wireless/* cfg80211/
cd cfg80211/

修改其中的Makefile,如下

# SPDX-License-Identifier: GPL-2.0
KERNEL_VERSION = $(shell uname -r)

obj-$(CONFIG_CFG80211) += cfg80211.o
obj-$(CONFIG_LIB80211) += lib80211.o
obj-$(CONFIG_LIB80211_CRYPT_WEP) += lib80211_crypt_wep.o
obj-$(CONFIG_LIB80211_CRYPT_CCMP) += lib80211_crypt_ccmp.o
obj-$(CONFIG_LIB80211_CRYPT_TKIP) += lib80211_crypt_tkip.o

obj-$(CONFIG_WEXT_CORE) += wext-core.o
obj-$(CONFIG_WEXT_PROC) += wext-proc.o
obj-$(CONFIG_WEXT_SPY) += wext-spy.o
obj-$(CONFIG_WEXT_PRIV) += wext-priv.o

cfg80211-y += core.o sysfs.o radiotap.o util.o reg.o scan.o nl80211.o
cfg80211-y += mlme.o ibss.o sme.o chan.o ethtool.o mesh.o ap.o trace.o ocb.o
cfg80211-y += pmsr.o
cfg80211-$(CONFIG_OF) += of.o
cfg80211-$(CONFIG_CFG80211_DEBUGFS) += debugfs.o
cfg80211-$(CONFIG_CFG80211_WEXT) += wext-compat.o wext-sme.o

CFLAGS_trace.o := -I$(src)

cfg80211-$(CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS) += shipped-certs.o
ifneq ($(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR),)
cfg80211-y += extra-certs.o
endif

build: kernel_modules

$(obj)/shipped-certs.c: $(wildcard $(srctree)/$(src)/certs/*.hex)
	@$(kecho) "  GEN     $@"
	$(Q)(echo '#include "reg.h"'; \
	  echo 'const u8 shipped_regdb_certs[] = {'; \
	  echo | cat - $^ ; \
	  echo '};'; \
	  echo 'unsigned int shipped_regdb_certs_len = sizeof(shipped_regdb_certs);'; \
	 ) > $@

$(obj)/extra-certs.c: $(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR) \
		      $(wildcard $(CONFIG_CFG80211_EXTRA_REGDB_KEYDIR)/*.x509)
	@$(kecho) "  GEN     $@"
	$(Q)(set -e; \
	  allf=""; \
	  for f in $^ ; do \
	      test -f $$f || continue;\
	      # similar to hexdump -v -e '1/1 "0x%.2x," "\n"' \
	      thisf=$$(od -An -v -tx1 < $$f | \
	                   sed -e 's/ /\n/g' | \
	                   sed -e 's/^[0-9a-f]\+$$/\0/;t;d' | \
	                   sed -e 's/^/0x/;s/$$/,/'); \
	      # file should not be empty - maybe command substitution failed? \
	      test ! -z "$$thisf";\
	      allf=$$allf$$thisf;\
	  done; \
	  ( \
	      echo '#include "reg.h"'; \
	      echo 'const u8 extra_regdb_certs[] = {'; \
	      echo "$$allf"; \
	      echo '};'; \
	      echo 'unsigned int extra_regdb_certs_len = sizeof(extra_regdb_certs);'; \
	  ) > $@)

clean-files += shipped-certs.c extra-certs.c

kernel_modules:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) modules

clean:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) clean

执行make命令即可

w512@w512-pc:~/wlan_test/lib_crypto$ make
w512@w512-pc:~/wlan_test/cfg80211$ ls *.ko -alh
-rw-rw-r-- 1 w512 w512  18M 1126 22:37 cfg80211.ko
-rw-rw-r-- 1 w512 w512 422K 1126 22:37 lib80211_crypt_ccmp.ko
-rw-rw-r-- 1 w512 w512 448K 1126 22:37 lib80211_crypt_tkip.ko
-rw-rw-r-- 1 w512 w512 385K 1126 22:37 lib80211_crypt_wep.ko
-rw-rw-r-- 1 w512 w512 397K 1126 22:37 lib80211.ko

mac80211.ko编译

mkdir cfg80211
cp -r linux-6.0.9/net/wireless/* cfg80211/
cd cfg80211/

修改其中的Makefile,如下

# SPDX-License-Identifier: GPL-2.0
KERNEL_VERSION = $(shell uname -r)

obj-$(CONFIG_MAC80211) += mac80211.o

# mac80211 objects
mac80211-y := \
	main.o status.o \
	driver-ops.o \
	sta_info.o \
	wep.o \
	aead_api.o \
	wpa.o \
	scan.o offchannel.o \
	ht.o agg-tx.o agg-rx.o \
	vht.o \
	he.o \
	s1g.o \
	ibss.o \
	iface.o \
	rate.o \
	michael.o \
	tkip.o \
	aes_cmac.o \
	aes_gmac.o \
	fils_aead.o \
	cfg.o \
	ethtool.o \
	rx.o \
	spectmgmt.o \
	tx.o \
	key.o \
	util.o \
	wme.o \
	chan.o \
	trace.o mlme.o \
	tdls.o \
	ocb.o \
	airtime.o \
	eht.o

mac80211-$(CONFIG_MAC80211_LEDS) += led.o
mac80211-$(CONFIG_MAC80211_DEBUGFS) += \
	debugfs.o \
	debugfs_sta.o \
	debugfs_netdev.o \
	debugfs_key.o

mac80211-$(CONFIG_MAC80211_MESH) += \
	mesh.o \
	mesh_pathtbl.o \
	mesh_plink.o \
	mesh_hwmp.o \
	mesh_sync.o \
	mesh_ps.o

mac80211-$(CONFIG_PM) += pm.o

CFLAGS_trace.o := -I$(src)

rc80211_minstrel-y := \
	rc80211_minstrel_ht.o

rc80211_minstrel-$(CONFIG_MAC80211_DEBUGFS) += \
	rc80211_minstrel_ht_debugfs.o

mac80211-$(CONFIG_MAC80211_RC_MINSTREL) += $(rc80211_minstrel-y)

ccflags-y += -DDEBUG

build: kernel_modules

kernel_modules:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) modules

clean:
	make -C /lib/modules/$(KERNEL_VERSION)/build M=$(CURDIR) clean

执行make命令即可

w512@w512-pc:~/wlan_test/lib_crypto$ make
w512@w512-pc:~/wlan_test/cfg80211$ ls *.ko -alh
-rw-rw-r-- 1 w512 w512 36M 1126 22:44 mac80211.ko

ko安装

由于mac80211_hwsim.ko依赖mac80211.ko, cfg80211.kolibarc.ko, 因此insmod相关的ko的脚本ko_install.sh如下

# /bin/bash

# insmod libarc4.ko
sudo insmod lib_crypto/libarc4.ko

# insmod cfg80211.ko
sudo insmod cfg80211/cfg80211.ko

# insmod mac80211.ko
sudo insmod mac80211/mac80211.ko

# insmod mac80211_hwsim.ko
sudo insmod mac80211_hwsim/mac80211_hwsim.ko radios=2

通过如下命令执行安装文章来源地址https://www.toymoban.com/news/detail-507451.html

chmod +x ko_install.sh

./ko_install.sh

到了这里,关于mac80211/cfg80211模块编译安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编译RHEL 8.7 kernel 并重新安装

    背景:最近遇到一个bug,需要修改 RHEL 8.7 kernel config 的配置参数,然后重新安装该kernel。踩过一些坑,复盘整理。 这是当前运行的内核版本。版本号的不同部分表示以下信息: • 4.18.0: 内核的主版本号、次版本号和发布版本号。 • 477.15.1.el8_8: 补丁级别和发行版本信息。 •

    2024年02月15日
    浏览(34)
  • AutoSAR—Davinci CFG中CAN模块配置(上)

    目录 前面 导入DBC文件 Can Controllers 通用配置 波特率配置 过滤器配置 CanHardwareObjects 最后 上篇文章介绍了一个DBC文件的诞生过程,它是AutoSAR CAN模块配置的前提。 CAN模块的配置是一块很难啃的骨头,作者也是初学,这篇文章只是给大家介绍一个CAN模块在Davinci CFG配置过程中会

    2024年02月11日
    浏览(31)
  • Mac/Windows平台下载编译Chromium

    For Mac: https://chromium.googlesource.com/chromium/src/+/main/docs/mac_build_instructions.md Working with Release Branches 一 、 下载编译工具链: deptool git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=\\\"$PATH:/Users/yumlu/code/depot_tools\\\" (不过为了后续操作方便,可以将其加入到你的 ~/.zsh

    2024年02月16日
    浏览(54)
  • mac 安装jadx反编译工具

    直接执行步骤: 1.创建 jadx目录 2.将存储库克隆到目录 3. 进入 jadx目录 4.执行编译 等待片刻 出现这个就代表安装好了。 5.最后找到 jadx-gui 可执行文件,双击两下就可以成功启动了。 我的路径是: /Users/xxxx/Desktop/jadx/jadx/build/jadx/bin/jadx-gui 可以开始愉快的逆向之旅了。

    2024年02月22日
    浏览(38)
  • Mac OS 源码编译安装Nginx

    访问地址:  https://nginx.org  根据自己的需求下载合适的安装包   首先建个临时目录 nginx-src 并下载所需软件的源码进行配置 这里我们将 nginx 安装在 /Users/summergao/nginx 目录下,prefix 指定的路径请使用绝对路径 如果在执行 configure脚本时报如下错误:   尝试执行 gcc 出如下错误

    2024年02月16日
    浏览(46)
  • ubuntu编译kernel

    使用的是ubuntu 22.04 本来的kernel:5.19.0-38-generic 编译kernel 5.19 使用虚拟机要注意存储空间的变化,避免内存爆掉。 需要先安装配置环境 下载和kernel同版本的源码。 http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-5.19.tar.gz 将自带的配置文件copy到解压的源码的顶层Makefil

    2024年02月02日
    浏览(30)
  • mac python下载安装教程,python在mac上怎么下载

    大家好,小编来为大家解答以下问题,mac python下载安装教程,python在mac上怎么下载,今天让我们一起来看看吧! (一)python安装目录: 1.Mac系统自带的python环境在: Python 2.7.10:/System/Library/Frameworks/Python.framework/Version/2.7 其中,解释器在该目录下的 ./bin/python2.7 2.用户安装的

    2024年02月08日
    浏览(47)
  • Mac下载安装vscode

    先从 https://code.visualstudio.com 下载Mac版vscode。 下载之后在浏览器的下载中点击安装vscode 下载的时候会有提示 有时候还需要配置【安全性与隐私】,即允许App Store和被认可的开发者安装软件 默认进来会要求选择主题,选择自己喜欢的就好,另外还可以设置系统语言,选择之后

    2024年02月08日
    浏览(41)
  • mac下载安装maven

    1.1、官网下载安装包 官网下载链接 1.2、解压文件 下载后通过解压软件解压并移动到自己想存放的目录 这里以 /Users/huangxing/Downloads/tools 目录示例 2.1、Java JDK 依赖 配置 maven 环境变量需要先配置好 JDK 环境 2.2、打开环境变量文件 打开终端窗口,执行如下命令 2.3、配置 maven 环

    2024年02月07日
    浏览(44)
  • Android Kernel 编译与调试指北

    本指北基于以下代码和环境编写 在前一篇文章说过,因为工具链的原因,AOSP的代码不宜太旧,自上一篇文章以来Cuttlefish的功能和文档逐步健全,足以见得google对其的投入程度,所以如果版本不一样会遇见无此参数等这样那样的问题,本文在master上测试通过。 Linux Kernel是An

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包