логин: 
<< предыдущая заметкаследующая заметка >>
04 июня 2016
Кривые костыли для wlan0 Banana BPI-R1

Скучный пост для айтишников, сразу предупреждаю. Пару месяцев назад я рассказывал, что в качестве роутера у меня работает системная платка Banana BPI-R1, и только глючок у нее с WiFi - иногда виснет. К сожалению, колдовство и компиляция драйверов не помогли - вайфай как вис, так и виснет, иногда раз в сутки, иногда раз в несколько дней.

Питание платы было заменено на прекрасное - по питанию нареканий нет. Возможно, портят дело какие-то другие устройства на USB-шинах, у меня их, увы, много висит. Почему-то контроллер WiFi интегрирован на плате, но видится как USB-устройство. Контроллер называется 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter. В интернете встречаются упоминания о плохой работе RTL8192CU с hostapd, но я пока не нашел эффективного средства, кроме как перегрузить сервер.

Потом по совету Кирилла я стал просто делать такие махинации:

/sbin/ifconfig wlan0 down
/sbin/ifconfig wlan0 up
/usr/sbin/service hostapd restart

Этого оказалось достаточно, чтобы снова поднять WiFi без полной перезагрузки. Поизучав логи, я понял, что во-первых, ничего в логах не смыслю. Во-вторых, когда WiFi зависает, а устройства (мобильник, например) пытается раз за разом соединиться, чтобы получить адрес, в /var/log/daemon.log сыплются такие строки:

May 29 12:29:46 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:29:50 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:29:51 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:29:55 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:29:56 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:30:00 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:30:01 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:30:05 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:30:06 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:30:11 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:30:11 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated
May 29 12:30:15 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: disassociated
May 29 12:30:17 banana hostapd: wlan0: STA 3c:40:8e:75:b9:c3 IEEE 802.11: associated

Поскольку зависания сетки задолбали всех (меня, домочадцев, гостей дома, а также погодную станцию, висящую за окном), а решения проблемы не видно, то я принял решение построить костыли и просто выполнять перезапуск wlan0 при появлении в логе признаков зависания. К сожалению, shell-скрипты на основе tail -f | grep -q мне соорудить не удалось в силу нетривиальности задачи. Поэтому пришлось взять ненавистный мне язык C и написать демон-костыль. Выкладываю, может кому-то пригодится. Запускается от рута при старте системы:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define BUFLEN 2048
#define REREAD 50
#define REREADC 5000

void LLOG(char* s) { printf("%s\n",s); }

int main(int argc, char* argv[]) {
int i,kel=0,cn=-1,cn2=-1;
char openflag=0, *result, *msg = malloc (BUFLEN+1);
const char *str1="IEEE 802.11: associated";
const char *str2="IEEE 802.11: disassociated";
const char *logfile="/var/log/daemon.log";
const time_t timer = time(NULL); sprintf(msg,"+++ Start: %s",ctime(&timer)); LLOG(msg);
FILE *fp;

while(1) {
if(cn<0||cn2<0) { LLOG("+++ Reload");
if(openflag) { fclose(fp); openflag=0; LLOG("+++ Close file"); }
if((fp=fopen(logfile,"r"))==NULL) { sprintf(msg,"+++ %s+++ error open: %s",ctime(&timer),logfile); LLOG(msg); sleep(2); continue; } // открыть не удалось
openflag=1; // открыть удалось
fseek(fp,0L,SEEK_END); // в конец файла
cn=REREAD; cn2=REREADC;
}
cn2--;
if(!openflag || NULL==fgets(msg,BUFLEN,fp)) { sleep(1); continue; } // прочесть не удалось - и ладно
LLOG(msg); // что прочли
cn--;

for(i=0;i<BUFLEN;i++) { if(!msg[i] ||msg[i]==0x0d||msg[i]==0x0a) break; printf("%c",msg[i]); } printf("\n");

if(NULL!=strstr(msg,str1)) { kel=1; continue; } // найдена первая строка
if(NULL!=strstr(msg,str2)) { if(kel==1) { LLOG("*** CATCH ***");

system("/sbin/ifconfig wlan0 down"); sleep(1); // опустить wlan0
system("/sbin/ifconfig wlan0 up"); sleep(1); // поднять wlan0
system("/usr/sbin/service hostapd restart"); // перестартовать hostapd
system("mpg123 /home/audio/samples/jitie-moe.mp3"); // ну и сыграть звук в колонки

} kel=2; cn=-1; }
else kel=0;
}
}

Второй день зависаний нет. Один раз тихо вздохнуло в коридоре "Житие-мое" (сэмпл из "Иван Васильевич меняет професссию") - значит, отработало. В остальном Banana BPI-R1 показала прекрасные результаты, поскольку основная работа сего квартирного сервера (помимо чисто серверных и архивных задач) - быть шлюзом и хабом на 5 портов Ethernet. Это лучший сервер, что был у меня - надежный, компактный, малопотребляющий и абсолютно бесшумный. В ближайших планах - привесить к нему двухстрочный дисплей и кучу электроники к GPIO.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
Страницы, которые привлекли мое внимание за последние дни, рекомендую:
2017-11-22 В июне 1982
архив ссылок
Оставить комментарий
Windows Firefox
 Москва
4
0
Johny
Неужели не жалко тратить своё время на написание 101 костыля , да еще на C ?

в такой ситуации есть вполне очевидное решение - спокойно воткнуть какое-нибудь другое устройство с wifi , в том числе возможно повесив его поближе к пользователям.

после чего уже вдумчиво и неторопливо решать проблему с встроенным , переименовав его в какое-нибудь lleo-debug-wifi

Судя по сообщению проблема может быть и не с драйвером, а с работой hostapd ( сервиса wifi точки )
хотя думаю проще нагуглить. ( сам не сталкивался )


я уже не говорю про то, что аналог это программы на баш пишется в разы быстрее в одну строчку

tail /var/log/messages -n 2 | grep -sq disassociated && grep -sq " sassociated" && ifdown wlan0 && sleep 1 && ifup wlan0 && sleep1 && service hostapd restart

а еще, возможно, что данную проблему снимет и только последняя из 3 приведенных команд.
а причину сбоя надо найти, включив повышенный уровень отладки лога в настройках hostapd
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Нет, сама перезагрузка hostapd проблему, как я понял, не снимает.
Windows Firefox
 Киев
2
0
Кондыбас (kondybas)
Проблема в том, что 8192 работает через усб-хаб, выполняющий роль системной шины, проводной адаптер заведен туда же, как и все усб-порты. А поскольку сам хаб сделан через пень-колоду и мультиплексирует устройства через "Ж" большое, то, при большой активности усб-устройств, некоторые из них могут получать таймаут и требовать ресета.

На первой распберри В+, при подключенных одновременно проводной сети, реалтеке 5370, внешнем винту, флешке и вебкамере, все устройства начинают жутко тормозить. На банане те же яйца в той же проекции. Но во фре devd, хотя бы, ловит отвал устройства, и выполняет рестарт ассоциированых сервисов при новом подключении.
Windows Safari Chrome
 Домодедово
0
0
id
Видимо, проблема - банально в кривой реализации питания USB шины.
Для начала - не побояться, и припаять конденсатор мкФ эдак на 1000 на питание WiFi.
Windows Firefox
 Киев
0
0
Кондыбас (kondybas)
Проблема не в питалове, а в том, что усб-хаб просто не тянет такую нагрузку (не в электрическом смысле, а по прерываниям) бай дезигн. Вернее, он как-то ее тянет, но некоторые устройства хотят быстрого отклика от хоста. А когда не получают - считают, что хост отвалился, и ресетятся вотчдогом.

У интеля, скажем, усб-хозяйство выглядит, как 2-3 отдельных хост-контроллера. А у распберри/бананы контроллер всего один, и туда заведены не только розетки под внешние девайсы, но и набортовые проводные/беспроводные сетевухи.
Linux Opera
 Москва
0
0
Leonid Kaganov
А какой выход? Ставить на Банану Фрю? Или убирать WiFi на отдельное Ethernet-подключение, а про внутренний забыть?
Windows Safari Chrome
 Израиль
0
0
Пашка
а ещё лучше вырвать всё это богомерзкое лего из стены и поставить решение из коробки.
Linux Opera
 Москва
1
0
Leonid Kaganov
К сожалению, не создана пока такая коробка, которая будет услужливо открывать дверь, держать home.lleo.me, хранить 2Тб архивов, говорить голосом в разные пары колонок и еще куча функций.

Banana все мои задачи выполняет прекрасно, и адекватной замены ей нет и не предвидится - пока не создано в мире подобное железо: все прочие решения либо не дотягивают по возможностям, либо превышают по цене, либо по питанию, объему и шуму. А роутер WiFi - это в самом конце списка ее обязанностей. Большая часть домашней техники подключена к ней по Ethernet, а на "другом конце зоны влияния Banana" к ней подцеплен еще и отдельный WiFi роутер по кличке Tony, правда до моей квартиры 10 метров он почти не добивает, поэтому использую родной WiFi с костылями.
Windows Firefox
 Москва
2
1
Johny
Не нужно пытатся запихнуть все в одну коробку , в этом нету никакого смысла.
нормальный gpio-расширитель на 12 линий собирается на базе китайского клона arduino nano за 300р.
И ставится в распаечную коробку в том месте квартиры где это удобнее.

Банана же явно слабовата и ущербна.
Я бы ее как нечто большее, чем "адаптер wifi с колонкам совмещенный с интерфейсом к дверному контроллеру " не использовал бы.

вот гаджеты по теме
( для них всех есть море открытых прошивок, позволяющих цеплять их по сети для исполнения разных функций )

беспроводной модуль для разработки
http://www.aliexpress.com/item/ESP8266-serial-WIFI-Witty-clo[...]

( сам по себе процессор , wifi , флешка и gpio в одном )

тоже самое,но более функционально ( напаяны несколько датчиков, rgb-светодиод, фотодиод, разьемы )

http://www.aliexpress.com/item/1PCS-with-Tracking-Number-and[...]


а если по езернету и прикручивать на стенку, то

сама арудино нано

http://ru.aliexpress.com/item/1PCS-Nano-3-0-Controller-Compa[...]

езернет-шильд ( стыкуется втыканием )

http://www.aliexpress.com/item/Mini-ENC28J60-Webserver-modul[...]

и вот такой адаптер для прикручивания "бутерброда" в распаечную коробку/на стену

http://ru.aliexpress.com/item/New-Terminal-Adapter-Board-for[...]

последние 3 позиции вместе дают 10-12 gpio линий eternet-контроллер с автономной логикой для "безусловных рефлексов" , поведение которых корректируется "центральной нервной системой" через езернет от базовой платы)
Linux Opera
 Москва
1
0
Leonid Kaganov
Большое спасибо за советы.

Желаю вам ими воспользоваться, построить в своем доме столь же многофункциональную систему и прожить с ней хотя бы пару лет, пытаясь обеспечить 24/7 с этой кучей разношерстных коробочек на проводах. Уверен, вам понравится.

А я этот путь уже проходил за последние десять лет, поэтому мне сейчас достаточно одной Бананы.
Windows Safari Chrome
 Израиль
2
0
Igor
Я очень слаб в скриптах, поэтому написал в лоб. Но читабельно и даже работает. Только нет таймаута, который есть у тебя в си коде.
Запускается так:
tail -fn1 /var/log/daemon.log | script.sh
=================================
#!/bin/bash

while true; do
while read line; do
echo $line | grep "IEEE 802.11: associated"
if [ "$?" -eq "0" ]; then
break
fi
done

while read line; do
echo $line | grep "IEEE 802.11: disassociated"
if [ "$?" -eq "0" ]; then
break
fi
done

echo Restart...

/sbin/ifconfig wlan0 down
sleep(1)
/sbin/ifconfig wlan0 up
sleep(1)
/usr/sbin/service hostapd restart
mpg123 /home/audio/samples/jitie-moe.mp3

done
Linux Firefox
 Москва
3
0
Чук
Интерфейс у RTL8192CU - USB. Было-бы странно, если-бы он виделся не как USB.

зы. malloc на 2049 байт!!! я хочу это развидеть!
Просто объяви массив.
Windows Firefox
 Израиль
0
0
braintunic
А массивы мы пока ещё не проходили! ;)
Linux Firefox
 Mount Laurel
1
0
Михаил (#1684620)
Функции puts, putchar и strlen тоже. :–)

(Цикл с «if(!msg[i] ||msg[i]==0x0d||msg[i]==0x0a)» после fgets навевает тоску...)
Windows Safari Chrome
 Mount Laurel
1
0
Gena Kukartsev
Хмм... временной интервал в ютюбе не срабатывает, когда не на сайте играешь. В общем, 4:54, хотя вся серия про описанную проблему.

PZRBcDn1BOM



П.С. Постить коменты удается редко - все время hashpage only fatal error
Windows Firefox
 Санкт-Петербург
0
0
Tarn
"Постить коменты удается редко - все время hashpage only fatal error"

Помогает обновление страницы. До следующего раза.
Windows Firefox
 Израиль
4
0
braintunic
Простое и работающее решение на bash - это объединение решений от Johny (неработоспособное) и от Мудак (работоспособное, но уж больно громоздкое).

Вот так:

tail -1f /var/log/daemon.log | { while read line; do grep -q "IEEE 802.11: .*associated" <<<"$line" && ifdown wlan0 && sleep 1 && ifup wlan0 && sleep 1 && service hostapd restart && mpg123 /home/audio/samples/jitie-moe.mp3; done; }

Такую команду достаточно запустить один раз, и она будет бежать как демон.

А если логфайл /var/log/daemon.log находится под ротацией, то придется ещё немного поиграть с флагами команды 'tail'.

В любом случае, решение на Си на порядок сложнее для написания и отладки - хотя и хорошее упражнение для изучения языка ;)
Mac Safari
 Израиль
0
0
braintunic
Поправка.
На самом деле не нужно сканировать и "accociated" и "disassociated".
Мы же знаем, что они всегда идут парами при сбое!
Так что, достаточно поймать "disassociated" - и вперёд!
Linux Firefox
 Mount Laurel
5
0
Михаил (#1684620)
На самом деле надо запоминать время и адрес последнего «associated» и сравнивать его с временем и адресом «disassociated». Потому что:
1. Если кто-то подключился, попользовался часик и отключился, и за это время ничего другого в .log не записалось, то перезагружаться-то совершенно не надо.
2. Если кто-то, например, включил телефон и тут же выключил ноутбук, то перезагружаться тоже не надо.
3. Если что-то ещё будет писать в .log между hostapd, то ждать двух строчек «associated/disassociated» подряд можно будет долго. Скорее всего, это маловероятная ситуация, но лучше сразу сделать нормально.
Mac Safari
 Израиль
1
0
braintunic
Ну это если вылизывать для code review ;)

А в первом приближении будет вполне нормально работать и так.
Ну сделает лишний рестарт демону hostapd на каждое отсоединение одного из устройств...
Ничего страшного, никто и не заметит эти три секунды прерывания сети ;)
Linux Firefox
 Mount Laurel
0
0
Михаил (#1684620)
Насчёт «никто и не заметит» не уверен. Кто-то мне жаловался, что у него то ли SSH, то ли VPN отваливался, когда Wi-Fi дрыгается.
Windows Firefox
 Киев
0
0
Кондыбас (kondybas)
Наоборот, ловить надо "associated" - это означает, что устройство заново зарегистрировано в сетевом стеке, и уже можно поднимать все упавшее.
Windows Firefox
 Москва
0
0
Johny
это не регистрация устройства. это регистрация клиента на ap.
что как бы нам косвенно намекает что драйвер то работает
Windows Firefox
 Москва
0
0
Johny
Я как раз специально сделал простейшую проверку, что у нас в последних 2 строчках лога попадается и одно и второе.
так как несложно, но существенно снижает ложные сработки.

а насчет "мой скрипт не работает" - ну ясное дело что если вместо daemon.log написано messages то уже явно не заработает.
я дал на 90% законченный пример, для допилки по месту напильником.
Windows Firefox
 Израиль
1
0
braintunic
> ясное дело что если вместо daemon написано messages то уже явно не заработает

Ну, с именем файла - это всего лишь опечатка, не в счёт, неработоспособность в другом.

> я дал на 90% законченный пример, для допилки по месту напильником

На мой взгляд, это даже не на 10% ;)
Обратите внимание, что ЛЛео-то это дело пробовал, и я уверен, что он продвинулся подальше:

> К сожалению, shell-скрипты на основе tail -f | grep -q мне соорудить не удалось в силу нетривиальности задачи

А ваше решение ничем не помогает побороть эту нетривиальность.
Неработоспособность вашего решения, по-моему, в следующем:

1) tail без флага '-f' и отсутствие какого-либо другого механизма, позволяющего читать все вновь поступающие строки лога - это сразу showstopper, мы не можем рассчитывать что нужные нам строки вот прямо в данную секунду являются двумя последними в файле.

2) 'tail file | grep string && grep string' - в такой конструкции вывод от команды tail попадет только в первый grep, а второй grep вообще не получит ввода и будет ждать вечно, заблокировав весь наш pipeline.
Windows Firefox
 Москва
0
0
Johny
про второй grep принимается, надо аргумент добавить чтоб соседнюю строку тоже показывал на стандартный вывод.
про tail -f не принимается, так как понятно что представленный скрипт надо поставить в crontab и пускать по таймеру
Windows Safari Chrome
 Washington
1
0
Igor
В одну строчку конечно элегантнее. Но Заказчик в Техническом Задании требовал реагировать реагировать именно на пару disassociated/associated. Мы не можем в одностороннем порядке менять ТЗ.

А с парой если и получится написать в одну строку, то это будет write only код
Opera
 Москва
0
0
Mike Novikoff
while read line; do grep -q "IEEE 802.11: .*associated" <<<"$line"

Редирект инпута из переменной — это в какой версии bash? Никогда не видел. Прогуглил, вот что пишут на StackOverflow: «Herestrings <<< are not guaranteed to be available, they are not in POSIX base, as far as I know. They will work as expected, as long as your only running them in bash».

Сам обычно писал чуть длиннее, но портабельнее: while read line; do echo "$line"|grep ...

А если логфайл находится под ротацией, то придется ещё немного поиграть с флагами команды 'tail'.

Afaik, ничего больше не надо. Логи всегда под ротацией, и 'tail -f' с этим прекрасно справляется. Разве что добавить к нему 2>/dev/X0R, т.к. при ротации он будет сообщать об этом на stderr. Но и только-то. (Есть ещё опция 'tail --retry', но в реальности никогда не была нужна. Можно и её добавить на всякий случай).
Mac Safari
 Израиль
0
0
braintunic
> Очевидно, ты имел в виду не <<<, а <

Нет, я имел в виду именно <<<.

< подаёт на stdin содержимое указанного файла.
<< подаёт на stdin последующие строки до указанного ограничителя.
<<< подаёт на stdin содержимое указанной переменной - то, что надо здесь.

> До такого простого редиректа почему-то не додумался

Может, потому что поддержка этого "here string" механизма была добавлена только в bash-2.05b?
Opera
 Москва
1
0
Mike Novikoff
Пока ты писал ответ, я свой коммент уже отредактировал. 8-)
У меня bash именно этой версии (уже считается старым), и «here strings» использовал, но только для простого текста. Не знал, что ещё и переменные там можно. Век живи — век учись. 8-) Спасибо, пригодится.

PS. Но всё-таки обрати внимание на несовместимость со стандартным sh из POSIX. Есть такое слово — «башизм». ;-) И бывают даже патчи к системным скриптам RH, где от подобных вещей избавляются. (Патчи называются «nobashism», соответственно). ;-)
Mac Safari Chrome
 Нижний Новгород
0
0
tartaglione
Может, кто не знает, я сам узнал недавно. Не учил я баш подряд.

&lt;(команда) на stdin ничего не подаёт, но эмулирует файл из стандартного вывода "команды".

diff -u &lt;(echo 1; echo 2) &lt;(echo 2; echo 3)

Если ещё "| md5sum", чтобы псевдофайл был маленький, то я так сравниваю таблицы MySQL на разных серверах.

Блин, так и не понял, как тут вставлять угловые скобки. Вылазит подсказка, которую опять нельзя понять - про какие-то зелёные стрелки, которых я в упор не вижу. Поставил галку "html", не заметил эффекта. При "редактировании" готового сообщения уже вообще опций нет.
Opera
 Москва
0
0
Mike Novikoff
<(команда) на stdin ничего не подаёт, но эмулирует файл из стандартного вывода "команды".

Именно подаёт на stdin. Поскольку скобки — это subshell, форкается отдельный процесс интерпретатора. И вот из stdout дочернего процесса подаёт в stdin родительского.

diff -u <(echo 1; echo 2) <(echo 2; echo 3)

А это точно работает? И точно так пишется? Тут получается, что stdin редирекчен дважды?

Блин, так и не понял, как тут вставлять угловые скобки.
Галку «html» поставить, но писать не '&lt;', а просто скобку.
Linux Ubuntu Safari Chrome
 Германия
1
0
http://my.mail.ru/inbox/vlad_griboff




Тоже стоит, тока правда не настроенный до конца. Если убрать WMM mode то вроде не отваливается (хотя очень длинных тестов не делал), но скорость падает так, что все рано пользоваться WiFi ну никак невозможно.
Думаю выносить беспроводную сеть на отдельное железо, благо AP не так дорого будет, если не надо покрывать больше площади.
С ССД работает отлично, для собсвенного гита и тд самое то. Ну и не грееется.
А еще у него есть пару SPI и CAN(!). На SPI уже заказал передатчики и приемники для 443МГц, чтоб умный дом делать.
Mac Safari
 Нижний Новгород
2
0
tartaglione
sprintf(msg,"+++ Start: %s",ctime(&timer));
На 64-битных машинах это немедленно вызывет любимый всеми насильниками "segmentation fault", потому что неизвестная функция ctime() возвращает по умолчанию 'int', а sizeof(int)=4 (всегда), а sizeof(char *)=8 (на 32-битных машинах 4, как у int, потому и работает). А функция ctime() неизвестная, потому что надо ещё
#include "time.h"
(я бы написал в угловых скобках, но тут не берёт. В кавычках тоже работает, но системные лучше сразу в угловых.)
Тогда будет известно, что ctime() возвращает (char*)
Mac Safari
 Израиль
1
0
braintunic
А ещё желательно добавить
#include "unistd.h"
- для функции sleep()
Mac Safari
 Нижний Новгород
0
0
tartaglione
Первое побуждение - прогнать через бьютифайер.
clang-format - самое то.

Потом через c++, он как раз обругает за всё, что забыл объявить, и за все сомнительные касты.

Эх, писал я на этом лет семь и любил это дело, но факт: почти всем и почти всегда лучше держаться от этих C подальше.
Mac Safari
 Израиль
2
0
braintunic
> почти всем и почти всегда лучше держаться от этих C подальше

Хренасе, почти всегда...
А на чем писать kernel driver?
А на чем писать свою файловую систему?
А на чем писать компилятор своего языка?
А на чем писать поддержку многомашинного кластера?

Не на ассемблере же ;)
Opera
 Москва
1
0
Mike Novikoff
Да и вообще бОльшая часть системного софта под линуксом написана на чистом C, а не на плюсах. У плюсового gcc дополнительные рантаймовые библиотеки, в каждой версии gcc свои, и хорошо ещё, если не конфликтующие между собой. Получается, что C++ — излишний гемор.

Да, я сам в 1994 начинал изучать на Борланде сразу с плюсов, минуя K&R, потом под линуксовым gcc избегать C++ казалось странно. Но за последние 16 лет привык. :)
Windows Firefox
 Москва
0
0
Чук
Кстати, такие штуки как HAL на ассемблере очень даже имеет смысл писать.
Mac Safari
 Нижний Новгород
0
0
tartaglione
А мораль простая, и в первом же сообщении тут прописана: не надо такие вещи писать на C. В том числе и пресловутый malloc - на скриптовые языки все молятся как раз за то, что там такой функции вообще нет.

Я бы это сделал на перле или руби, и они обычно входят в юниксовый комплект, хотя бы перл, но, конечно, это с моей стороны было бы тут чисто некрасиво. Может быть, кто-нибудь предложит вариант на питоне - тоже часто в комплекте. Не слыхал, чтобы какие-то языки, кроме этих трёх и баша, использовались системщиками в скриптиках. Я, конечно, понимаю, что учить некогда, я бы и сам не стал учить этот руби, если бы меня не заставили, типа он вдруг стал корпоративный.

Если тут комменты не закроют, я попробую сделать это на баше (который знаю относительно) или на node (там базовый язык JavaScript, Леонид его должен знать лучше баша - хотя вряд ли получится по-человечески, если в ноде нет синхронных системных функций типа system, я пока не в курсе). Это бы для меня самого было забавно и познавательно.
Mac Safari
 Израиль
3
0
braintunic
> Не слыхал, чтобы какие-то языки, кроме этих трёх и баша, использовались системщиками в скриптиках

Ещё awk.
Как раз эта задачка прекрасно подходит для awk.

> Если тут комменты не закроют, я попробую сделать это на баше

Уже написано, только комменты пока закрыты (из-за имени файла, похожего на ссылку).
Утром ЛЛео эти комменты откроет.
Mac Safari
 Нижний Новгород
0
0
tartaglione
Умиляюсь чужому счастью. Что значит семейный человек. У него уже выкристаллизовались понятия "ночь", "утро"? Может, и сайт уже не ругается "шестнадцать часов утра" или как там оно было?
Windows Firefox
 Киев
2
0
Кондыбас (kondybas)
sh (чистый Bourne, не bash), sed и awk. Чем посиксястее, тем спокойнее жЫзнь.

В юности имел глупость всю скриптовую бахрому написать на перле, пока его не вынесли из base FreeBSD, из-за волюнтарзима девелуперов с обратной совместимостью при переходе от 4 к 5. Это был болезненный пинок, но полезный.
Linux Firefox
 Mount Laurel
2
0
Михаил (#1684620)
> а sizeof(int)=4 (всегда), а sizeof(char *)=8 (на 32-битных машинах 4, как у int, потому и работает)

Это у вас слишком оптимистичный взгляд на размеры. :–) Стандарт говорит только, что sizeof(int) ≤ sizeof(size_t). У 16-битных компиляторов было sizeof(int) = 2, у 64-битных бывает 8, а там, где CHAR_BIT > 8, может быть даже sizeof(int) = 1.
Windows Safari Chrome
 Нижний Новгород
0
0
tartaglione
Ну, мне ли не знать, я с 82-го года лет десять сидел на PDP-11, мой первый C был от авторов. Я даже геройски перетащил его тогда из Юникса в RSX, переписав ассемблер и библиотеку ввода-вывода, чтобы приложения работали как родные. Кто помнит, что в RSX и Unix форматы объектных файлов не совсем совпадают, а строчки в RSX начинались с LF, а заканчивались CR, поймёт, в чём геройство. И мы на этом несколько лет успешно работали в продакшне.

Поэтому я и употребил слово "всегда", которое было бы лишним, если бы это была правда. Тонкости диалекта резидентов, панимаешь.
Linux Ubuntu Firefox
 Москва
0
0
ignik
Поставь RPI3, это полноценная радиодеталь под названием линукс за $25 с wifi, bt4, enet, usb, hdmi и дыркой для камеры на борту. Бананы отдыхают.
Windows Firefox
 Одесса
2
0
id88888888
Ну да.
Во первых стоит $40 плюс доставка
Во вторых греется как паровоз (в отличие от pri2)
В третьих для сервера проигрывает практически всем и банане и апельсине и одроиду.
На данный момент лучший (оптимальный) девайс для подобных поделок Odroid C-2 с установленной emmc памятью
Linux Ubuntu Safari Chrome
 Санкт-Петербург
0
0
Николай Лещёв
И wifi там (на RPi3) тоже через USB. Не уверен, что не отваливается (на предыдущих версиях были такие отзывы).
Linux Opera
 Москва
2
0
Leonid Kaganov
А мне на фиг не нужна дырка для камеры (у Бананы, кстати, тоже она есть). Гораздо нужнее 5 Ethernet гнезд и подключение винчестера по SATA, например. А этого у Распберри не и не предвидится.
Windows Firefox
 Киев
0
0
Кондыбас (kondybas)
Вынужден огорчить, у бананы сата реализован, как переходник сата-усб, а усб висит на все том же многострадальном и одиноком корневом концентраторе.

Все арм-решения этим страдают, у х86 шина PCI, у армов ею прикидывается USB. Со всеми вытекающими.

Я могу посоветовать разве что попробовать вынести сетевые заморочки на отдельный роутер/АР, хорошо умеющий опенсорс типа ддврт/опенврт. Пусть сеть разруливает роутер, а банана пусть держит сайтики/хранилище и аппликухи. Правда, ничего посоветовать из роутеров не могу, как-то давно отошел от темы.
Linux Firefox
 Киев
1
0
Л. Янукович
Чего только люди ни придумают, лишь бы Perl не учить.
Linux Ubuntu Firefox
 Германия
0
1
gehrmann
При всём моём уважении к его мощи и продвинутости, перл сильно морально устарел. Понимаю, что кому-то это дело привычки, но годы идут..
Linux Firefox
 Киев
0
0
Л. Янукович
Python, со всем уважением, немного не о том - Perl для задач такого рода куда удобнее уже самим фактом полной интеграции регулярных выражений в сам язык. Ну, и более прямолинейной реализацией fork()/exec() - qx{/sbin/service hostapd restart} выглядит куда понятнее, чем subprocess.Popen(...)

PS А Perl'овский File::Tail - так вообще то самое, что нужно для этой задачи. Насколько я помню, аналогов в Python'е не было - за невысокой надобностью на практике Python'ирования.
Windows Firefox
 Киев
1
0
Кондыбас (kondybas)
А нахрена козе баян, если tail/grep и так по посиксу обязаны присутствовать? Хотя лично я предпочитаю pcregrep.

Что у перла полезного - так это хеши, мапы и прочие ассоциативные штучки. Все остальное мелкоскриптовое куда проще клепать прямо на шелле. Вот, например, тупой однострочник, выколупывающий из логов экзима домены хостов-отправителей писем, пойманных спамассассином, и сортирующий их по степени рецидивизма:

egrep -h "Warning: SA" $LOGF \
| awk '{ print $8 }' | sort | uniq \
| egrep [[:alnum:]]{6}-[[:alnum:]]{6}-[[:alnum:]]{2} \
| xargs -J % -n 1 egrep -h % $LOGF \
| grep " &lt;= " \
| awk '{print $11}' \
| sed -E "s/^H=//g" \
| tr -d "()[]" \
| sed -E "s/^(altmx|mx|mai[nl]|macka|pop|gate|ns|www|smtp|mail|s)[0-9]*\.|\.(org|com|com\.ua|in\.ua|ua|ru|net)$//g" \
| sort \
| uniq -c \
| sort -r \
| less
Mac Safari
 Израиль
0
0
braintunic
Несколько тривиальных замечаний:

> sort | uniq

Лучше: 'sort -u' - мелочь, а приятно. И вполне себе по посиксу.

> xargs -J %

Что ещё за '-J'? Наверное все-таки '-I'?

> grep " <= " | awk '{print $11}'

Лучше: awk '/ <= / {print $11}'

> sort | uniq -c | sort -r

Нужно 'sort -nr' - иначе спаммер с двумя письмами окажется выше, чем спаммер с тысячью писем.
Linux Chrome
 New York
0
0
Зокалебала кревая авторизацея
Вот сколько уже лет прошло, задачи по администрированию серверов практически не изменились, а язык, на котором можно было легко писать скрипты автоматизации, "морально устарел".
Linux Ubuntu Firefox
 Германия
0
1
gehrmann
Я что-то подобное, юзающее tail -f писал на питоне. Это я к тому, что применять для таких задач С несколько чересчур. Если надо, то могу скинуть свой скрипт для примера.

Питон, ИМХО, прекрасен для админ-рутины. Ну, или я его просто люблю.
Windows Safari Chrome
 Toronto
0
0
sly2m
По моему опыту зависания Wi-Fi раутера - у него забиваются буфера из-за работы торрент-клиента. Торренты открывают безумное количество соединений, а раутер вынужден их хранить в таблице то ли 2 суток, то ли сутки.

Ковырялся я в настройках, ковырялся (DD-WRT если кому интересно), да так ничего путного не нашел, все равно практикую профилактический резет время от времени.
Opera
 Москва
0
0
Mike Novikoff
Зависания роутеров из-за торрентов бывают, но тут вопрос ни разу не в WiFi. Во-первых, это зависание всего роутера целиком (а не только WiFi, как у ЛЛео). Во-вторых, у старых роутеров без WiFi происходит ровно то же самое. У старых даже чаще, поскольку дело тут исключительно в мощности и качестве железа.

У меня тоже было. Поборол.
Первым делом — в настройках торрент-клиента (а не роутера) отключить протокол uTP (µTP). Он создаёт большую нагрузку, при этом практически не нужен. Далее, если не поможет, то отключить ещё PEX и DHT. Далее — ограничить максимальное количество соединений: для скромной жизни вполне достаточно 15-20, а не сотни. Всё это в настройках торрент-клиента.
Windows Safari Chrome
 Toronto
0
0
sly2m
Да, я естественно имел ввиду, что зависает ВЕСЬ раутер, от чего и Wi-Fi зависает тоже. Причем он не виснет наглухо, а именно подвисает, начинает тормозить, и Wi-Fi тоже не полностью отрубается, а лишь дохнет.

Спасибо за советы отключить DHТ, но, боюсь, при этом сильно потеряется скорость. У меня торренты качают со скоростями 6-7Мб/с, фильм в HD скачивается меньше чем за пол часа.

Это все-таки проблема настройки раутера, правильно распределять свои буфера, и не хранить логи всех UDP соединений (кому они нужны?), а не торрент-клиента.
Opera
 Москва
0
0
Mike Novikoff
> Спасибо за советы отключить DHТ, но, боюсь, при этом сильно потеряется скорость.

DHT не влияет на скорость прокачки. Только на поиск пиров. Если трекер нормальный, то его одного и хватает для поиска. А соединения с пирами в любом случае прямые.

Советовал бы начать с отключения µTP, это самая прожорливая из свиней (mother of all hogs), она же и самая ненужная. В старых версиях клиентов её вообще не было.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Это прекрасное наблюдение, но у меня торрент-клиента нет и никогда не было.
Windows Safari Chrome
 Toronto
0
0
sly2m
А как же ты фильмы смотришь? Или ты их не смотришь?
Windows Firefox
 Ивано-Франковск
1
0
Val
Язык Си самый нормальный язык в мире. Остальные - лишь жалкие подражания, полные костылей и багов. Ниасиляторам С привет =)
Windows Firefox
 Киев
3
0
Dmitry X
Обколются своими указателями, а потом segmentation fault друг другу устраивают (с)
Mac Safari
 Москва
0
0
den_11_MMTEL
Извиняюсь, если скажу глупость, но автор вроде уважает Кинетики, на некоторые можно поставить OpenWRT, а там навешать уже нужный функционал. Только хард будет по USB 2.0, увы...
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Вот поэтому я поменял мощный роутер Asus на более сильную Banana с сильным процом A20, памятью 1Гб, SATA и полноценным Linux вместо костылей WRT.
Windows Firefox
 Москва
0
0
Johny
осталось сделать следующий шаг и поменять убогий ARM на полноценный эффективный X86 процессор вроде современного 4-ядреного atom или Core i3.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
А вот это был шаг предыдущий шаг - осточертевшие интел-гробы я в какой-то момент сменил на Asus. Долго объяснять, так надо.
Windows Firefox
 Москва
0
0
Johny
Не надо гробов.

Просто небольшая плата 17*17см с внешним блоком питания ( DC-IN круглый разьём ) с пассивным охлаждением.

Вот как пример
http://www.asrock.com/mb/Intel/Q1900DC-ITX/index.ru.asp

Есть точно такие-же, но с встроенным разьемом M.2 для компактного твердотельного диска ( SATA никуда не деваются) и двумя сетевыми портами.

Есть и под Core i3.

Есть и еще размерами меньше, под использование внутри всяких телевизоров ( но дороже )
https://ru.wikipedia.org/wiki/Mini-ITX

Ваша банана - это по сути отладочная плата для тех кому принципиально кодить именно под ARM или использовать всякий софт с смартфонов/планшетов.

Все требования кроме "встроенного хаба" - в избытке.
С встроенным хабом тоже есть много, но идет как специализированные решения и выйдет дороже.

Хотя бы вот например.
И порты и звук и много USB ( без тормозов ) и питание 12V jack и езернетов "подключенных к процессору" много

http://ru.aliexpress.com/item/Firewall-mainboard-with-4-ethe[...]
Windows Firefox
 Киев
0
0
Dmitry X
Можешь меня закидать помидорами, но я убежден (сам затрудняюсь объяснить почему), что роли «домашний маршрутизатор» (в широком смысле, не только роутер, но и точка доступа Wi-Fi и Ethernet-коммутатор) и «домашний сервер» надо разделять. Домашний сервер, который хостит личный нано-сайт, держит хранилище всякого кинца и фоточек, хранит логи метеостанции, принимает данные аутентификации от сканера отпечатков пальцев или RFID-считывателя, управляет приводом дверного замка, воспроизводит сэмплы на колонки и т.п. не должен заниматься разруливанием хождения сетевых пакетов. Рулить сетью лучше через отдельное устройство от надежного производителя.
Windows Firefox
 Санкт-Петербург
0
0
den_11_MMTEL
Леонид всегда был изобретателем и затейником, вот щас глядя на сканер Mustek BearPaw, прибитый к стене боком, на меня вообще снизошло просветление.
Что-то я вспомнил, как он в 90-е купил б/у LaserJet IIp (или 4L, забыл уже) и сразу начали обсуждать на Третьяковской, как его заправлять, вот тогда и я понял - что идей будет много. :)
Linux Opera
 Москва
0
0
Leonid Kaganov
Объясню на пальцах. Представь, что ты нанял себе на кухню повара. Причем, не одного повара, а на каждую функцию - своего. Одна тетка только жарит лук. Другая сервирует стол. Третья моет посуду. Задача четвертой - только нарезать хлеб, а пятая этот хлеб раскладывает по тарелкам... Для большого ресторана это хорошая идея, но кухня у тебя маленькая. Результат: в доме целые дни шум и топот, неумереные финансовые расходы, на кухне толчея, и каждый день какие-нибудь проблемы. Потому что посудомойка заболела, и сидим с грязной посудой. Потом у черпальщицы супа закончилась регистрация и разрешение на работу, и обедаем без супа. А однажды тебе захочется вместо хлеба подать к столу лаваш, а подавальщица хлеба устроит истерику и парализует работу всей кухни: она умеет подавать только хлеб.
Windows Firefox
 Москва
0
0
Johny
Тут скорее обратная аналогия.
Когда ты повелся на рекламу и пошел купил чемодан-диван-кровать-телевизор-стиральную-мащину-кофеварку-в-одном , по цене почти как все тоже самое в отдельности, но ни одну свою функцию оно не выполняет хорошо.

Я примерно так пытался купить мотоблок с тележкой - чтоб летом он у меня косил траву, пахал землю и возил тележку, работал ножом-отвалом, а зимой убирал снег.

Однако потом внезапно выяснилось что газонокосилка должна быть предельно легкой и маневренной, а снегоуборщик и бульдозер наборот максимально тяжелым и мощным.

В итоге у меня сейчас имеется отдельно самоходная косилка, отдельно 100кг самоходный снегоуборщик, отдельно мотоблок для грунта.

Если мы говорим про установку, монтируемую на стену ( а не про скажем мобильный гаджет, монтируемый на орла или кошку ) то нету решительно ни одной причины , по которой коммутатор необходимо было бы механически и электрически встраивать в сервер.

С точки зрения схемы это все равно отдельный коммутатор, через 1 физический порт соединенный с платой. Что мешает купить этот узел отдельно и подвесить рядом на разьёме - решительно непонятно.
Windows Firefox
 Москва
1
0
Johny
"принимает данные аутентификации от сканера отпечатков пальцев или RFID-считывателя, управляет приводом дверного замка,"
Ну не должен это делать сервер!
И роутер не должен!

Отпечатки , сканеры и номера RFID-карточек должны хранится в дверном контроллере, работающем независимо от любых серверов и роутеров.
Контроллер должен обслуживать дверь ,а события с ним накапливать в журнале и отправлять на сервер.

Сервер в свою очередь при необходимости может вмешаться в работу контроллера , добавить-заблокировать ключ, временно блокировать/постоянно открыть проход и.т.п.

Не надо делать свой умный дом инвалидом, обьединяя первую и вторую сигнальные системы.
Linux Ubuntu Safari Chrome
 Одесса
0
0
Azimut
Как-то всё это выглядит так:
-Мне нужно чтобы бюджетный wifi-роутер-коммутатор мало потреблял, не занимал места, не жужжал и 100500 слов о том что перепробовано и почему не подходит, какие этапы УЖЕ были. Более того - уже есть вариант и работает !

(лично хочется похвалить, очень классно получилось, придраться не к чему = и даже выглядит работающим)

И после этого какие-то овцы (к кондыбасу не относится) совершенно не по-теме предлагают стать архитекторами этого проекта и воткнуть в "кофемолку USB-звуковую карту".

Какой удивительный планктон !
Ну ладно бы "распил" бюджета - тогда понятно.

И ведь они таким же образом решают вопросы автоматики или пишут программы, например.
Т.е. ТЗ "в жопу", - я же умнее заказчика. Ну да, ну да.
Поэтому у нас такие замечательные дороги и чистые подъезды :(

Так и представляю, как эдакий Джон перед "мерсом" куражится и начинает рассказывать, что в БЕЛАЗе колеса больше.

Linux Opera
 Великобритания
0
0
Leonid Kaganov
В принципе согласен: мой пост достаточно бестолково выглядит - если все уже работает, тогда о чем речь?

Штука в том, что я завтра поправлю скрипт или его потеряю, а в дневнике останется навсегда, и мне будет удобнее его там найти. Кроме того, он может кому-то пригодиться. Кроме того, иногда мне делают полезные замечания по программированию. Кроме того, кто-то может оказаться в курсе проблемы и предложить корневое решение.

Собственно, мне написал один мудрый человек емайлом (умные люди почему-то нечасто пишут в комменты) и сказал, что проблема известна, и может помочь установить некую опцию для кернел-модуля. Что я и сделал. Помогло ли - не знаю, я в Лондоне сейчас,пью в пабе Гиннесс и слушаю Битлз :) Дома у меня живет сейчас Созидатель проездом с семьей. Надо у него спросить будет потом, исправно ли работал Вайфай и кричала ли входная дверь "Житие мое". Если нет - значит, проблема побеждена окончательно.
Linux Firefox
 Research Triangle Park
0
0
Юрий Шимановский
А... опоздал к раздаче. Все уже и без меня сказали.
1. С - это лучшее, что придумано человечеством. Пишешь на С - можно забыть шелы, перлы и пр. Они не потребуются больше никогда.
2. И да, лучше соблюдать общепринятое форматирование. Кота в мешке от рута запускать самонадеянно, а я так и не вкурил, где там цикл заканчивается.

У меня такая же проблема возникает со стандартным роутером Линксис по 40 долларов за кг. Причем только с моим компом. Не особо мешает. Презапускаю вот так же ручками. Боты и демоны хотят по кабелю в тот же роутер. И ничего не глючит.
Mac Safari
 Израиль
0
0
braintunic
> Пишешь на С - можно забыть шелы, перлы и пр. Они не потребуются больше никогда.

Хотел бы я увидеть тот момент, когда у вас забьётся на 100% корневая файловая система, и как вы будете на C решать эту проблему - забыв всякие "шелы, перлы и пр." ;)
Linux Firefox
 Research Triangle Park
1
0
Юрий Шимановский
Такой момент у меня случается почти каждый день, я сисадминю несколько сотен юниксов (бывало, что и тысячи) Ну, так это администрирование, а не написание софта. Просто сложная команда. Конечно шелл нужен. Но не для программирования.
Linux Firefox
 Mount Laurel
0
0
Михаил (#1684620)
> С - это лучшее, что придумано человечеством. Пишешь на С - можно забыть шелы, перлы и пр. Они не потребуются больше никогда.

Как можно забыть перлы и пр., если в С даже строк нет? Можно, конечно, дойти до состояния «любая достаточно сложная программа на Си содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp», но зачем? :–)
Linux Safari Chrome
 Сызрань
0
0
ustasalex
Как уже писали мыши выше, не исключено, что вы столкнулись с этой проблемой (http://forum.lemaker.org/thread-15515-1-1.html). Вызвана она дедлоком при аппаратном шифровании, решается путем добавления параметра swenc=1 к модулю rtl8192cu
Linux Opera
 Москва
0
0
Leonid Kaganov
ВАУ. А куда это вписывают? По ссылке речь о WRT, а у меня Debian-Bananian. Заодно не понял, что там за речь про "Sata Power Fix" - там еще какие-то проблемы с sata?
Windows Firefox
 Израиль
0
0
braintunic
> А куда это вписывают?

Что-то типа такого:

$ sudo echo "options rtl8192cu swenc=1" > /etc/modprobe.d/rtl8192cu.conf

После этого, либо reboot либо перезагрузить модуль (если получится):
$ sudo modprobe -r rtl8192cu
$ sudo modprobe rtl8192cu
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Вы знаете, у меня он называется просто 8192cu, и к неум существует конфиг /etc/modprobe.d/8192cu.conf, где по совету была вписана строка:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

Правда, эффекта это не дало. Сейчас я добавил в конце и ваш совет:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0 swenc=1

Правильно? Перегружаюсь?
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
options 8192cu swenc=1

Ошибка:

# modprobe 8192cu
modprobe: ERROR: could not insert '8192cu': Unknown symbol in module, or unknown parameter (see dmesg)
Windows Firefox
 Израиль
0
0
braintunic
Запусти команду:
# modinfo 8192cu | grep parm:

Получишь список всех параметров модуля.

Может быть, этот параметр (swenc - software encryption) называется как-то иначе в твоей версии модуля.
Linux Safari Chrome
 Самара
1
0
ustasalex
Моя вина! Оказывается, там сильно перепиленный Дебиан с модулем от Realtek, а не тем, который поставляется в "ванильном" ядре:
Для Дебиана на БананеПи:

modinfo ./8192cu.ko
filename: /mnt/lib/modules/3.4.111-bananian/kernel/drivers/net/wireless/rtl8192cu/./8192cu.ko
version: v3.3.2_3192.20120103
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver

А вот ядро из состава Дебиана для Распберри содержит модуль поновее, но тоже не ванильный:
modinfo ./8192cu.ko
filename: /mnt/lib/modules/4.4.11+/kernel/drivers/net/wireless/realtek/rtl8192cu/./8192cu.ko
version: v4.0.2_9000.20130911
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
license: GPL

Ванильное ядро показывает, что
modinfo rtl8192cu
filename: /lib/modules/4.5.0-2-amd64/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
firmware: rtlwifi/rtl8192cufw_TMSC.bin
firmware: rtlwifi/rtl8192cufw_B.bin
firmware: rtlwifi/rtl8192cufw_A.bin
firmware: rtlwifi/rtl8192cufw.bin
description: Realtek 8192C/8188C 802.11n USB wireless
license: GPL
author: Larry Finger <[email protected]>
author: Ziv Huang <[email protected]>
author: Georgia <[email protected]>

в ванильном ядре swenc есть (это вообще единственный параметр модуля), в модуле от Реалтек - нет.

В связи с этим можно посоветовать:
1) Поставить Дебиан для Распберри - там ядро и модуль новые https://www.raspberrypi.org/downloads/raspbian/
2) Если не прокатит - поставить "ванильный" Дебиан, он, теоретически(https://wiki.debian.org/InstallingDebianOn/Allwinner), поддерживает A20 и потом включить swenc.
Linux Safari Chrome
 Самара
0
0
ustasalex
Не смог добавить комментарий - форум говорит, что я пишу на html. Посему добавляю картинкой.

Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Тут вообще советуют выпаять убогий cu8192 и впаять что-то поприличнее:

http://forum.armbian.com/index.php/topic/372-hardware-mod-bp[...]

Только чип такой на замену стоит на Алиэкспрессе тыщи полторы с доставкой, и меня жаба душит пускаться в столь сомнительное предприятие. А вдруг потом драйверов не поставлю? А вдруг лучше не станет?

http://ru.aliexpress.com/af/Mt5572.html?ltype=wholesale&[...]

Linux Firefox
 Нидерланды
1
0
Denis Dyakov
Намучавшись с родным WiFi, пройдя все вышеописанное, воплотил в жизнь очень похожий вариант с выносным USB WiFi "COMFAST CF-WU7300ND", купленным на Aliexpress, на чипсете RALINK RT3072. Два месяца - полет нормальный. Для уверенности дополнил весь конструктив USB-хабом с питанием (хотя и без него работает). hostapd поставил стандартный, а не вариант hostapd-rtl. Драйвера для RALINK RT3072 в дебиане обнаружились по умолчанию. Надо бы отпаять уже питание от встроенного WiFi...

Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Денис, огромное спасибо за опыт!
Нашел на Aliexpress 1200 руб: https://ru.aliexpress.com/item/Double-antenna-6dBi-Trough-wa[...]
Как только появятся деньги закажу и повторю опыт.

Я конечно там окружил вайфай всевозможными следилками, но задалбывает.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Возник вопрос: а если дело в чипсете RALINK RT3072, может подойдет штука попроще, без коробки с антеннами, за 500руб? Антенны-то у меня есть. Как думаете?



https://ru.aliexpress.com/item/RT3072-USB-WIFI-Module-3070-W[...]
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Немножко смущает, что Алиэкспресс вместе с этим прибором предлагает еще с десяток WiFi-модулей и "поддельное влагалище верблюд ног мастурбатор":



Linux Firefox
 Королев
0
0
Denis Dyakov
Вообще, на Aliexpress действительно море всего внешнего на RT3072, работающего через USB. В частности, там есть, как мне показалось, более старая версия того варианта, что я взял - COMFAST CF-WU7200ND (различия больше косметические, и нет крепления на стенку). Могу только одно утверждать - в Дебиане модуль rt2800usb должен обеспечивать работу всего этого зоопарка Ралинков из коробки, и здесь можно посмотреть, что поддерживается: https://wiki.debian.org/rt2800usb.
Дальнейшие различия выражаются, наверное, только в каких-то мелочах, типа какой усилитель радио-сигнала производитель воткнет на тот или иной вариант USB WiFi. Вроде бы с моделью CF-WU7300ND идет усилитель 6649E (и где-то на Aliexpress на этом делался акцент), хотя возможно здесь ничего необычного нет, и это чисто маркетинг.
Поэтому вариант что вы обнаржили, с большой вероятностью может быть работоспособен. Здесь наверное, только - устраивает ли вас его особенности подключения, и то, что он без корпуса.

всего комментариев: 142

<< предыдущая заметка следующая заметка >>