LINUX.ORG.RU

Сообщения Flotsky

 

virsh blockresize не умеет в LVM

Есть VM, диски которой находятся на LVM Надо на лету увеличить диск.

Ранее делал # lvextend -L +2G /dev/ и бежал перезапускать VM

Недавно нагуглил, что можно # virsh blockresize my_vm vda --size 5G
Но злобная консоль мне ответила QEMU «block_resize»: Cannot grow device files

Дальнейший гуглинг не даёт ничего адекватного.

Единственное, что нагуглил, это https://github.com/ganeti/ganeti/issues/28 и указание на подключение к некоему socket и отправку туда block_resize с непонятно откуда взятыми ID.
Но у меня нет такого socket и ID я не знаю откуда взять.

 , ,

Flotsky
()

Проброс директории в windows VM

PS нету тега virtiofs, ок использую virtio

Следую инструкциям
https://virtio-fs.gitlab.io/howto-windows.html
https://libvirt.org/kbase/virtiofs.html

По итогу в windows появляется диск, проброшенный с хоста.

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

В логах windows добрался до сообщения «virtiofs.exe appcrash» без подробностей. И правда, если перезапустить службу, диск опять появляется в госте.

При этом на стороне хоста я не вижу каких либо ошибок.

Есть у кого-то истории успеха? Или идеи куда смотреть?


Хост Linux flotsky-pc 5.18.12-3-MANJARO (да, давно не обновлялся)
Гость w10 pro
qemu запускается от пользователя libvirt-qemu Пробрасываемая директория на хосте имеет права 755 и пользователя/группу libvirt-qemu
XML гостя

( читать дальше... )

 , ,

Flotsky
()

Как пользоваться ansible?

Сейчас использую puppet и мне встречаются ситуации вида:

  • Есть ресурс, который надо переодически поправлять(сервис периодически падает и puppet используется для периодического его запуска)
  • Не всегда машина, которая провизируется доступна прямо сейчас (с puppet удобно, агент сам придёт за провизией как только сможет)

А как это реализуется в ansible? Я не встречал ни каких готовых механизмов периодического запуска ansible, как и вообще автоматизации этого запуска. В инструкциях везде «руками» запускают применение.

Складывается ощущение, что пользоваться ansible надо в виде «вот у меня сейчас абсолютно точно доступный сервер, я его один раз спровизирую и более его состояние меняться не будет» и просто перезапускать (вручную) провизирование при каждом изменении.

Что я упускаю?

 ,

Flotsky
()

compressed file as root image

Пытаюсь оттолкнувшись от mkarchiso сделать что-то похожее, но для debian.

Там по ходу сборки происходит
# Create an EROFS image containing the root file system and saves it on the ISO 9660 file system.
Далее в initramfs тут собранный образ монтируется.

Вопрос, можно ли для экономии места так монтировать сжатый образ?

Из явных ответов знаю squashfs, но хочется tar+zstd. Не могу найти как.

Напрашивается идея, которую я использовал ранее для netboot - распаковать образ в tmpfs смонтированный как newroot.
Но это затратно по RAM, хочется именно смонтировать в RO

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

 , ,

Flotsky
()

Переделать «клавиатуру» во что-то ещё и ловить её ввод отдельно

Вот такая штука.

Прикидывается клавиатурой и при считывании карточки просто выплёвывает её номер как будто его на клавиатуре набрали.

Надо как-то убрать этот ввод скажем в файл.

Идеи? Логика подсказывает мне смотреть в сторону udev, но куда я бегло нагуглить не смог.

PS. Есть ПО для настройки из под windows, но оно только формат ввода переключает, ожидал, что можно будет заставить устройство прикидываться com портом, увы нет.


в логе при подключении выглядит так

usb 3-1: new full-speed USB device number 3 using uhci_hcd
usb 3-1: New USB device found, idVendor=ffff, idProduct=0035, bcdDevice= 0.01
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-1: Product: USB Reader
usb 3-1: Manufacturer: USB Reader
usb 3-1: SerialNumber: SN201706VER1
input: USB Reader USB Reader as /devices/pci0000:00/0000:00:05.1/usb3/3-1/3-1:1.0/0003:FFFF:0035.0003/input/input9
hid-generic 0003:FFFF:0035.0003: input,hidraw1: USB HID v1.10 Keyboard [USB Reader USB Reader] on usb-0000:00:05.1-1/input0

 ,

Flotsky
()

odbc segfault

Был debian9, asterisk и postgres. В dialplan запускался скрипт, который внутри силами isql делает пару запросов.

Потребовалось обновиться. Развернул debian11, поставил те-же пакеты для asterisk/postgres/odbc. Конфиги и БД перенёс со старого сервера.

И теперь получаю ситуацию:

Asterisk работает успешно.

isql из консоли запускается, к БД цепляется, запросы выполняет.

Но, как только asterisk из dialplan запускает(SHELL) скрипт, у которого внутри вызов isql, то я ловлю segfault и запросы идут «коту под хвост».

авг 18 23:02:22 pbx kernel: isql[8136]: segfault at 0 ip 00007fb931af7846 sp 00007ffdbae8e4b8 error 4 in libc-2.31.so[7fb931a7f000+14b000]
авг 18 23:02:22 pbx kernel: Code: 0f 1f 40 00 66 0f ef c0 66 0f ef c9 66 0f ef d2 66 0f ef db 48 89 f8 48 89 f9 48 81 e1 ff 0f 00 00 48 81 f9 cf 0f 00 00 77 6a <f3> 0f 6f 20 66 0f 74 e0 66 0f d7 d4 85 d2 74 04 0f bc c2 c3 48 83

Беглый поиск привёл меня к «я дурак криво поставил/настроил odbc», тогда я откатил настройки odbc к по умолчанию и продолжил получать ошибку. Что касается «криво поставил», то тут даже добавить не чего odbc-postgresql из стандартного репозитория врятли может быть «кривым».

Куда ещё можно посмотреть? Складывается ощущение, что я забыл что-то установить, но разве оно не должно было придти в виде зависимостей?


root@pbx:~# cat /etc/odbc.ini
[PostgreSQL-asterisk]
Description         = PostgreSQL connection
Driver              = PostgreSQL ANSI
Trace               = No
TraceFile           = /tmp/psqlodbc.log
Database            = asterisk
Servername          = localhost
UserName            = $login
Password            = $passwd
Port                = 5432
ReadOnly            = No
RowVersioning       = No
ShowSystemTables    = No
ShowOidColumn       = No
FakeOidIndex        = No
ConnSettings        =
...
root@pbx:~# cat /etc/odbcinst.ini 
[PostgreSQL ANSI]
Description=PostgreSQL ODBC driver (ANSI version)
Driver=psqlodbca.so
Setup=libodbcpsqlS.so
Debug=1
CommLog=1
UsageCount=1

[PostgreSQL Unicode]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1

...

Мой скрипт, который падает будучи запущенным из asterisk dialplan

root@pbx:~# cat /usr/src/recall_me.sh 
#!/bin/bash

NUM=$1
request="select * from recall where number='${NUM}' and status='new'"

result=$(echo "${request}" | /usr/bin/isql PostgreSQL-asterisk $login $passwd -b -d'|' 2>&1)
if [ $? = 0 ]; then
  if [ -z "$result" ];then
    request="INSERT INTO recall(date, number, status) VALUES('$(date +"%F %T")', '${NUM}','new')"
    echo ${request} | /usr/bin/isql PostgreSQL-asterisk $login $passwd -b -d'|' 2>&1
  fi
  exit 0
else
  exit 1
fi

И в dialplan скрипт запускается вот такой конструкцией

exten => 9,3,Set(recall_request=${SHELL(bash /usr/src/recall_me.sh ${CALLERID(num)})})

 , , ,

Flotsky
()

Где должен быть mkdir?

Тестовый debian11 сервер, на котором в виду издевательств на системой как-то оказалось

root@debian:~# which mkdir
/usr/bin/mkdir
root@debian:~# dpkg -S /usr/bin/mkdir
dpkg-query: не найден путь, подходящий под шаблон /usr/bin/mkdir
root@debian:~# dpkg -L coreutils | grep mkdir
/bin/mkdir
/usr/share/man/man1/mkdir.1.gz
root@debian:~# cat /etc/debian_version 
11.4
root@debian:~# ls -lha /usr/bin/mkdir
-rwxr-xr-x 1 root root 84K сен 24  2020 /usr/bin/mkdir
root@debian:~# md5sum /usr/bin/mkdir /bin/mkdir 
e70b34a37b294e638e63fbff22632a90  /usr/bin/mkdir
e70b34a37b294e638e63fbff22632a90  /bin/mkdir

И продакт сервер

root@h398:~# which mkdir
/bin/mkdir
root@h398:~# dpkg -S /bin/mkdir
coreutils: /bin/mkdir
root@h398:~# dpkg -L coreutils | grep mkdir
/bin/mkdir
/usr/share/man/man1/mkdir.1.gz
root@h398:~# cat /etc/debian_version 
11.3

А теперь мне потребовалось сделать /opt/puppetlabs/puppet/bin/gem install ruby-lxc

На тестовом сервере всё ок, а вот на продакт я вижу такую картину

make: /usr/bin/mkdir: No such file or directory
make: *** [Makefile:202: .sitearchdir.-.lxc.time] Error 127

make install failed, exit code 2

Раскопал makefile, да, там явно указано MAKEDIRS = /usr/bin/mkdir -p

Покопался в интернет с похожей ошибкой.

Посмотрел на своей системе(manjaro) $ which mkdir -> /usr/bin/mkdir

Я понимаю, что вроде бы разработчики ожидают что mkdir будет в /usr/bin и что решение ln -s напрашивается. Но в debian это не сделано, в ubuntu судя по всему тоже.

Мне интересно правильнее ли будет править makefile под свою систему? Может я отстал от жизни и надо просто apt upgrade сделать или какой особый пакет доустановить?

PS утащите в talks, если кажется, что там оно более к месту.

 , , ,

Flotsky
()

Звук по сети

Появился у меня второй ПК и наушники подключены то в один ПК, то в другой.

На текущем ПК у меня pulseaudio. На новом хочу попробовать pipewire.

Но хочется иметь возможность переключать на живую ПК, на который воспроизводится звук.

В случае pulseaudio всё выглядит просто: module-null-sink + module-rtp-* на обоих сторонах и в pavucontrol меняю default sink для воспроизведения.

pipewire такое уже не умеет, нет альтернатив модулям module-rtp-*.

Способ с module-native-protocol-tcp(env PULSE_SERVER ... или pax11publish) меня не устраивает, это не переключение «на живую».

Note that for the switch to become apparent, the programs using Pulse must be restarted, or their PulseAudio client library otherwise reinitialized (completely stopping and restarting playback may be enough).

К примеру firefox иногда достаточно обновить страницу или приостановить воспроизведение на 10 секунд чтобы «звук заработал». VLC такое не понимает, ему только перезапуск.

Вопрос: я плохо искал и pipewire как-то по другому можно реализовать подобное (чтобы с обоих сторон это были именно виртуальные sink), или оно пока того не стоит и остаться на pulseaudio?

 , ,

Flotsky
()

Перемещать ПО между ПК не закрывая его

Пусть у меня есть скажем 2 ПК и какое-то ПО(браузер/IDE/etc) запущенное на одном из них.

Хочется иметь возможность «перенести ПО» на другой ПК не закрывая его.

К примеру у меня открыт браузер с 5 вкладками на ПК1, я запускаю скрипт, что-то происходит и мой браузер с теми-же вкладками уже работает на ПК2.

При этом:

  • не было перезапуска самого браузера
  • ПК1 не нужен для продолжения работы браузера (т.е. не какая-то обёртка для проброса окна приложения на другой ПК)

Мысли, почему это должно быть возможно и как этому поспособствовать:

  • В lxd заявлена возможность «усыплять»(crio) и переносить контейнеры между узлами
  • Упаковать браузер в контейнер и пробросить ему Xorg и virtualGl сокеты и части ФС хоста считаю более чем возможным, но громоздким, скорее всего можно проще

Вопросы:

  • Кто-то пробовал сделать что-то подобное?
  • Беглый поиск по «сохранить процесс на диск с возможностью дальнейшего восстановления» ведёт в какие-то дебри 2010 годов, оно вообще живое, существует в виде живых утилит?
  • Как вообще себя может повести ПО при попытке восстановления на ПК2, если между ПК [сильно] различаются системы и железо

ЗЫ. Поставить ПК3 и с него «пробрасывать» всё на ПК1 и ПК2 не рассматриваю.

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

 ,

Flotsky
()

ARM mali графикой можно уже пользоваться?

Лежит у меня платка с rk3399, сейчас как хост для lxc контейнеров.

Наткнулся недавно на новости о panfrost драйвере и о различных доработках к rockchip GPU.

Попробовал поставить manjaro, последнее ядро(5.17.что-то.rc), gnome и пакеты mesa-panfrost

С виду окошки отрисовывать оно стало живее чем без mesa-panfrost пакета, судя по dmesg ядро даже увидело и создало интерфейсы для камер.

Но вот, VLC камеры не видит. ffmpeg не может начать с них запись.

Браузер(firefox/chromium) пишет что нашёл gpu, но ускорение использовать не будет.

Вопрос: можно как-то покрасноглазить и заставить это работать, или пусть пока будет как есть lxc-host сервером?

Если кто-то знает в какую сторону красноглазить, направьте.

Я пробовал:

  • Ставить самое свежее ядро из доступных в репозитории
  • Пытался собрать различные версии ffmpeg-v4l2-request-git отсюда с этим PKGBUILD, но без успеха, ошибки сборки.

Думаю я нахватал устаревших инструкций и двигаюсь не в ту сторону.

 , , ,

Flotsky
()

CLI/API к сервисам на python

Есть несколько простых самописных сервисов на python.

Хочется иметь к ним какое-то CLI или API чтобы дёргать внутренние функции.

Но всё, на что я натыкаюсь это flask или подобное ему.

Нет желания открывать какие-либо порты, как и добавлять кучу кода в небольшой скрипт, но и нет понимания как это должно работать.

Посоветуйте как правильно это делается или где про это почитать?

 , ,

Flotsky
()

Логи из systemd-journald в на удалённый сервер с rsyslog

Есть старый сервер с rsyslog, который собирает логи с нескольких debian машин.

Появилась необходимость логи manjaro систем тоже складывать на этот rsyslog сервер.

Но у manjaro уже нет rsyslog как такового, там systemd-journald.

Что вижу из вариантов:

  • Поставить в manjaro rsyslog(aur) и настроить как обычно, добавив ForwardToSyslog=yes в journald.conf
  • Как-то заставить systemd-journal-upload слать логи на rsyslog сервер

Подскажите, если кто знает о возможности реализации второго варианта, или о подводных камнях первого.

PS. Обновить старый rsyslog до systemd-journal-remote мне не дадут.

 , ,

Flotsky
()

Xephyr 2 окна, но общий display

Делаю

Xephyr -ac  -host-cursor -screen 800x600+0+0 -screen 800x600+800+0 -resizeable :7

Получаю 2 окна, одно :7.0, второе :7.1 Они независимы друг от друга.

Т.е. запускаю DISPLAY=:7 awesome и ожидаю, что у меня будет :7.0 у которого 2 монитора, но по факту получаю просто 2 независимых X сервера.

Если добавить ключ +xinerama, то display manager можно запустить только на :7.0, а :7.1 не декорируется, не управляется мышкой, но рисует продолжение от :7.0

Как это правильно пнуть чтобы оно думало, что у него 2 дисплея? Устроит если дисплей внутри будет один, но разрезанный на 2 окна.

 ,

Flotsky
()

wifi p2p отдельным интерфейсом

Имеется:

( читать дальше... )

Хочется:

Запустить это ПО https://github.com/albfan/miraclecast не мешая работе основного wifi Т.к. это ноутбук и других сетевых интерфейсов нет.

Я протестировал miraclecast - смог поймать трансляцию с телефона. Хочется в обратную сторону, но пока некуда.

Планирую по беспроводу подключить доп монитор через wifi-miracast адаптер.

С небольшой задержкой картинки, до 1.5 сек готов мириться.

Из идей что мне нужно сделать:

Силами iw добавить p2p-device интерфейс, но не могу нагуглить как это сделать.

Так ожидаемо не работает:

# iw phy phy0 interface add p2p_wifi type P2P-device
invalid interface type P2P-device

Буду рад подсказкам в какую сторону двигаться.

 , ,

Flotsky
()

libreoffice отсутствует список шрифтов при открытии doc файлов

Заметил только для doc файлов. Может ещё для каких расширений, я проверил на doc, docx, odt мне нет необходимости в других форматах.

Как выглядит:

  • Если запустить libreoffice и в нём открыть файл *.doc проблемы нет, шрифты есть в списке для выбора
  • Если же сразу открыть файл libreoffice /tmp/test.doc то в списке выбора шрифтов пусто.

Фото ошибки, если не понятно о чём я.

Профиль сбрасывать пробовал, от root libreoffice запускал, не помогает.

Заметил на

#uname -a
Linux linux-525400114e39 5.4.72-1-MANJARO #1 SMP PREEMPT Sat Oct 17 11:06:19 UTC 2020 x86_64 GNU/Linux

# pacman -Q | grep libreoffice
libreoffice-fresh 7.0.1-1
libreoffice-fresh-ru 7.0.1-1

$ libreoffice --version
LibreOffice 7.0.1.2 00(Build:2)

Также смог повторить её в этой же системе для пакетов

extra/libreoffice-still 6.4.6-2
aur/libreoffice-dev-bin 7.0.2.2-1

И на другом ПК, где

$ libreoffice --version
LibreOffice 7.0.0.3 00(Build:3)

Кто-то встречался с проблемой? Есть идеи в какой стороне решение?

Может сможете повторить у себя?

Как повторить проблему:

  • Создайте в libreoffice writer .doc(Word 97-2003) файл или возьмите существующий.
  • Откройте этот файл в файловом менеджере или в терминале коммандой libreoffice /path/to/file.doc
  • Попробуйте выбрать шрифт текста

 

Flotsky
()

Перо/стилус для сенсорного монитора

Заимел себе сенсорный монитор.

Хочется заменить большой не удобный палец на удобный стилус.

Понимания что это и как работает у меня нет, но в голове примерно вот это:

  • Обычные стилусы с поверхностью размером с палец за 100 руб. не интересуют.
  • Видел стилусы с доп кнопками, не понял как они работают т.к. wifi/bluetooth для них не заявлено
  • Видел стилусы с «100500» степеней нажатия, тоже не понял как это реализовано без связи с системой
  • Видел у китайцев чудо сенсоры для конкретных ноутбуков с кнопочками и bluetooth, но за жаба задушит денег.

Что хочу:

  • Как минимум тонкую зону контакта с сенсорной поверхностью чтобы по кнопкам попадать
  • (Опционально) Возможность нажать правую кнопку мыши
  • (Опционально) Возможность забиндить какое-то действие на доп кнопку

Есть у кого-то тут опыт пользования? Идеи?

 , ,

Flotsky
()

systemd unit ждать появления lvm тома

Raspberry pi при загрузке подключает iscsi диск.

На iscsi диске lvm тома с ФС lxc контейнеров.

Явно указал в lxc.service After= ... open-iscsi.service

Проблема - на момент запуска lvm.service iscsi диск уже подключен, но pvscan ещё не отработал и lvm томов для контейнеров нет. Как итог контейнеры не стартуют.

Сейчас в виде костыля добавил в lxc.service ExecStart=/bin/sleep 5

Есть более правильные варианты решения?

К примеру. Было бы хорошо в lxc@my_container.service добавить ожидание появления файла /dev/vg0/my_container

PS Пробовал дописать в lvm.service After= ... lvm2-pvscan@8:1 Эффекта не дало.

Linux raspberrypi 5.4.51-v8+ #1333 SMP PREEMPT Mon Aug 10 16:58:35 BST 2020 aarch64 GNU/Linux
systemd 241 (241)
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid

 , ,

Flotsky
()

Как выключить систему

Собрал я образ для загрузки по сети.

Образ по размеру больше чем RAM в ПК, поэтому я гружу его в zram и мне нормально.

Но выключить/перезагрузить ПК теперь нормально нельзя.

Посылаю poweroff и на этапе отключения zram получаю out of memmory и на этом выключение останавливается.

PS Знаю про echo b > /proc/sysrq-trigger

Интересуют способы заставить нормально отрабатывать комманды reboot и poweroff и то, что вызывается когда пользователь выключает ПК из интерфейса

PS2 Система manjaro, systemd

PS3 А вот так выглядят free -h, zramctl, df -h сразу после загрузки

( читать дальше... )

 , , , ,

Flotsky
()

Достать данные из SQL

Сдох SSD на котором крутилась postgresql база.

Данные я вытащил ddrescue. Положил на соседний живой диск и запустил с ними postgres.

Но по итогу при любом запросе к базе ERROR: could not open file "base/16385/2689": No such file or directory

Даже структуру посмотреть не даёт. \dt

Есть у кого-то идеи как можно вытянуть данные?

Мне известна примерная структура таблиц до возникновения проблемы.

Бэкапы никто не делал.

Файла "base/16385/2689" в ФС нету.

 , ,

Flotsky
()

manjaro перестала дружить с флешками

Потребовалось подключить флешку и не получилось.

При подключении мне сказали

kernel: usb 3-2.1: new high-speed USB device number 14 using xhci_hcd
kernel: usb 3-2.1: New USB device found, idVendor=8564, idProduct=1000, bcdDevice=11.00
kernel: usb 3-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 3-2.1: Product: Mass Storage Device
kernel: usb 3-2.1: Manufacturer: JetFlash
kernel: usb 3-2.1: SerialNumber: 62AEA4B898922I77
mtp-probe[964802]: checking bus 3, device 14: "/sys/devices/pci0000:00/0000:00:07.1/0000:24:00.3/usb3/3-2/3-2.1"
mtp-probe[964802]: bus: 3, device: 14 was not an MTP device
mtp-probe[964826]: checking bus 3, device 14: "/sys/devices/pci0000:00/0000:00:07.1/0000:24:00.3/usb3/3-2/3-2.1"
mtp-probe[964826]: bus: 3, device: 14 was not an MTP device

И далее ничего не происходит.

Ок, поиск по «not an MTP device» заставил меня временно убрать из udev правила 69-libmtp.rules.

mv /usr/lib/udev/rules.d/69-libmtp.rules /

Теперь при подключении флешки

kernel: usb 3-2.1: new high-speed USB device number 16 using xhci_hcd
kernel: usb 3-2.1: New USB device found, idVendor=8564, idProduct=1000, bcdDevice=11.00
kernel: usb 3-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: usb 3-2.1: Product: Mass Storage Device
kernel: usb 3-2.1: Manufacturer: JetFlash
kernel: usb 3-2.1: SerialNumber: 62AEA4B898922I77

И тоже ничего.

Пните куда посмотреть…

Ранее флешки не подключал не знаю работало оно или нет.

*запустил в qemu один из старых бэкапов системы, пробросил флешку - подмонтировалась успешно.

P.S.

Обновил ядро и забыл перезагрузиться.

uname -a версия ядра отличалась от таковой в пути до модулей

 ,

Flotsky
()

RSS подписка на новые темы