Самодельный музыкальный центр с веб-интерфейсом

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

(далее…)

MediaDeb: Debian для китафонов чипах MediaTek

В этой заметке я расскажу о том, как превратить старый убитый китафон на чипе MediaTek, пылящийся на полке, уже даже без обновлений от производителя в… сервер под управлением Debian Stretch! Оную операцию я проделал для UMI-X2 и iOcean X8, и прошивки для оных и можно скачать по ссылке у меня в блоге. Учитывая, что типичный китайский телефон уже давно имеет по четыре, а то и десять процессорных ядер и 2GB оперативной памяти, а то и больше, результат получается намного более производительным, чем тот же Raspbberry PI, при схожем окружении.

(далее…)

SkyForge: Создаем корневую ФС Debian на основе конфигурации в стиле Dockerfile

Для кучи проектов, как для работы, так и для дома я использую Debian. Однако, когда работаешь со встраиваемыми системами (напр. ARM СнК) под рукой нет установочного диста debian… Да и вообще привода для чтения дисков. Корневая ФС формируется вручную, отдельно собирается вручную ядро. Впрочем, как обычно.

Процесс не особенно быстрый, если следовать официальной документации на debootstrap и multistrap, а новичкам просто взрывает мозг. (К сожалению, я уже тут не нуб зеленый, старею)
Самое неприятное, что мало просто сформировать корневую ФС, надо ее еще настроить более или менее вменяемым способом, напр. выставить пароль по умолчанию, сгенерировать ssh ключи, прописать fstab… В общем, обычный набор действий.

В большом Ынтерпрайзе ™ существуют такие инструменты, как vagrant который создает базовую виртуальную машину заданной конфигурации и chef или puppet, которые собственно ее настраивают. Хотя нам никто не запрещает использовать chef или chef-solo на armhf плате (а почему бы и нет?) нам все равно нужен какой-то базовый образ, который мы будем в дальнейшем настраивать, так?

(далее…)

Jenkins + armhf + deb

Эта заметка о том, как я разворачивал CI для около-железячных софтовых проектов и каких проблем я огреб с этим безобразием, пока добился рабочего (хоть и при помощи лома и мата) решения. Возможно даже первая из серии.

Начнем с проблемы. Совсем просто, на случай если это читают дети. У нас есть несколько software проектов. Нам надо периодически делать следующие рутинные действия:

  • Собрать проект и проверить, что он вообще собирается где-то, кроме ноутбука разработчика
  • Прогнать unit-test’ы (Ведь мы же не ленимся писать unit-test’ы, не так ли?)
  • Собрать deb-пакеты, и загрузить куда-нибудь, чтобы пользователи были счастливы

Казалось бы, все давно отлажено, есть OpenSuse Build Service / Open Build Service, Travis, Jenkins. Есть такие страшные штуки как sbuild, schroot и целый выводок утилит от debian-разрабов и просто классных людей, какие могут проблемы? Как всегда, дьявол в деталях. Сразу предупреждаю – текста будет много.

IMG_20151123_010048

(далее…)

Debian на DNS-327L: инструкция по приготовлению

Если Вы иногда почитываете этот унылый инженерный бложек, то помните мое приключение с DNS-327L и творчестве криворуких инженегров длинка C тех самых пор я еще немного причесал сию поделку китайцев, а именно:

  • Кнопка питания теперь заведена в dts куда надо, как и остальные кнопки
  • Апстрим ядра 3.18 и 3.19 работают и не зависают
  • Вся годнота от Марвелла, а именно DMA engine, mv_xor, watchdog и mv_cesa включены и работают
  • Я таки выдавил из себя небольшую (на пять простых пунктов) инструкцию как запустить на нем debian
  • Сделал замеры потребления

БАЛШОЕ ЖЫРНОЕ ПАРЕДУПРЕЖДЕНИЕ: Я не несу никакой ответственности за все то, что Вы сделаете со своим девайсом начитавшись этой статьи. Все нижеперечисленное при выполнении так же лишит Вас гарантии.

IMG_20150215_141546

(далее…)

Заставляем 2g/3g/4g модемы работать на debian’е

Небольшая заметка. Все новые донглы, вместо того, чтобы доставлять пользователю незабываемый секс с pppd, имеют встроенные ethernet-по-usb, подцепляющийся модулями типа cdc-ncm, sierra_net и т.п. Потому, после втыкания их в ifconfig -a появляется новый интерфейс, у меня – wwan0.
И как бы нам его поднять?
Делается это отправкой

AT^NDISDUP=1,1,"apn"

в виртуальный последовательный порт (соответственно на момент отправки, симка не должна ожидать ввода пина, который лучше отключить нафиг. Или же придется добавлять отправку AT+CPIN ).
Новый network-manager разруливает все эти проблемы, но мелкий одноплатник это не то место, куда надо тащить эту монструозную штуку. В моем случае у меня дебиан на небольшой платке, куда воткнут модем, потому вооруженный вышеописанным я набросал такое в /etc/network/interfaces:

iface wwan0 inet dhcp
        pre-up echo -ne '\r\nAT^NDISDUP=1,1,"internet"\r\n' > /dev/ttyUSB0 && sleep 15
        dns-nameservers 127.0.0.1 8.8.8.8

Это дает модему 15 секунд прочихаться, добавляет 127.0.0.1 и гугловский днс как неймсервер, так как я пользую dnsmasq для локального днса. Заменить только надо /dev/ttyUSB0 путем к порту, на котором висит управляющий интерфейс модема. Ну а после можно юзать:

ifup wwan0

для поднятия интерфеса или

ifdown wwan0

для того, чтобы его опустить.
Так же неплохо пинговать гугль или еще кого каждые 5 или 10 секунд, так как модем у меня опускает интерфейс после нескольких часов без активности, и понять это кроме как по сообщению cdc_ncm в dmesg нельзя.

Сервер в кармане

Я не психопат – я просто мыслю творчески
(c) Гарри Поттер и методы рационального мышления

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

Итак, в наличии имеем:

  • Тупой китайский кирпич HD7 Pro с android 2.3.5, умеющим точку доступа, и не развалившийся за полтора года службы. Внутри – MT6573
  • Прямые руки (2 шт., костлявые)
  • Немного свободного времени

Хотим получить

  • Набор штатных инструментов – lighttpd, ssh, git, прочее
  • WiFi точку доступа с локальным dns, выходом в интернеты (если есть)
  • Блэкджек и прочие полезности (с)

2013-03-18-00-19-06

(далее…)