0
<< предыдущая заметкаследующая заметка >>
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.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
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
Леонит Каганофф
Нет, сама перезагрузка hostapd проблему, как я понял, не снимает.
Windows Firefox
 Киев
2
0
Кондыбас
Проблема в том, что 8192 работает через усб-хаб, выполняющий роль системной шины, проводной адаптер заведен туда же, как и все усб-порты. А поскольку сам хаб сделан через пень-колоду и мультиплексирует устройства через "Ж" большое, то, при большой активности усб-устройств, некоторые из них могут получать таймаут и требовать ресета.

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

У интеля, скажем, усб-хозяйство выглядит, как 2-3 отдельных хост-контроллера. А у распберри/бананы контроллер всего один, и туда заведены не только розетки под внешние девайсы, но и набортовые проводные/беспроводные сетевухи.
Linux Opera
 Москва
0
0
Леонит Каганофф
А какой выход? Ставить на Банану Фрю? Или убирать WiFi на отдельное Ethernet-подключение, а про внутренний забыть?
Windows Firefox
 Москва
1
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
если описанное Кондыбас реально, то думаю
1) да
2) выкинуть банану, купить intel
3) intel тоже выкинуть, купить нормальную плату на x86 процессоре ( типа продвинутого atom ) с пассивным охлаждением и sata-дисков в форм-факторе m.2
Linux Opera
 Москва
0
0
Леонит Каганофф
4) Уже был нормальный интел в хорошем корпусе - выкинул и купил Банану.
Windows Firefox
 Москва
0
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
насколько я помню был весьма древний и прожорливый старый "гроб".
а взять надо было что-то современное, выглядящее примерно так
( первая попавшаяся фото для внешности )



или так



( но без пропелера )

и с дыркой питания круглый джек 15В а не как на фото.
можно к примеру было попробовать купить на авито моноблок с разбитым экраном , там вполне компактная материнка внутри обычно
Linux Opera
 Москва
1
0
Леонит Каганофф
Это скучный разговор по кругу.
Во-первых, у него нет Ethernet-хаба на 4 порта минимум. А на второй фотке нет даже второй Ethernet-карты, чтобы сделать роутер.
Потом к нему сам понимаете какого размера надо корпус и блок питания. И винчестер еще где-то рядом вешать. И так далее.
И если очень повезет, еще будет проц и блок питания без вентиляторов.

Теперь сравните с Бананой - у которой на борту все есть, 5 вольт воткнул, SATA винчестер ПРЯМО В НЕЕ вставил - и все работает.

Я не хочу продолжать этот спор, который уже по сотому кругу. Поверьте, у меня были причины отказаться от Интел-гроба в коридоре.
Windows Firefox
 Москва
0
0
abrrvalk
у меня стоит роутер с openwrt и netgear stora. в последней теоретически есть какой-то вентилятор, но я даже не уверен что он работает. нужен он не для платы, а для хардов. т.к. харды у меня стоят гриновые, то по идее его можно выдернуть. хотя его и так не слышно, тем более из коридора.
Windows Safari Chrome
 Домодедово
1
0
id
Вынести роутер на отдельный роутер :) хоть на смешной Mikrotik hAP lite за $20, хоть народный Gl.inet 6416 с али в те же деньги...
А на банане оставить бананство.
Windows Safari Chrome
 Израиль
0
0
Пашка
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
а ещё лучше вырвать всё это богомерзкое лего из стены и поставить решение из коробки.
Linux Opera
 Москва
1
0
Леонит Каганофф
К сожалению, не создана пока такая коробка, которая будет услужливо открывать дверь, держать 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
Леонит Каганофф
Большое спасибо за советы.

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

А я этот путь уже проходил за последние десять лет, поэтому мне сейчас достаточно одной Бананы.
Windows Firefox
 Москва
0
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Для чего именно не подходит ардуино?
Как автономный дверной контроллер с подключением клавиатуры, смарткарт , датчиков и замка - то что доктор прописал.
причем открывать дверь будет по собственной базе ключей и расписанию независимо от зависаний бананы.
А для бананы лог событий накапливать и отсылать по мере доступности.
Windows Firefox
 Одесса
0
0
id88888888
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
«Не нужно пытатся запихнуть все в одну коробку »
Не подходит для того, чтобы все именно запихнуть в одну коробку.
И это и есть основная задача о чем пытался культурно объяснить Леонид чуть выше.
Windows Firefox
 Москва
0
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Запихнуть все в одну коробку и чтоб оно надежно и качественно работало - невозможно в принципе.
ну или эта коробка будет сделана по спецзаказу каким-нибудь нии лавочкина и будет стоить как луноход.
Windows Firefox
 Одесса
0
0
id88888888
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Читаем выше - «мне сейчас достаточно одной Бананы.»

Эволюция обычно следующая.
Ставится какой-то локальный датчик , потом другой, потом локально управление чем-то, потом возникает желание управлять и получать данные централизовано. Тогда ставят сервер.
Это уже следующая ступень эволюции.
Леонид уже родился красивым использовал два поколения серверов. Зачем ему опускаться на ступень ниже ?
И он совершенно правильно движется к умному дому, находясь в данный момент на стадии умный тамбур :)
Windows Safari Chrome
 Нидерланды
0
0
Ivan
Затем, что он пришел к кривому решению и теперь сталкивается с системными проявлениями этой кривизны. Задача сервера - собирать информацию и принимать решения. Нет смысла делать его конечным исполнительным устройством. Поэтому дверь может открывать хоть та же ESP, которой сервер, посредством WiFi, через MQTT+SSL отдаст команду. И если завтра Леониду кто-то подарит приличный замок, то... ему ничего не придется менять - MQTT уже фактически стал стандартом коммуникации IoT. А вот в качестве сервера лучше взять не одноплатный хлам, а вполне приличный компьютер с пассивным охлаждением. Который не будет перегреваться и постоянно упираться в кривость ARM и нехватку ресурсов.
Windows Safari Chrome
 Израиль
2
0
Mason
Я очень слаб в скриптах, поэтому написал в лоб. Но читабельно и даже работает. Только нет таймаута, который есть у тебя в си коде.
Запускается так:
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
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Хмм... временной интервал в ютюбе не срабатывает, когда не на сайте играешь. В общем, 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
Кондыбас
Наоборот, ловить надо "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 и пускать по таймеру
Mac Safari
 Израиль
2
0
braintunic
> про второй grep принимается, надо аргумент добавить чтоб соседнюю строку тоже показывал на стандартный вывод

Куда добавить аргумент - к tail или к первому grep?
Не поможет ни то ни другое, только зря время потратите ;)

Надо кардинально менять структуру pipeline, иначе эта ваша команда всегда будет затыкаться на середине.

> представленный скрипт надо поставить в crontab и пускать по таймеру

Даже если запускать эту crontab операцию раз в секунду, всё равно десятки или сотни строк могут быть пропущены в логе за время между запусками, и с большой вероятностью наши искомые строки никогда не будут обнаружены этими дискретными командами tail и grep.

Только непрерывное сканирование лога (с помощью 'tail -f' или другого эквивалентного механизма) может гарантировать нам, что сбой будет пойман и обработан.
Windows Safari Chrome
 Washington
1
0
Mason
В одну строчку конечно элегантнее. Но Заказчик в Техническом Задании требовал реагировать реагировать именно на пару 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;', а просто скобку.
Mac Safari Chrome
 Нижний Новгород
1
0
tartaglione
$ diff -u <(echo 1; echo 2) <(echo 2; echo 3)
--- /dev/fd/632016-06-06 21:58:41.000000000 +0300
+++ /dev/fd/622016-06-06 21:58:41.000000000 +0300
@@ -1,2 +1,2 @@
-1
2
+3
bash-3.2$

Это чисто башизм. man bash - поиск <( --
Process Substitution
Process substitution is supported on systems that support named pipes (FIFOs) or the /dev/fd method of naming open files. It takes the form of <(list)
or >(list). The process list is run with its input or output connected to a FIFO or some file in /dev/fd. The name of this file is passed as an argu-
ment to the current command as the result of the expansion. If the >(list) form is used, writing to the file will provide input for list. If the
<(list) form is used, the file passed as an argument should be read to obtain the output of list.

When available, process substitution is performed simultaneously with parameter and variable expansion, command substitution, and arithmetic expansion.

То есть не только можно получить stdout'ы как файл ы, но и можно писать в файлы, а это будут чьи-то stdin'ы.
Opera
 Москва
0
0
Mike Novikoff
Круто! Главное, я ведь видел это место в мануале (и в texinfo тоже), но без примеров было непонятно. А сейчас нашёл и примеры, всё тот же любимый «Advanced Bash-Scripting» by Mendel Cooper: http://tldp.org/LDP/abs/html/process-sub.html

Как раз пример насчёт diff интересовал очень давно. Спасибо!
Mac Safari
 Израиль
0
0
braintunic
Теперь ещё найди примеры про оператор <> - и в два раза щастливее станешь! ;)
Opera
 Москва
0
0
Mike Novikoff
Ну это-то давно знаю. И вообще всё то, что у Купера в главе 20 «I/O Redirection».
http://tldp.org/LDP/abs/html/io-redirection.html
Mac Safari
 Израиль
0
0
braintunic
> Ну это-то давно знаю. И вообще всё

Щас проверим, как ты всё знаешь ;)

Ну-ка, что сделает вызов следующей команды внутри функции bash?
echo ${!####}
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 на ассемблере очень даже имеет смысл писать.
Windows Firefox
 Израиль
1
0
braintunic
Надеюсь, что имеется в виду HAL - "Hardware Abstraction Layer", а не HAL - "Hypertext Application Language" :)

Насчёт использования ассемблера для HAL...
Может быть, это было одним из факторов, почему и Fedora и RHEL и Ubuntu и Debian выбросили HAL на помойку?

Да ещё и с ехидными комментариями типа: "HAL is in the process of being deprecated, since it has become a large monolithic unmaintainable mess" ;)
Windows Firefox
 Москва
0
0
Чук
Ессно.
Ну а насчет unmaintainable. Разумеется под тем зоопарком архитектур, под которые собирается linux это будет unmaintainable от слова совсем :). Да и ассемблерные вставки в код на GCC выглядят просто ужасно и нечитаемо. Лучше делать отдельный модуль. Кстати, не могу найти внятную информацию по использованию регистров (call-saved, call-used, передача аргументов) для cortex-M. :(
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
Кондыбас
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
Леонит Каганофф
А мне на фиг не нужна дырка для камеры (у Бананы, кстати, тоже она есть). Гораздо нужнее 5 Ethernet гнезд и подключение винчестера по SATA, например. А этого у Распберри не и не предвидится.
Windows Firefox
 Киев
0
0
Кондыбас
Вынужден огорчить, у бананы сата реализован, как переходник сата-усб, а усб висит на все том же многострадальном и одиноком корневом концентраторе.

Все арм-решения этим страдают, у х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
Кондыбас
А нахрена козе баян, если 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
Леонит Каганофф
Это прекрасное наблюдение, но у меня торрент-клиента нет и никогда не было.
Windows Safari Chrome
 Toronto
0
0
sly2m
А как же ты фильмы смотришь? Или ты их не смотришь?
Windows Firefox
 Ивано-Франковск
1
0
Val
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Язык Си самый нормальный язык в мире. Остальные - лишь жалкие подражания, полные костылей и багов. Ниасиляторам С привет =)
Windows Firefox
 Киев
3
0
Vir
Обколются своими указателями, а потом segmentation fault друг другу устраивают (с)
Mac Safari
 Москва
0
0
den_11_MMTEL
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Извиняюсь, если скажу глупость, но автор вроде уважает Кинетики, на некоторые можно поставить OpenWRT, а там навешать уже нужный функционал. Только хард будет по USB 2.0, увы...
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Вот поэтому я поменял мощный роутер Asus на более сильную Banana с сильным процом A20, памятью 1Гб, SATA и полноценным Linux вместо костылей WRT.
Windows Firefox
 Москва
0
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
осталось сделать следующий шаг и поменять убогий ARM на полноценный эффективный X86 процессор вроде современного 4-ядреного atom или Core i3.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
А вот это был шаг предыдущий шаг - осточертевшие интел-гробы я в какой-то момент сменил на 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[...]
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Конечно же эта идея однозначно нахуй. Об этом я много думал и вопросом интересовался, но - нет.

Как минимум, потому, что Банана безупречно выполняет 100% своих задач (глюк WiFi побежден костылями). А плата ваша рассчитана на десктопы и не имеет необходимого мне оборудования.

Какого?

-- Ну, например, в большинстве плат нет двух сетевух с многопортовым роутером - вы мне предложите его отдельно докупить?

-- Что-то я не вижу на вашей плате WiFi вообще - вы мне его предложите отдельно купить в виде внешнего роутера?

-- Совершенно нет в таких платах портов GPIO - вы мне предложите отказаться от прямой работы с электроникой и навешать кучу разных Ардуин вокруг со своими 5-вольтовыми блоками питания?

-- Нету возможности, как на Банане, воткнуть банку аккумулятора прямо в соответствующий разъем на плате - вы мне предложите купить УПС, чтобы на случай кратковременного отключения электричества в доме не пропал интернет, сайт и функции электроники?

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

И шо мы имеем в итоге с ваших советов? Я похож на идиота, чтобы ради вашей прихоти выкинуть идеально работающую и настроенную Бананку, а взамен нее начать закупать платы, плашки памяти к ней, корпуса микро-ATX, блоки питания, бесперебойники, маршрутизаторы, конверторы сигналов для электроники, и все это унылое говно (общей стоимостью от 25000 руб - это еще по самому минимуму) развешивать у себя на стене в коридоре? :)))
Windows Firefox
 Москва
0
0
Johny
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
1) Да, многопортовый роутер удобнее, надежнее, дешевле в замене в случае выхода из строя, а места не занимает вообще никак. ( тот же микротик 951G например )
Кроме того его удобно установить в том месте куда удобнее собрать и спрятать пучки проводов, а не в том где удобнее установить дисплей и колонки.

140рублевые Arduio подключаются к USB и не требуют никакого отдельного 5V питания. При этом существенным плюсом является то, что когда вы сожжете это самое GPIO в ходе экспериментов, то в кладовке их еще "пучек" про запас валяется за такую цену.
А еще в том что те же самые ардуино можно поставить на не самом видном месте под бананой, а убрать в короб/распаечную коробку до которой будет идти один короткий USB-шнур.
( или просто воткнуть в Ethernet )
Использование GPIO на ардуине при подключении одной из разнообразных библиотек ничем не отличается от "встроенного GPIO"

"Втыкать банку аккамулятора в банану" - нет никакого смысла, так как от пустой бананы толку нету. Вам ведь все равно нужно чтоб тот-же аккамулятор питал дверной замок , колонки и прочее периферийное оборудование.
Отсюда вытекает как минимум 12V бесперебойный блок питания от пожарных сигнализаций.
Хотя разумеется никто не мешает и просто "воткнуть банку" парралельно DC-IN джеку.
Работать оно будет, но батарея будет с вечным недозарядом и жить будет не очень долго и не очень счастливо.

Насчет "идеально настроеннной бананы" - это той самой где как пишут один usb-хаб на все? Которая сдохнет после первой же попытки воткнуть в нее например камеру?
Или вы сейчас снова скажете что камера мол не нужна?)

Я уже не говорю про простейшее шифрование каких-то критичных данных и документов.

Потребление электричества является минусом, оно у x86 выше.
Но разница в производительности и удобство использования стандартного x86 линукс многократно перекрывает этот недостаток.
Linux Opera
 Москва
0
0
Леонит Каганофф
Я гляжу, вы настолько в своем мире, что даже не можете понять того, что я вам сказал :) Не буду с вами спорить, просто поблагодарю за советы.
Windows Firefox
 Киев
0
0
Vir
Можешь меня закидать помидорами, но я убежден (сам затрудняюсь объяснить почему), что роли «домашний маршрутизатор» (в широком смысле, не только роутер, но и точка доступа Wi-Fi и Ethernet-коммутатор) и «домашний сервер» надо разделять. Домашний сервер, который хостит личный нано-сайт, держит хранилище всякого кинца и фоточек, хранит логи метеостанции, принимает данные аутентификации от сканера отпечатков пальцев или RFID-считывателя, управляет приводом дверного замка, воспроизводит сэмплы на колонки и т.п. не должен заниматься разруливанием хождения сетевых пакетов. Рулить сетью лучше через отдельное устройство от надежного производителя.
Windows Firefox
 Санкт-Петербург
0
0
den_11_MMTEL
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид всегда был изобретателем и затейником, вот щас глядя на сканер Mustek BearPaw, прибитый к стене боком, на меня вообще снизошло просветление.
Что-то я вспомнил, как он в 90-е купил б/у LaserJet IIp (или 4L, забыл уже) и сразу начали обсуждать на Третьяковской, как его заправлять, вот тогда и я понял - что идей будет много. :)
Linux Opera
 Москва
0
0
Леонит Каганофф
Объясню на пальцах. Представь, что ты нанял себе на кухню повара. Причем, не одного повара, а на каждую функцию - своего. Одна тетка только жарит лук. Другая сервирует стол. Третья моет посуду. Задача четвертой - только нарезать хлеб, а пятая этот хлеб раскладывает по тарелкам... Для большого ресторана это хорошая идея, но кухня у тебя маленькая. Результат: в доме целые дни шум и топот, неумереные финансовые расходы, на кухне толчея, и каждый день какие-нибудь проблемы. Потому что посудомойка заболела, и сидим с грязной посудой. Потом у черпальщицы супа закончилась регистрация и разрешение на работу, и обедаем без супа. А однажды тебе захочется вместо хлеба подать к столу лаваш, а подавальщица хлеба устроит истерику и парализует работу всей кухни: она умеет подавать только хлеб.
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
Леонит Каганофф
В принципе согласен: мой пост достаточно бестолково выглядит - если все уже работает, тогда о чем речь?

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

Собственно, мне написал один мудрый человек емайлом (умные люди почему-то нечасто пишут в комменты) и сказал, что проблема известна, и может помочь установить некую опцию для кернел-модуля. Что я и сделал. Помогло ли - не знаю, я в Лондоне сейчас,пью в пабе Гиннесс и слушаю Битлз :) Дома у меня живет сейчас Созидатель проездом с семьей. Надо у него спросить будет потом, исправно ли работал Вайфай и кричала ли входная дверь "Житие мое". Если нет - значит, проблема побеждена окончательно.
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
Леонит Каганофф
ВАУ. А куда это вписывают? По ссылке речь о 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
Леонит Каганофф
Вы знаете, у меня он называется просто 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
Леонит Каганофф
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 <Larry.Finger@lwfinger.net>
author: Ziv Huang <ziv_huang@realtek.com>
author: Georgia <georgia@realtek.com>

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

В связи с этим можно посоветовать:
1) Поставить Дебиан для Распберри - там ядро и модуль новые https://www.raspberrypi.org/downloads/raspbian/
2) Если не прокатит - поставить "ванильный" Дебиан, он, теоретически(https://wiki.debian.org/InstallingDebianOn/Allwinner), поддерживает A20 и потом включить swenc.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Сорри, я немного чайник в этих вопросах и не все слова понимаю. На данный момент у меня есть два модуля:
"родной" на 531кб версии v3.3.2 и "скомпилированный" в пору моих экспериментов с сайта Realtek - на 700кб версии 4.0.2,
глючат они оба. Их данные такие:

# modinfo 8192cu
filename: /lib/modules/3.4.108-bananian/kernel/drivers/net/wireless/8192cu.ko
version: v3.3.2_3192.20120103
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
vermagic: 3.4.108-bananian SMP preempt mod_unload modversions ARMv7 p2v8
parm: rtw_ips_mode:The default IPS mode (int)
parm: ifname:charp
parm: rtw_initmac:charp
parm: rtw_channel_plan:int
parm: rtw_chip_version:int
parm: rtw_rfintfs:int
parm: rtw_lbkmode:int
parm: rtw_network_mode:int
parm: rtw_channel:int
parm: rtw_mp_mode:int
parm: rtw_wmm_enable:int
parm: rtw_vrtl_carrier_sense:int
parm: rtw_vcs_type:int
parm: rtw_busy_thresh:int
parm: rtw_ht_enable:int
parm: rtw_cbw40_enable:int
parm: rtw_ampdu_enable:int
parm: rtw_rx_stbc:int
parm: rtw_ampdu_amsdu:int
parm: rtw_lowrate_two_xmit:int
parm: rtw_rf_config:int
parm: rtw_power_mgnt:int
parm: rtw_low_power:int
parm: rtw_wifi_spec:int
parm: rtw_antdiv_cfg:int
parm: rtw_enusbss:int
parm: rtw_hwpdn_mode:int
parm: rtw_hwpwrp_detect:int
parm: rtw_max_roaming_times:The max roaming times to try (uint)
parm: rtw_mc2u_disable:int
root@banana:/home/lleo#

И второй соответственно:

# modinfo 8192cu.ko
filename: /lib/modules/3.4.108-bananian/kernel/drivers/net/wireless/8192cu.ko
version: v4.0.2_9000.20130911
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
license: GPL
srcversion: CE388896624E104C8F146BC
vermagic: 3.4.108-bananian SMP preempt mod_unload modversions ARMv7 p2v8
parm: rtw_ips_mode:The default IPS mode (int)
parm: ifname:The default name to allocate for first interface (charp)
parm: if2name:The default name to allocate for second interface (charp)
parm: rtw_initmac:charp
parm: rtw_channel_plan:int
parm: rtw_chip_version:int
parm: rtw_rfintfs:int
parm: rtw_lbkmode:int
parm: rtw_network_mode:int
parm: rtw_channel:int
parm: rtw_mp_mode:int
parm: rtw_wmm_enable:int
parm: rtw_vrtl_carrier_sense:int
parm: rtw_vcs_type:int
parm: rtw_busy_thresh:int
parm: rtw_ht_enable:int
parm: rtw_cbw40_enable:int
parm: rtw_ampdu_enable:int
parm: rtw_rx_stbc:int
parm: rtw_ampdu_amsdu:int
parm: rtw_lowrate_two_xmit:int
parm: rtw_rf_config:int
parm: rtw_power_mgnt:int
parm: rtw_low_power:int
parm: rtw_wifi_spec:int
parm: rtw_special_rf_path:int
parm: rtw_antdiv_cfg:int
parm: rtw_enusbss:int
parm: rtw_hwpdn_mode:int
parm: rtw_hwpwrp_detect:int
parm: rtw_hw_wps_pbc:int
parm: rtw_max_roaming_times:The max roaming times to try (uint)
parm: rtw_force_iol:Force to enable IOL (bool)
parm: rtw_mc2u_disable:int
parm: rtw_mac_phy_mode:int
parm: rtw_80211d:int
parm: rtw_notch_filter:0:Disable, 1:Enable, 2:Enable only for P2P (uint)


Любопытно, но файлы firmware у меня тоже присутствуют в папке /lib/firmware/rtlwifi в изобилии, но к чему они относятся - хз:

rtl8192cfw.bin
rtl8192cfwU_B.bin
rtl8192cfwU.bin
rtl8192cufw_A.bin
rtl8192cufw_B.bin
rtl8192cufw.bin
rtl8192cufw_TMSC.bin
rtl8192defw.bin
rtl8192sefw.bin

Также имеются папки и файлы:

/lib/firmware/RTL8192E/boot.img
/lib/firmware/RTL8192E/data.img
/lib/firmware/RTL8192E/main.img

/lib/firmware/RTL8192SU/rtl8192sfw.bin

Всё это для меня загадка.
Linux Safari Chrome
 Самара
0
0
ustasalex
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не смог добавить комментарий - форум говорит, что я пишу на html. Посему добавляю картинкой.

Linux Safari Chrome
 Самара
0
0
ustasalex
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Эвоно как, оказывается, надо обновлять страничку после комментария. И в верхнем комменте я глупость написал - видимо, нельзя поставить Raspbian на BananaPI - процессоры разные.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Тут вообще советуют выпаять убогий 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
Леонит Каганофф
Денис, огромное спасибо за опыт!
Нашел на Aliexpress 1200 руб: https://ru.aliexpress.com/item/Double-antenna-6dBi-Trough-wa[...]
Как только появятся деньги закажу и повторю опыт.

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



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



Linux Firefox
 Montreal
0
0
Denis Dyakov
На Aliexpress на тему WiFi встречаются весьма удивительные вещи, например поищите там CF-G103... Не знал, что бывают чисто радио-усилители (в данном случае 2.4 Гц) 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 на этом делался акцент), хотя возможно здесь ничего необычного нет, и это чисто маркетинг.
Поэтому вариант что вы обнаржили, с большой вероятностью может быть работоспособен. Здесь наверное, только - устраивает ли вас его особенности подключения, и то, что он без корпуса.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
У твоей мощность 26dBm, у предыдущего поколения 20dBm. У свистка - не нашел, думаю 14dBm. И тогда его действительно брать нет смысла.
Linux Firefox
 Великобритания
0
0
Denis Dyakov
Ах, ну да, они же еще по мощности отличались... Забыл уже. Тогда да, вариантов против CF-WU7300WD особо не наблюдается. Надеюсь китайцы не врут с мощностью. У меня в панельной квартире он через две стены добивает, но уже на минимуме.

Кстати, обратил внимание, что вариант выше с перепайкой встроенного USB WiFI (ra5572-chip) подходит под список чипов покрываемых модулем rt2800usb. Так что вариант с перепайкой тоже должен пойти из "коробки", если на BPI-R1 работает что-то Дебиан-подобное.

У меня вот такой вывод в системе BPI-R1 с работающим CF-WU7300WD:
1) 1 root@bpir1 ~ # lsusb
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 012: ID 148f:3072 Ralink Technology, Corp. RT3072 Wireless Adapter
Bus 001 Device 011: ID 046d:0804 Logitech, Inc. Webcam C250
Bus 001 Device 010: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
2) 1 root@bpir1 ~ # lsmod | grep rt2800
rt2800usb 13636 0
rt2800lib 48605 1 rt2800usb
rt2x00usb 11127 1 rt2800usb
rt2x00lib 42358 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 247915 3 rt2x00lib,rt2x00usb,rt2800lib
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Вариант с перепайкой чипа связан с большими трудностями: нам сейчас известен из аналогов только такой же 6-пиновый ra5572. Который по-прежнему стоит полторы тыщи рублей. С учетом рисков - идея замены чипа кажется неудачной. Были бы у меня тонны знаний и опыта, и мастерская, где бы я работал по долгу службы, и там водились бы все чипы на пробу - тогда можно экспериментировать. А заказать за полторы тыщи чип и обнаружить, что он глючит или греется или сгорел при перепаивании или слабой мощности или не поддерживает 300мбит... такой букет рисков как-то не вдохновляет ;)

А вот внешний USB 2.0 - это кажется годной идеей, тем более вот готовый опыт есть.
Linux Ubuntu Firefox
 Москва
1
0
Леонит Каганофф
Они пишут вот, что там на каждую антенну по микросхемке-усилителю на чипсете 6649E (неведомом мне, но видимо мощном):

https://ae01.alicdn.com/kf/HTB1o8cIKVXXXXcOXXXXq6xXFXXXR/205[...]

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

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