首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在插入外部USB wifi适配器时自动禁用内部wifi适配器,以及在拔出USB适配器时自动启用它?

如何在插入外部USB wifi适配器时自动禁用内部wifi适配器,以及在拔出USB适配器时自动启用它?
EN

Ask Ubuntu用户
提问于 2022-08-15 01:13:31
回答 1查看 322关注 0票数 1

当我插入外部USB wifi收音机时,我目前通过手动执行以下操作来关闭内部收音机:

代码语言:javascript
复制
sudo modprobe -r ath9k

注意:“ath9k”是内部wifi适配器的驱动程序。

当我拔掉外部USB接口时,我会手动执行以下操作,从而打开内部收音机:

代码语言:javascript
复制
sudo modprobe ath9k

它的工作原理是完美的,但我想学习如何使用计算机来完成这样重复的任务。

我意识到,即使这两台收音机都在工作,计算机也能正常工作,但只要可行,我就会尽量减少EMF的暴露和污染。

多亏了“特伦斯”的帮助,这是我迄今为止所创造的。“添加”规则很好用!但是“删除”规则还没有起作用。

  1. 创建并测试了启用内部wifi设备的bash脚本
  2. 创建并测试禁用内部wifi设备的bash脚本。
  3. 将两个bash脚本文件放入/usr/bin
  4. 外接USB无线设备
  5. 运行:ip link show
  6. 复制设备的MAC地址(例如。00:c0:ca:b1:4a:84)
  7. 创建具有以下内容的文本文档:

ACTION==“添加”,ATTRS{address}=="00:c0:ca:b1:4a:84“\,RUN+=”/usr/bin/disableinterlinwifi.sh“ACTION==”删除“\,ATTRS{address}=="00:c0:ca:b1:4a:84”,RUN+=“/usr/bin/enable内在wifi.sh”

  1. 将文件保存为/etc/udev/ file .d/99-wifi.swapper.Rule
  2. sudo udevadm control --reload-rules && udevadm trigger
  3. sudo udevadm trigger

“添加”规则有效,但“删除”规则无效。

我运行了udevadm monitor --subsystem-match=usb,然后插入了外部的USB设备。显示的sysfs路径是: /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0

接下来我运行了udevadm test /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0

以下是测试的相关结果:

读取规则文件:/etc/udev/rues.d/99-wifi.swapper.Rules DEVPATH=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0 DEVTYPE=usb_interface DRIVER=mt76x2u PRODUCT=e8d/7612/100 TYPE=0/0/0接口=255/255/255 ACTION=add SUBSYSTEM=usb ID_VENDOR_FROM_DATABASE=MediaTek Inc. ID_PATH=PCI-0000:00:00:14.0-USB0-0:1.0 ID_PATH_TAG=pci-0000_00_14_0-usb-0_4_1_0 .MM_USBIFNUM=00 USEC_INITIALIZED=4133499389 run:'kmod加载-0_4_1_0卸载模块索引卸载链接配置上下文。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-08-16 20:38:23

以下是对我起作用的东西(非常感谢@terrance的帮助):

  1. 创建一个bash脚本,启用内部wifi设备,并将其保存为usr/bin/enable内在wifi.sh
  2. 创建一个bash脚本,禁用内部wifi设备,并将其保存为usr/bin/disable内在wifi.sh
  3. 测试这两个脚本是否具有适当的功能
  4. 插入外部USB wifi设备
  5. udevadm monitor --subsystem-match=usb --environment --udev
  6. 移除USB设备
  7. 注意由udevadm监视器生成的唯一标识符(例如: PRODUCT=e8d/7612/100)
  8. 创建具有以下内容的文本文档:

ACTION==“添加”\,ENV{积}==“e8d/7612/100”\,RUN+=“/usr/bin/disableinewifi.sh”删除“\,ENV{PRODUCT}==”\,e8d/7612/100“\,RUN+=”/usr/bin/enableinteritwifi.sh“

  1. 将文本文件保存为/etc/udev/ file .d/99-wifi.swapper.Rule
  2. sudo udevadm control --reload-rules && udevadm trigger
  3. sudo udevadm trigger (现在它应该能工作)
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1423621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档