bt_coex_active=N 和 bt_coex_active=1 之间的区别

bt_coex_active=N 和 bt_coex_active=1 之间的区别

bt_coex_active=N和有什么区别bt_coex_active=1

答案1

除了 Rinzwind 的精彩回答之外,我还将添加一些额外的细节。

bt_coex_active=N 和 bt_coex_active=1 之间的区别在于,其中一个可能不正确,也可能不正确,因此无效。

首先介绍一些背景知识。可用于更改内核驱动程序行为的参数可以在 modinfo 中找到。例如,以下是从modinfo iwlwifi英特尔无线设备的常用驱动程序中找到的参数:

parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm:           amsdu_size:amsdu size 0: 12K for multi Rx queue devices, 4K for other devices 1:4K 2:8K 3:12K (default 0) (int)
parm:           fw_restart:restart firmware in case of error (default true) (bool)
parm:           antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)
parm:           nvm_file:NVM file name (charp)
parm:           d0i3_disable:disable d0i3 functionality (default: Y) (bool)
parm:           lar_disable:disable LAR functionality (default: N) (bool)
parm:           uapsd_disable:disable U-APSD functionality bitmap 1: BSS 2: P2P Client (default: 3) (uint)
parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)
parm:           fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)
parm:           d0i3_timeout:Timeout to D0i3 entry when idle (ms) (uint)
parm:           disable_11ac:Disable VHT capabilities (default: false) (bool)
parm:           remove_when_gone:Remove dev from PCIe bus if it is deemed inaccessible (default: false) (bool)

因此,我们可以通过调用参数来改变驱动程序的行为;在您的情况下:

sudo modprobe -r iwlwifi
sudo modprobe iwlwifi bt_coex_active=N

我们可以通过编写一个 conf 文件来使该参数永久生效。驱动程序 iwlwifi 已经有一个必需的文件,因此我们只需将参数添加到其中即可:

sudo -i
echo "options iwlwifi bt_coex_active=N" >> /etc/modprobe.d/iwlwifi.conf
exit

> 符号表示写入文件并在需要时覆盖。>> 表示附加到文件。对于 iwlwifi,我们需要“附加”。

但是等等!我们怎么知道它应该是 Y 还是 N 还是 1 还是 0?第一个线索是,该参数被列为可通过布尔表达式 (bool) 进行操作,而不是整数 (int),0 或 1。其次,我们可以通过加载驱动程序轻松找出驱动程序的期望:

sudo modprobe iwlwifi

然后检查参数值:

cat /sys/module/iwlwifi/parameters/bt_coex_active

如果驱动程序加载时没有任何参数,它将加载驱动程序的默认值;在本例中为 Y。然后我们知道,在这种情况下,“布尔值”表示 Y 或 N。

驱动程序是否接受 1 或 0 来替代 Y 和 N?同样,我们可以通过简单尝试轻松检查:

sudo modprobe -r iwlwifi
sudo modprobe iwlwifi bt_coex_active=0
cat /sys/module/iwlwifi/parameters/bt_coex_active

结果是 N,所以我们知道驱动程序被写入接受 Y 或 N 或 1 或 0。

警告:bt_coexist 参数在其他几个非英特尔驱动程序中可用。有些驱动程序可能或不可能交替接受 Y 或 N 或 1 或 0。唯一可以确定的方法是按上述方法进行验证。

答案2

bt_coex_active

是蓝牙的选项,也是无线驱动程序的一部分(iwlegacy;Intel PRO/Wireless 3945 和 WiFi Link 4965 设备)。

它用于同时启用 wifi 和蓝牙。但并不总是有效。

  • 0 表示不活动(或false
  • 1 表示活动(或true

有效选项列于

/sys/module/[module name]/parameters/[optionname]

以使用 iwlwifi 为例:

/sys/module/iwlwifi/parameters 

它显示bt_coex_active: Y。所以 N 或 0 将处于非活动状态,而 Y 或 1 将处于活动状态。

相关内容