LINUX.ORG.RU

Сообщения kawaii_neko

 

ALSA + микрофон = либо треск, либо очень тихо

TLDR: каким плагином можно набросить децибел при захвате микрофона?

pcm.mic {
	type rnnoise
	slave.pcm "plughw:0,0"
}

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

Хотелось бы набросить чем-то децибел, чтобы звук был чистый и громкий.

 

kawaii_neko
()

Не могу пробрасывать порты в связке Mikrotik + miniupnpc

Доброго времени суток.

Есть один микротик, в нем разрешен upnp. При попытке открыть порт через upnp получается такое:

$ upnpc -a 192.168.88.2 1300 1200 tcp
upnpc : miniupnpc library test client, version 2.2.5.
 (c) 2005-2023 Thomas Bernard.
Go to http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
for more information.
List of UPNP devices found on the network :
 desc: http://192.168.88.1:2828/gateway.xml
 st: urn:schemas-upnp-org:device:InternetGatewayDevice:1

Found a (not connected?) IGD : http://192.168.88.1:2828/upnp/control/gxoikaqkhf/wanipconn-1
No valid UPNP Internet Gateway Device found.

Подглядывание в трафик показало, что в gateway.xml сильно не хватает сервисов:

<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <device>
    <deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
    <friendlyName>MikroTik Router</friendlyName>
    <manufacturer>MikroTik</manufacturer>
    <manufacturerURL>https://www.mikrotik.com/</manufacturerURL>
    <modelName>Router OS</modelName>
    <UDN>uuid:UUID-MIKROTIK-INTERNET-GATEWAY-DEVICE-4TGD-040J</UDN>
    <serviceList>
      <service>
        <serviceType>urn:schemas-microsoft-com:service:OSInfo:1</serviceType>
        <serviceId>urn:microsoft-com:serviceId:OSInfo1</serviceId>
        <SCPDURL>/osinfo.xml</SCPDURL>
        <controlURL>/upnp/control/xmuyiblasz/osinfo</controlURL>
        <eventSubURL>/upnp/event/noviisxcmc/osinfo</eventSubURL>
      </service>
    </serviceList>
    <presentationURL>http://192.168.88.1/</presentationURL>
  </device>
  <URLBase>http://192.168.88.1:2828</URLBase>
</root>

Ах да, еще я в списке интерфейсов upnp задизейблил external-интерфейс, полагая, что это запретит обращаться к upnp извне.

Я ССЗБ?

 mikroik,

kawaii_neko
()

Узнать динамический адрес хоста

Собственно, есть два рабочих места в разных концах нашей славной столицы. Хочется иметь возможность заходить с одного на другой через SSH. Нюанс заключается в том, что адрес динамический.

Первое, что приходит в голову — написать какого-нибудь jabber-бота, у которого можно спросить его адрес, но вроде бы это уже не модно и недостаточно молодежно.

Когда-то слышал про dyndns, но платить не хочу, тем более «потенциально недостаточно дружественным странам».

Что еще можно придумать, чтобы было надежно?

 

kawaii_neko
()

Wifi USB-брелок не успевает «увидеться» к моменту старта net.wifi0

Доброго времени суток!

Система: gentoo + openrc, никаких systemd/network manager

Воткнул USB-брелок на чипсете aetheros в десктоп, настроил wpa-supplicant, в conf.d/net прописал modules="wpa_supplicant", после чего при загрузке системы получаю ругань «wpa_supplicant can't find wireless device».

Устройство доинициализирутся несколько секунд спустя, после чего ручной /etc/init.d/net.wifi0 start ожидаемо работает.

Подскажите, чего бы такого можно было придумать?

Сходу в голову приходит привязаться к udev для запуска по событию «add», но из предыдущих опытов с хотплагом клавиатуры я понял, что таких событий прилетает много, соответственно, будет много попыток запустить net.wifi0, что не очень хорошо.

Посоветуйте каких-нибудь костылей поизящнее, чем sleep 5 && net.wifi0 start где-то в local.d

 , , ,

kawaii_neko
()

Вывод ядра при загрузке на консоль при использовании EFI

Дано: (предположительно) криво сконфигуренное ядро, efi. Чтобы понять, что может идти не так, было бы хорошо видеть хоть какой-то выхлоп, но его нет.

В прошлый раз я плюнул на все, ушел в CSM, там быстренько все отловил и понял, на UEFI больше даже не смотрел. Сейчас же хочу понять, как эта (сарказм) восхитительная технология может отобразить вывод сообщений ядра при загрузке.

 uef

kawaii_neko
()

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

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

Нагуглил https://en.wikipedia.org/wiki/List_of_terms_relating_to_algorithms_and_data_s... но не хватает группировки и искать там алгоритм, скажем, поиска k-й статистики — тот еще полный перебор.

 

kawaii_neko
()

mpv + yt-dlp = 403 ошибки на некоторых видео

С некоторого времени начала твориться непонятная дичь: mpv получает HTTP 403 по url, который получает от yt-dlp. При этом сам yt-dlp напрямую отлично все скачивает.

Попробовал сделать --dump-headers и дернуть адрес curl-ом с теми же заголовками — тоже 403. curl через прокси работает с любыми заголовками.

Никто с такой фигней не сталкивался?

 , ,

kawaii_neko
()

А в чем, собственно, сложность «поддержки» legacy BIOS?

Я тут год назад переезжал не осилил emerge -vuND world после длительного перерыва, и решил переустановться. Попутно обнаружил, что grub-0.9x больше нет в ебилдах.

В итоге взял 512 байт из MBR и содержимое /boot/grub (еще около 500kb), и вот уже длительное время мои ОС загружает «неподдерживаемый загрузчик, найти гентушные патчи для которого не представляется возможным.

Кажется, что legacy BIOS — одна из тех штуковин, которые просто работают и есть не просят — в чем глубинный смысл отказа?

 

kawaii_neko
()

А какой дистрибутив у нас нынче хорош для ноутбуков?

Убунта очень не нравится навязыванием gnome, сам я предпочитаю openbox.

Последней каплей стал апдейт firefox, после которого тот перестал работать, а в новом профайле оказалось, что в убунте yandex идет дефолтной поисковой системой — ну это же просто днище.

Хотелось бы:

  • Беспроблемной работы на ноутбуке (т. е. не хочется руками что-то конфигурировать)
  • Возможности установки deb-пакетов (всякие slack, zoom)

 ,

kawaii_neko
()

Выяснить в runtime по backtrace, из какого исходного файла была вызвана функция

Есть один бинарник, который использует несколько библиотек и подозревается в чрезмерной растрате памяти (не утечке — динамика роста RSS не такая взрывная). Хочется выяснить, какая библиотека за это ответственна. Для этого можно взять jemalloc, добавить вручную арен и средствами jemalloc уже вести учет выделенной памяти. Но появляется важный нюанс: как выяснить, кто позвал *alloc?

Для динамической линковки есть довольно надежный способ: сначала через backtrace, а в релизной версии грязными ассемблерными хаками получаем адрес возврата, через `/proc/$pid/map` понимаем, к какой so-шке относится этот адрес и дальше ведем себя соответственно.

Как быть при статической линковке? Есть ли способ отредактировать объектный файл, переопределив имя внешнего символа? Я знаю трюк с частичной линковкой (ld -r), когда можно подставить заглушку, которая будет вызывать нужный метод (так, например, можно все аллокации из libfoo.a заставить использовать malloc_foo/free_foo ценой одного косвенного перехода), но вдруг есть способ лучше?

На всякий случай уточню: исходники трогать нельзя, потому что: 1) так может каждый; 2) хочется странного

 ,

kawaii_neko
()

Посоветуйте опенсорные часы с bluetooth

Сабж. Есть один bt-девайс, который с часов контролировать удобнее, чем с телефона. Софта, естественно, нет. Отличный повод заняться мотивированным сплетением ног с опенсорсным устройством.

Хотелки:

  • чтоб было удобно разрабатывать
  • чтоб батарейки хватало хотя бы на неделю — эти современные «smart watch» со временем работы 16 часов просто курам насмех
  • чтоб были относительно ударопрочными
  • чтоб не боялись воды и пота — плавать с ними не собираюсь, но под открытым небом дождем полить вполне себе может

 

kawaii_neko
()

ipv6 туннель

Обнаружил, что у некоторых интересующих меня ресурсов появились ipv6 адреса, а это значит «bye-bye dpi».

Подскажите бесплатный ipv4-to-6 туннель, в идеале «без регистрации и SMS». Ну и как им пользоваться?

 ,

kawaii_neko
()

Кажется, настало время оставить firefox в прошлом

Решил обновить мир. Собираю firefox 88, параллельно запущена предыдущая версия — ну потому что не ожидаю подвоха —, как вдруг курсор мыши наичнает подозрительно плохо двигаться — да, не хватило памяти.

Ну ок, бывает. Запускаю top, а там

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                        
 2957 portage   20   0 2144,2m   2,0g  25,5m R 100,0  12,9   0:57.14 cc1plus                                                                                                                        
 3145 portage   20   0 1059,8m 967,5m  20,1m R 100,0   6,1   0:19.12 cc1plus                                                                                                                        
 3325 portage   20   0  614,7m 501,2m  16,5m R 100,0   3,1   0:03.78 cc1plus                                                                                                                        
 3237 portage   20   0  524,8m 463,2m  16,6m R 100,0   2,9   0:06.43 cc1plus                                                                                                                        
 3264 portage   20   0  494,3m 428,6m  16,5m R 100,0   2,7   0:06.05 cc1plus                                                                                                                        
27042 portage   20   0 1317,6m 295,5m  14,1m S   0,0   1,9   0:06.39 cargo                                                                                                                          
 3361 portage   20   0 1317,6m 283,0m   1,6m S   1,0   1,8   0:00.01 cargo                                                                                                                          
 3336 portage   20   0  317,1m 257,5m  16,0m R 100,0   1,6   0:02.89 cc1plus                                                                                                                        

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

Только вот куда идти? Везде куцые web extensions, потребление сотен мегабайт памяти на простых страницах, никакущее юзабилити, трекинг и телеметрия.

Последний более-менее юзабельный браузер waterfox classic, но с древним gecko уже не работают новые морды teamcity и половина современных говносайтов.

Может есть какой проект, где к современному html/js движку энтузиасты прикручивают xul? Я бы поучаствовал.

 ,

kawaii_neko
()

Легковесный терминал с вкладками

Пользовался mate-terminal, но с переходом на gtk3 его легковесность стала несколько сомнительной, а также мне лень расковыривать .gtkrc, чтобы получить темные табы при светлой gtk теме.

Обязательно:

  • отсутсвие привязки к DE
  • табы без tmux/screen на локалхосте!
  • полноэкранный режим без строки меню
  • поддержка 256 цветов
  • все основные действия (open/close tab, move tab и т.п.) должны иметь хоткеи, по возможности настраиваемые

Крайне желательно:

  • адекватная работа Shift-F{5..8} в midnight — в mate-terminal у меня S-F3 вызывает copy, S-F4 — move
  • подсветка url
  • наличие цветовых профилей для вкладок

 

kawaii_neko
()

А как работает авторизация «git@github.com» под капотом?

Ковырял я тут libssh и вдруг стало интересно, а как работает авторизация в гилабах/гитхабах?

Получается, что у них должен быть самописный ssh-сервер, который особым образом обрабатывает аутентификацию по ключам? Или же есть возможность для shell-а понять, что за ключ использовался при авторизации?

Ну и может кто подскажет, где/по каким ключевым словам можно найти исходники этих серверов авторизации?

 

kawaii_neko
()

Какой загрузчик использовать вместо grub?

Решил обновить мир, обнаружил, что ebuild-а grub-0.97 больше нет. grub 2 не люблю с самого первого знакомства, с uefi как-то не сложилось, lilo когда-то требовал запуска бинарника на каждое изменение загрузочного меню.

Куда бежать?

Требования:

  • возможность грузить legacy-установку windows
  • загрузочное меню
  • простое редактирование этого меню (правка kernel command line, добавление/удаление пунктов)
  • командный режим при загрузке (не раз здорово выручал, когда после очередной чистки пыли вставлял sata-кабели не в том порядке)
  • диагностические сообщения от ядра с первых секунд загрузки — после «проблем» с uefi оказалось, что ядру всего лишь не хватало вкомпиленного модуля для корневой fs, но узнал я об этом с текстового режима 80x25 (0x3, если кто еще помнит, что это такое) после перехода в legacy режим.

 ,

kawaii_neko
()

bash - выполнить команду, не добавляя ее в историю

Про HISTCONTROL знаю, однако самый частый паттерн — поднять какой-нибудь git fetch из истории и выполнить его. Сейчас приходится жать ^r, переходить в начало строки. добавлять пробел и только после этого жать на Enter. Хотелось бы нажимать, скажем, Ctrl-Enter, чтобы выполнить команду без оседания ее в истории.

Итого вопрос можно разбить на две части:

  1. как выглядит ctrl-enter для bind-а? Пробовал «подсмотреть» через ^v, так Ctrl-Enter работает похоже на ^j — т. е. вставляет перевод строки.
  2. а что, собственно, биндить-то? «перейти в начало строки», «ввести пробел», «нажать enter»?

 ,

kawaii_neko
()

Разыскивается DE-agnostic скриншотилка

Требуемые фичи:

  1. никакого электронообразного говна
  2. скриншот всего экрана, выбранного окна или выделенной области (как в gimp)
  3. умение помещать скриншот в clipboard или сохранять на диск с помещением в clipboard полного пути к файлу
  4. выходное изображение в форматах png и jpg
  5. возможность слегка подправить (добавить подписи, линии, стрелки) на изображении перед сохранением
  6. плюсом будет опциональная загрузка скриншотов на какой-нибудь сервис (imgur?) и выдача ссылки в clipboard
  7. наличие ebuild-а приветствуется

Пункты 1-4 обязательны, 5 и 6 будут большим плюсом.

P.S. shutter не смог оценить, ибо

Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming.

 

kawaii_neko
()

Вторая жизнь старого телевизора

Есть старый «не-умный» телевизор с HDMI входом и гигабитным ethernet проводом неподалеку. Как бы дешево и сердито превратить его в мультимедиа-станцию безо всякого IPTV со стороны провайдера?

Если быть точнее, то интересует:

  • какое железо подойдет (raspberry pi3)? Я так понимаю, что мне хотелось бы звука через HDMI.
  • kodi (aka xbmc) - это какой-то пакет или дистрибутив?
  • как организовать скачивание и просмотр сериалов с торрентов «удобно и без износа носителя» - на «большом ПК» я для этого использую tmpfs на 10gb, а тут как быть?
  • может быть уже есть что-то говорое в красивой коробочке (только не надо неттопов - это явный оверкилл), или нужно как истинному линуксоиду поразвлечься с барахлом?

 ,

kawaii_neko
()

mmap и ошибки записи на диск

Последние пару недель не могу найти ответ на вопрос, что же будет, если при записи mmap-нутого файла произойдет ошибка блочного устройства? Как с точки зрения приложения будет выглядеть ошибка (SIGBUS?), в какой момент она появится и как ее правильно обработать?

 ,

kawaii_neko
()

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