LINUX.ORG.RU

Сообщения 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
()

Почему на Linux плохой звук - некоторое прозрение

В продолжение вот этой темы.

Звук «как на виндосе»? (комментарий)

Там были затронуты интересные вопросы, касающиеся улучшайзеров.

Здесь весьма распространено мнение, (и до сегодняшнего дня я тоже его придерживался) что для достижения качественного звука надо выдать его на динамики с минимальными искажениями (bit perfect и подобное), а дальше динамики уж сами разберуться. У нас же не фуфло пластиковое, а напольники за 5000$.

Конечно нет, у нас фуфло пластиковое в тонком корпусе ноутбука! Они не разберутся, вот тут наша детская ошибка.

Например, есть ноут Huawei Matebook. Он идет сразу с системой Dolby Atmos (о чем писал @fornlr когда говорил что все усложняется, и тут он совершенно прав, а я совершенно НЕ прав). Со стороны может показаться - ну зачем этот Atmos, очередной улучшайзер ненужный.

Но нет - в данном случае это улучшайзер нужный! Просто необходимый.

У ноута 4 динамика, два сверху два снизу. Уже проблема - естественно в линуксе все 4 сразу работать не будут, работают либо только нижние, либо только левые и т. д.

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

Все эти проблемы решает Dolby Atmos, которая правильно разделяет на 4 канала, выдает на каждый динамик, вносит коррекцию с учетом расположения динамиков в корпусе. То есть без Dolby Atmos такая конфигурация вообще работать не может!

Вот и причина разительно лучшего звука в Windows.

В Linux чисто технически проблема решаема, вот пример как

https://elementaryos.stackexchange.com/questions/22659/how-to-install-drivers-for-speakers

но непонятен результат, и эти телодвижения - мягко говоря для пользователя не тривиальны.

Так что скоро мы рискуем остаться без динамиков в ноутах!

Предлагаю обсудить пути выхода из ситуации.

 

James_Holden
()

NixOS + bumblebee - ставит сразу две конфликтующие версии Nvidia!

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

Имею ноутбук с Nvidia Optimus.

Соответственно пытаюсь настроить bumblebee на NixOS.

Драйверы - проприетарные nvidia, legacy 390.

Проблема в том, что почему-то ставятся одновременно и legacy, и последние 495 драйверы. Ничего не работает, возможно причина и не в этом, возможно в этом. Надо изолировать.

Как делаю. Вот это в configuration.nix

boot.kernelPackages = pkgs.linuxPackages.extend (self: super: {
    nvidia_x11 = super.nvidia_x11_legacy390;
  });

hardware.bumblebee.enable = true;

Как определить, кто именно тянет 495 драйвер? Как сделать чтобы он не тянулся?

 , , ,

James_Holden
()

Объясните тупому про .htaccess

Видимо я слишком не настоящий сварщик, но я тупо годами не могу освоить настройку редиректов с Apache через .htaccess.

Вот опять проблема. Надо редиректить запрос (тупо так, добуквенно)

mydomain.com/?

на

mydomain.com/

Для этого добавляю

RewriteCond %{THE_REQUEST} /\? [NC]
RewriteRule ^ /? [NE,R=301,L]

И все работает, но! Редиректятся все остальные запросы вида

mydomain.com/?что-то-тут-дальше

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

 ,

James_Holden
()

Вандалы удалили XRender в Plasma 5.23!

Пылайте в огне, чертовы покусанные гномом вейланд-луддиты!

У меня всё.

 , , ,

James_Holden
()

Зафиксировать версию ядра в NixOS

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

Насколько я понял в документации этого в явном виде просто нет. Как и многого другого, но сейчас не об этом.

Использую канал nixos-unstable. Желание простое - зафиксировать версию ядра, которое я поставил из этого канала сегодня, чтобы все обновлялось, кроме ядра.

Зная ЛОР с классическим «тебе это не надо», поясню зачем оно надо. Я накладываю на ядро патч. При этом у меня Core 2 Duo и ядро собирается 6 часов. Мне не уперлось при каждом обновлении ждать 6 часов. Поэтому я собрал сейчас, и хочу заморозить. В любом линуксе это делается элементарно. В NixOS хочу понять как.

Подскажите пожалуйста, куда копать.

 

James_Holden
()

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