Ну, я закончил переустановку пакета bcmwl-kernel-source, как сказал мне chili555. Спасибо за его предложение.
[Side NOTE]: bcmwl-kernel-source был впервые установлен, потому что я использовал другой сетевой адаптер, который хорошо работал с ним на частотах 2,4 ГГц и 5 ГГц. Затем, когда я переключился на новый сетевой адаптер, я установил пакет firmware-b43-installer, как того требовала доступная документация. Позже я удалил bcmwl-kernel-source, чтобы избежать опускания соединений.
Причина, по которой установка пакета bcmwl-kernel-source позволит Ubuntu видеть Wi-Fi-интерфейс 5 ГГц.
Проблема в том, что при установке обоих пакетов bcmwl-kernel-source и firmware-b43-installer соединение Wi-Fi удаляется случайным образом (несколько раз в час в разы). Возможно, существует некоторая параллельная активность, состояние гонки между 2?
Следует отметить, что из этого справочного ответа требуется только firmware-b43-installer. так как идентификатор PCI:
$ lspci -nn -d 14e4:
05:00.0 Network controller [0280]: Broadcom Limited BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
$
Затем в WIRELESS TABLE BROADCOM (Обновлено 18 августа 2017 г.) я нашел эту запись:
14e4:4331 firmware-b43-installer firmware-b43-installer
Предоставление пакета для установки в Xenial 16.04 LTS и 17.10+.
При удалении bcmwl-kernel-source произойдет остановка соединения, однако из моего опыта, если есть проблема с соединением, подобным DNS-серверу, вы можете потерять 5 ГГц, как показано в самом вопросе.
Жаль, что мы не получаем полностью работоспособного драйвера от Broadcom. Этот сетевой адаптер работает безупречно на частотах 2,4 ГГц и 5 ГГц в Windows и Mac OS X. Похоже, что рабочий пакет firmware-b43-installer достаточно старый, чтобы не поддерживать интерфейс 5 ГГц?
эта ссылка answer уже предложил удалить пакет bcmwl-kernel-source, чтобы избежать случайного удаления соединения. Однако, по крайней мере, один пользователь нашел это решение нецелесообразным.
В то же время я написал быстрый сценарий bash с именем check-for-wi-fi-up-and-runnig для восстановления соединения Wi-Fi, как только он отключился: 12]
#!/bin/bash
#
# Check if Wi-Fi is disabled e.g. 'out of range'
# If so quickly re-enable Wi-Fi
# Due to a problem with Broadcom proprietary driver in package firmware-b43-installer
# Script is part of Start-Up programs
# Stored in /usr/local/bin/
# Infinite loop checking every second if Wi-Fi is up and running
while true; do
# https://askubuntu.com/questions/27954/how-can-i-check-internet-connectivity-in-a-console
if [[ $(nmcli -f STATE -t g) != 'connected' ]]; then
# Disable and Re-Enable Wi-Fi as the Wi-Fi is now 'out of range' (disconnected)
nmcli radio wifi off
sleep 3
nmcli radio wifi on
sleep 120
fi
sleep 1
done
Возможно, я смогу отключить sleep 3 до sleep 1, ожидая дальнейшего тестирования.
Итак, в настоящий момент это компромисс между отсутствием соединения, но с переустанавливать пакет драйверов порой или нестабильное соединение с несколькими каплями в час порой ...
Похоже, вы добавили это в конец файла .bashrc в вашем домашнем каталоге:
export PS1="\033[0;33m\h:\W \u\$ \e[m"
Вместо этого вы должны использовать это:
export PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
То есть окружные escape-последовательности, которые говорят терминалу, как отображать текст (в данном случае, выполняющий раскраску) с помощью \[ и \]. Это сообщает оболочке Bash, что они не должны учитываться при определении количества видимых символов, которые вы ввели. (См. Также этот вопрос и тот.)
На самом деле редко бывает полезно visible PS1, кстати. Каждая новая интерактивная оболочка Bash, которая должна использовать вашу подсказку, будет читать из .bashrc и установить для себя приглашение. Поэтому я рекомендую исключить export и просто использовать эту строку:
PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
Хотя это была единственная часть вашего .bashrc, где я заметил проблему, вы можете захотеть для сравнения файла с «оригиналом»:
diff /etc/skel/.bashrc ~/.bashrc
Показывает изменения по сравнению с файлом .bashrc, который будет создан для нового пользователя в вашей системе. должен , который показывает только ваши собственные изменения, но иногда /etc/skel/.bashrc изменяется между версиями Ubuntu, поэтому, если ваша учетная запись пользователя была создана до обновления, тогда могут быть и другие изменения. Обратите внимание, что не все это показывает ошибку! Но это те части, которые я рекомендую вам проверить.
(Вы можете включить вывод этой команды diff в свой вопрос, если вы не знаете, как ее интерпретировать или если какая-то измененная строка содержит что-либо это должно быть написано по-другому.)
Наконец, хотя я подозреваю, что это полностью решит вашу проблему, я должен упомянуть, что обычно поведение, когда вы нажимаете Enter, на самом деле не влияет на это. Чаще всего, опуская \[ и \] просто заставляет оболочку не завершать ваши строки, так что, если вы введете что-то длиннее ширины терминала, оно вернется к началу той же строки. [!d15 ]
Похоже, вы добавили это в конец файла .bashrc в вашем домашнем каталоге:
export PS1="\033[0;33m\h:\W \u\$ \e[m"
Вместо этого вы должны использовать это:
export PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
То есть окружные escape-последовательности, которые говорят терминалу, как отображать текст (в данном случае, выполняющий раскраску) с помощью \[ и \]. Это сообщает оболочке Bash, что они не должны учитываться при определении количества видимых символов, которые вы ввели. (См. Также этот вопрос и тот.)
На самом деле редко бывает полезно visible PS1, кстати. Каждая новая интерактивная оболочка Bash, которая должна использовать вашу подсказку, будет читать из .bashrc и установить для себя приглашение. Поэтому я рекомендую исключить export и просто использовать эту строку:
PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
Хотя это была единственная часть вашего .bashrc, где я заметил проблему, вы можете захотеть для сравнения файла с «оригиналом»:
diff /etc/skel/.bashrc ~/.bashrc
Показывает изменения по сравнению с файлом .bashrc, который будет создан для нового пользователя в вашей системе. должен , который показывает только ваши собственные изменения, но иногда /etc/skel/.bashrc изменяется между версиями Ubuntu, поэтому, если ваша учетная запись пользователя была создана до обновления, тогда могут быть и другие изменения. Обратите внимание, что не все это показывает ошибку! Но это те части, которые я рекомендую вам проверить.
(Вы можете включить вывод этой команды diff в свой вопрос, если вы не знаете, как ее интерпретировать или если какая-то измененная строка содержит что-либо это должно быть написано по-другому.)
Наконец, хотя я подозреваю, что это полностью решит вашу проблему, я должен упомянуть, что обычно поведение, когда вы нажимаете Enter, на самом деле не влияет на это. Чаще всего, опуская \[ и \] просто заставляет оболочку не завершать ваши строки, так что, если вы введете что-то длиннее ширины терминала, оно вернется к началу той же строки.
Похоже, вы добавили это в конец файла .bashrc в вашем домашнем каталоге:
export PS1="\033[0;33m\h:\W \u\$ \e[m"
Вместо этого вы должны использовать это:
export PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
То есть окружные escape-последовательности, которые говорят терминалу, как отображать текст (в данном случае, выполняющий раскраску) с помощью \[ и \]. Это сообщает оболочке Bash, что они не должны учитываться при определении количества видимых символов, которые вы ввели. (См. Также этот вопрос и тот.)
На самом деле редко бывает полезно visible PS1, кстати. Каждая новая интерактивная оболочка Bash, которая должна использовать вашу подсказку, будет читать из .bashrc и установить для себя приглашение. Поэтому я рекомендую исключить export и просто использовать эту строку:
PS1="\[\033[0;33m\]\h:\W \u\$ \[\e[m\]"
Хотя это была единственная часть вашего .bashrc, где я заметил проблему, вы можете захотеть для сравнения файла с «оригиналом»:
diff /etc/skel/.bashrc ~/.bashrc
Показывает изменения по сравнению с файлом .bashrc, который будет создан для нового пользователя в вашей системе. должен , который показывает только ваши собственные изменения, но иногда /etc/skel/.bashrc изменяется между версиями Ubuntu, поэтому, если ваша учетная запись пользователя была создана до обновления, тогда могут быть и другие изменения. Обратите внимание, что не все это показывает ошибку! Но это те части, которые я рекомендую вам проверить.
(Вы можете включить вывод этой команды diff в свой вопрос, если вы не знаете, как ее интерпретировать или если какая-то измененная строка содержит что-либо это должно быть написано по-другому.)
Наконец, хотя я подозреваю, что это полностью решит вашу проблему, я должен упомянуть, что обычно поведение, когда вы нажимаете Enter, на самом деле не влияет на это. Чаще всего, опуская \[ и \] просто заставляет оболочку не завершать ваши строки, так что, если вы введете что-то длиннее ширины терминала, оно вернется к началу той же строки.