Giải quyết vấn đề kết nối wifi; Tại sao các bản sửa lỗi của tôi lại làm việc?


15

Tôi có một máy tính xách tay Samsung, với Ubuntu 15.04 được cài đặt, nâng cấp xuống từ 13.10 nhưng đó không phải là vấn đề.

Tôi đã kết nối với vô số mạng wifi theo thời gian mà không gặp sự cố ... Đó là, cho đến vài ngày trước. Tôi đang tạm thời làm việc tại địa điểm của khách hàng và không thể kết nối với bất kỳ mạng wifi nào cả. Tất cả các mạng đã được nhìn thấy, tôi chỉ không thể thiết lập kết nối ...

Không ai khác ngoài tôi gặp khó khăn, tôi biết vấn đề là ở phía tôi.

Thẻ của tôi là thế này:

02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)

Nó sử dụng trình điều khiển iwlwifi. Và đây là những gì modinfobáo cáo như là tùy chọn:

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_8K:enable 8K amsdu size (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:           wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable (default: 1) (int)
parm:           nvm_file:NVM file name (charp)
parm:           uapsd_disable:disable U-APSD functionality (default: Y) (bool)
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)

Bằng một linh cảm thuần túy, tôi đã sửa đổi tệp modprobe.d thích hợp để thêm:

options iwlwifi bt_coex_active=0

và đột nhiên tôi không gặp vấn đề gì khi kết nối nữa ...

Tại sao điều này làm việc? Tùy chọn này làm gì?

Câu trả lời:


15

Vấn đề kết nối wifi đã được giải quyết, tại sao "sửa chữa" của tôi lại hoạt động?

Khi bt_coex_active được bật, nó sẽ ngăn chặn nhiễu bluetooth / không dây. Khi bị tắt, nó sẽ cho phép tăng nhiễu / bluetooth.

  • bt_coex_active=1 (đúng) ngăn chặn nhiễu bluetooth / không dây.
  • bt_coex_active=0 (sai) cho phép tăng nhiễu bluetooth / không dây.

Cách thức hoạt động của tính năng này là khi bật, bộ thu phát wlan sẽ tránh truyền phát cùng lúc với bộ chuyển đổi bluetooth.

Trong một số triển khai lỗi, nó nghĩ rằng Bluetooth luôn truyền phát toàn bộ do đó "tắt tiếng" hoàn toàn mạng WLAN, do đó, tắt nó sẽ cho phép mạng WLAN hoạt động trở lại.


Sự kết hợp Bluetooth 802.11

Một thiết bị 802.11 và Bluetooth có thể giao thoa với nhau khi thiết bị 802.11 hoạt động trên băng tần 2,4 GHz. Tất cả các thiết bị Bluetooth hoạt động ở băng tần 2,4 GHz. Phần này ghi lại các chi tiết kỹ thuật liên quan đến nguyên nhân gây nhiễu và giải pháp được triển khai trong trình điều khiển, ngăn xếp 802.11 và các cải tiến có thể có trong tương lai.

...

Giao thoa

Mỗi kênh 802.11 sau đó tương đương với 20 kênh Bluetooth. Khi giao tiếp được bật trên thiết bị Bluetooth, bạn sẽ bị nhiễu khi thiết bị Bluetooth nhảy vào bất kỳ trong số 20 kênh Bluetooth tương đương với kênh 802.11 của bạn. Ngay cả khi thiết bị Bluetooth nhảy ở tốc độ tần số tối đa cho phép là 1600 bước nhảy mỗi giây, chỉ có 79 kênh khả dụng, với tốc độ này, mỗi kênh sẽ được sử dụng khoảng 20 lần trong một giây.

Nguồn 802.11 cùng tồn tại


Trích xuất mã nguồn:

/*
 * set bt_coex_active to true, uCode will do kill/defer
 * every time the priority line is asserted (BT is sending signals on the
 * priority line in the PCIx).
 * set bt_coex_active to false, uCode will ignore the BT activity and
 * perform the normal operation
 *
 * User might experience transmit issue on some platform due to WiFi/BT
 * co-exist problem. The possible behaviors are:
 *   Able to scan and finding all the available AP
 *   Not able to associate with any AP
 * On those platforms, WiFi communication can be restored by set
 * "bt_coex_active" module parameter to "false"
 *
 * default: bt_coex_active = true (BT_COEX_ENABLE)
 */

Nguồn: iwl-core.c


đọc thêm


Tôi bối rối khi bạn nói rằng giá trị 0 sẽ làm tăng nhiễu, bởi vì đó chính xác là những gì wiki không dây trên kernel.org gợi ý để giải quyết vấn đề nhiễu: Wireless.wiki.kernel.org/en/users/Drivers/ Sầu ; tui bỏ lỡ điều gì vậy?
defvol

1
@rodowi Đọc đoạn văn bắt đầu "Trong một số triển khai lỗi,"
DavidPostill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.