You are not logged in.
For completion's sake, here is the output of inxi -Gx in the three configurations I mentioned in original post:
#1: Laptop's default configuration. Result: Xorg consistently crashes when visiting certain webpages using chromium-based web browsers.
$ inxi -Gx
Graphics:
Device-1: Intel Core Processor Integrated Graphics vendor: Sony driver: i915
v: kernel arch: Gen-5.75 bus-ID: 00:02.0
Device-2: Microdia Webcam type: USB driver: uvcvideo bus-ID: 1-1.2:3
Display: x11 server: X.Org v: 1.21.1.7 driver: X: loaded: modesetting
unloaded: fbdev,vesa dri: crocus gpu: i915 resolution: 1366x768~60Hz
API: OpenGL v: 2.1 Mesa 22.3.6 renderer: Mesa Intel HD Graphics (ILK)
direct-render: Yes
#2: Workaround using nomodeset kernel boot parameter. Result: No Xorg crashes at the price of an inactive GPU.
$ inxi -Gx
Graphics:
Device-1: Intel Core Processor Integrated Graphics vendor: Sony driver: N/A
arch: Gen-5.75 bus-ID: 00:02.0
Device-2: Microdia Webcam type: USB driver: uvcvideo bus-ID: 1-1.2:3
Display: x11 server: X.Org v: 1.21.1.7 driver: X: loaded: vesa
unloaded: fbdev,modesetting dri: swrast gpu: N/A resolution: 1366x768
API: OpenGL v: 4.5 Mesa 22.3.6 renderer: llvmpipe (LLVM 15.0.6 128 bits)
direct-render: Yes
#3: Current configuration, achieved with /usr/share/X11/xorg.conf.d/09-force-intel-driver.conf and no special kernel boot parameters. Result: No Xorg crashes, GPU is active.
$ inxi -Gx
Graphics:
Device-1: Intel Core Processor Integrated Graphics vendor: Sony driver: i915
v: kernel arch: Gen-5.75 bus-ID: 00:02.0
Device-2: Microdia Webcam type: USB driver: uvcvideo bus-ID: 1-1.2:3
Display: x11 server: X.Org v: 1.21.1.7 driver: X: loaded: intel
dri: crocus gpu: i915 resolution: 1366x768~60Hz
API: OpenGL v: 2.1 Mesa 22.3.6 renderer: Mesa Intel HD Graphics (ILK)
direct-render: Yes
Other than this one strange issue on this one laptop, upgrade from Chimaera to Daedalus was smooth for all my machines. Thank you, Devuan team!
Happy hacking!
In short: screen numbers start at 0.
Maybe so, but the affected laptop only has one (built-in) screen and the config file has no effect unless I use Device1.
It seems that Xorg's latest modesetting driver does not play nice with old-ish (5th generation) integrated Intel graphics. One solution is to force Xorg to use its intel driver instead of the default modesetting driver.
If all of these are true for you:
1. You are experiencing seemingly random Xorg crashes (e.g., while using a chromium-based web browser such as Brave or Chrome) after upgrading to Daedalus
2. After an Xorg crash, /var/log/Xorg.0.log.old shows Fatal server error: (EE) GLSL compile failure
3. Your machine has 5th generation Intel integrated graphics (use inxi -Gx to find out. In my case, command output shows arch: Gen-5.75)
Then try creating /usr/share/X11/xorg.conf.d/09-force-intel-driver.conf with this in it (you may have to change Device1 to Device0):
Section "Device"
Identifier "Device1"
Driver "intel"
EndSection
and then reboot. In my case, all Xorg crashes went away.
I hope this helps someone with the same issue.
----------
Some additional details:
In my case, crashes could be reliably triggered by visiting certain product pages on amazon.com while using Brave or Chrome browser (e.g., "Risk: Lord of the Rings Trilogy edition"). Disabling "Use hardware acceleration when available" in the browser did not help. Building, installing, and using mesa-amber as described in this post did not help. Using nomodeset kernel boot parameter does make the crashes go away, but seemingly at the expense of disabling the GPU and losing hardware graphics acceleration.
Here is what I see at the end of /var/log/Xorg.0.log.old after a crash:
vec2 rel_tex_coord(vec2 texture, vec4 wh, int repeat)
{
vec2 rel_tex;
rel_tex = texture * wh.xy;
if (repeat == RepeatFix + RepeatNone)
return rel_tex;
else if (repeat == RepeatFix + RepeatNormal)
rel_tex = floor(rel_tex) + (fract(rel_tex) / wh.xy);
else if (repeat == RepeatFix + RepeatPad) {
if (rel_tex.x >= 1.0)
rel_tex.x = 1.0 - wh.z * wh.x / 2.;
else if (rel_tex.x < 0.0)
rel_tex.x = 0.0;
if (rel_tex.y >= 1.0)
rel_tex.y = 1.0 - wh.w * wh.y / 2.;
else if (rel_tex.y < 0.0)
rel_tex.y = 0.0;
rel_tex = rel_tex / wh.xy;
} else if (repeat == RepeatFix + RepeatReflect) {
if ((1.0 - mod(abs(floor(rel_tex.x)), 2.0)) < 0.001)
[ 63.908] (EE)
Fatal server error:
[ 63.908] (EE) GLSL compile failure
[ 63.908] (EE)
[ 63.908] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[ 63.909] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 63.909] (EE)
[ 63.909] (II) AIGLX: Suspending AIGLX clients for VT switch
[ 63.968] (EE) Server terminated with error (1). Closing log file.
P.S. My other laptop, which has integrated Intel graphics Gen-7, is not affected by this problem.
Thank you, HoaS. I found this thread and your excellent instructions while investigating Xorg crashes on an old Sony Vaio after upgrading from Chimaera to Daedalus.
For completion's sake, these are the steps I needed to follow after your instructions:
0. The debuild -us -uc step generates six new .deb packages.
1. Install the six new packages with sudo apt install *.deb. These new packages do not conflict with any of the currently-installed graphics packages, so there is no need to uninstall anything.
2. Add this line to /etc/environment: MESA_LOADER_DRIVER_OVERRIDE=i965
3. Reboot
After rebooting, inxi -G shows that mesa-amber is being used (i.e., you'll see that dri = i965 and mesa version = 21).
P.S. In my specific case, it seems mesa version 22 has nothing to do with the Xorg crashes, so mesa-amber unfortunately did not fix the problem. I'll describe my problem and its solution in a separate thread.
Yesterday I upgraded from Chimaera to Daedalus without any issues. Here are the steps I followed:
Edit /etc/apt/sources.list to point to daedalus
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade # at the end there are some errors having to do with old version of linux kernel
$ sudo apt-get autoremove --purge # this removes the packages that caused errors
$ sudo apt-get dist-upgrade # now it completes without any errors
$ sudo apt-get autoclean
Reboot
I only use the main component of the repository. In other words, my /etc/apt/sources.list now looks like this:
deb http://deb.devuan.org/merged daedalus main
Since I don't have packages from contrib or non-free, I cannot comment on the current upgrade experience if your Chimaera system includes packages from those components.
Rant: Did you actually read this?
Option "DontZap" "boolean"
This disallows the use of the Terminate_Server XKB action (usually on Ctrl+Alt+Backspace, depending on XKB options). This action is normally used to terminate the Xorg server. When this option is enabled, the action has no effect. Default: off.
This illustrates exactly what I dislike about Xorg. Everything is overly complicated. This is not a human-friendly description. The header says the DontZap option is boolean, so expected default values would be "true" or "false", not "off" (what exactly is off?).
But all's well that ends well. Thanks to lightdm and sxhkd I don't have to deal with this
I am familiar with the XY Problem, thank you. Not the case here, as the goal was to reimplement the old behavior with a shell script (or a simple shell command, as it turned out), not by tweaking Xorg config files. I love shell scripts and actually quite dislike Xorg, which I tolerate only out of necessity.
I use sxhkd for keyboard hotkeys. Binding sudo pkill Xorg to control + alt + BackSpace does exactly what I was looking for. Thanks again for the help.
I figured it out. I just needed to add a line to /etc/lightdm/lightdm.conf. Now instead of just this in the relevant section:
[SeatDefaults]
autologin-user=bruno
autologin-user-timeout=0
I have this:
[SeatDefaults]
autologin-user=bruno
autologin-user-timeout=0
session-cleanup-script=service lightdm restart
With that added line, now all I need to restart Xorg is sudo pkill Xorg. Thanks for pointing me in the right direction, HoaS!
If you set up autologin for your user ... then killing X should do what you want.
If I run sudo pkill Xorg, then lightdm presents me with a login screen. This is unexpected, since lightdm is configured for autologin and does, in fact, automatically log me at every boot.
Can you help me configure lightdm so that it also automatically logs me in when Xorg is killed?
I do have autologin enabled for my user, with this in /etc/lightdm/lightdm.conf:
[SeatDefaults]
autologin-user=bruno
autologin-user-timeout=0
I'd rather not ditch lightdm, since I would have to reconfigure multiple machines.
There's no actual problem. A few years ago, Xorg disabled Control+Alt+Backspace as the keyboard shortcut for restarting X (supposedly for security reasons). I liked having that shortcut because it was useful for the rare instances when X would freeze. If X acts up, I'd rather simply restart it than doing a full reboot. So the goal is to bring back that functionality by creating a script that works as intended, then binding it to Control+Alt+Backspace.
Wanting to get this script to work is mostly an exercise in getting my computer to do what I want it to do.
Hello, Devuan friends. I'm on Devuan Chimaera x86_64 with SysVinit, lightdm, Xorg 7.7, and MATE. I'm trying to write a shell script that restarts Xorg. Let's call it RestartX.sh
I already tried several variations of this:
#!/bin/sh
sudo service lightdm stop
sleep 1
sudo service lightdm start
I also tried:
#/bin/sh
sudo chvt 1
sudo pkill -f lightdm
sleep 1
sudo service lightdm start
And I also tried:
#!/bin/sh
sudo pkill Xorg
sleep 1
startx
I run the script in a terminal emulator like so: $ ./RestartX.sh & exit
X seems easy to stop but difficult to start from a shell script. Any ideas on how to make it work?
Thank you, HoaS. Yes, that's helpful. I'll give patching caja a shot sometime.
Meanwhile, I'll let the MATE developers know about the issue and patch so that they can consider adopting it. It would be nice to have this without having to recompile anything.
I'm on Chimaera with MATE 1.24.1 and caja 1.24.0. When I used older Devuan ASCII + MATE, caja would not show bind mounts on the deskop. This is the desired, expected behavior (I used bind mounts extensively and having every one of them show up on the desktop creates clutter).
Does anyone know how to hide bind mounts from the MATE desktop? I found the org.mate.caja.desktop volumes-visible setting in dconf but I do not want to hide mounted devices from the desktop, I just want to hide bind mounts.
Hi, viverna. Anything sold on thinkpenguin.com (their prices are high but the customer service is excellent) will have universal GNU/Linux compatibility because they only sell free software-friendly devices. Here's something they sell:
https://www.thinkpenguin.com/gnu-linux/ … 1394bapcie
Also, the FSF maintains the helpful h-node.org database. To see the firewire adapters in their database, go to duckduckgo.com and enter this search query: firewire site:h-node.org. If the "does it work with free software?" line says "yes" then the device will have universal GNU/Linux compatibility.
Hi, viverna.
All available external/loadable kernel modules are listed in the file /lib/modules/<kernel_version>/modules.order. Another way to see which ones are available on your system is to list the .ko files. Something like this would work: find /lib/modules -name '*.ko'.
Built-in kernel modules (which are statically linked into the kernel image and are therefore always "loaded") are listed in the file /lib/modules/<kernel_version>/modules.builtin. These built-in modules are invisible to tools such as lsmod and modprobe.
Whether external or built-in, every kernel module that's currently in active use will have a corresponding directory under /sys/module/.
I'm on Devuan ASCII with a custom kernel and I didn't pay any attention to firewire during compilation. I have several firewire-related external modules available:
$ find /lib/modules -name '*.ko' | grep firewire
/lib/modules/4.16.2-gnu/kernel/drivers/firewire/firewire-ohci.ko
/lib/modules/4.16.2-gnu/kernel/drivers/firewire/nosy.ko
/lib/modules/4.16.2-gnu/kernel/drivers/firewire/firewire-net.ko
/lib/modules/4.16.2-gnu/kernel/drivers/firewire/firewire-core.ko
/lib/modules/4.16.2-gnu/kernel/drivers/firewire/firewire-sbp2.ko
/lib/modules/4.16.2-gnu/kernel/drivers/staging/fwserial/firewire-serial.ko
/lib/modules/4.16.2-gnu/kernel/drivers/media/firewire/firedtv.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/digi00x/snd-firewire-digi00x.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/motu/snd-firewire-motu.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/fireface/snd-fireface.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/bebob/snd-bebob.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/snd-firewire-lib.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/tascam/snd-firewire-tascam.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/dice/snd-dice.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/fireworks/snd-fireworks.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/oxfw/snd-oxfw.ko
/lib/modules/4.16.2-gnu/kernel/sound/firewire/snd-isight.ko
I hope that helps troubleshoot your issue.
Hi, Devuman. Sorry for leading you on a wild goose chase trying to ssh into R2. It seems ralph.ronnquist was right and your router does not offer ssh access into it.
I'm glad you were able to achieve what you needed by setting up a "virtual server" on R2.
P.S. In the future, if you ever have to choose between ralph.ronnquist's advice and someone else's, save yourself some trouble and just go with ralph.ronnquist's
Hi, Devuman. Two quick things that may or may not be obvious:
1. For my double-ssh exercise to work, make sure R2 is not forwarding port 22.
2. The < and > symbols in my posts (and everything between them) are just placeholders. This will never work:
$ ssh -t <bob>@<192.168.18.8> "ssh <bob>@<192.168.1.101>"
The proper syntax would be something like this:
$ ssh -t bob@192.168.18.8 "ssh bob@192.168.1.101"
P.S. Actually, before trying do do fancy stuff (two-hop ssh), it's best to establish that your setup is allowing the easy stuff. Can you ssh from LT2 to R2? How about from LT1 to PC1? Those should be trivial. If not, fix this first.
Here's how to kill openvpn in one line in terminal:
sudo pkill -f openvpn
Depending on how you run openvpn, you may not need the -f.
If the above "double ssh" command works, then we've established that our assumptions about ports (that the default port 22 is being used everywhere) and firewalls (that R2 and PC1 are allowing incoming on port 22) are correct.
To achieve SFTP via port forwarding, you have to tell R1 to take incoming traffic on port 22 and forward it to R2. Then you have to tell R2 to take incoming traffic on port 22 and forward it to PC1. I think that should do it.
I can SFTP from LT1 into PC1.
That's not surprising because they're both on the same network (LAN2).
Not from LT2 into PC1.
That's because LT2 and PC1 are on different networks, so it's not trivial to establish a connection. We have to go through R2. Let's see if we can SSH from LT2 to PC1 (if you can do SSH, then you can do SFTP).
At the risk of stating the obvious, remember that a router by definition stands between two networks, so it should have at least two IP addresses. R2 in your example has an IP address on LAN1 and a different IP address on LAN2.
Try this:
1. Make sure R2 and PC1 are both running SSHD (I'm assuming those two devices are not running a firewall, or at least have the SSH port open)
2. Run this command on LT2:
ssh -t <R2user>@<R2address-on-LAN1> "ssh <PC1user>@<PC1address-on-LAN2>"
Here is an example with made-up passwords and ip addresses:
ssh -t devuman@192.168.1.150 "ssh devuman@192.168.2.135"
You will be prompted for a password twice (first your password on R2, then your password on PC1).
P.S. Nice diagram!
EDIT: If you can establish an SSH connection from LT2 to PC1 using this long method, then we can be optimistic that with the right port forwarding rules we can achieve an SFTP connection without too much fuss. See my subsequent post below.
@contrast - The best place to share this AppImage with a larger community would be at https://www.appimagehub.com but unfortunately the requirements for submitting an AppImage there are too strict (the application needs to be compiled on a machine with very ancient glibc, for instance). It's just too much of a hassle.
Hopefully people who want an AppImage of gimp 2.8 will find this thread. I'll leave my tweaked, final version of the AppImage at this link indefinitely:
http://files.dantas.airpost.net/public/ … 4.AppImage
Cheers!
3 x Tiny Core Linux (my daily driver laptop plus my two wireless routers)
2 x Devuan ASCII (wife's laptops)
1 x Arch Linux ("media player" laptop connected to television--has not been updated since 2015)
I figured it out. Gimp cannot find the plugins inside the AppImage. I came up with a quick fix, which involves two changes:
1. At root of AppDir there is gimp.desktop. Change its Exec line from this:
Exec=gimp-2.8 %U
To this:
Exec=gimp-2.8-wrapper %U
2. Create (and mark as executable) AppDir/usr/bin/gimp-2.8-wrapper with this in it:
#!/bin/sh
dir=/tmp/gimp2.8-plugins
if [ ! -d "$dir" ]; then
mkdir -p "$dir"
HERE="$(dirname "$(readlink -f "${0}")")"
cp -r "$HERE"/../lib/gimp/2.0/plug-ins "$dir"
fi
export GIMP2_PLUGINDIR="$dir"
exec gimp-2.8 "$@"
Create AppImage from the tweaked AppDir. Now the AppImage works perfectly. Thanks again, Tatwi!
EDIT: I cleaned up the wrapper script a bit.
Hi, Tatwi. Thanks for sharing! The AppImage loads quickly and everything looks good. However, I can't open any files.
When I select File -> Open, no files show up in the file selection window unless I choose "All files". Then, whatever image file I select (even a common format such as jpeg) I get an error window saying "Unknown file type".
Alas, I don't know enough about how GIMP/GTK file selection works to fix this.
Hi, Tatwi. I use an AppImage of GIMP 2.10.8 but, like you, I'm unhappy with the recent changes.
Can you please share your AppImage of GIMP 2.8.x for 64-bit?