xfce4-terminal и rm -Rf

Мы тут чуть-чуть ембедедом увлеклись и слабали изделие а-ля веб-камера. А работает оно под управлением Debian GNU/Linux. Всё бы ничего, но там нынче systemd, который точно будет насиловать флешку. К гадалке не ходи… По-этому было решено, что root живёт в памяти. Подумал я сначала об aufs, но её тут, оказывается, выпилили из upstream. Не безосновательно, отмечу: её автор всегда любил быдлокод и комментарии на родной японской мове (все японцы редкостные националисты, с их точки зрения тот, кто не умеет в японский язык, — не достоин их код разбирать). Похоже это наконец то надоело тем, кто отвечал за данный сегмент ядра. Тем более, что коммиты от создателя кончились давно, а поддерживать это надо было… Проще оказалось убрать нафиг. Глянул я на[…]

xfce4-terminal и rm -Rf

РусБИТех идёт всем нам известным путём, который протоптал ещё ВНИИНС. Описывать суть этого продвижения я не буду, — могу обидеть кого-нибудь. А мне тут понадобилось видео в H264 с нашего изделия на лету конвертировать и выводить. И я, конечно, обратился к GStreamer’у. Но эти ребятки Астру 1.4 слепили на кодовой базе аж Wheezy! А для того, чтобы работало так, как мне надо, нужен релиз из Jessie. Пришлось извращаться, накладывая патчи поверх пропатченных исходников пакетов (!!!). Как-то так, короче: aliech@arcturus:~$ ls -1R gstreamer1.0_from_jessie/ gstreamer1.0_from_jessie/: gstreamer-base gstreamer-core gstreamer-good gstreamer-libav libav gstreamer1.0_from_jessie/gstreamer-base: build_it_in_astra_1.4se.patch gir1.2-gst-plugins-base-1.0_1.4.4-2+deb8u1_amd64.deb gst-plugins-base1.0_1.4.4-2+deb8u1_amd64.changes gst-plugins-base1.0_1.4.4-2+deb8u1.debian.tar.xz gst-plugins-base1.0_1.4.4-2+deb8u1.dsc gst-plugins-base1.0_1.4.4.orig.tar.xz gstreamer1.0-alsa_1.4.4-2+deb8u1_amd64.deb gstreamer1.0-plugins-base_1.4.4-2+deb8u1_amd64.deb gstreamer1.0-plugins-base-apps_1.4.4-2+deb8u1_amd64.deb gstreamer1.0-plugins-base-dbg_1.4.4-2+deb8u1_amd64.deb gstreamer1.0-plugins-base-doc_1.4.4-2+deb8u1_all.deb gstreamer1.0-x_1.4.4-2+deb8u1_amd64.deb libgstreamer-plugins-base1.0-0_1.4.4-2+deb8u1_amd64.deb libgstreamer-plugins-base1.0-dev_1.4.4-2+deb8u1_amd64.deb gstreamer1.0_from_jessie/gstreamer-core: gir1.2-gstreamer-1.0_1.4.4-2+deb8u1_amd64.deb gstreamer1.0_1.4.4-2+deb8u1_amd64.changes gstreamer1.0_1.4.4-2+deb8u1.debian.tar.xz gstreamer1.0_1.4.4-2+deb8u1.dsc gstreamer1.0_1.4.4.orig.tar.xz gstreamer1.0-doc_1.4.4-2+deb8u1_all.deb gstreamer1.0-tools_1.4.4-2+deb8u1_amd64.deb libgstreamer1.0-0_1.4.4-2+deb8u1_amd64.deb libgstreamer1.0-0-dbg_1.4.4-2+deb8u1_amd64.deb libgstreamer1.0-dev_1.4.4-2+deb8u1_amd64.deb gstreamer1.0_from_jessie/gstreamer-good: build_it_in_astra_1.4se.patch gst-plugins-good1.0_1.4.4-2+deb8u3_amd64.changes gst-plugins-good1.0_1.4.4-2+deb8u3.debian.tar.xz gst-plugins-good1.0_1.4.4-2+deb8u3.dsc gst-plugins-good1.0_1.4.4.orig.tar.xz[…]

libvirt и qemu-kvm

Короче, я тут на днях беглым взглядом просматривал документацию на libvirt, на предмет того, как можно автоматизировать процесс извлечения ядра и initrd из файловой системы гостя. И оказалось, что libvirt несколько раз запускает файл с хуком, в строку запуска его отдавая параметры и xml’ку виртуальной машины. Для меня это стало, прямо скажем, открытием. Во времена появления libvirt’а, модой на системы виртуализации правила VMware, фактически предлагавшая десктопную виртуализацию, отмасштабированную до размеров сервера. Основной целевой аудиторией были виндоводы, которым было лень иметь под не прожорливые сервисы отдельные физические машины. Да, в первую очередь речь шла именно о ссаживании на одной железке того, что нельзя мешать в рамках одной ОС, а не об обеспечении быстрой миграции и не о прочих «киллер-фичах виртуализации». Конечно[…]

xfce4-terminal и rm -Rf

Всё, что будет происходить при сборке, с большой вероятностью, описано в файле debian/rules. В случае c Postgresql и 1С придётся заменить в COMMON_CONFIGURE_FLAGS флаг «—enable-integer-datetimes» на «—disable-integer-datetimes». Ну вообще я удивлён, конечно. Исходники для dpkg-source разделены на начальные исходники, патчи к ним, и, в конце, ещё накладывается патч для сборки в среде Debian. Вот они не осилили его поправить? Или малоинформативная приписка в readme Для использования PostgreSQL 9.6.3-3.1C с версиями 1С:Предприятия ниже 8.3.10 необходимо его собрать с установленным значением параметра integer_datetimes=off нужна, чтобы всякие левые люди не могли собрать корректно PG? Типа пользуйтесь бинарниками нашими или топайте в лес? Ну и, конечно, он не собрался. Спасибо вам, фирма 1С, что держите марку! debian/rules:213: recipe for target ‘override_dh_auto_test-arch’ failed make[1]: ***[…]

Orange Pi Plus 2E

Закалачивать гвозди микроскопом? Да! Спасать копеечные флешки от перезаписи тестировщиками внедрением в схему одноплатного компьютера? Почему бы нет?! Ну а в этом нам поможет скрипт: #!/bin/sh echo «Создаём RAM-диск» modprobe brd rd_nr=1 rd_size=1572864 max_part=0 while [ ! -b /dev/sda ]; do echo «Не найдено блочное устройство, ждём несколько секунд…» sleep 5 done echo 0 `blockdev —getsz /dev/sda` snapshot /dev/sda /dev/ram0 N 64 | dmsetup create snap modprobe g_mass_storage file=/dev/mapper/snap exit 0 Как бы это логичное продолжение поста об плате Orange Pi Plus 2E.

Тросики газа перед пайкой

Тут поинтересовался у ряда знакомых, паяли ли они тросы газа. Большинство — нет. Более того: часть опрошенных ответила, что из-за отсутствия готовых тросов они отказались от установки нравившихся им карбюраторов. Не дело, и мы сейчас это исправим! Но я абсолютно уверен, что подробная инструкция конечно не нужна. Тросики всем нужны разные, и не рационально, если данная заметка будет всего-лишь технологической инструкцией для изготовления каких-то определённых тросов. Тросик не возьмётся из воздуха. Надо купить некого донора. Идеально подходят тросы от «скутеров» (такие убогие табуретки из пластика). Они нынче сделаны весьма «дорого»: хороший гибкий тросик из мелких жил, облачённый в нейлоновую рубашку, поверх которой одета стальная. Идеально! Ещё лучше, если удастся найти что-то похожее на конечный результат. Но длиннее. Ибо нам ещё[…]

На самом деле звук на платах с Allwinner A20, по идее, поддерживается ещё с ядра 4.4. Только вот поддерживается ли оно на конкретной плате — это зависит исключительно от активности мейнтейнеров конкретной платы. Вот мне не повезло: изменения относительно моей платы вносятся только по случаю глобальных перемен, не массовая она. Не то, что Banana Pi или Cubieboard’ы. Короче, для решения моей проблемы надо всего ничего, — поправить devicetree. Для начала нужны исходники ядра, их можно (и логично) взять с kernel.org. Качайте позднюю редакцию той же основной версии, что и у ядра, установленного в ОС. Так для Debian’овского 4.9.0-3-armmp, я возьму 4.9.34. Распакуйте это, отредактируйте devicetree вашей платы, скомпилируйте и загружайте плату с ним. Листинг подготовки devicetree: aliech@fomalhaut:/mnt/build$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.9.34.tar.xz —2017-06-25[…]

Представляете, решил написать статью и вдруг понял, что оно никому, кроме меня, не нужно! Ну вот кому интересно, как без VBIOS инициализировать intel’овскую встроенную графику? Никому! Под новостью о релизе свежего coreboot’а я отхватил пучок минусов, так как написал, что при должном стечении обстоятельств портирование новой материнской платы занимает около получаса, а в малом наборе портированных плат виноваты не разработчики coreboot’а. Ну не верят люди. Людям проще дальше считать, что это сложно. Проще дальше стонать от бремени UEFI и кушать тот же кактус. Хрен с ними… Итак, у нас есть плата на intel sandybridge/ivybridge в индустриальном исполнении. Нет, не старый набор логики. Цикл жизни индастриала ~10 лет. Соответственно сейчас именно на этом наборе логики встречаются платы в индустриальном исполнении от[…]

Много серверов в стойках

Отказоустойчивая система — это очень легко, на самом деле. Залог успеха — вменяемая архитектура. Но может так случится, что заказчик не умеет в архитектуру. От слова «совсем». А его программисты не умеют в хороший код и лаконичные решения. Но уж очень они хотят получить защищённый от отказа оборудования вычислительный комплекс, не содержащий «специфических» решений (типа внешних дисковых контроллеров с двумя target-каналами). Понятно, что речь идёт о кластере из двух машинок с DRBD. И надо это так сделать, чтобы не влипнуть в настройку кособокого ПО заказчика… Короче, нужно разместить «корень» (корневой раздел) на DRBD! Попробуем собрать подобное решение? Для этого нам нужны две машины схожей конфигурации. Требуется заранее определится с сетевыми именами машин и их адресацией. В примере будут фигурировать хосты[…]

Попросили меня написать немного о выборе резины на мотоцикл. Что-то написал) В выборе резины есть две составляющие: исключительно религиозная и техническая. Со второй проще, так что начнём с первой… Итак, вся резина одинаково полезна. За редкими исключениями. Как с инструментом, который покупаешь в гараж. Вот свёрла: можно взять дешёвый китайский набор, промаркированный отечественным названием, заточить, исправить кромку, сделать работу, снова обновить заточку… и так много-много раз. А можно взять фирменный набор одного немецкого производителя, и пусть нас это совсем-совсем не спасёт от обслуживания этих свёрл, но делать это придётся реже. Сильно реже. Просто берёшь с полки, вставляешь нужно сверло в дрель, накерниваешь дырку, сверлишь и… оно сверлится! Ну и раз в пятилетку заточить, да. Оба подхода позволяют просверлить дырку. Но[…]