Pull to refresh
1
0

User

Send message

PXE-мультитул на базе Raspberry Pi

Reading time11 min
Views22K

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

Перед тем как приступить к достаточно тривиальной процедуре настройки BIOS и IPMI, мы должны убедиться в том, что каждый компонент сервера имеет требуемую версию прошивки. В большинстве случаев, за редким исключением, необходима актуальная версия, доступная на сайте производителя конкретных комплектующих. Сегодня мы расскажем, как мы придумали для ускорения процесса задействовать популярную нынче «малинку».
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments36

Маленькие «малинки» в крупном дата-центре (часть 3 — Kea DHCP)

Reading time10 min
Views8.7K

Мы двигаемся к финалу нашей саги об интеграции Raspberry Pi 4 в выделенные серверы. В первом тексте я рассказал об отличиях процесса загрузки «малинок» от «классических» серверов. Во втором — собрал образ, способный после загрузки файлов по TFTP-протоколу запускаться и работать из оперативной памяти. При этом показал, как его кастомизировать, добавляя нужные пакеты и файлы.

Теперь нужно воспроизвести поведение, которое мы показали на примере iPXE-скрипта.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments8

Как технология USB over IP позволила людям забыть о расстоянии

Reading time5 min
Views68K
Источник изображения
Сегодня быстрым ростом количества устройств сети Интернет и интернета вещей уже никого не удивишь. Существует множество различных протоколов и технологий, на которых основана обработка и обмен информацией между устройствами и, собственно, сама связь этих устройств.

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

В этой статье речь пойдет о технологии, не относящейся ни к одной, ни к другой группе — USB over IP. Без нее компьютерные сети существовали бы без особых проблем, но она способна значительно упростить работу и снизить затраты на эксплуатацию у крупных предприятий, небольших организаций и даже обычных пользователей. К примеру, с помощью нее можно пробросить аппаратный USB-ключ защиты ПО внутрь облачной платформы или облака на базе VMware и использовать его так, словно он установлен на локальной машине. Но обо всем по порядку.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments87

Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

Reading time7 min
Views111K

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Как телефон взаимодействует с автомобилем
Total votes 109: ↑109 and ↓0+109
Comments123

Хакаем CAN шину авто. Виртуальная панель приборов

Reading time14 min
Views213K


В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Total votes 195: ↑192 and ↓3+189
Comments224

Как держать 20 тысяч VPN клиентов на серверах за $5

Reading time24 min
Views81K
Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.

В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.

  • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
  • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
  • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
  • Балансировка нагрузки между серверами и процессами OpenVPN
  • Тонкая настройка Linux для большого числа подключений
  • Особенности кривых операционных систем и роутеров пользователей

Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
Читать дальше →
Total votes 79: ↑71 and ↓8+63
Comments139

Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?

Reading time10 min
Views63K


Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.


Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.


Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.


Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments16

pyqtdeploy, или упаковываем Python-программу в exe'шник… the hard way

Reading time16 min
Views41K

КДПВ


Наверняка, каждый, кто хоть раз писал что-то на Python, задумывался о том, как распространять свою программу (или, пусть даже, простой скрипт) без лишней головной боли: без необходимости устанавливать сам интерпретатор, различные зависимости, кроссплатформенно, чтобы одним файлом-exe'шником (на крайний случай, архивом) и минимально возможного размера.


Для этой цели существует немало инструментов: PyInstaller, cx_Freeze, py2exe, py2app, Nuitka и многие другие… Но что, если вы используете в своей программе PyQt? Несмотря на то, что многие (если не все) из выше перечисленных инструментов умеют упаковывать программы, использующие PyQt, существует другой инструмент от разработчиков самого PyQt под названием pyqtdeploy. К моему несчастью, я не смог найти ни одного вменяемого гайда по симу чуду, ни на русском, ни на английском. На хабре и вовсе, если верить поиску, есть всего одно упоминание, и то — в комментариях (из него я и узнал про эту утилиту). К сожалению, официальная документация написана довольно поверхностно: не указан ряд опций, которые можно использовать во время сборки, для выяснения которых мне пришлось лезть в исходники, не описан ряд тонкостей, с которыми мне пришлось столкнуться.


Данная статья не претендует на всеобъемлющее описание pyqtdeploy и работы с ним, но, в конце концов, всегда приятно иметь все в одном месте, не так ли?

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments10

Сборка приложения среды arduino средствами CI github

Reading time2 min
Views3.5K
image

Немного имея по работе дело с CI/CD (gitlab ce), не так давно на github наткнулся на actions, и решил попробовать, что же это за зверь такой.

Собирать JS или какие то другие решения не очень интересно было, поэтому решил протестировать сборку Arduino скетча для esp8266, получить в качестве результата скомпилированный бинарник, готовый для загрузки напрямую в микроконтроллер без необходимости установки локальной Arduino IDE.

Actions, или pipeline
Последовательность команд и действий, запускающаяся после определенных событий — например, push в git ветку репозитория, то есть она будет запускаться после изменения какого либо файла. Можно изменить файл напрямую редактором github, и проект автоматически соберется и скомпилируется. Pipeline используется не только для компилирования, но и для различного тестирования кода.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments4

Точки входа в Python

Reading time6 min
Views29K
Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим.

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



Осторожно: специфический юмор далее по тексту.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments6

AudioSwitcher — автоматизация того, что казалось бы не нужно автоматизировать

Reading time6 min
Views16K

Предисловие


У меня дома есть пара комплектов хороших советских акустических систем. Но техника эта довольно старая и просто не может включаться с пульта или автоматически, а постоянно подходить к усилителю звука и включать/выключать его просто лень. Это проблему я и решил. Сначала была куплена ардуино и проект был сделан на ней, но качество работы меня не устроило и проект был переделан под STM32F103C8. В итоге у меня получилось устройство, которое имеет 4 аудио-входа, 1 аудио-выход, вход 220В и выход 220В. При наличии хотя бы одного активного аудио-входа на выходе 220В появляется напряжение, тем самым включая усилитель звука, и активный аудио-канал передается на выход.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments75

Python + OpenCV + Keras: делаем распознавалку текста за полчаса

Reading time12 min
Views200K
Привет Хабр.

После экспериментов с многим известной базой из 60000 рукописных цифр MNIST возник логичный вопрос, есть ли что-то похожее, но с поддержкой не только цифр, но и букв. Как оказалось, есть, и называется такая база, как можно догадаться, Extended MNIST (EMNIST).

Если кому интересно, как с помощью этой базы можно сделать несложную распознавалку текста, добро пожаловать под кат.


Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments27

Простой способ создания голосового оповещения в системе Домашней автоматизации («Умный дом»)

Reading time4 min
Views11K
Протестировав консольный SIP клиент Linphonec, увидел в нём возможность простого и быстрого способа реализации оповещения голосом на мобильный телефон, для домашней системы автоматизации.

Думаю данный способ подойдёт для многих DIY систем автоматизации своего дома, приведу свой вариант.

Имею систему автоматизации «Умный дом» MajorDoMo, которая установлена на одноплатный компьютер Raspberry Pi (под управлением ОС Raspbian (Debian 9).

Создадим возможность оповещения от MajorDoMo к смартфону без использования дополнительного оборудования и своего VoIP сервера.

Краткий принцип действия оповещения: в случае критичной аварии (перечень аварий каждый может определить для себя свой), система автоматизации управляет консольным VoIP клиентом и вызывает хозяина по SIP протоколу, после ответа проигрывает ранее записанный звуковой файл с сообщением об аварии.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments10

Про котэ, жену, двух сыновей, идею… и не только. История с продолжением

Reading time12 min
Views53K
Привет, Habr. Для меня эта площадка нова, и откровенно было немного страшно размещать свой опус. Но как говорится, волков бояться в лес не ходить, созрел. Попаду ли я в нужную секцию не знаю, но вроде говорят что в «Я Пиарюсь», таких как я не бьют…

В публикации будет 25 фото, 5 не очень тяжелых гифки и много текста.

Предыстория


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

Ну как говорится, поехали!




Мои дети, не обремененные усиленным отцовским воспитанием, забывают смывать за собой в туалете. В основном это происходит ночью т.к. добираются они до унитаза в полудрёме. Этого состояния хватает на — немного разлепить глаза, не споткнуться о кошек и доковылять до туалета. Ругай не ругай, без толку. Я понимаю что можно и подзатыльник влепить, но люблю я их и это не наш метод. Утреннее амбре, испаряющихся продуктов жизнедеятельности, присутствовало в туалете, почти каждый день. С мыслью — пусть мир прогнется под нас, начал искать решение.
Читать дальше →
Total votes 277: ↑269 and ↓8+261
Comments249

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Reading time12 min
Views446K
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE



Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Поехали!
Total votes 141: ↑138 and ↓3+135
Comments82

IP KVM своими руками 3.0

Reading time16 min
Views48K
Это уже третья вариация на тему IP KVM'а, на этот раз концепт полностью пересмотрен, начнем строить нечто новенькое. Будет много интересного, не отходите от экрана. Появится еще один необычный девайс, отбросим почти все старые компоненты, вернемся обратно к родной ардуино и немножко поиграем в хакера.

Для тех, кто только что присоединился, краткое содержание предыдущих серий:

  • Первая статья
    Собирали IP KVM на Arduino и Raspberry Pi, получилось дорого и с плохим качеством видео.
  • Вторая статья
    OrangePI и Atmega16u2, поучилось дешево, но качество изображения всё также отвратительно.

И вот, наконец, в этой статье будут исправлены все минусы предыдущих. Особый упор будет сделан на максимальное снижение стоимости компонентов.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments17

IP KVM своими руками 2.0

Reading time16 min
Views20K
В этот раз изложу своеобразный «багфикс» для девайса из предыдущей статьи. Eще один вариант реализации смотрите в следующей.

Взглянув на получившийся велосипед пришла идея, исправить на сколько это возможно недостатки. А именно:

  • расширить возможности удаленного управления;
  • снизить себестоимость;
  • придумать что-нибудь с передачей видео, что б было хоть немного комфортней работать удаленно.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

IP KVM своими руками

Reading time8 min
Views58K
Эта статья написана под впечатлением от другой — большое спасибо автору! В этой статье почти удалось сделать собственный IP KVM Switch, и это круто! Но объясню, почему почти. Да, там все работает как и написал автор… До момента перезагрузки в биос — там вся магия рассеивается и сколько не старайся, ничего не происходит.

Решено было исправить это досадное недоразумение и как можно дешевле и компактней. Начнем со стереотипов Raspberry Pi и Arduino, а в следующей статье будет продолжение уже на другом железе.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments18

Терминал для домашнего Linux сервера на базе ESP8266

Reading time6 min
Views28K

Введение


Данное устройство служит для удалённого доступа к Linux серверу посредством последовательного порта и позволяет отказаться от локальных монитора и клавиатуры. Зачем оно нужно если есть SSH и VNC? Нужно в виду ряда проблем, связанных с управлением на этапе загрузки системы и управлением питанием:
  • Выбор загружаемой ОС, вход в recovery mode, memtest. Нажатие S во время загрузки при невозможности смонтировать одну из файловых систем, управление fsck во время загрузки.
  • Ввод пароля от зашифрованного корневого раздела во время загрузки. Приходилось в initramfs устанавливать dropbear действующий на этапе загрузки. Пароль вводился по SSH. Хочу отметить, что данный способ непросто мне давался в плане конфигурации, на популярных дистрибутивах приходилось править скрипты загрузки и использовать некоторые костыли, которые переставали работать с выходом новых релизов.
  • Удаленное выключение и включение. С первым затруднений никогда не было, а вот для включения приходилось применять технологию Wake-on-LAN (WOL), магический пакет посылался с маршрутизатора и сервер включался, правда не всегда, а только тогда когда в конфигурационных регистрах сетевой карты были «правильные» значения перед выключением, которые должна была внести туда ОС.
  • Отказы после отключения электричества и некорректной работы UPS, вкупе с автоматическим включением настроенном на материнской плате.
  • К сожалению, оборудование моего домашнего сервера не промышленное и не обладает высокой степенью надежности. То же касается и программного обеспечения, зачастую работают «сырые» модули ядра. В следствие чего не раз сервер «зависал» не отвечая ни по сети, ни на нажатие клавиш клавиатуры. Приходилось использовать аппаратный сброс зажимая кнопку питания более чем на 3 секунды.


На промышленном оборудование таких проблем нет, в пример можно привести решение HP iLO позволяющее удаленно хоть систему устанавливать, не говоря о таких вещах как управление питанием и диагностика системы. Кстати говоря у них есть продукты и для дома/малого бизнеса с этим решением. Но так сложилось, что система строилась на базе обычной miniITX материнской платы без таких возможностей.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments35

Морти, мы в UltraHD! Как посмотреть любой фильм в 4K, дорисовав его через малоизвестную нейросеть

Reading time3 min
Views114K
Наверное, вы слышали про технологию Яндекса DeepHD, с помощью которой они как-то раз улучшили качество советских мультфильмов. Увы, в публичном доступе ее еще нет, а у нас, рядовых программистов, вряд ли найдутся силы написать свое решение. Но лично мне, как обладателю Retina-дисплея (2880х1800), недавно очень захотелось посмотреть «Рика и Морти». Какого же было мое разочарование, когда я увидел, как мыльно на этом экране выглядит 1080р, в котором существуют оригиналы этого мультсериала! (это прекрасное качество и обычно его вполне достаточно, но поверьте, ретина так устроена, что анимация с ее четкими линиями в 1080р выглядит мыльновато, словно 480р на FHD-мониторе)

Я твердо решил, что хочу увидеть этот мультсериал в 4К, хотя и совершенно не умею писать нейросети. Однако решение было найдено! Любопытно, что нам даже не придется писать код, понадобится лишь ~100 ГБ места на диске и немного терпения. А результат — четкое изображение в 4К, которые выглядит достойнее, чем любая интерполяция.

image
Читать дальше →
Total votes 222: ↑218 and ↓4+214
Comments187
1

Information

Rating
Does not participate
Date of birth
Registered
Activity