xfce4-terminal и rm -Rf

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

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]: ***[…]

На самом деле звук на платах с 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[…]

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

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

xfce4-terminal и rm -Rf

Когда-то весьма давно я топил за использование vde_switch для организации сети виртуальных машин в домашних условиях. Использовал я его вместо мост-устройства, как этакий сетевой хаб. Ну и на каждую сеть по такому хабу. Потом захотелось окошек, virt-manager’а и прочих извращённых утех от Red Hat’а. Но я вернулся… Короче, отринем же этот велосипед на базе linux-bridge/netfilter/dnsmasq в пользу настоящего виртуального сетевого L2-свитча! С возможностью раскидать L2-сегменты внутри этого свитча как вам заблагорассудится! Итак, конфиг vde_switch’а: port/setnumports 24 port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto port/createauto vlan/create 1 vlan/create 2 vlan/create 3 port/setvlan 2 1 port/setvlan 3 1 port/setvlan 4 1 port/setvlan 5 1 port/setvlan 6 2 port/setvlan 7 2 port/setvlan 8 2 port/setvlan 9 2 port/setvlan 10[…]

xfce4-terminal и rm -Rf

Итак, grub не нужен, нам нужны лишь скрипты для автоматизации. Справедливости ради стоит отметить, что распространённости grub’а способствовала именно поддержка мейтейнеров и то, что вспомогательных скриптов для него ими написано море. Вот и нам надо для U-Boot’а тоже. Итак, для начала скрипт, который вызывается после установки пакета с ядром, /etc/kernel/postinst.d/zz-add-u-boot-file: #!/bin/sh -e version=»$1″ uboot_dir=»/mnt/u-boot» part_num=»2″ kernel_string=»ext4load mmc 0:${part_num} \${kernel_addr_r} /boot/vmlinuz-${version}» dtb_string=»ext4load mmc 0:${part_num} \${fdt_addr_r} /usr/lib/linux-image-${version}/\${fdtfile}» initrd_string=»ext4load mmc 0:${part_num} \${ramdisk_addr_r} /boot/initrd.img-${version}» info_string=»echo \»Booting Debian GNU/Linux with kernel ${version}…\»» boot_string=»bootz \${kernel_addr_r} \${ramdisk_addr_r}:\${filesize} \${fdt_addr_r}» dest_file=»${uboot_dir}/${1}.scr» tmp_file=»/tmp/${1}.src.tmp» if [ -e «${dest_file}» ]; then exit 0 fi /bin/echo «${kernel_string} && ${dtb_string} && ${initrd_string} && ${info_string} && ${boot_string}» > ${tmp_file} /usr/bin/mkimage -Cnone -Aarm -Tscript -d${tmp_file} ${dest_file} rm ${tmp_file} exit 0 Обратите внимание, что мы предполагаем загрузку[…]