Lightburn on Ubuntu 22.04.3 LTS

Trying to run Lightburn on a new Ubuntu 22.04.3 LTS install, I encountered the following error.

Could not load the Qt platform plugin "xcb" in "" even though it was found.

I was able to resolve this by installing libxcb-xinerama0 like so:

sudo apt-get install libxcb-xinerama0

I was able to diagnose the issue by setting debug mode before running Lightburn like so:

export QT_DEBUG_PLUGINS=1

Just wanted to share this in case anybody runs into a similar situation. Linux is my day job, so it didn’t take me too long to figure it out. Hopefully this saves others some time.

7 Likes

Someone else had the same issue on Xubuntu 22.04.03 yesterday. Curious what’s happened.

I’m seeing a similar error on NixOS:
It worked before on 1.4.01

❯ export QT_DEBUG_PLUGINS=1 ; LightBurn
....
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/nix/store/95gxxx-lightburn-1.4.03/share/LightBurn/platforms" ...
Cannot load library /nix/store/jldxxx-qtbase-5.15.10-bin/lib/qt-5.15.10/plugins/platforms/libqxcb.so: (/nix/store/jldxxx-qtbase-5.15.10-bin/lib/qt-5.15.10/plugins/platforms/../../../../../7ibxxx-qtbase-5.15.10/lib/libQt5XcbQpa.so.5: undefined symbol: _ZTI27QPlatformServiceColorPicker, version Qt_5_PRIVATE_API)
QLibraryPrivate::loadPlugin failed on "/nix/store/jldxxx-qtbase-5.15.10-bin/lib/qt-5.15.10/plugins/platforms/libqxcb.so" : "Cannot load library /nix/store/jldxxx-qtbase-5.15.10-bin/lib/qt-5.15.10/plugins/platforms/libqxcb.so: (/nix/store/jldxxx-qtbase-5.15.10-bin/lib/qt-5.15.10/plugins/platforms/../../../../../7ibxxx-qtbase-5.15.10/lib/libQt5XcbQpa.so.5: undefined symbol: _ZTI27QPlatformServiceColorPicker, version Qt_5_PRIVATE_API)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

[1]    3298217 IOT instruction (core dumped)  LightBurn
  config = {
    home-manager.users.light = { ... }: {
      home.packages = with pkgs; [ lightburn ];
    };
    users.users.light.extraGroups = [ "dialout" "tty" "video" ];

    # Fiberlaser: run: dmesg
    services.udev.extraRules = ''
      SUBSYSTEM=="usb", ATTRS{idVendor}=="9588", ATTRS{idProduct}=="9899", MODE="0666"
    '';
    # [86347.873137] usb 2-3: New USB device found, idVendor=9588, idProduct=9899, bcdDevice= 0.00
    # [86347.873155] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    # [86347.873161] usb 2-3: Product: USBLMCV2
    # [86347.873165] usb 2-3: Manufacturer: BJJCZ
    # [86347.873169] usb 2-3: SerialNumber: 20120331001

    nixpkgs.overlays = [
      (self: super: {
        lightburn = super.lightburn.overrideAttrs (old: rec {
          patches = [ ];
          version = "1.4.03";
          src = (builtins.fetchurl {
            url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
            sha256 = "sha256:090zxf6l471f13nnpsg06aqh18xm4yvd19mqm32hp5zqm4yslnp2";
          });

          nativeBuildInputs = [
            pkgs.p7zip
            pkgs.autoPatchelfHook
            pkgs.qt5.wrapQtAppsHook
          ];
          buildInputs = [
            pkgs.cups
            pkgs.nss
            pkgs.nspr
            pkgs.libusb1
            pkgs.qt5.qtbase
            pkgs.qt5.qtmultimedia
            pkgs.qt5.qtserialport
            pkgs.qt5.qtserialport
          ];

          # We nuke the vendored Qt5 libraries that LightBurn ships and instead use our
          # own.
          unpackPhase = ''
            7z x $src
            # rm -rf LightBurn/lib
            # rm -rf LightBurn/plugins
            # rm LightBurn/lib/libicudata.so.56
            # rm LightBurn/lib/libicui18n.so.56
            # rm LightBurn/lib/libicuuc.so.56
            # rm LightBurn/lib/libQt5MultimediaGstTools.so.5
            # rm LightBurn/lib/libQt5XcbQpa.so.5
            # rm LightBurn/lib/libQt5DBus.so.5
            # rm LightBurn/lib/libQt5Multimedia.so.5
            # rm LightBurn/lib/libQt5OpenGL.so.5
            # rm LightBurn/lib/libQt5Svg.so.5
            # rm LightBurn/lib/libQt5Core.so.5
            # rm LightBurn/lib/libQt5Network.so.5
            # rm LightBurn/lib/libQt5SerialPort.so.5
            # rm LightBurn/lib/libQt5Xml.so.5
            # rm LightBurn/lib/libQt5Gui.so.5
            # rm LightBurn/lib/libQt5MultimediaWidgets.so.5
            # rm LightBurn/lib/libQt5PrintSupport.so.5
            # rm LightBurn/lib/libQt5Widgets.so.5
          '';

          installPhase = ''
            mkdir -p $out/share $out/bin
            cp -ar LightBurn $out/share/LightBurn
            ln -s $out/share/LightBurn/LightBurn $out/bin
            wrapQtApp $out/bin/LightBurn --prefix PATH : LightBurn/lib/::LightBurn/plugins
          '';

        });
      })
    ];
  };
1 Like

Just tried to update from LightBurn-Linux64-v1.4.01 to LightBurn-Linux64-v1.4.03 on Ubuntu 22.04 (“Jammy Jellyfish”), app installed ok but fails to start up, re-installing v1.4.01 works, any ideas?

hmm, 1.4.03 starts on my upgraded Kubuntu 22.04.3

MacBookAir:~/LightBurn$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

MacBookAir:~/LightBurn$ ./doit-LightBurn-full 
Using the core prefs dir
QMetaObject::connectSlotsByName: Connecting slot on_sbNumberOfPasses_valueChanged() with the first of the following compatible signals: ("valueChanged(int)", "valueChanged(QString)")
QMetaObject::connectSlotsByName: Connecting slot on_sbFrequency_valueChanged() with the first of the following compatible signals: ("valueChanged(double)", "valueChanged(QString)")
QMetaObject::connectSlotsByName: Connecting slot on_sbQPulseWidth_valueChanged() with the first of the following compatible signals: ("valueChanged(double)", "valueChanged(QString)")
QMetaObject::connectSlotsByName: No matching signal for on_sbInterval_valueChanged()
QMetaObject::connectSlotsByName: Connecting slot on_sbMaterialHeight_valueChanged() with the first of the following compatible signals: ("valueChanged(double)", "valueChanged(QString)")
QMetaObject::connectSlotsByName: Connecting slot on_sbSupportHeight_valueChanged() with the first of the following compatible signals: ("valueChanged(double)", "valueChanged(QString)")
QMetaObject::connectSlotsByName: No matching signal for on_actionEdit_Text_closed(int)
connected
"FaceTime HD Camera (Built-in): " "/dev/video0"

I installed the 7z file into ~/LightBurn directory and start it with this bash script but it also runs with just AppRun from the ~/LightBurn directory.

#!/bin/bash
#
# if LightBurn update feature does not work, try installing libssl1.0-dev
#sudo apt install libssl1.0-dev

HERE=`pwd`
lbDIR=~/LightBurn
lbCMD=$lbDIR/LightBurn
lbLibsDIR=~/LightBurnLibs
gstLibs=gstreamer-1.0

if [ ! -d $lbLibsDIR/$gstLibs ] ; then
  cd
  git clone http://github.com/dlarue/LightBurnLibs
  cd $HERE
fi

GST_PLUGIN_SYSTEM_PATH=${lbLibsDIR}/${gstLibs} $lbCMD

I had no problems with the 7zip install on Nobara 38. I’m wondering if the issue is unique to the .run install.

If you are familiar with booting from an iso(via grub) you might try either Lubuntu 22.04.3 liveCD/iso and see how that works. It worked for me. My /boot/grub/grub.cfg for Lubuntu looks like this:

menuentry 'Lubuntu 22.04.3 ISO' {
insmod part_gpt
insmod ext2
set root='hd0,gpt4'
set isofile='/home/dlarue/ISOs/Lubuntu/lubuntu-22.04.3-desktop-amd64.iso'
insmod ext2
loopback loop (hd0,gpt4)$isofile
linuxefi (loop)/casper/vmlinuz boot=casper maybe=ubiquity iso-scan/filename=$isofile noprompt noeject
initrdefi (loop)/casper/initrd
}

It’s probably a Qt library not installed on Ubuntu or provided with LightBurn. I installed the .run version on the live Lubuntu 22.04.3 and it too ran as the 7z did.

I don’t have a Ubuntu 22.04.x iso to quickly test.

Had same issue with the zip file as well

It’s a library issue. I booted ubuntu 22.04.3 ISO and it would not run but runs fine on Lubuntu and Kubuntu which both have Qt libraries installed by default. I’m out and about for the rest of the afternoon but it looks like /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so is missing.
I’ve attached it, but had to add the .dxf to the name. Try putting it into the ~/.local/share/LightBurn/lib directory and running.

libqxcb.so.dxf (18.6 KB)

or you could look in the lib directory of the 1.4.01 version and see if the library is provided there, save it, then install 1.4.03 and move it to the lib directory. Heck, save the whole 1.4.01 lib directory incase there’s another library which was missed in the repackaging for 1.4.03.

What is also odd is that the download link for the latest .run file gets you 1.4.02 but if I hack on the URL of the 7z file so it points to 1.4.03 .run file then I get the 1.4.03 .run file.

https://github.com/LightBurnSoftware/deployment/releases/download/1.4.03/LightBurn-Linux64-v1.4.03.run

or both options as shown in the Assets listing here:

What’s odd is that if I’m remembering correctly from when I looked at this the other day that libqxcb.so existed in LightBurn’s local plugin directory.

Hi!

Brand new here…I wanted to use my Microsoft Surface running Ubuntu 22.04.3 for a new for me Atomstack A5 Pro and of course Several issues…

LB-install seems ok, but nothing happens when I press Lightburn icon.

I run the QT tips above and now at least the program start but the connection fails.

Research into the CH34 drivers and I found out that it is not shipped with 22.04.

So I run make and make load, but I get several errors, trying SUDO them but fails due to GCC missing
Install GCC according to this:

and now I can make and make load and of course sign the drivers as mentioned in link below.

Down here is driver manual for Ubuntu:

now at least I can connect to the darn machine, but then I have to learn the app as it says disconnected :slight_smile:

After a minute or 2 could connect and actually move the head about, I draw a simple rectangle and ran some frame to show me the size…

Now I need a bunch of mods like endstops and whatnots…if the options are missing on this board I might need to replace it with something from my 3d printers.

Tried that, made no difference, /usr/lib/x86_64-linux-gnu/qt5/ doesn’t exist
As soon as I Bash 1.4.01 back in it all works again, there’s no difference between the version libs either, most frustrating to a 72 year old!! I’m more concerned about future feature releases rather than having to have this particular version.

There is a difference in the libs.
from .7z:
plugins/platforms/libqxcb.so has a different size: 15.3K vs 19.3K

Tried extracting and running the zip file, still no joy.
Whatever is ‘broken/changed/missing’ is after v1.4.01 as 1.4.02 doesn’t start up either.
I no longer have access or the ‘skill’ to do comparisons beween the versions.

This was from @lightningstrike debug output so it’s finding the libqxcb.so file in the plugins directory but isn’t loading it for some reason which isn’t obvious to me. I can look at this this afternoon now that I have a ubuntu 22.04.3 ISO I can boot. Since it was mentioned there are version differences between the 1.4.01 and 1.4.03 release, I will first try running 1.4.03 with the 1.4.01 plugins directory then if that fails I’ll try pulling over just some individual plugin libs and see what the debug output shows.

This is a packaging issue. BTW, I will also try pulling some files from Lubuntu 22.04.3 since it works and therefore the libraries on that system look to be working and it’s likely that the packaged plugins with LightBurn are insufficient and the system versions are sufficient. Just hoping it doesn’t go beyond libqxcb.so but will get to the bottom of it. It should be an easy fix by LightBurn devs( @Rick ) once IDed and they know about it.

1 Like

@lightningstrike @chris.barnett What is missing is libxcb-xinerama. On the booted ISO( ubuntu 22.04.3 ) all I needed to add to the system was that and LightBurn 1.4.03 ran.

sudo apt install libxcb-xinerama0

will lightburn with Ibuntu 3.0 Monterix?

I’m not familiar with that distro but looks like it’s built on Ubuntu 22.04 so should work or can be made to work.