Re: Eradicating PulseAudio
宋文武 writes: > Hello, you can disable the autospawn for PulseAudio by > put "autospawn = no" in ~/.config/pulse/client.conf. > > > It was not started by shepherd but autospawn by applications (eg: pulsemixer), > for reference: > https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/ Thank you for this tip. I thought it was being started by Shepherd because the process becomes a child of Shepherd after it is auto started. Adding this line to my configuration does help. PulseAudio no longer aggressively starts itself if I stop my pipewire-pulse service. Unfortunately some packages on my system (the primary package that comes to mind I cannot specifically say, but it comes from a different channel) depend on PulseAudio, and will manually start it if it is not running when I start the application. I am hoping for some way to do something equivalent to masking a package in Gentoo[1], so I can avoid having PulseAudio installed at all. I realize something like this might depend on package parameterization[2], but if there is some hacky way to do this with the current version of Guix, suggestions would be appreciated! Thanks, Robby Footnotes: [1] https://wiki.gentoo.org/wiki/Knowledge_Base:Masking_a_package [2] https://guix.gnu.org/blog/2023/parameterized-packages-for-gnu-guix/
Eradicating PulseAudio
Hi, Please help me eradicate PulseAudio from my system. It causes me nothing but pain. My most commonly run commands according to my bash history are pulsemixer followed by pgrep pulseaudio, which I use to debug my audio issues, and pkill pulseaudio followed by herd restart pipewire which I use to resolve my audio issues caused by pulseaudio being started by Shepherd. I don't need or want PulseAudio. The only reference I have to PulseAudio in my system or home config is the following: (service alsa-service-type (alsa-configuration (pulseaudio? #f))) In my system service configuration, with hopes to disable it (unsuccessfully). I use %base-services rather than %desktop-services to avoid the pulseaudio service that the latter includes. How can I transform every package on my system to remove PulseAudio from being an input? How can I stop Shepherd from starting PulseAudio against my will, when there is no pulseaudio service in my home or system configuration? FWIW every package on my system is either installed through my system config.scm or my home config.scm, so I can apply Scheme transformations to every package easily. I also see that there is an issue open to add a PipeWire Home service[1]. I have a very similar service for my own setup that I wrote myself. I skimmed through it, but I cannot see anything that actually stops PulseAudio from loading. Does anyone know if this patch will just resolve my issue? Many thanks, Robby Footnotes: [1] https://issues.guix.gnu.org/63863
Using NoiseTorch with Sway and Polkit
Hi Guix, I am trying to run NoiseTorch on my desktop, which runs swaywm and pipewire. I added the following configuration to my system: (setuid-programs (append (list (setuid-program (program (file-append noisetorch "/bin/NoiseTorch" %setuid-programs)) and rebuilt my system. When I run NoiseTorch from my path (the system), I get this error: XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no such file or directory XGB: conn.go:48: Trying connection without authority info... panic: x protocol authentication refused: Authorization required, but no authorization protocol specified goroutine 1 [running]: github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/clipboard.Start() /tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/clipboard/clipboard_x11.go:28 +0x354 github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular.NewMasterWindowSize(0xc0001b, {0x7b04b4, 0xa}, {0x0, 0x}, 0x0) /tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/shiny.go:83 +0x114 main.main() /tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/main.go:77 +0x371 When I install NoiseTorch as my user and run it directly I get the following: robby@lambda ~$ /home/robby/.guix-profile/bin/NoiseTorch XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no such file or directory XGB: conn.go:48: Trying connection without authority info... XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no such file or directory XGB: conn.go:48: Trying connection without authority info... XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no such file or directory XGB: conn.go:48: Trying connection without authority info... AUTHENTICATING FOR org.freedesktop.policykit.exec Authentication is needed to run `/gnu/store/bpvbbg981p5cmj1qvr0c81czjgp0bq4l-noisetorch-0.12.2/bin/NoiseTorch' as the super user Authenticating as: Robby Zambito (robby) Password: AUTHENTICATION FAILED The GUI will open (unlike the other method), but it will prompt saying it does not have the "capabilities to function properly", and a button to grant it the capabilities it needs (requiring root). Clicking the button will prompt for my password, but entering the correct password does not work (I have tried dozens of times, I know I'm typing it right) I found a supposed solution to this for Nix, but this solution yields the same results for me: https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903 If anyone has any insight that would be greatly appreciated! Robby
Re: Getting Guix to shutdown my laptop properly with Sway and no DE
Hi, I don't have any suggestions for you, I just wish to add that I am also having the same issue, and I use Sway and Elogind (but no display manager). I have been dealing with it by hard powering off also, but it would be nice to have a proper solution :) Robby
Re: Getting Guix to shutdown my laptop properly with Sway and no DE
dan...@tutanota.com writes: > Hi Robby, > thanks for your response. > > Do you mind sharing your config? > I never managed on Guix to autologin and automatically start Sway without a > display manager. > > Daniele Hi Daniele, I actually don't have auto login / auto start Sway - I just login with a TTY, and then I use `herd start sway` with a little guix home service that I wrote: (shepherd-service (documentation "SwayWM") (provision '(sway)) (requirement '(dbus)) (respawn? #f) (auto-start? #f) (start #~(make-forkexec-constructor (list #$(file-append (specification->package "dbus") "/bin/dbus-run-session") "sway") #:log-file (string-append #$log-dir "/swaywm.log"))) (stop #~(make-system-destructor (string-join (list #$(file-append (specification->package "sway") "/bin/swaymsg") "exit") This isn't perfect (I use the system sway binary, but I use swaymsg from my home profile - which means they can be different package version; and herd stop sway doesn't work), but it's been good enough for me to not care to fix.
Re: OBS Studio memory leak
Guillaume Le Vaillant writes: > It looks like an issue with the shader cache of mesa. > After clearing it, I don't see the memory leak anymore. > > Could you try doing a "rm -r $HOME/.cache/mesa_shader_cache/*" and see > if it also solves the issue for you? This worked for me! Thank you!
Re: OBS Studio memory leak
Hey, >> >> Hi, >> >> I don't know if its related, but I have a big memory leak issue with >> vlc. When trying to play a video with it, if the video output module it >> set to gl or vdpau_display, it consumes all the RAM of the machine in >> a few seconds (and I have to kill it fast to prevent the machine from >> hanging). However if I force the video output module to xcb_xv, it works >> fine. >> >> Do you have the same issue with vlc? If yes, it may indicate a bug >> with video acceleration (VA-API/VDPAU or mesa). >> >> PS: My machine's GPU is an AMD Radeon RX 6800 XT. >> > Hey > > Tried the same thing in VLC and it freezes on GPU accel and starts leaking > memory while also becoming hard to kill. > Maybe this also explains why some mpv GPU accel settings don't work also in > the exact same way. > I have an AMD RX 6900 XT on this machine. > > I could probably try this on the laptop with Intel and the unmentionable > video devices. I think we may be on to something here. I have an AMD RX 6650 XT, and VLC does also start to leak for me. Guillaume, when you say you forced the video output module to gl, vdpau_display, or xcb_xv, how did you set that? Robby
Re: OBS Studio memory leak
Ott Joon writes: > Hey there > > I have the exact same issue and I think this has to do with > gstreamer. Some other programs are also affected by this bug. What > seems to happen is the gst-plugin-scanner starts searching for plugins > and just doesn't finish and leaks memory a ton. My 128GB of RAM will > be full in seconds if I launch anything that uses gstreamer. Even > virt-manager if you have gst-plugin-* packages installed as then the > gst-plugin-scanner is awakened. I had to remove them or unset > GST_PLUGIN_SYSTEM_PATH. Unfortunately OBS seems to have this feature > built in, so it's not something you can remove. This is all I know at > the moment. > > Ott Hi Ott, Thanks for the lead. I tried pinning gstreamer and gst-plugins-base to older versions available in Guix, and removing gst-plugins-base from being an input to OBS (though I'm not positive this removes it from all recursive inputs), but I'm still having the issue :( Here is what I have so far: (let ((parent (specification->package "obs"))) (package (inherit parent) (inputs (modify-inputs (package-inputs parent) (replace "gstreamer" ((options->transformation '((with-version . "gstreamer=1.20.3"))) (specification->package "gstreamer"))) (replace "gst-plugins-base" ((options->transformation '((with-version . "gst-plugins-base=1.20.3"))) (specification->package "gst-plugins-base"))) Also tried with (remove "gst-plugins-base") instead of the replace. Robby
Re: Guix home - 'pinning' ?
Hi, > when using guix-home, is there a way to pin a given package to its > current version, so that it stays as it is despite 'guix pull' > bringing new commits ? In your (home-environment (packages ...)) list, you should specify the package that has the correct version that you want. There are two ways to do this. You can either create an inferior channel, and specify the package by looking it up in that channel, or you can apply a transformation to the package to specify the version. Using an inferior package will pull the package from a previous version of Guix - including all of its package inputs. This will pin all of the transitive dependencies of the package as well. See: info guix Inferiors for information on how to define an inferior, and how to select a package from that inferior. If you want to pin a package to a specific commit, version, branch, etc of that package, you can use transformations. See: info guix "Defining Package Variants" for how to use options->transformation, and info guix "Package Transformation Options" for the available options you can set. Hope this helps :) Robby
OBS Studio memory leak
Hi Guixers, For some reason when I use the obs package I quickly leak memory until my system runs out completely, and I have to reboot to resolve it. I had obs-wlrobs, but removing it made no difference. I am able to use the most recent release through Flatpak / Flathub, but ideally I could use the Guix package instead. Is anyone else having this issue? Or could anyone provide insight into how I could resolve this on my system? Thanks, Robby
Re: Adding PolicyKit actions
Robby Zambito writes: > ``` > (service polkit-service-type >(polkit-configuration > (actions (list > (plain-file "org.spice-space.lowlevelusbaccess.policy" >" >\"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN\" > > \"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd\;> > > > The Spice Project > http://spice-space.org/ > spice > > > Low level USB device access > Privileges are required for low level USB device access (for usb > device pass through). > > yes > no > yes > > > > ") > ``` Follow up on this: I am able to evaluate this `service` expression in `guix repl`. I am also able to use `,lower` and `,build` on the `plain-file` in the REPL. Building the system with an empty list for the actions works. Maybe this is a bug? It seems like this is the correct way to configure polkit actions from what I can find.
Re: Adding PolicyKit actions
Hi Felix, > Are you using %desktop-services? I am not. I only use %base-services instead. %desktop-services also contains PulseAudio, which conflicts with my usage of PipeWire, so I've added things from %desktop-services as I've needed them. Thanks, Robby
Adding PolicyKit actions
Hello, The root issue I am trying to solve right now is allowing USB redirection to virtual machines. I've tracked down a promising solution here: https://serverfault.com/a/1073230 which involves adding a new PolicyKit action for low level USB access. Digging into the Guix source I was able to find the definition of polkit-configuration (the manual merely mentions that it exists; I may be able to help write more documentation here if I figure this out :) ) and I'm hitting a wall trying to figure out what I am doing wrong. Here is the configuration I have added to my polkit-service in my system configuration: ``` (service polkit-service-type (polkit-configuration (actions (list (plain-file "org.spice-space.lowlevelusbaccess.policy" " http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd\;> The Spice Project http://spice-space.org/ spice Low level USB device access Privileges are required for low level USB device access (for usb device pass through). yes no yes ") ``` Looking at the code it looks like `polkit-configuration` has an `actions` field that should be a list of file-like objects, which I think is what my code should be doing. However, I get this error when I build my system: ``` Backtrace: 5 (primitive-load "/gnu/store/avr2qvlgydsvny8dkjl5mvjc0b6?") In guix/build/union.scm: 192:6 4 (union-of-directories "/gnu/store/dikmqs3qk5x4v5lhz417?" ?) In srfi/srfi-1.scm: 634:9 3 (for-each # ?) In guix/build/union.scm: 194:28 2 (_ "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb61i069jyd-lowleve?") 56:13 1 (files-in-directory "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb?") In unknown file: 0 (opendir "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb61i069jyd-l?") ERROR: In procedure opendir: In procedure opendir: Not a directory ``` Not very helpful to me :/ Any help would be appreciated! Thanks, Robby
Re: Cannot run virt-manager as my user
David Conner writes: > I have a similar libvirtd service configuration on my system, but I've > only used libvirt a handful of times. Do you want access to the user's > libvert socket? I have no strong preference towards using a user-specific libvirt socket versus the system libvirt socket, as I'm running this on my single user system. > If you run =libvirtd --help= this tells you where the user session > socket will be set up. > > I tried using =virsh -c qemu:///session= This worked the same as `virsh -c qemu:///system` for me (as which one doesn't really matter to me), and it gave me the idea to try using /session in virt-manager instead. In virt-manager I went to File > Add Connection..., set the hypervisor to Custom URI... and set the URI to qemu:///session like you said. This worked! I'm not sure why I can't use the system one, but this is good enough for me :). I'm also not actually sure why this works, since I don't have the socket file shown by `libvirtd --help`... Oh well :D good enough for me! Thanks, Robby
Re: Cannot run virt-manager as my user
Hi, Ruijie Yu writes: > Does it work on a new tty, or if you explicitly run `sg libvirt …`? If > so, the only thing you need is a new terminal window with you on the > libvirt group. If that doesn’t work, try rebooting as well. I had rebooted several times before writing this email, however I just tried `sg libvirt virsh` as my user and that worked... so I tried just running `virsh` and that also worked. I still run into the same error when running either `virt-manager` or `sg libvirt virt-manager` from the terminal though. Thanks Robby
Cannot run virt-manager as my user
Hi, I am trying to set up virt-manager on my system in order to set up some virtual machines. I added the libvirtd service to my system by adding the following service to my system configuration: ``` (service libvirt-service-type) ``` and I've added myself to the libvirt group. I can see the service running when I do: ``` robby@lambda ~$ sudo herd status libvirtd Status of libvirtd: It is running since 10:34:29 PM (5 minutes ago). Running value is 256. It is enabled. Provides (libvirtd). Requires (). Will be respawned. ``` I can see the libvirt-sock file that I should be able to use: ``` robby@lambda ~$ groups users libvirt netdev audio video dialout wheel robby@lambda ~$ ll /var/run/libvirt/libvirt-sock srwxrwx--- 1 root libvirt 0 May 28 22:34 /var/run/libvirt/libvirt-sock ``` But I cannot use virt-manager or virsh as my user. I see the following behavior using virsh: ``` robby@lambda ~$ virsh -c qemu:///system error: failed to connect to the hypervisor error: internal error: Unable to get system bus connection: Could not connect: No such file or directory robby@lambda ~$ sudo virsh -c qemu:///system Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # ``` So I can use virsh while running as root - but I should also be able to use it when running as my user... When I try to connect using virt-manager, I see the following similar error: ``` Unable to connect to libvirt qemu:///system. internal error: Unable to get system bus connection: Could not connect: No such file or directory Libvirt URI is: qemu:///system Traceback (most recent call last): File "/gnu/store/sa4wwfmvlrry69gyilhb961gpbbamayf-virt-manager-4.1.0/share/virt-manager/virtManager/connection.py", line 923, in _do_open self._backend.open(cb, data) File "/gnu/store/sa4wwfmvlrry69gyilhb961gpbbamayf-virt-manager-4.1.0/share/virt-manager/virtinst/connection.py", line 171, in open conn = libvirt.openAuth(self._open_uri, File "/gnu/store/nb6yaafwa44jqfg9s5fbr5nbsa46panm-python-libvirt-8.6.0/lib/python3.10/site-packages/libvirt.py", line 147, in openAuth raise libvirtError('virConnectOpenAuth() failed') libvirt.libvirtError: internal error: Unable to get system bus connection: Could not connect: No such file or directory ``` Since this seems to be an issue relating to dbus, here are the following services I have running related to that: At a system level: ``` (service dbus-root-service-type) (service elogind-service-type) ``` As my user: ``` (service home-dbus-service-type) ``` Maybe there is some conflict between running dbus as my user and as root? Any advice for getting virt-manager working would be greatly appreciated! Thanks, Robby
Re: No ethernet service during install
On Sun, Aug 01, 2021 at 05:03:13PM -0400, Leo Famulari wrote: > That's unfortunate. Can you tell us what card it is? Ethernet (at least > gigabit and slower) is usually supported by linux-libre, so I'm curious to > know which card is missing support. lspci says that it's a Broadcom NetXtreme II BCM5709 Gigabit Ethernet card.
Re: No ethernet service during install
Hello Florian, Thanks for the reply. > Maybe (possibly) your ethernet card is not supported by Linux-libre. It seems like this is the case unfortunately :( I tried doing the installation from the shell, rather than using the graphical installation. Running `ip link set up` gave me an error that it is missing Free firmware. > Do you have a USB ethernet adapter with which you can try? No, unfortunately. It seems like I will need to get creative. Perhaps I can do some IP over USB or something like that. Thanks, Robby
No ethernet service during install
Hello, I am trying to install GNU Guix on my Dell R710 server, but during the installation I am running into this error: > No ethernet service available, please try again. I've tried rebooting, using both the stable and latest releases, and using different ethernet ports on the machine. Each time I end up with the same error. I've tracked down the error to this file https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/installer/newt/ethernet.scm (at least I don't see that error anywhere else but that file), but I am unsure how I can try to debug the issue. Any suggestions for resolving this would be appreciated! Thanks, Robby