MATE live environment - Garuda Chroot tool

I have the new Mate ISO (220909) up in the live system, and the garuda-chroot-gui tool does not work correctly.

If you click the button in Garuda Welcome menu (this one):

a toast notification pops up in the upper right-hand corner that says:

No terminal installed

No supported terminal emulator is installed. Please install a
terminal emulator like alacritty.

This message is not quite right; there is a terminal installed (MATE terminal). Perhaps garuda-chroot-gui only runs on certain terminals?

This tool is also in the application launcher (Applications -> System Tools -> Garuda Chroot), but launching it this way does nothing at all--not even the toast notification.

If I launch garuda-chroot-gui from the terminal, it offers up this one line and then sits on a blinking cursor doing nothing:

[[email protected] ~]$ garuda-chroot-gui
su -c  garuda-chroot -a

It doesn't crash or throw an error message, it just looks like it is waiting.

If I install Alacritty and then launch with the Garuda Welcome button, it successfully launches but throws a whole bunch of "rmdir: failed to remove" errors first:

rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
mount: /var/lib/os-prober/mount: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
==> Detected systems:
 --> 0) Garuda_Linux
 --> 1) openSUSE_Tumbleweed
 --> 2) LMDE_5_(elsie)
 --> 3) Debian_GNU/Linux_11_(bullseye)
 --> 4) Garuda_Linux
 --> 5) Garuda_Linux
 --> 6) Garuda_Linux
==> Select system to mount [0-6] :

I have no idea what the significance of that is.

Anyway, I just thought I would pass this along as feedback in case it is something with a relatively painless fix. I don't know if it is possible to get the Chroot tool to acknowledge MATE terminal or not, but if not maybe Alacritty could be included as a package in the live ISO just to support the rather handy Chroot tool. :slightly_smiling_face:

inxi from the live system:

[[email protected] ~]$ garuda-inxi
System:
  Kernel: 5.19.7-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us tz=UTC
    misobasedir=garuda misolabel=GARUDA_MATE_TALON quiet
    systemd.show_status=1 systemd.unified_cgroup_hierarchy=1 driver=free
    nouveau.modeset=1 i915.modeset=1 radeon.modeset=1
  Desktop: MATE v: 1.26.0 info: mate-panel wm: marco v: 1.26.0 vt: 7
    dm: LightDM v: 1.32.0 Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: H310M-STX serial: <superuser required>
    UEFI: American Megatrends v: P4.40 date: 01/13/2020
CPU:
  Info: model: Intel Core i5-9400 bits: 64 type: MCP arch: Coffee Lake
    gen: core 9 built: 2018 process: Intel 14nm family: 6 model-id: 0x9E (158)
    stepping: 0xA (10) microcode: 0xCA
  Topology: cpus: 1x cores: 6 smt: <unsupported> cache: L1: 384 KiB
    desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB L3: 9 MiB
    desc: 1x9 MiB
  Speed (MHz): avg: 1850 high: 2900 min/max: 800/4100 scaling:
    driver: intel_pstate governor: powersave cores: 1: 800 2: 800 3: 2900
    4: 2900 5: 2900 6: 800 bogomips: 34798
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    disabled
  Type: mds mitigation: Clear CPU buffers; SMT disabled
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT disabled
  Type: retbleed mitigation: IBRS
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS, IBPB: conditional, RSB filling,
    PBRSB-eIBRS: Not affected
  Type: srbds status: Vulnerable: No microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel CoffeeLake-S GT2 [UHD Graphics 630] vendor: ASRock
    driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
    ports: active: DP-1 empty: DP-2,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0
    chip-ID: 8086:3e92 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.4 compositor: marco v: 1.26.0 driver:
    X: loaded: modesetting alternate: fbdev,intel,vesa gpu: i915 display-ID: :0
    screens: 1
  Screen-1: 0 s-res: 2560x1440 s-dpi: 96 s-size: 677x381mm (26.65x15.00")
    s-diag: 777mm (30.58")
  Monitor-1: DP-1 model: Acer EB321HQU C serial: <filter> built: 2020
    res: 2560x1440 hz: 60 dpi: 93 gamma: 1.2 size: 699x393mm (27.52x15.47")
    diag: 802mm (31.6") ratio: 16:9 modes: max: 2560x1440 min: 720x400
  Message: Unable to show GL data. Required tool glxinfo missing.
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: ASRock driver: snd_hda_intel
    bus-ID: 1-4.2:6 v: kernel alternate: snd_soc_skl,snd_sof_pci_intel_cnl
    chip-ID: 1908:2070 class-ID: 0300 bus-ID: 00:1f.3 serial: <filter>
    chip-ID: 8086:a348 class-ID: 0403
  Device-2: GEMBIRD Honk HK-5002 USB Speaker type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Sound Server-1: ALSA v: k5.19.7-zen2-1-zen running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.57 running: yes
Network:
  Device-1: Intel Ethernet I219-V vendor: ASRock driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15bc class-ID: 0200
  IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Intel Dual Band Wireless-AC 3168NGW [Stone Peak]
    driver: iwlwifi v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    bus-ID: 02:00.0 chip-ID: 8086:24fb class-ID: 0280
  IF: wlp2s0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Wireless-AC 3168 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 1-14:4 chip-ID: 8087:0aa7 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:
  Local Storage: total: 3.27 TiB used: 42.65 GiB (1.3%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WDS100T2B0C-00PXH0 size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 211210WD temp: 48.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 4B6Q
  ID-3: /dev/sdb maj-min: 8:16 type: USB vendor: Generic model: Flash Disk
    size: 1.91 TiB block-size: physical: 512 B logical: 512 B type: SSD
    serial: <filter> rev: 8.00 scheme: GPT
  SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
Partition:
  Message: No partition data found.
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.3 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 37.0 C pch: 62.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 241 Uptime: 41m wakeups: 0 Memory: 15.3 GiB used: 2.78 GiB
  (18.2%) Init: systemd v: 251 default: graphical tool: systemctl
  Compilers: gcc: 12.2.0 Packages: pacman: 1222 lib: 321 Shell: Bash
  v: 5.1.16 running-in: mate-terminal inxi: 3.3.20
Garuda (2.6.7-1):
  System install date:     2022-09-19
  Last full system update: 2022-09-19 ā†»
  Is partially upgraded:   Yes
  Relevant software:       NetworkManager
  Windows dual boot:       <superuser required>
  Snapshots:               Snapper
  Failed units:            snapper-cleanup.service 
5 Likes

Hi :slight_smile:
did you check the last version too?

https://mirrors.fosshost.org/garuda/iso/garuda/mate/220914/

I just cracked open the version linked (220914) and unfortunately I cannot see any difference. The Chroot tool still throws the same error message:

image

Interestingly, after installing Alacritty the tool launches without the thirty rmdir: failed to remove messages I got last time:

mount: /var/lib/os-prober/mount: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.
==> Detected systems:
 --> 0) Garuda_Linux
 --> 1) Garuda_Linux
 --> 2) openSUSE_Tumbleweed
 --> 3) LMDE_5_(elsie)
 --> 4) Debian_GNU/Linux_11_(bullseye)
 --> 5) Garuda_Linux
 --> 6) Garuda_Linux
 --> 7) Garuda_Linux
==> Select system to mount [0-7] :

The tool itself seems to work just fine once Alacritty is installed. :man_shrugging:

3 Likes

Make a merge request here to add support for mate terminal

Or perhaps @TNE will do it if he want to

4 Likes

I did take a look at this, but I'm afraid updating this file extends a little beyond my abilities at the moment.

I found launch-terminal in /usr/lib/garuda, and figured if I could get it to work on my system I would try to put together a pull request as mentioned. Adding mate-terminal to the declare -a term_order line and the if statement on the bottom was straightforward enough, but I can't quite figure out how it is supposed to be added to the declare -A terminals line.

terminal=""
declare -A terminals=( ["alacritty"]="alacritty -e $cmd || LIBGL_ALWAYS_SOFTWARE=1 alacritty -e $cmd" ["konsole"]="konsole -e $cmd" ["gnome-terminal"]="gnome-terminal --wait -- $cmd" ["xfce4-terminal"]="xfce4-terminal --disable-server --command '$cmd'" ["lxterminal"]="lxterminal -e $cmd" ["xterm"]="xterm -e $cmd" ["mate-terminal"]="mate-terminal -e '$cmd'" )
declare -a term_order=( "alacritty" "konsole" "gnome-terminal" "xfce4-terminal" "lxterminal" "xterm" "mate-terminal")

if [ "$XDG_CURRENT_DESKTOP" == "KDE" ]; then
   terminal=konsole
elif [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
   terminal=gnome-terminal
elif [ "$XDG_CURRENT_DESKTOP" == "XFCE" ]; then
   terminal=xfce4-terminal
elif [ "$XDG_CURRENT_DESKTOP" == "LXQt" ]; then
   terminal=lxterminal
elif [ "$XDG_CURRENT_DESKTOP" == "MATE" ]; then
   terminal=mate-terminal
fi

["mate-terminal"]="mate-terminal -e $cmd" launches the terminal when the Chroot button is pressed, but the terminal does nothing.

I noticed some of the other terminals deviate from the standard pattern a little on this line, so I read through the mate-terminal man pages a little to see if I could find any useful flags that are meant to be added as an argument here.

If I change the line to
["mate-terminal"]="mate-terminal -x $cmd"
or
["mate-terminal"]="mate-terminal -e '$cmd'"
then the Chroot launcher works, although it's back to thirty or so lines of rmdir: failed to remove:

rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
mount: /var/lib/os-prober/mount: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
rmdir: failed to remove '/var/lib/os-prober/mount': Device or resource busy
==> Detected systems:
 --> 0) Garuda_Linux
 --> 1) Garuda_Linux
 --> 2) openSUSE_Tumbleweed
 --> 3) LMDE_5_(elsie)
 --> 4) Debian_GNU/Linux_11_(bullseye)
 --> 5) Garuda_Linux
 --> 6) Garuda_Linux
==> Select system to mount [0-6] : 

I can see in the mate-terminal man pages that -x and -e behave differently, but honestly the explanation is over my head a little bit. I also can't figure out why the -e needs single quotes on $cmd to work and -x does not.

Terminal options; if used before the first --window or --tab argument, sets the default for all terminals:

-e, --command
Execute the argument to this option inside the terminal
-x, --execute
Execute the remainder of the command line inside the terminal

After getting the Chroot tool to (sort of) work, I tested a different Garuda Welcome app (Garuda Gamer) and it does nothing at all. I tried a couple different flags on the "mate-terminal -e $cmd" line, and tried using a few different options within the Garuda Gamer menu but could not get it to budge. After restoring the original 'launch-terminal' file and installing Alacritty it works as expected (menu options in Garuda Gamer initiate package installation).

This leads me to believe I am probably way off, and maybe it's best I leave this for someone who knows what the heck they are doing. :laughing: Sorry I wasn't able to be more helpful!

1 Like

Could this Hold the terminal open setting make a difference (if still existing... :frowning: )?

1 Like

Hi Filo, I stumbled on the same thread earlier because at first I was looking closely at the Gnome Terminal version of this line:

["gnome-terminal"]="gnome-terminal --wait -- $cmd"

I thought since Gnome Terminal and Mate Terminal perhaps share some common roots, then the Mate Terminal would require some kind of special treatment like that --wait flag. I couldn't find a Mate version of the flag though, and I ended up passing over the thread because I thought making a change in the terminal settings might be challenging or impossible to express in a config file.

Circling back now that you mention it, I think you might be on to something after all. :thinking: After enabling the setting described (Edit -> Profiles -> Edit -> Title and Command -> "When command exits: Hold the terminal open") some of the apps offer a different output when they deploy/fail to deploy.

["mate-terminal"]="mate-terminal -e $cmd" still launches an empty terminal that does nothing, but ["mate-terminal"]="mate-terminal -e '$cmd'" spits out a new error:

The child process exited normally with status 127.

bash: /tmp/tmp.bdoy2b6QXC: No such file or directory

There is a "Relaunch" button next to the first line, but the second line just repeats if it is pressed.

["mate-terminal"]="mate-terminal -x $cmd" successfully launches the Chroot tool, without all the rmdir: failed to remove lines. :tada:

mount: /var/lib/os-prober/mount: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.
==> Detected systems:
 --> 0) Garuda_Linux
 --> 1) Garuda_Linux
 --> 2) openSUSE_Tumbleweed
 --> 3) LMDE_5_(elsie)
 --> 4) Debian_GNU/Linux_11_(bullseye)
 --> 5) Garuda_Linux
 --> 6) Garuda_Linux
 --> 7) Garuda_Linux
==> Select system to mount [0-7] : 

Garuda Gamer...is still completely broken. However, instead of doing nothing at all when an icon is ticked, it pops open a terminal with another "The child process exited normally with status 127" messages.

So...needs a little work still I think. :joy:

2 Likes