У меня были похожие проблемы. Для меня мне пришлось скачать какую-то другую прошивку, которую можно было загрузить.
Проверьте выводdmesg | grep firmware
У меня было что-то вроде:
b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
Итак, я проверил старую документацию (, особенно эту часть :" Если вы используете драйвер b43 из ядра 3.2 или новее:"):http://linuxwireless.sipsolutions.net/en/users/Drivers/b43/
Используя описанные здесь шаги, но используя более новую версию микропрограммы из:http://www.lwfinger.com/b43-firmware/
Затем запустите modprobe b43
для перезагрузки драйвера.
Запустив ip link
, я получил интерфейс wlan0
.
Удачи!
Возможно, это не самое элегантное решение, но оно работает.
Он полагается на tee
, чтобы выходные данные цикла записывались в файл и одновременно передавались в zenity
.
Используя приведенный выше фиктивный код, он становится:
array1=( AAA BBB CCC DDD )
curl_cmd() {
curl -s "https://hub.dummyapis.com/products?noofRecords=4&idStarts=1001&useless=$1" | jq.[$2].id | bc
}
i=0
prog=0
for c in ${array1[@]}; do
#updates the text
echo $prog
#updates the percentage
echo "# $c"
#echo the data I'm interested in,
#with a @ for later reference
echo "@ $(curl_cmd $c $i)"
(( prog=prog+30 ))
(( i++ ))
done | tee >(zenity \
--progress \
--title="Title" \
--text="Text" \
--percentage=0 \
--auto-close \
--auto-kill) > /tmp/so-q
data_array=( $(grep @ /tmp/so-q | cut -c 2-) )
Теперь data_array
наконец заполнено
~ $ echo ${data_array[@]}
1001 1002 1003 1004
Другая возможность :Замените в первом примере
data_array[$i]=$(curl... | jq... | bc)
с
curl... | jq... | bc >> /tmp/so-q
и добавьте после кода:
mapfile -t data_array < /tmp/so-q
rm /tmp/so-q
declare -p data_array
Для создания безопасных временных файлов можно использовать mktemp. См. man mktemp
.