это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/03/18.htmlПока я тут поболел каким-то бронхитом и не было сил работать, повозился пару дней с домашним сервером, и наконец он работает.
Вкратце этапы эволюции сервера. 2001 — гостившие Морозовские ставят домашний сервер раздавать всем жителям квартиры интернет. Системный блок Пентиум 200Мгц. Примерно 2003 — появляется новое железо, Семеняка ставит новую FreeBSD. Я проникаю внутрь BSD и делаю всякие скрипты, на которых вешается электроника к COM-порту. Железо апгрейдится пару раз, последняя материнская плата появляется в 2010 (спасибо Артему), это мощный Пентиум, он уже имеет четкую концепцию:
Организационно сервер был выставлен в коридор за дверь, потому что в квартире он шумел. В 2011 году стали появляться идеи избавляться от сервера в пользу чего-то более компактного. По итогам обсуждений в блоге было решено остановиться на Asus N16:
И до весны 2016 он исправно работал, хотя мощности не хватало: тормозил дисковый архив (кино в хорошем качестве смотреть было нельзя), между нажатием кнопки звонка и звуком из колонок проходила пара секунд, а DD-WRT не давала поставить все пакеты, какие бы хотелось. Зато сервер был бесшумный, тоже держал этот сайт (на него даже движок встал без особых проблем) и выполнял работу роутера WiFi, позволив отказаться от лишней коробки. В коридоре стало чище:
Наконец сегодня (спасибо за помощь Serge и Кириллу!) была настроена Bananapi BPI-R1. Коридор стал совсем компактным, убрался внутрь дисковый архив, мощностей теперь хватает на все эксперименты, а практически чистый Debian позволяет ставить любой софт без ограничений. Коричневая дощечка временная, когда определюсь с блоком питания, внутренним аккумулятором (на Banana) пойму, нужен ли маленький дисплей, решу, куда ставить некоторые внутренности, и пойму, ставить GSM-модуль и электронику туда же или рядом, то соберу корпус из красивого дерева.
Дай Бог каждому!
Поскольку на Bananapi запаяно помимо портов GPIO вообще всё мыслимое железо, включая ИК-порт и микрофон, я вчера успел накидать скрипт, который распознает голос — принимает команду поставить будильник на нужное время. В принципе работает (использовал речевые технологии Яндекса), но что-то напутал в алгоритме определения минут-часов, поэтому не все формы фраз пока понимает, завтра поправлю. Еще на пару часиков сваял плеер — веб-интерфейс позволяет серфить по бесконечным папкам всего домашнего архива mp3 (а это на минуточку 200 гигабайт) и играть хоть во внутренние колонки, хоть в наружные на лестницу, хоть в браузере. Оказалась такая милая игрушка!
PS: А напоследок сегодняшний прикол.
sudo mv linux-developers /dev/hell
pan-setup --fire=on --firepower=200% /dev/hell
Как это принято у пидарасов случается в мире, родные драйвера WiFi для роутера Bananapi BPI-R1 глючат — теряют сеть:
/var/log/sdaemon.logMar 18 09:31:56 banana kernel: [68540.652527] usbcore: deregistering interface driver rtl8192cu
...
Mar 18 09:33:53 banana hostapd: wlan0: STA 3c:43:8e:75:b9:c3 IEEE 802.11: associated
Mar 18 09:33:53 banana hostapd: wlan0: STA 3c:43:8e:75:b9:c3 RADIUS: starting accounting session 56EBA12C-00000001
Mar 18 09:33:53 banana hostapd: wlan0: STA 3c:43:8e:75:b9:c3 WPA: pairwise key handshake completed (RSN)
Mar 18 09:34:23 banana hostapd: wlan0: STA 3c:43:8e:75:b9:c3 IEEE 802.11: disassociated
Полез гуглить документации и прочее, нашел рекомендацию пересобрать драйвер WiFI-карты RTL. Собственно, я пытался это делать и ранее, но мне не удалось. Сейчас нашел совсем адову инструкцию на китайском, полез выполнять. Ну, компиляция софта под Линуксы у меня вообще обычно никогда не получается, это я не удивлен. Не получилась и тут. Выдало ошибку:
Makefile:567: /usr/src/linux-headers-3.4.108-bananian/arch/armv7l/Makefile: Нет такого файла или каталога
Обычно на этом я опускаю руки, но тут полез посмотреть. Файл есть:
/usr/src/linux-headers-3.4.108-bananian/arch/armv71/Makefile
Но инсталлятор пишет, что его нет:
/usr/src/linux-headers-3.4.108-bananian/arch/armv7l/Makefile
Вы уже заметили разницу? ;)))
Правильное написание «armv7l» — такое название ветки ядра встречается в интернете. Поэтому разработчики драйвера Realtek видимо обращаются по правильному адресу. А вот сборщики системы Bananian явно не понимают различие иероглифов «l» и «1» — это для них видимо один и тот же иероглиф «одиноко растущее дерево без ветвей». Поскольку «armv71» все равно в системе был симлинком с «arm», я просто создал новый симлинк:
ln -s /usr/src/linux-headers-3.4.108-bananian/arch/arm /usr/src/linux-headers-3.4.108-bananian/arch/armv7l
И компиляция сработала без ошибок. WiFi с этим новым драйвером пока держится, будет ли падать — не знаю, поглядим.
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/03/18.html