Change akonadi backend database from mysql to sqlite3

Многих KеDEрастов (в том числе и меня) смущает что DE тащит за собой mysql и запускает его. На самом деле akonadi может работать и с sqlite, разработчики говорят что sqlite плохо себя показывает при множественных подключениях и у меня родилась теория что это верно только для медленных HDD а владельцам хорошего, шустрого SSD не стоит переживать.

Для начала бэкапим на всякий случай настройки akonadi:

cp ~/.config/akonadi/akonadiserverrc ~/.config/akonadi/akonadiserverrc_BACKUP

И редактируем его:

nano ~/.config/akonadi/akonadiserverrc
[Debug]
Tracer=null

[%General]
Driver=QSQLITE3

[QSQLITE3]
Name=/home/USERNAME/.local/share/akonadi/akonadi.db

Не забываем заменить USERNAME на имя пользователя.

В некоторых дистрибутивах нужно писать не Driver=QSQLITE3 а Driver=QSQLITE

Теперь можно перезагрузиться или перезапустить akonadi при помощи akonadictl

Проверять работоспособность так:

akonadictl status

Идею взял тута.

З.Ы.: Отписались тут ребята, даже на HDD говорят нормально работает.

MTProto proxy без мерзкого Docker’а

Ubuntu 16.04 не подойдёт, только 18.04.
OpenSUSE Leap 15.0 и openSUSE Tumbleweed подходят.

apt install -y git curl build-essential zlib1g-dev libssl-dev git
yum install openssl-devel zlib-devel
yum groupinstall "Development Tools"
git clone https://github.com/TelegramMessenger/MTProxy.git
cd ./MTProxy
make

бинарь будет в папке objs/bin

head -c 16 /dev/urandom | xxd -ps
rm /opt/mtproxy/proxy-secret
curl -s https://core.telegram.org/getProxySecret -o /opt/mtproxy/proxy-secret
rm /opt/mtproxy/proxy-multi.conf
curl -s https://core.telegram.org/getProxyConfig -o /opt/mtproxy/proxy-multi.conf
/opt/mtproxy/mtproto-proxy --ipv6 -u nobody -p 8888 -H 443 -S ВАШСЕКРЕТИЗПРЕДЫДУЩЕГОШАГА  --aes-pwd /opt/mtproxy/proxy-secret /opt/mtproxy/proxy-multi.conf
[Unit]
Description=MTProxy
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/bin/bash /opt/mtproxy/start.sh
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start mtproxy
sudo systemctl enable mtproxy
tg://proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ
https://t.me/proxy?server=ВАШАЙПИ&port=443&secret=ВАШСЕКРЕТ

Далее от рута

0 * * * * systemctl restart mtproxy

Это нужно чтобы наш прокси периодически получал список новых адресов серверов тележеньки

Для тех кому лень обновлять (когда/если будут обновления)

rm -rf /usr/local/src/MTProxy
cd /usr/local/src/
git clone https://github.com/TelegramMessenger/MTProxy.git
cd /usr/local/src/MTProxy
make
systemctl stop mtproxy.service
rm /opt/mtproxy/mtproto-proxy
cp /usr/local/src/MTProxy/objs/bin/mtproto-proxy /opt/mtproxy
systemctl daemon-reload
systemctl start mtproxy.service

и меняем в кроне строчку на

0 * * * * bash /opt/mtproxy/upd.sh

Получить статистику прокси можно так:

wget http://localhost:8888/stats

(отвечает только локалхосту)

Или запросив у бота @MTProxybot (предварительно надо зарегистрировать свою проксю там). Бот даст в ответ строчку которую надо добавить через флаг -P к строке запуска.

Проброс видеокарты в виртуальную машину Qemu/KVM

Для начала: гость должен буть установлен на EFI а не на BIOS (ну в 2018’ом и хост желательно бы уже держать на EFI)
Как перенести винду с Legacy на EFI есть простая инструкция: https://www.intel.ru/content/www/ru/ru/support/articles/000024558/memory-and-storage/intel-optane-memory.html

Для начала в файле /etc/default/grub в параметр GRUB_CMDLINE_LINUX_DEFAULT добавим intel_iommu=on (или amd_iommu=on в зависимости от вендора вашего CPU) и rd.driver.pre=vfio-pci

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda3 splash=silent quiet showopts intel_iommu=on rd.driver.pre=vfio-pci"

И переустановим grub

затем в /etc/modprobe.d/vfio.conf пропишем options vfio-pci ids=FIRSTID,SECONDID где FIRSTID и SECONDID это id видеокарты и её звуковой карты (нужно обе) которые можно посмотреть в выхлопе скрипта

#!/bin/bash
shopt -s nullglob
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  /sbin/lspci -nns "${d##*/}"
done;
options vfio-pci ids=10de:128b,10de:0e0f

Если у вас не радеон и не quadro (тоесть geForce) то в xml файл нашей виртуалки добавим

    
      
    

сразу после


Перезагружаемся и добавляем в виртуалку два PCI устройства которые указывали выше

Запускаем виртуалку

За инфу спасибо вот этому чуваку: https://forums.opensuse.org/showthread.php/522015-VGA-PCI-Passthrough-guide-on-openSuSE-Leap-42-2

UPD:
Поскольку проброшенное реальное устройство в виртуальную среду не даёт использовать suspend будет полезно сделать ещё кое что чтобы виртуальная машина выключалась а не убивалась при выключении хоста:

#ON_SHUTDOWN=suspend
ON_SHUTDOWN=shutdown
SHUTDOWN_TIMEOUT=60

и после этого

systemctl enable libvirt-guests.service
systemctl restart libvirt-guests.service

Apache: No space left on device: Couldn’t create accept lock

Если апач упал и вы видите в логах такую ошибку но место на диске и квоты говорят вам что всё нормально то проверьте есть ли семафоры.

ipcs -s

и если вы видите много срок с apach или httpd в зависимости от дистрибутива (при условии что апач не запущен) то можно отчистить список вот так:

for i in `ipcs -s | awk '/httpd/ {print $2}'`; do (ipcrm -s $i); done

(httpd в некоторых случаях заменять на apache так как будет в выхлопе первой команды)
и запускать сервис
Чтобы избежать такой проблемы в дальнейшем вносим следующие изменения и перезагружаемся:

kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024

Инфа отсюда: https://major.io/2007/08/24/apache-no-space-left-on-device-couldnt-create-accept-lock/

Установка КриптоПРО на openSUSE

За статью спасибо https://t.me/JIeKapb_CJLupToM

Из распакованного каталога с пакетами запустить от root install скрипт:

sudo ./install.sh

После завершения установки из скрипта не выходя из каталога

sudo zypper in cprocsp-rdr-rutoken-64-4.0.0-4.x86_64.rpm ifd-rutokens-1.0.1-1.x86_64.rpm cprocsp-rdr-pcsc-64-4.0.0-4.x86_64.rpm lsb-cprocsp-pkcs11-64-4.0.0-4.x86_64.rpm

В случае, если необходимо использования Криптопро ЭЦП Browser Plugin

sudo zypper in cprocsp-rdr-gui-gtk-64-4.0.0-4.x86_64.rpm libpangox

Работает только в Firefox ESR, т. к. нужна поддержка NPAPI, в ESR будет поддерживаться до конца 2018 года, потом выпилят вообще.

Просмотр лицензии

/opt/cprocsp/sbin/amd64/cpconfig -license -view

Установка лицензии

sudo /opt/cprocsp/sbin/amd64/cpconfig -license -set СерийныйНомер

Просмотр корневых сертификатов

/opt/cprocsp/bin/amd64/certmgr -list -store root

Установка корневых сертификатов

sudo /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /путь/до/сертификата

Создаем хранилище ключей на HDD

sudo /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add HDIMAGE store

Узнаем какие контейнеры у нас есть (разумеется флешка или токен уже торчит в USB)

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn

Должны получить нечто подобное

CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX. 
AcquireContext: OK. HCRYPTPROV: 9224835 
\\.\FLASH\УИД контейнера или его имя
OK. 
Total: SYS: 0,020 sec USR: 0,120 sec UTC: 0,190 sec 
[ErrorCode: 0x00000000]

Копируем контейнер на HDD, делается это от того пользователя под которым будут подписываться документы, если выполнить эту команду от root, то контейнер будет работать только по root. Контейнеры хранятся в папке /var/opt/cprocsp/keys/имя пользователя

/opt/cprocsp/bin/amd64/csptest -keycopy -contsrc '\\.\FLASH\УИДконтейнераИлиЕгоИмя' -contdest '\\.\HDIMAGE\Vasyan'

В папке /var/opt/cprocsp/keys/username должен появиться каталог с ключами Vasyan.000

Проверяем видит ли его КриптоПРО

/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn
CSP (Type:80) v4.0.9014 KC1 Release Ver:4.0.9842 OS:Linux CPU:AMD64 FastCode:READY:AVX. 
AcquireContext: OK. HCRYPTPROV: 9224835 
\\.\FLASH\УИДконтейнераИлиЕгоИмя
\\.\HDIMAGE\Vasyan #вот он
OK. 
Total: SYS: 0,020 sec USR: 0,120 sec UTC: 0,190 sec 
[ErrorCode: 0x00000000]

Ассоциация сертификата с контейнером

sudo /opt/cprocsp/bin/amd64/certmgr -inst -file /путь/до/сертификата/сертификат.cer -cont '\\.\HDIMAGE\Vasyan'

Список установленных сертификатов

/opt/cprocsp/bin/amd64/certmgr --list

Смотрим строки

PrivateKey Link     : Yes #если Yes то можно подписыват, No - связи нет, и использовать такой контейнер для подписи не удастся.

Container           : HDIMAGE\\Vasyan.000\A123 #Как и задуманно, сертификат пренадлежит этому контейнеру.