Linux: Настраиваем МФУ pantum

Есть такие новые китайские принтеры (относительноо новые) Pantum. В них и wifi, и поддержка linux из коробки. Достал я и себе такое чудо платы лутом делать и шаблоны для фоторезиста печатать.

Настроить wifi в принтере (если он есть) без смартфона не получится — лезем туда и делаем все по инструкции (она с картинками).

Теперь надо поставить драйвера и настроить сканирование и печать по wifi. Если у вас убунту или дебиан, то драйвера скачиваются и устанавливаются в виде пакета. Если федора, то придется немного покомпилировать.

Продолжить чтение «Linux: Настраиваем МФУ pantum»

Ошибка юнита systemd-modules-load.service

2020-04-28-22:47:01_select

Ошибка юнита systemd-modules-load.service

Видели такое при старте системы и не можете понять в чем причина?

А приина в secureboot. Один из модулей ядра у вас не имеет цифровой подписи.

Чаще всего это происходит с модулями, которые собираются через akmod. Среди них virtualbox и nvidia (вроде amd тоже, но у меня нет возможности проверить). В последних релизах федоры что-то сломали и модули больше не подписываются при сборке.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

И что делать? Можно отключить secureboot?

Можно, но не нужно. Будете страдать от сообщения о несекурной загрузке.

  1. Создаем собственный ключ для подписи модулей и каталог, в котором это будет жить.
# mkdir /root/module-signing
# cd /root/module-signing
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/"
# chmod 600 MOK.priv
  1. Регистрируем ключ в системе при помощи mokutils. Нам потребуется задать простой одноразовый пароль, который у нас спросят при перезагрузке.
# mokutil --import /root/module-signing/MOK.der
input password:
input password again:
  1. Перезагружаемся. Выбираем Enroll MOK. После выбираем единственный ключ и вводим пароль из шага выше.
  2. Пишем скрипт для подписания модулей. Помимо виртуалбокса туда можно добавить нужные вам записи.
#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 \
                                /root/module-signing/MOK.priv \
                                /root/module-signing/MOK.der "$modfile"
done
  1. После обновления ядра\модуля\компонента запускаем скрипт выше, а потом перезагружаем модули.
# ./root/module-signing/sign-vbox-modules
Signing /lib/modules/5.6.6-200.fc31.x86_64/extra/VirtualBox/vboxdrv.ko
Signing /lib/modules/5.6.6-200.fc31.x86_64/extra/VirtualBox/vboxnetadp.ko
Signing /lib/modules/5.6.6-200.fc31.x86_64/extra/VirtualBox/vboxnetflt.ko
# systemctl restart systemd-modules-load.service

Источник

Linux: Избавляемся от файловых ассоциаций WINE

При работе с wine постоянно наблюдается появление новых файловых ассоциаций, которые только мешают.
Ожин из способов удалить эти ассоциации —
то удалить соответствующие mime-типы (есть другой способ — просто отучить wine их создавать, но там возникает проблема с тем, то он перестает создавать ярлыки приложений).

$ rm -f ~/.local/share/applications/mimeinfo.cache
$ rm -f ~/.local/share/mime/packages/x-wine*
$ rm -f ~/.local/share/mime/application/x-wine-extension-*
$ update-desktop-database ~/.local/share/applications

Linux: XScreenSaver не гасит подсветку монитора

xscreensaver-settings-1Начиная с какого-то обновления системы у меня перестал выключаться монитор. Xscreensaver настроен в режим «только пустой экран» и на вкладке энергосбережения выставлен флажок «быстрое отключение питания в режиме пустого экрана».

Никакими комбинациями опций нельзя было заставить его гаснуть нормально.

xscreensaver-settings-2.png

Вдобавок к этому я использую xss-lock чтобы при открытии крышки не было момента когда выдно содержимое экрана. Подробнее можно почитать в похожем багрепорте для gnome-screensaver (проблема имеет одни и те же корни у всех вариаций скринсейверов).

Проблема выглядит так:

  • если активировать блокировку через консоль
    xscreensaver-command -lock

    то все работает как надо и экран гаснет;

  • если активировать блокировку через хоткеи lxde, то после активации на долю секунды виден рабочий стол и после этого черный экран с активной подсветкой.

Конечно же надо читать логи.

Прибиваем активного хранителя и стартуем verbose-mode.

$ killall xscreensaver
$ xscreensaver -no-splash -v

После этого можно пытаться заблокировать экран из консоли и с клавиатуры. Смотрим.

Блокировка с консоли

xscreensaver: 20:03:18: LOCK ClientMessage received; activating and locking.
xscreensaver: 20:03:19: 0: locked mode switching.
xscreensaver: 20:03:19: user is idle (ClientMessage)
xscreensaver: 20:03:19: blanking screen at Fri May  3 20:03:19 2019.
xscreensaver: 20:03:19: mouse is on screen 1 of 2
xscreensaver: 20:03:19: 1: grabbing keyboard on 0x16a... GrabSuccess.
xscreensaver: 20:03:19: 1: grabbing mouse on 0x16a... GrabSuccess.
xscreensaver: 20:03:19: LOCK ClientMessage received while already locked.
xscreensaver: 20:03:33: user is active (keyboard activity)
xscreensaver: 20:03:33: pam_start ("xscreensaver", "penguin", ...) ==> 0 (Succes
s)
...

Блокировка с хоткея

xscreensaver: 20:01:46: LOCK ClientMessage received; activating and locking.
xscreensaver: 20:01:46: 0: locked mode switching.
xscreensaver: 20:01:46: user is idle (ClientMessage)
xscreensaver: 20:01:46: blanking screen at Fri May  3 20:01:46 2019.
xscreensaver: 20:01:46: mouse is on screen 1 of 2
xscreensaver: 20:01:46: 1: grabbing keyboard on 0x16a... GrabSuccess.
xscreensaver: 20:01:46: 1: grabbing mouse on 0x16a... GrabSuccess.
xscreensaver: 20:01:48: DPMSForceLevel(dpy, DPMSModeOff) did not change monitor power state.
xscreensaver: 20:01:48: LOCK ClientMessage received while already locked.
xscreensaver: 20:02:05: user is active (keyboard activity)
xscreensaver: 20:02:05: pam_start ("xscreensaver", "penguin", ...) ==> 0 (Success)
...

Ага. Во втором случае у нас почему-то не смог выключиться монитор.

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

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

lxde-hotkey.png

Mikrotik: multicast в wireless-сетях

Mikrotik-RB951G-2HnDКратко: если у вас роутер mikrotik и вы хотите использовать udp-multicast в беспроводной сети, то надо включить опцию multicast helper в настройках интерфейса. Если этого не сделать, то пакеты будут теряться. А дальше мы посмотрим как можно диагностировать подобную ситуацию.

Обновил я свой роутер до mikrotik (оказалась очень удобная штука). В моей локальной сети для всяких разных iot был настроен zeroconfig по собственному мануалу. И тут что-то пошло не так.

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

Мы можем эту итуацию наблюдать на скриншоте wireshark ниже.wireshark.pngРассмотрим на примере хоста diskstation.local.

На нем я смотрел в tcpdump и видел, что ответ есть.

# tcpdump port mdns
...
18:04:29.405838 IP6 fe80::e3de:bf6f:105e:ad4d.mdns > ff02::fb.mdns: 0 [2q] A (QM)? diskstation.local. AAAA (QM)? diskstation.local. (41)
18:04:29.405885 IP 192.168.88.252.mdns > 224.0.0.251.mdns: 0 [2q] A (QM)? diskstation.local. AAAA (QM)? diskstation.local. (41)
18:04:29.406152 IP6 fe80::211:32ff:fe80:3eb5.mdns > ff02::fb.mdns: 0*- [0q] 1/0/0 (Cache flush) AAAA fe80::211:32ff:fe80:3eb5 (57)
18:04:29.406388 IP diskstation.lan.mdns > 224.0.0.251.mdns: 0*- [0q] 2/0/0 (Cache flush) AAAA fe80::211:32ff:fe80:3eb5, (Cache flush) A 192.168.88.250 (73)

Интернеты не смотгли дать вразумительного ответа почему так происходит. Была лишь одна зацепка — это разбор проблем с вещанием iptv. И именно там я встретил заметку о том, что гоже было бы включить multicast helper в настройках интерфейса wifi (предварительно нажать advanced settings).

wifi-config.png

Linux: Раскладка переключается не с первого раза

Caps_lock
Картинка из википедии

Не всегда виновато железо.

Возникла странная проблема: нажатие капслока не приводило к переключению раскладки сразу.

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

Только повторное нажатие переводило раскладку в английскую.

Продолжить чтение «Linux: Раскладка переключается не с первого раза»

Bash: Передача аргументов в кавычках

Мне потребовалось создать скрипт, который передает свои аргуенты на вход другого скрипта без изменения. Просто добавляет к ним несколько своих параметров.

#!/usr/bin/env bash
some_tools $@

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

#!/usr/bin/env bash
some_tools "$@"

Bash: подстановка процесса

2018-07-03-22:14:15_267x133Рассмотрим достаточно полезную штуку в консоли линукса (bash) как подстановка процесса.

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

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

Избавляемся от пайпов

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

Продолжить чтение «Bash: подстановка процесса»

Linux: Очистка дюз в принтерах Epson

exampleЛюбой струйный принтер должен печатать как минимум раз в неделю. В противном случае чернила в соплах засыхают и на итоговом изображении видны полосы там, где дюзы забиты.

На превью как раз такая проблема — забита часть сопел.

Продолжить чтение «Linux: Очистка дюз в принтерах Epson»

Fedora: сборка пакетов из src.rpm

2018-05-19-12:35:39_1076x631Чаще всего то не требуется обычному пользователю. Но бывает ситуации, когда пакет собран с поддержкой библиотеки исключенной из дистрибутива.

Недавно это случилось с chromium в centos, а с драйверами от epson случается постоянно.

$ cd imagescan-bundle-fedora-27-1.3.23.x64.rpm/
$ ./install.sh
[sudo] пароль для penguin:
Последняя проверка окончания срока действия метаданных: 2:53:00 назад, Сб 19 мая 2018 09:42:23.
Ошибка:
 Проблема 1: conflicting requests
 - nothing provides libboost_filesystem.so.1.64.0()(64bit) needed by imagescan-3.33.0-1epson4fedora27.x86_64
 Проблема 2: package imagescan-plugin-networkscan-1.1.1-1epson4fedora27.x86_64 requires imagescan >= 3.9.0, but none of the providers can be installed
 - conflicting requests
 - nothing provides libboost_filesystem.so.1.64.0()(64bit) needed by imagescan-3.33.0-1epson4fedora27.x86_64
 Проблема 3: package imagescan-plugin-gt-s650-1.0.0-1epson4fedora27.x86_64 requires imagescan >= 3.28.0, but none of the providers can be installed
 - conflicting requests
 - nothing provides libboost_filesystem.so.1.64.0()(64bit) needed by imagescan-3.33.0-1epson4fedora27.x86_64
 Проблема 4: package imagescan-plugin-ocr-engine-1.0.0-1epson4fedora27.x86_64 requires imagescan >= 3.14.0, but none of the providers can be installed
 - conflicting requests
 - nothing provides libboost_filesystem.so.1.64.0()(64bit) needed by imagescan-3.33.0-1epson4fedora27.x86_64

А еще это может потребоваться если мы хотим поставить пакет, который распространяется только в src.rpm.

Продолжить чтение «Fedora: сборка пакетов из src.rpm»