关于
我的公众号
QQ群:934149291
请喝杯饮料微信:
支付宝:
Linux之DKMS详解
Linux之DKMS详解背景上一篇简单介绍了下DKMS:https://z-dd.online/2024/08/30/Linux%E4%B9%8BDKMS/这篇详细介绍下整个DKMS相关的文件及流程。
DKMS相关文件相关文件及路径:
/etc/dkms目录
/etc/dkms/template-dkms-mkbmdeb: 二进制deb包配置模板,用于创建DKMS模块的二进制deb包,用户可自定义该配置,方式同下。
/etc/dkms/template-dkms-mkdeb: deb包配置模板,用于创建DKMS模块的deb包,可被用户代码目录下自定义的模板配置取代:/usr/src/<module>-<module-version>/<module>-dkms-mkdeb。
/etc/dkms/template-dkms-mkdsc: 源码deb包配置模板,与上面一个的脚本内容一致,创建的符号链接指向template-dkms-mkdeb,
/etc/dkms/framework.conf: DKMS框架通用的配置文件,可以修改一些默认配置。
...
蓝牙6.0新特性浅析
蓝牙6.0新特性浅析蓝牙6.0的核心规范包含了许多新特性和改进,以下是一些主要的新特性:
14.1 New featuresSeveral new features are introduced in v6.0. The major areas of improvement are:• Channel Sounding, including Channel Sounding HCI Updates• LL Extended Feature Set• Decision-Based Advertising Filtering• Enhancements for ISOAL• Monitoring Advertisers• Frame Space Update
信道探测(Channel Sounding):蓝牙6.0引入了信道探测技术,实现了高精度的双向测距。这项技术基于相位的测距(Phase-based Ranging, PBR)和往返时间(Round-Trip Time, RTT)测量,能够在厘米级精度内定位设备,显著提升寻找丢失设备的体验。信道探测技术不仅提高了定位精度,还增加了 ...
Linux创建虚拟WLAN接口并测试
Linux创建虚拟WLAN接口并测试创建虚拟WLAN接口主要通过 mac80211_hwsim内核模块实现,该模块可以模拟多个无线网卡设备,并支持创建虚拟的WLAN接口。
mac80211_hwsim简介
mac80211_hwsim is a Linux kernel module that can be used to simulatearbitrary number of IEEE 802.11 radios for mac80211. It can be used totest most of the mac80211 functionality and user space tools (e.g.,hostapd and wpa_supplicant) in a way that matches very closely withthe normal case of using real WLAN hardware. From the mac80211 viewpoint, mac80211_hwsim is yet another hardware driver, i.e. ...
Wi-Fi HaLow简介
Wi-Fi HaLow简介简介最近在研究WIFI新技术新特性时,发现了一个叫 Wi-Fi HaLow 的东东,感觉挺有意思挺有前景的,所以就来写一篇博客来记录一下。
Wi-Fi HaLow是一种基于IEEE 802.11ah协议的无线技术规范,它与传统Wi-Fi的不同之处在于,Wi-Fi HaLow运行在1GHz以下的频率,而传统Wi-Fi则使用2.4GHz、5GHz和6GHz的频率。Wi-Fi HaLow 这种低频段特性使其能够提供更长的连接距离和更好的穿透能力,提供长达一公里的连接范围,在视距连接的情况下甚至更远。然而,由于使用较低频率,其信道较窄,带宽较低,导致数据传输速率相对较慢。即便如此,Wi-Fi HaLow仍能在较远距离提供150Kbps的数据传输速率,在较近距离提供高达86.7Mbps的速率。
Wi-Fi HaLow不是传统Wi-Fi标准的替代品,而是旨在补充现有的Wi-Fi协议。它的运行频率在美国为900Hz,属于免许可频谱的一部分,因此每个人都可以免费使用。不过,根据全球可用的亚千兆赫频率,Wi-Fi HaLow可能会在其他国家的不同频率上运行。
Wi-Fi HaL ...
Linux Kernel之Backports Project
Linux Kernel之Backports Project简介Backports Project:
The Backports Project enables old kernels to run the latest drivers.
官网:https://backports.wiki.kernel.org/index.php/Main_Page
Backports Project始于2007年,当时名为compat-wireless。随着该项目的范围扩大到不仅仅是无线网络驱动程序,它被更名为compat-drivers。现在,该项目简称为 backports。
目前支持的子系统:
Ethernet
Wireless
Bluetooth
NFC
ieee802154
Media
Regulator
每个backports版本都已针对所有支持的内核进行了测试编译,最早的版本是 3.0。
Backports Project支持2种工作流模式:
内核集成模式(kernel integration mode)
future kernel source tree and older ...
Linux核外通过MDIO访问Phy
Linux核外通过MDIO访问Phy前言调试以太网(MAC+PHY)网络问题,我们经常需要获取或配置PHY的寄存器,但又不想一次次去修改内核,在Linux应用层怎么简单方便的去操作PHY的寄存器呢?
众所周知,MAC+PHY的组合下,主要是通过MDIO接口去操作PHY的寄存器,所以也就变成了怎么去操作MDIO。
一般有以下方式:
通过MDIO暴露到核外的接口,比如设备节点,或寄存器直接映射的内存地址。
通过通用的ioctl访问接口。
以上都是要基于SoC的MAC驱动支持才行,特别是第一点,需要对Soc的MAC比较熟悉,而且因SoC厂家不同而差异很大。
这里重点看看第二种通用的方式。
使用ioctl接口访问实现主要是通过ioctl操作以下几个接口来实现对PHY寄存器的读写操作:
SIOCGMIIPHY:read register from the current PHY.
SIOCGMIIREG:read register from the specified PHY.
SIOCSMIIREG:set a register on the specified PHY.
原理一般 ...
千兆以太网接口之RGMII和SGMII
千兆以太网接口之RGMII和SGMII以前,对于千兆以太网,还停留在RGMII接口上,最近才接触到SGMII,对SGMII不是很了解,所以就想对比看看。
RGMII:(Reduced Gigabit Media Independent Interface)
SGMII:(Serial Gigabit Media Independent Interface)
RGMII和SGMII在传输方式、引脚、时钟频率、电气特性等方面都有所不同,下面是一些简单的对比。
传输方式:
RGMII采用并行传输方式,使用8个数据信号线(TXD [0:3]、RXD [0:3])进行数据传输。
SGMII采用串行传输方式,使用差分对信号进行数据传输。
速率:
RGMII支持最高千兆位速率(1 Gbps),并且可以向下兼容100 Mbps和10 Mbps速率。
SGMII同样支持最高千兆位速率(1 Gbps),也可以向下兼容100 Mbps和10 Mbps速率。
引脚:
RGMII需要12个引脚(RGMII并行接口)来实现双向通信。
SGMII使用2对数据差分信号线(RX,TX)和2对时钟差分信号线(RX ...
Linux之DKMS
Linux之DKMSDKMS简介DKMS(Dynamic Kernel Module Support)是由 Dell 公司开发的一套内核模块管理框架,用于在 Linux 操作系统中动态构建和维护内核模块,已经被大多数 Linux 发行版采用。
dkms - Dynamic Kernel Module Support
dkms is a framework which allows kernel modules to be dynamically built for each kernel on your system in a simplified and organized fashion.
官网:https://github.com/dell/dkms
在 DKMS 中,每个内核模块都被视为一个源代码包,并通过一个称为 dkms.conf 的配置文件进行管理。该配置文件指定了源代码的位置、编译和安装模块所需的命令,以及其他必要的信息。当内核更新时,DKMS 会自动重建和安装内核模块,以确保它们与新内核版本兼容。
DKMS配置文件当执行前面的add添加操作时,添加的源码 ...
Linux之手动创建WIFI热点
Linux之手动创建WIFI热点背景之前介绍了Linux下使用无线网卡作为STA手动连接WIFI:Linux手动连接配置wifi
今天介绍下Linux下怎么手动建立AP热点。主要分为2大步骤:
hostapd建立AP热点
DHCP服务分配IP
前提:首先要无线网卡是否支持AP模式使用如下命令,查看网卡属性:
iw list
如果Supported interface modes选项包含 AP 的关键字,则表示支持 AP 模式。如:
Supported interface modes:
* IBSS
* managed
* AP
* P2P-client
* P2P-GO
* P2P-device
hostapdhostapd 和 wpa_supplicant是兄弟,都是由 w1.fi项目共同维护。
hostapd: IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/WPA3/EAP/RADIUS Authenticator
官网:https://w1.fi/hostapd/
hostapd is a user s ...
Linux之WOL网络唤醒
Linux之WOL网络唤醒WOL简介
WOL(Wake-on-LAN)技术是一种计算机局域网唤醒技术,其主要功能是使处于关机或休眠状态的计算机能够通过局域网(通常是以太网)被远程唤醒并恢复到运行状态。具体来说,当一台计算机进入休眠或关机状态时,可以通过局域网中的另一台设备发送特定的网络广播包(magic魔术包)来触发该计算机的唤醒过程。
魔术包(Magic Packet)组成魔术包是一个UDP广播数据包,包含特定的格式和内容。它主要由以下几个部分构成:
固定前缀: 6个字节的0xFF。
目标主机MAC地址: 该地址需要重复多次,通常为16次。
密码(可选): 4-6字节的密码。
FF FF FF FF FF FF FF
MAC 地址 × 16
4-6字节的密码(可选)
Linux下使用WOL能使用WOL的主要前提条件:
硬件支持: 目标主机的网卡和主板必须支持WOL功能!
网络环境: 网络环境应允许通过局域网或互联网进行数据传输,有时还需要适当的路由和防火墙规则来确保数据包能够正确到达目标主机!最简单的环境是操作机器与目标机器在同一网段。
注意:有线连接通常比无线 ...
Linux Wireless之80211(nl80211, cfg80211, mac80211)
Linux Wireless之80211(nl80211, cfg80211, mac80211)前言在Linux无线子系统中,cfg80211、mac80211和nl80211是三个关键的组件,它们共同工作以实现对802.11设备的配置和管理。cfg80211负责内核空间的通用API,mac80211负责具体的MAC层实现,而nl80211则作为用户空间与内核空间之间的桥梁,用于配置管理和通信。
nl80211
nl80211是介于用户空间与内核空间之间的 API ,可以算是 cfg80211 的前端,也会生成 “事件” (events) 信息。该模块依赖 netlink 协议来在两个空间进行信息交互,通过socket接收上层命令,执行对应函数进行配置管理网络接口。Netlink 是一个 Linux 中的 socket 类型,用于在内核与用户空间之间传递事件。
nl80211 is the new 802.11 netlink interface public header. Together with cfg80211 it is intended to replace Wir ...