关于
我的公众号
QQ群:934149291
请喝杯饮料微信:
支付宝:
关于usb_modeswitch
关于usb_modeswitch背景在Window上,我们在使用一些外接的USB设备(比如USB网卡,扩展坞等等)时,第一次插上去,会识别成一个存储设备或是模拟CD-ROM,打开该设备,里面是自带的该设备的Windows驱动程序,安装完驱动后,该设备就可以正常使用该设备的功能了。在Linux系统中,这类设备同样最初可能被识别为大容量存储设备(所以有时候会觉得莫名其妙?插上去的明明不是一个U盘或者存储卡,还以为是个复合设备)。为了使其以正确的模式工作(例如,作为无线网卡或调制解调器),需要使用 usb_modeswitch 命令来改变其工作模式。
usb_modeswitchusb_modeswitch 是一个Linux下用于控制具有多种模式的USB设备的模式切换工具。它主要用于那些在首次连接到电脑时被识别为存储设备(如U盘),但实际上具有其他功能(如USB调制解调器)的USB设备。这些设备通常自带Windows驱动程序,存储在设备的模拟CD-ROM中。
使用这个命令时,通常需要指定设备的供应商(vendor)和产品(product)代码。例如,对于某些USB无线网卡,可以使用如下命令: ...
RISC-V之SBI及NEMU环境
RISC-V之SBI及NEMU环境背景前段时间,准备开始我的riscv之旅,进行2篇开篇:
《基于QEMU搭建RISC-V的Linux环境》https://mp.weixin.qq.com/s/F6lyqPhng21qsUlj2saShw
《RISC-V开篇及特权模式等一些概念》https://mp.weixin.qq.com/s/9RTFS4whcybstWQJW1FGTA
后面因为种种原因,一直没有怎么推进。最近在电子发烧友论坛书籍评测活动中,看到有RISC-V相关的书籍在评测:《RISC-V体系结构编程与实践(第二版)》,于是抱着侥幸的心理参加了,第一次参加这种书籍或开发板评测活动,没想到居然中了,缘分真的挺奇妙。
书到了以后,大概地通读了一遍,本书不仅介绍了RISC-V体系结构的一些基础知识(架构体系结构、指令集、编译器、链接器、中断、内存管理、虚拟化等等),而且更突出动手实践,基于QEMU及香山模拟器(NEMU)设置了一系列的实验。非常适合我这种对RISC-V一知半解的人,不仅有基础介绍,而且通过动手实践,不会枯燥乏味,更能加深对RISC-V的理解。最开始,我也是打算 ...
Linux之deb包中的debian目录
Linux之deb包中的debian目录deb包中有一个叫做 debian 的子目录。这个目录中存放着许多文件,这些文件决定了软件包的一些行为。
必须文件debian 目录中最重要的文件当属 control, changelog, copyright, 以及 rules, 所有的软件包都必须有这几个文件。
controlcontrol 文件中包含了软件包的元数据,例如软件包的名称、版本、维护者、依赖关系等。这些变量供 dpkg、dselect、apt-get、apt-cache、aptitude 等包管理工具进行管理时所使用,均在 Debian Policy Manual, 5 “Control files and their fields” 中被定义。
下面是一个 control 文件的简单例子:
Source: gentoo
Section: unknown
Priority: optional
Maintainer: Josip Rodin <joy-mg@debian.org>
Build-Depends: debhelper (>=10)
Stan ...
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添加操作时,添加的源码 ...