стоит от 1{s}lt;/a>. Реально. Подорожали они сейчас — я-то брал еще по 0.91$ :) Не помню точно, какие действия я производил, чтобы установить карту в систему — кажется, никаких. Но при старте Asus я гружу такие модули (а если были загружены, на всякий случай предварительно выгружаю):
показать
/sbin/rmmod snd-timer
/sbin/rmmod snd-hwdep
/sbin/rmmod snd-rawmidi
/sbin/rmmod snd
/sbin/rmmod snd-page-alloc
/sbin/rmmod soundcore/sbin/insmod soundcore
/sbin/insmod snd-page-alloc
/sbin/insmod snd
/sbin/insmod snd-rawmidi
/sbin/insmod snd-hwdep
/sbin/insmod snd-timer
/sbin/insmod snd-pcm
/sbin/insmod snd-mixer-oss
/sbin/insmod snd-pcm-oss
/sbin/insmod snd-usb-lib
/sbin/insmod snd-usb-audio
Это самодельная коробка с электроникой и реле на базе Ардуино. Например, она открывает дверной замок (замок квартиры электрический). Обычно на этот месте паникеры начинают мне задавать вопросы. Мол, а если заглючит, если электричество отрубят? Отвечаю: этот замок стоит около 8 лет. Проблем с ним не было (а вот прежние механические раз в три года ломались и их выпиливали болгаркой). Замок так просто не ломается (там еще сигнализация самодельная). И у него, как у любого нормального электронного замка есть личинка со штатным ключом. Ключ есть у наиболее консервативных членов семьи. Поэтому если вырубят энергию более чем на полчаса (иначе UPS выдержит), просто откроем ключом. Но вообще он открывается электронно, и это дико удобно. Например, я могу открыть дверь приехавшим гостям, находясь не дома — с мобильника через интернет. И для срабатывания замка я использую 12 вольт от блока питания Asus, чтоб не ставить отдельный блок.
Нормально, никаких проблем. Кстати, Ардуино с Asus согласуется прекрасно. При запуске системы я делаю такую инициализацию:
показать
/sbin/rmmod ftdi_sio
/sbin/rmmod usbserial/sbin/insmod usbserial
/sbin/insmod ftdi_sio
/bin/stty -F /dev/ttyUSB0 57600 -echo
Новый оптический сканер отпечатков пальцев лежит в коробочке и ждет своего часа, мне все лень с ним разобраться. Но я пока нашел другую игрушку, может даже более удобную — RFID-RC522. Это бесконтактный сканер NFC-ключей, он стоит с доставкой от 135 руб. Штуковина довольно просто подключается к Ардуине шестью проводками и позволяет организовать открытие замка при поднесении к двери ключа. Которым может быть все, что угодно — два ключа в комплекте, московская социальная карта, и даже просто старые карточки метро, это все протокол Mifare 13.56MHz. Для экспериментов я просто спустился в метро и набрал карт из корзинки для отработанных карт. У каждой карты свой уникальный номер, программируешь Ардуину пускать в дом по списку.
Из любопытного: у двух карт метро номер оказался одинаковым. Вряд ли это поможет злоумышленнику прийти с колодой карт и подобрать код, но все равно интересно. Еще любопытное: моя карта УЭК, по которой я хожу в метро, пару раз выдала читалке свой номер, и с тех пор говорить с ней отказывается глухо. В метро по ней я ходить продолжаю спокойно. Поскольку протокол Mifare — он и в Африке Mifare, я полагаю, что у УЭК внутре стоит какая-то паникерская блокировка от несанкционированных читалок. Для моих задач это неудобно, но конструкторскую задумку разработчиков УЭК и заботу о безопасности я вынужден оценить высоко.
Вдобавок надо сказать, что под DD-WRT вообще легко программируется. Я туда поставил Midnight Commander (не могу без него, там и редактор дивный), gcc, и вот пример программки. Это демон, который вешается в память и ждет строчку сообщения от Ардуины, а когда она придет, передает ее как параметр, запуская процедуру обработки сигнала zvonkido.php Смысл в том, что если строчку от Ардины будет ждать сам zvonkido.php (в моих задачах ожидание события длится часами и даже сутками), то он со своим консольным интерпретатором php будет жрать в памяти 16%. А бинарник жрет 1% памяти.
пример программы
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>int main(int argc, char* argv[]) {
int fd, ack=1, l=0,i;
char buff[100]="",longbuff[1000]="";
fd=open("/dev/ttyUSB0", O_RDONLY | O_NOCTTY);
while(1) { l=read(fd, buff, 1000);
if(l>=100) { printf(«error length\n»); return 1; }
buff[l]=0;
for(i=0;i<l;i++) {
if(buff[i]==0) { l=i; break; }
if(buff[i]==0x0D || buff[i]==0x0A) { l=i; buff[l]=0; break; }
if(buff[i]<32 || buff[i]==34 || buff[i]==39) { printf("hack error ['\"]!\n"); l=0; break; }
}
if(l) {
strcpy(longbuff,"/opt/lleo/zvonkido.php '"); strcat(longbuff,buff); strcat(longbuff,"'");
system(longbuff);
}
}
close(fd);
return 0;
}
Итак, что сейчас делает сервер-маршрутизатор?
— раздача интернета, WiFi
— файловый архив Samba (т.н. «диск R:")
— обслуживание нескольких звуковых карт
— работа с Ардуино
— домашний вебсайт http://home.lleo.me (там пока я поставил mysql + легкий lighttpd, apache ставить не стал, думаю, как под него заточить свой движок, чтоб без mod_rewrite работал)
Я пока не знаю, какую еще придумать задачу, с которой бы он не справился. Учитывая, что USB-устройств туда можно натолкать массу (скоро я, например,восстановлю свой GSM-гейт для приема/отправки SMS).
PS1: К сожалению, закончилась неудачей попытка сделать в Asus искусственный интеллект, чтобы коробка тихо висела в углу, но отвечала на вопросы: проклятая утилитка rec не захотела писать звук со звуковой карты. Хотя другие утилиты звук пишут, но мне нужна именно эта — она умеет ждать сообщения. Скомпилировал бы кто-нибудь sox толково, и был бы разговаривающий и отвечающий на вопросы интеллект :)
PS2: Роутер Asus RT-N16 прекрасен во всех отношениях. Хотя есть еще мощнее: Asus RT-AC56U Он правда стоит в два раза дороже, но если бы я знал, что оно так хорошо полетит на этой загадочной DD-WRT, я бы купил самый мощный — мало ли какие задачи мне потребуются в будущем? В общем, если вы соберетесь покупать RT-N16, купите у меня (2681 руб, куплен 2 месяца назад, коробка, гарантия, стоит правильная прошивка, в подарок дам звуковую карту :), а я себе тогда 56U куплю.
В принципе на этом отчет о переустройстве домашнего сервера закончен (надеюсь, кому-то это будет полезно). Но девочки, я гляжу, заскучали, поэтому остаток заметки мы посвятим цветочкам и садоводству.
Два месяца назад я писал, что обустроил на балконе делянку с помидорами, и месяц назад они активно росли. Сейчас кусты выросли и цветут. Правый ящик на фотке выше, слева направо: «Томат F1 Ласка» вымахал выше всех (не уверен, что это хорошо) и опередил на голову «Томат F1 Сластена» (пара кустов в центре), а слева приютились пышные ростки «Физалиса десертного» который лично я тоже отношу к помидорам. Лично мне больше нравится крайний левый ящик:
Эти крепкие коренастые кусты — «Жемичужина желтая». Они не вымахали так высоко вверх, зато красивы, и уже покрылись цветами. Они прекрасны:
Два маленьких ящичка в центре балкона я добавил позже, недельки через три:
Это «Томат Оранжевая шапочка» и «Томат F1 Карамель». Первая — из породы темно-зеленых и коренастых, вторая — светлая, лезет вверх. Говорят, их надо как-то «прищипывать», но я начинающий огородник и пока не умею. Я только по вашим советам провожу пасынкование — ну, то есть брею подмышки выщипываю листики, которые начинают расти в стыке между ветвями и стволом. Да, Ардуину пока не приделал — поливаю сам.
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2014/07/07.html