LINUX.ORG.RU

Сообщения James_Holden

 

Ventoy: как заставить работать хоть как то

Понадобилось опять создать установочную флешку с Windows из-под Linux, потому что пока винды нету.

В последнем обсуждении, активно советовали Ventoy. Решил попробовать его освоить.

Отсюда собственно вопрос - а как, что с ним сделать чтобы он хотя бы минимально мог работать? Он не работает. Как вы его используете вообще?

Что делал:

1 Установил Ventoy на флешку при помощи графической утилиты, MBR режим, exFAT файловая система, все по дефолту.

2 Скопировал на нее iso файлы установщика винды, и GRML.

3 Проверил контрольные суммы iso файлов - они записаны корректно.

При загрузке с этой флешки, выдаётся надпись Not A Secure Boot Platform 14, и все, больше ничего. Горит лампочка обращения к диску. Что происходит не понятно.

Если при этом, несколько раз быстро нажать Enter - начинает грузится один из iso файлов, GRML. Но не может загрузиться, виснет при попытке показать меню GRUB. Но это ладно, может GRML несовместим с Ventoy. Как увидеть меню самого Ventoy? Как выбрать, какой iso запускать?

Нигде в документации ничего не написано про это. Просто закиньте iso и все, а что дальше то??

 

James_Holden
()

Запросы HTTP CONNECT к Apache - что это и как бороться?

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

Стал смотреть логи Apache, а там море вот таких штук

82.157.18.3 - - [04/Apr/2025:00:35:56 +0300] "CONNECT movie.douban.com:443 HTTP/1.1" 200 507 "-" "okhttp/3.14.9"

Он постоянно долбится вот так вот, я ходил на этот URL - это какой-то сайт с иероглифами. Что это за напасть такая?

Честно, пытался почитать и разобраться, мучил нейросеть, но я не настоящий сварщик и так ничего толком и не понял. Объясните пожалуйста, как для чайника, что происходит?

Я только понял что CONNECT это некий вариант прокси сервера через мой Apache, но я не настраивал никакого proxy, это просто хостинг сайтика, и какого же лешего какие-то китайцы могут невозбранно ходить на китайские сайты видосов через мой сервер??? Что это вообще с миром такое?

Как можно с этим эффективно бороться, подскажите пожалуйста!

 ,

James_Holden
()

Arturia MiniFuse 1 + Linux = Need Help!

Итак, приобрел звуковую карту Arturia MiniFuse 1. Карты Arturia, в отличие от Focusrite, тут как-то обсуждаются мало, хотя они тоже очень популярны. Пусть эта тема будет обсуждением проблем с Arturia.

Первая проблема, которую надо решить сейчас: эта звуковая карта при работе в Linux, не позволяет выставить частоту дискретизации выше 48000 гц. 44100 и 48000 работает нормально. В списке поддерживаемых частот, есть только эти две.

Что пока удалось заметить. В Windows, если не устанавливая драйвверов воткнуть эту карту, то же самое. Если установить MiniFuse Control Center, он ставит ASIO драйвер, и после этого в Windows начинают работать частоты до 192000 даже в микшере Windows.

То есть гипотетически, со стандартным драйвером usb audio она репортит о поддержке только 44100 и 48000.

Репортит нормальный ряд частот дискретизации.

В интернете не нагугливается пока ничего, вообще ничего!

Может у кого-то есть такая карта, или другая от Arturia?

Может, кто-то сталкивался с такой проблемой у других карт? С чего начать, куда копать? Какие будут идеи?

БАГРЕПОРТ НАЙДЕН

https://github.com/alsa-project/alsa-ucm-conf/issues/313

https://github.com/alsa-project/alsa-lib/issues/388

РЕШЕНО

Подъехала версия pipewire 1.4.1 и alsa-card-profiles 1.4.1. С этими версиями пакетов, все нормально с дефолтным профилем!

 , ,

James_Holden
()

Bluetooth audio: только Linux?? Дожили

КРАТКО: имею двое наушников от Honor, они нормально работают только с Linux! Парадокс и фантастика!

МНОГОБУКАФ:

Немного решил вникнуть в тему беспроводных наушников. Все это еще происходит у меня на фоне недавнего «спора» с @CrX на тему отличимости MP3 и lossy кодеков от lossless.

Тот разговор меня серьезно заинтересовал, я прочитал много материалов, много чего отслушал много на чем, и произошло то о чем мне говорил @thesis - один раз услышав разницу, я все осознал и теперь не могу ничего нормально слушать)))

Так вот, у меня были bluetooth наушники Honor Choice Earbuds X5 (затычки) и я приобрел Honor Choice Headphones Pro (закрытые с оголовьем). Затычки эти я слушал более полугода с кодеком AAC, который выбирается по дефолту, не вникая в качество того, что они мне выдают. Но после экспериментов с MP3, о которых я писал вначале поста, я люто заподозрил, что меня обманули, и что-то тут кардинально не то. Начал смотреть матчасть, и оказалось что все кардинально не так! Ого-го как!

Оба варианта наушников от Honor, имеет два кодека - AAC и SBC. Источник - Android телефон Honor, комп с Linux. В чем дикий подвох? Если погуглить, то везде написано что SBC это лажа, AAC лучше, практически прозрачен, он и выбирается по умолчанию у меня на всем. Но факт в том, что когда я, спустя полгода, переключил на SBC - качество заметно улучшилось! А точнее, слух показывает, что AAC сильно режет стереоэффект и немного ухудшает высокие частоты. Но ведь такого быть не может, AAC это очень хороший кодек!

Тогда я стал смотреть, а с какими параметрами передается поток на наушники. Оказалось, что эти вот наушники Honor, даже полноразмерные - дико обрезаны программно (в прошивке) по ограничению битрейта! Битрейт AAC у них - 131 кбит/с (ограничение со стороны наушников)! Вот это да. Я просто был в трансе…

Тогда я кинулся проверять, а что по кодеку SBC. Ограничение - bitpool 38, вместо положенного 51 по профилю высокого качества! Это у полноразмерных наушников Honor Choice Headphones Pro, которые во всех обзорах хвалят и называют лучшим выбором этой ценовой категории, потому что лучший ЗВУК! А там 131 килобит! Я просто не знаю что делать, я в шоке от жестокости этого мироздания…

SBC с bitpool 38 тоже звучит не идеально, но уже намного лучше. Но не максимально хорошо! Крайне обидно, что тупое программное ограничение, тупо не дает этим хорошим в принципе наушникам, звучать так как они должы!

Но благо, если в качетве источника используется Linux - то в нем хакнутый bluetooth стек и есть вариант кодека SBC XQ, который обходит дурацкое ограничение в наушниках, включая режим двойного моно. И SBC у меня работает с битрейтом под 500 кбит, я не слышу значимой разницы с проводным подключением.

То есть выводы какие:

  1. Производители наушников просто делают дикие подляны, программно урезая битрейт до уровня дна! Проверить это можно только спец утилитами, нигде на коробке никакой информации, в GUI интерфейсах ОС никакой информации!

  2. Нормально такие наушники могут работать только с Linux, который имеет хакнутый кодек SBC XQ. И может еще с LineageOS. Я почти впервые в жизни, нашел аргумент за использование линукса, кроме «мне просто нравится красноглазие»!!! Ура

 ,

James_Holden
()

Bluetooth игнорирует все входящие запросы

Одноплатник Orange Pi Zero, операционка Armbian 25.2.0 на базе Ubuntu 24.04 Noble Numbat.

Система чистая консоль, без графической сессии.

Задача - сделать эту плату приемником bluetooth audio.

Проблема: игнорирутся все входящие запросы на bluetooth, то есть я запускаю bluemon или bluetoothctl на плате, пытаюсь подключаться с телефона к этой плате, и не вижу никаких сообщений вообще.

При этом, плата и телефон уже изначально спарены. ВАЖНО! Подключение С платы НА телефон командой connect MAC работает без проблем, все соединяется, звук с телефона начинает играть через плату! А наоборот - bluetooth на плате никак не реагирует, словно никаких запросов снаружи нет!

Что пробовал - повторить то же с Arch Linux на x86 ноутбуке обычном. Все работает, внешние подключения принимаются сразу, bluemon начинает сыпать информацией после нажатия кнопочки на телефоне.

Такое подозрение, что в этом Armbian что-то блокирует все входящие соединения на Bluetooth! Но что? Кто может блокировать? Куда копать?

 , ,

James_Holden
()

Вменяемые заголовки у GTK3/4 приложений при работе в KDE

Использую приложения: remote-viewer, Helvum. Они то ли на GTK3, то ли на GTK4. При работе в среде KDE общая проблема - конской высоты заголовок. Он - не «системный», то есть не такой как у Qt/KDE приложений, и он очень толстый. Это просто нереально бесит уже, он съедает кучу места и мешает работать.

Есть ли какие-то, любые, что угодно рассмотрю вплоть до патчинга кода и пересборки, методы сделать нормальные заголовки у GTK3/4 приложений?

 ,

James_Holden
()

Ситуация в теме про GIMP и Windows

GIMP настройка RU языка (комментарий)

Прошу дать коллективную, или хотя бы авторитетную, оценку происходящему в этой теме со стороны модератора @shell-script в отношении меня.

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

Ситуация такова - есть вот эта тема, она посвящена багу в GIMP, но специфичному для Windows. Насколько я понимаю даже не то что правила, а многолетнюю практику ЛОРа как форума - обсуждение таких вещей допустимо и не запрещено. Потому что GIMP - одна из центральных опенсорсных программ.

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

Или нет? Тогда вы так и скажите. Давайте поставим тут точку. Нужно авторитетное мнение.

Приходит в тред @shell-script и начинает поливать меня грязью, писать чушь про то что баг в GIMP - это вина самой винды и надо обратиться в Редмонд, ну и прочую шизофазию в таком духе.

При этом модератор (!!) меня оскорбляет первым! А потом удаляет мои посты, но не свои.

По результатам обсуждения в треде был локализован баг, и мной сейчас готовится патч в Гимп, благодаря помощи оказанной мне в треде. Но, уже после этого и видя все это, @shell-script опять приходит и начинает меня травить еще больше! Заявляет что все это не нужно, и зачем я все это (то есть инструкции как обойти баг, места в коде GIMP которые надо поправить чтобы устранить баг) тут пишу. Серьезно???

Если у нас на форуме введена политика травли опенсорса, травли людей которые пытаются найти баг и оформить пулл-реквест - то вы так и скажите!

А мы сделаем выводы.

 

James_Holden
()

QEMU. Звук. 2023. Опять все сломано

Итак, на дворе 2023 год. Состояние звуковой подсистемы в QEMU все то же - оно сломано.

РЕШЕНИЕ!!! И общие заметки по состоянию на текущий момент.

  1. Не надо подключать cdrom реальной машины, это ломает звук! То есть -cdrom /dev/cdrom добавлять не стоит.

  2. Вывод через hda эмулируемые сетевые карты напрямую (не через SPICE) - сломан. Через бэкенд pa (pulseaudio) вывод идет намного быстрее чем надо, постоянные глитчи. Через бэкенд alsa - у меня работает нормально, но какие-то глюки при запуске воспроизведения. Они сразу же проходят и выводится чисто. Можно использовать, но работает не очень стабильно при переключении окон, фоновой нагрузке. Возможно, тут нужно увеличивать буферы.

-audiodev alsa,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0
  1. Вывод через SPICE, hda звуковая карта в qemu - работает лучше всего. Это по дефолту и ставит virt-manager.
-audiodev spice,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0
  1. Вывод через ac97 работает, если выбрать бэкенд alsa (спасибо @superuser). Работает хорошо, но раз в несколько секунд происходит глитч. На реальной музыке это практически не заметно, на тестовом сигнале я слышу. Это - предпочтительный вариант для применения без SPICE.
-audiodev alsa,id=snd0 -device -device ac97,audiodev=snd0

ЦЕЛИКОМ рабочая конфигурация

qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -smp 2,sockets=1,cores=2,threads=1 -m 2G -netdev user,id=mynet0 -device virtio-net-pci,netdev=mynet0 -vga qxl -device virtio-serial-pci -device virtio-balloon -spice unix=on,addr=/tmp/vm_spice.socket,disable-ticketing=on,playback-compression=off -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 -chardev spicevmc,id=spicechannel0,name=vdagent -audiodev spice,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0 -device ich9-usb-ehci1,id=usb -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 -drive file=~/vms/Win10-main.qcow2 -device usb-tablet,bus=usb.0 -monitor stdio

ДАЛЕЕ - для истории, исходный пост

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

ЭКСПЕРИМЕНТ 1, вывод через SPICE

Начинаю вот с такого, полная строка запуска

qemu-system-x86_64 -enable-kvm -rtc base=localtime -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time -smp 2,sockets=1,cores=2,threads=1 -m 2G -netdev user,id=mynet0 -device virtio-net-pci,netdev=mynet0  -vga qxl -device virtio-serial-pci -device virtio-balloon -spice unix=on,addr=/tmp/vm_spice.socket,disable-ticketing=on,playback-compression=off -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 -chardev spicevmc,id=spicechannel0,name=vdagent -audiodev spice,id=snd0,out.mixing-engine=off,out.buffer-length=200000,out.fixed-settings=off -device ich9-intel-hda -device hda-output,audiodev=snd0 -device ich9-usb-ehci1,id=usb -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 -drive file=~/vms/Win10-main.qcow2,if=virtio -drive file=~/vms/diskb.qcow2,if=virtio -device usb-tablet,bus=usb.0 -cdrom /dev/cdrom -monitor stdio

Конкретно звук в ней:

-audiodev spice,id=snd0,out.mixing-engine=off,out.buffer-length=200000,out.fixed-settings=off -device ich9-intel-hda -device hda-output,audiodev=snd0

Симптомы: примерно раз в секунду происходит щелчок. На записи видны две проблемы: выпадение куска на 10мс (идет тишина вместо сигнала), и наоборот, съедается какой-то кусок (виден резкий скачок на синусе, сбивается фаза синуса после этого).

С виртуалки вывел синус ровно 60 секунд, на записи - около 59 секунд. То есть сигнал съедался.

ЭКСПЕРИМЕНТ 2, вывод через Pulse

-audiodev pa,id=snd0 -device ich9-intel-hda -device hda-output,audiodev=snd0

Симптомы те же. Но! Теперь минутный фрагмент стал короче на… 15 секунд! То есть виртуалка выводит звук намного быстрее, чем нужно!

При этом - частота дискретизации, передискретизация - правильная, я получаю синус ровно той же частоты, что и был! Ускорение происходит за счет сбивок, съедания кусков.

ВОПРОСЫ

1 Есть ли у кого-то опыт подбора опций, которые дают на 2023 год нормальную работу звука в QEMU?

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

 , , ,

James_Holden
()

Скринкаст в локальной сети

Задача - транслировать содержимое экрана по локальной сети с ноутбука на машину, к которой подключен проектор. Содержимое изображения - приложение с некоторой анимацией.

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

Имею - KRFB в качестве сервера, plasma-wayland сессия. В качестве клиента винда с RealVNC клиентом. Тормозит просто запредельно! При этом, раз в несколько минут KRFB просто вылетает. Работает ужасно!

После некоторых копаний, выяснил что с вейландом VNC работает просто никак (а говорили, что сетевая прозрачность X не нужна ибо есть VNC для вейланда). В plasma-X11 сессии с x11vnc работает лучше, но тоже очень плохо.

И! В голом openbox, без композитинга - наконец x11vnc работает нормально. Вообще неплохо, прям можно удаленно работать! Не может только в видео.

То есть, виной всему композитинг?? А есть какие-то решения, или какие-то подвижки, по VNC с wayland?

Далее, о скринкасту. Нашел, что есть OBS и оно делает как раз то что мне надо. Но - оно предлагает стримить на ютуб, телеграм или черт знает куда еще. А мне надо просто все локально.

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

 , ,

James_Holden
()

Чувствительность тачпада

Собственно таков и вопрос - как ее настраивать, если все работает через libinupt и plasma-wayland?

РЕШЕНИЕ актуально работающее, через libinput quirks

https://wayland.freedesktop.org/libinput/doc/latest/touchpad-pressure-debugging.html

 , ,

James_Holden
()

Как установить Tensorflow?

Нид хелп!

Дистрибутив Arch Linux, python 3.10.9.

Из репозитория установить не могу - пакет python-tensorflow конфликтует с FreeCAD.

Ну ладно, ставлю через pip - ставится tensorflow 2.11, который не работает - он требует SSE4.2, в процессоре такого нету.

В интернете нашел, что надо ставить tensorflow 1.5 тогда, но из pip оон куда-то испрарился - там начиная с 1.8.

Подскажите, как быть? Как его установить хоть как-то?

 ,

James_Holden
()

Есть ли IDE лучше KDevelop?

Долгое время использую KDevelop для разработки на C, C++, Python, PHP/JavaScript/HTML.

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

От IDE требую базовой функциональности:

  1. Навигация по коду - переход к определению, к объявлению, поиск мест где используется функция/переменная.

  2. Семантическая подсветка - не по ключевым словам, а по смыслу (локальная переменная, глобальная, атрибут класса и т. д.)

  3. Простейший рефакторинг - переименовать переменную, тип.

Помимо этого, желательно то, что является плюсом KDevelop - проектом является каталог, для сборки используется напрямую нормальная система сборки (make,cmake,meson) а не внутри-IDEшное нечто.

Из очевидных альтернатив вижу Eclipse, VS Code и возможно Qt Creator.

У последнего как-то скудно с языками, куцые возможности, вроде бы перечисленные выше пункты есть но реализованы намного менее удобно чем у KDevelop.

Eclipse - как оно? Какой-то монстр, но я его внимательно никогда не тыкал, есть ли смысл?

VS Code - относительно неплохо, но вот с PHP не срастается. Установил дополнение, и все работает как мне надо, но - только если открыть файл через диалог открытия файлов. Если открыть каталог на панели слева, и там тыкать по файлам - это дополнение не активируется. Вот как этим пользоваться? Почему так? Я не понял.

Возможно, стоит рассмотреть что-то еще?

 , , ,

James_Holden
()

QEMU + Android - имитация тачскрина

Проблема проста. Есть виртуалка QEMU с Android x86. Все работает, но у многих приложений проблема - управление рассчитано на тачскрин, а по факту эмулируется мышь. Поэтому просто не работает смахивание (или как это называется), листание проведением по экрану сверху вниз, влево-вправо.

Есть ли какие-то способы заставить QEMU эмулировать именно тачскрин и события тачскрина, а не мыши?

 ,

James_Holden
()

QEMU в реальную сеть через WiFi

Проблема проста. Есть ноутбук подключенный к сети через WiFi.

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

Я понимаю, что для этого теоретически, надо создать tap сетевой адаптер и создать мост включающий его и сетевую карту, через которую реальная машина подключена к сети.

Вот тут и проблема - нельзя просто взять и создать мост с WiFi картой. Или как-то можно?

Подскажите пожалуйста. Возможно есть другие пути?

Виртуалка просто должна работать в реальной сети как еще один компьютер.

Интересует именно QEMU, как это сделать с Virtualbox я знаю, но он не подходит.

#####РЕШЕНИЕ#######

Спасибо @Pinkbyte! Я осилил по твоему совету.

Включаем Proxy ARP

# sysctl net.ipv4.conf.all.proxy_arp=1

Включаем IP Forwarding

# sysctl net.ipv4.ip_forward=1

Создаем tap сетевой интерфейс, доступный для пользователя (важно! qemu работает от пользователя !)

# tunctl -p -t tap0 -u <username>

Создаем маршрут для ip адреса виртуалки через tap0

ip route add 192.168.1.199 dev tap0

Запускаем QEMU с параметрами сети

-netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=mynet0

На гостевой системе - настраиваем статический ip адрес 192.168.1.199.

После этого все работает, виртуалка видна по своему адресу снаружи как отдельный компьютер.

 ,

James_Holden
()

NixOS: лечение MTP+KDE

В продолжение темы Скопировать файлы между Android телефонами

Итак, удалось выяснить вот что, и несколько продвинуться в данном вопросе. Задаю вопросы к гуру по NixOS как лучше эти фиксы в nixpkgs сделать и оформить.

  1. В деривации kio-extras создается dbus service файл, который дергает бинарник демона kiod не из той деривации. Поэтому kio-extras, а в его составе и поддержка mtp, вообще не работает. Тут вопрос - как грамотно решить эту ситуацию в https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/kde/kio-extras.nix. В какую фазу что лучше добавить, чтобы заменить в файле
$out/share/dbus-1/services/org.kde.kmtpd5.service

строчку

Exec=и-что-там

на

Exec=${kio}/libexec/kf5/kiod5
  1. Далее проблема - пакет https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/libmtp/default.nix должен добавить udev rule, и при этом он имеет три выхода - bin, dev, out. Правило udev лежит в out, но ищет сборка его почему-то в bin. В результате правило не добавляется, телефон не помечается как mtp устройство и solid (из KDE) его вообще не видит.

Пока решил это так в configuration.nix:

services.udev.packages = [ pkgs.libmtp.out ];

Как это решить более лучше, поправив пакет в nixpkgs? Я так думаю что лучше, если сам пакет libmtp будет правильно добавлять правило из себя, но я не до конца понял как оно работает.

После исправления проблем 1 и 2 все работает! Прошу помочь поправить nixpkgs и подсказать как оформлять пулл реквест.

 , ,

James_Holden
()

Скопировать файлы между Android телефонами

Простейшая задача. Есть старый телефон на Android, есть новый. Надо скопировать файлы со старого (фото, музыка) на новый.

Превращается в тотальный кошмар - уже прошло полдня и я ничего не могу сделать!

Что пробовал:

  1. Вставить флешку через OTG и скопировать туда. Не работает - половины файлов после копирования там нет. Почему - не знаю.

  2. SSH сервер - не получается. Того приложения которое у меня всегда было и которое работало, больше нет в плей маркете. Те которые есть - не работают. Мой NixOS отказывается наотрез коннектиться с этим мусором.

  3. Кабель - не работает. Как известно, лет 15 уже как по кабулю телефоны как флешка не монтируются. MTP просто не работает, никак. Этот вариант отпадает.

Два вопроса:

  1. Как скопировать файлы?

  2. Кто пускает [censored by hobbit] разрабатывать ОС Android???

 

James_Holden
()

NixOS: dri 32 бит на своем ядре

@t184256 @balsoft

Очередной глобальный затык.

Ядро со своим конфигом меня в прошлой теме собирать научили.

Теперь с этим возникла тотальная проблема - с ним не хотят ставиться 32-битные dri библиотеки!

Суть проблемы:

nixos-rebuild boot 
building Nix...
building the system configuration...
error:
       Failed assertions:
       - Option driSupport32Bit requires a kernel that supports 32bit emulation
(use '--show-trace' to show detailed location information)

В manual-config.nix я вижу что проверяется вот эта опция у пакета ядра

config.boot.kernelPackages.kernel.features.ia32Emulation

Хорошо. Как ее поставить в true? Также в manual-config.nix вижу вот что:

  features ? null,
}:

Поэтому пробую вот так:

custom-kernel-pkgs = pkgs.linuxPackagesFor (pkgs.linuxKernel.manualConfig {
    inherit (pkgs) stdenv lib;
    inherit (pkgs.linuxKernel.kernels.linux_5_15) src; # change here if you want a different version
    version = "${pkgs.linuxKernel.kernels.linux_5_15.version}-custom";
    configfile = ./config;
    features = { efiBootStub = true; ia32Emulation = true; iwlwifi = true; needsCifsUtils = true; netfilterRPFilter = true; };
    allowImportFromDerivation = true;
  });

И ничего, не срабатывает! Почему? Я же определил эту опцию как true?

 

James_Holden
()

NixOS: свой конфиг ядра

@t184256 @dan4ik

Я честно пытался осилить сам. Но… я не знаю, документация по NixOS это полный провал. Не знаю как это цензурно описать.

Задача: есть .config файл, заранее подготовленный. Получить конфигурацию на ядре с таким конфигом.

По этому поводу в NixOS Manual (https://nixos.org/manual/nixos/unstable/#sec-linux-config-customizing) вижу вот это:

custom-kernel = let base_kernel = linuxKernel.kernels.linux_4_9;
  in super.linuxKernel.manualConfig {
    inherit (super) stdenv hostPlatform;
    inherit (base_kernel) src;
    version = "${base_kernel.version}-custom";

    configfile = /home/me/my_kernel_config;
    allowImportFromDerivation = true;
};

Сразу вохникает вопрос. Что это? К чему это? Куда это пихать?

Вообще вопрос «куда это пихать» возникает на каждом первом примере по Nix. Начинаю подозревать что это какой-то заговор - давать куски кода совершенно без контекста, чтобы было максимально непонятно как их применить.

Ну ладно, по .super я догадываюсь что наверное это внутренности оверлея (но я честно не уверен). Делаю тогда так в configuration.nix:

boot.kernelPackages = pkgs.custom_kernel;
  nixpkgs.overlays = [(self: super: {
     custom_kernel = let base_kernel = pkgs.linuxKernel.kernels.linux_5_15;
       in super.linuxKernel.manualConfig {
         inherit (super) stdenv lib;
         inherit (base_kernel) src;
         version = "${base_kernel.version}-custom";

         configfile = ./config;
         allowImportFromDerivation = true;
     };
  }) ];

Как видно код не совпадает с тем что в Manual, потому что в том мануальном коде сразу возникает ряд ошибок - нет параметра lib, лишний параметр hostPlatform. Спрашивается, почему так? Не понятно.

В итоге с вот этим кодом выше - получаю ошибку:

error: attribute 'extend' missing

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/boot/kernel.nix:40:31:

           39|       type = types.unspecified // { merge = mergeEqualOption; };
           40|       apply = kernelPackages: kernelPackages.extend (self: super: {
             |                               ^
           41|         kernel = super.kernel.override (originalArgs: {

что с этим делать?

Вот как для этой простейшей задачи (и очень распространенной) простейший пример из документации я должен применить? Я не понимаю…

 

James_Holden
()

xanmod... рвет linux-rt в low-latency аудио задачах???

Я в шоке…

Годами, буквально годами пытаюсь получить минимальную задержку при обработке аудио на ноутбуке с jack, а теперь и с pipewire.

Платформа - Sandy Bridge, встроенное аудио Realtek ALC272.

Всегда считал нормой для этого ноутбука буфер 48000 Гц / 256 семплов (5,3 мс задержка) (кто в теме то поймет что это). Тут на ЛОРе мне много раз писали что это совсем не круто. Да я и на слух слышу задержку при игре на гитаре. Это все на обычном ядре, дефолтном в дистрибутивах. При меньшем буфере стабильно не работает.

Периодически я решал озаботиться улучшением, первое что советуют везде - использовать linux_rt вместо обычного ядра. Это немного улучшало ситуацию, можно было получить вдвое меньшую задержку 48000/128 (2,7 мс). Но не очень стабильно. Это - тоже совсем не айс!

И вот, чисто случайно, без объявления войны, я ставлю NixOS и в нем ядро xanmod 5.14. Происходит какая-то мистика!

Я выставляю 48000 / 64 (это уже 1.3 миллисекунды задержки). Все гранитно стабильно!

Выставляю 48000 / 32 (тридцать два, Карл!) - работает! Иногда похрюкивает.

КАК???? Это вообще законно??

Вопрос у меня вот в чем - как именно в xanmod так выходит, какие опции, или модификации, могут повлиять на то что стало вот так?

ИТАК

Пожалуй подведу окончательные итоги.

  1. Практически все широко распространенные в сети рекомендации надо читать навыворот. Почему - отдельный вопрос.

  2. Лучше всего для обеспечения low-latency при работе с аудио подходит обычное, общего назначения ядро. Даже ванильное ядро с kernel.org может обеспечить экстремально низкую задержку на моем музейном железе.

  3. Ядро linux_rt подходит заметно хуже. Я не знаю почему. Видимо оно для совсем других задач, а то что оно работало со звуком лучше - дела давно минувших дней. Современные версии обычного ядра работают лучше.

  4. Рекомендации по настройке ядра, по CONFIG_HZ, PREEMPT - можно выполнять, можно нет. Низкая задержка достижима с любыми вариантами этих настроек.

  5. Желательно собирать ядро с минимальной конфигурацией. по-видимому я столкнулся с тем, что на конфигурации от Arch Linux на моем железе что-то лишнее мешало.

 , , , ,

James_Holden
()

Chromium-based браузеры: как быть?

Такая ситуация. Сначала сравниваю Chromium и Chrome. Дистрибутив NixOS.

Chromium - работает видео ускорение! (да, свершилось! у меня оно завелось!!!). Я так понимаю (только с криокамеры, могу сильно ошибаться) что его специально собирают с поддержкой VAAPI. Как добился активации:

  1. Ставлю флаг Override software rendering list

  2. Запуск с ключами –use-gl=desktop –enable-features=VaapiVideoDecoder

  3. h264ify, потому что у меня SandyBridge бронзового века.

Все бы круто, но - нет синхронизации!

Chrome - есть синхронизация. Но не заводится ускорение! Все те же действия - приводят ни к чему. в chrome://gpu горит желтым.

Собственно вопроса два возникает.

  1. Можно ли получить ускорение в Chrome?

  2. Можно ли получить синхронизацию в Chromium? (не обязательно с гуглом, как угодно между компами с линуксом).

 , ,

James_Holden
()

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