Скрипт автоматизированной компиляции ядра Linux из одноимённой записи переполз в GitHub — https://github.com/alex-clumsy/linuxkernelbuilder. Также он подвергся дополнительным изменениям, которые, как мне думается, пошли ему на пользу. И в целом, я решил немного выйти из тени и поделиться своими наработками. Вдруг кому-то будут полезны. 🙂
Установка и настройка Jitsi meet с поддержкой JWT токенов в Debian Linux
Подразумевается, что вы знаете, что такое Jitsi Meet и для чего он нужен. Ниже я приведу инструкции по установке и настройке, которые решают проблему несовместимости Lua 5.2 и Lua 5.1. На возможных проблемах с сертификатами я останавливаться не буду, если у вас вдруг что-то идёт не так — напишите в комментариях, попробуем разобраться вместе. Как правило, установка проходит без проблем, они начинаются дальше. 🙂
Итак, поехали:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add - sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" apt-get -y update && apt-get -y install jitsi-meet certbot apt install git cmake luarocks libssl-dev liblua5.2 wget http://packages.prosody.im/debian/pool/main/p/prosody-trunk/prosody-trunk_1nightly1273-1~buster_amd64.deb dpkg -i prosody-trunk_1nightly1273-1~buster_amd64.deb apt-get install jitsi-meet-tokens prosody-modules lua5.2 liblua5.2 luarocks libssl-dev luarocks install basexx
Добавим в конец файла /etc/prosody/prosody.cfg.lua строчку:
Include "conf.d/*.cfg.lua"
Также отключим обязательное шифрование между клиентом и сервером:
c2s_require_encryption = false
Поставим модуль lua-cjson:
luarocks download lua-cjson luarocks unpack lua-cjson-2.1.0.6-1.src.rock
В файле lua-cjson-2.1.0.6-1/lua-cjson/lua_cjson.c поменяем строку 743:
len = lua_objlen(l, -1);
на
len = lua_rawlen(l, -1);
И выполним установку модуля:
cd lua-cjson-2.1.0.6-1/lua-cjson luarocks make
Требуемый модуль luajwtjitsi не работает в Debian с Lua 5.1, используем доработанную версию:
cd git clone https://github.com/ASolomatin/luajwt.git cd luajwt
Внесём изменения в файл luajwtjitsi-1.3-7.rockspec:
source = { url = "git://github.com/ASolomatin/luajwt/", tag = "replace_luacrypto" } dependencies = { "lua >= 5.2", "luaossl >= 20190731-0", "lua-cjson >= 2.1.0", "lbase64 >= 20120807-3" }
После этого выполним установку модуля:
luarocks install luajwtjitsi-1.3-7.rockspec
После всех этих манипуляций перезапустим prosody:
systemctl restart prosody
Убедимся, что в /var/log/prosody/prosody.err не ошибок. Теперь у вас должна заработать аутентификация с помощью JWT токенов.
Более подробная документация про токены — https://github.com/jitsi/lib-jitsi-meet/blob/master/doc/tokens.md.
Генерация пароля в Unix/Linux
С задачей генерации пароля мы сталкиваемся довольно часто. А уж админы так и вообще иной раз по несколько паролей за день генерируют. Когда фантазия заканчивается, можно не проводить очередные рандомные удары по клавиатуре в надежде получить что-то более-менее похожее на хороший пароль, а воспользоваться готовыми решениям. Одно из таких решений — утилита makepasswd.
Если она у вас не установлена — ставим её:
apt-get install makepasswd
Пользоваться makepasswd довольно просто:
alexey@ws:~$ makepasswd tTD7hs3J8
По умолчанию генерируется пароль из 8 символов. Если хочется пароль подлиннее, например из 20 символов:
alexey@ws:~$ makepasswd --chars=20 jeDewHoSI3PBzYKESMHD
Нужно сгенерировать сразу 10 паролей? Не вопрос!
alexey@ws:~$ makepasswd --chars=20 --count=10 2nPjfzwmaePqvy95oWfd WTqHSrJcx3yhYzvo9p5M NU6mJrjYi6SvG3VKppfo wcW8N6SpnDxCoCVGGPRv dv3P318GoSaNGY3TifzQ J3Nm39HBfaFRSW88FQzr sfImruyf5Ua30bUrCKiG 3IuabxbDtQvVio6EeFP7 pCnvUCLiUo6tUiBVMEPQ t7YxtWtI1GCC5vpa1d1w
Легко, удобно, быстро.
У утилиты есть дополнительные возможности, увидеть которые можно, запустив её с ключом −−help. Надеюсь, статья была полезной и данная утилита поможет вам сэкономить время для более полезной мозговой деятельности. 🙂
Обновление после стабилизации релиза Debian
Обновлял сейчас один старый ноутбук, на который был установлен Debian Buster ещё будучи в testing. Команда apt-get update не отрабатывала и завершала работу ошибкой:
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details. N: Repository 'http://http.us.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0' E: Repository 'http://http.us.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details. E: Repository 'http://http.us.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'testing-updates' to 'stable-updates' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Данная проблема решается очень просто:
apt-get update --allow-releaseinfo-change
Наушники Pioneer SE-MS7BT-S и aptX, AAC кодеки в Debian
Заставляем работать наушники Pioneer SE-MS7BT-S в Debian на все 100%.
Из коробки эти наушники работать с кодеком aptX не будут, хотя они его знают и с ним работают просто великолепно.
Итак, чтобы добавить в вашу систему поддержку aptX потребуется модуль pulseaudio-modules-bt, который расположен по адресу https://github.com/EHfive/pulseaudio-modules-bt. Инструкция там есть, по ней можно собрать этот модуль, но я всё же приведу последовательность действий, которые сделал я, чтобы модуль собрался и заработал.
Предполагается, что у вас в системе установлен и настроен bluetooth, pulseaudio, а также gcc, cmake и git. Если нет — нужно поставить:
apt install pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-firmware gcc cmake git
Поставим необходимые зависимости:
apt-get install libfdk-aac-dev libavcodec-dev libpulse-dev libdbus-1-dev libsbc-dev libldacbt-abr-dev libldacbt-enc-dev libltdl-dev libbluetooth-dev
Дальше идём по инструкции модуля:
MODDIR=`pkg-config --variable=modlibexecdir libpulse` sudo find $MODDIR -regex ".*\(bluez5\|bluetooth\).*\.so" -exec cp {} {}.bak \; git clone https://github.com/EHfive/pulseaudio-modules-bt.git cd pulseaudio-modules-bt git submodule update --init git -C pa/ checkout v`pkg-config libpulse --modversion|sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` mkdir build && cd build cmake -DFORCE_LARGEST_PA_VERSION=ON .. make
Результат работы команды make в итоге будет примерно такой:
[ 5%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/backend-native.c.o [ 11%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/a2dp/a2dp_aptx.c.o [ 17%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/a2dp/ffmpeg_libs.c.o [ 23%] Building C object CMakeFiles/bluez5-util.dir/src/modules/bluetooth/a2dp/a2dp_aac.c.o [ 29%] Linking C shared library libbluez5-util.so [ 52%] Built target bluez5-util Scanning dependencies of target module-bluez5-discover [ 58%] Building C object CMakeFiles/module-bluez5-discover.dir/src/modules/bluetooth/module-bluez5-discover.c.o [ 64%] Linking C shared module module-bluez5-discover.so [ 64%] Built target module-bluez5-discover Scanning dependencies of target module-bluetooth-policy [ 70%] Building C object CMakeFiles/module-bluetooth-policy.dir/src/modules/bluetooth/module-bluetooth-policy.c.o [ 76%] Linking C shared module module-bluetooth-policy.so [ 76%] Built target module-bluetooth-policy Scanning dependencies of target module-bluez5-device [ 82%] Building C object CMakeFiles/module-bluez5-device.dir/src/modules/bluetooth/module-bluez5-device.c.o [ 88%] Linking C shared module module-bluez5-device.so [ 88%] Built target module-bluez5-device Scanning dependencies of target module-bluetooth-discover [ 94%] Building C object CMakeFiles/module-bluetooth-discover.dir/src/modules/bluetooth/module-bluetooth-discover.c.o [100%] Linking C shared module module-bluetooth-discover.so [100%] Built target module-bluetooth-discover
Остаётся установить собранные модули:
make install
Следуя инструкции, нужно отредактировать файл /etc/pulse/default.pa. Найти строку:
load-module module-bluetooth-discoverИ дополнить её вот так:
load-module module-bluetooth-discover a2dp_config="ldac_eqmid=hq ldac_fmt=f32"
Перезапустим pulseaudio:
killall pulseaudio
Конфигурируем bluetooth, находим наушники и коннектимся к ним:
Когда наушники успешно найдены и подключены, в аудионастройках выбираем профиль aptX:
И наслаждаемся качественным звучанием. 🙂