Bambu Studio - compilation or package request

I’m looking to get Bambu Studio working on my NixOS (GNOME) desktop. The compilation instructions are asking for packages that I can’t seem to locate on search.nixos.org. I noticed there was a package request for it that was opened, marked completed, and closed all on the same day so I’m not sure what happened there.

I’m a bit of a noob when it comes to packaging things up for NixOS but I’d wager it probably would require getting it to compile in the first place. Am I the only Bambu Labs 3D printer owner/user? Or just the only oddball that ditched Debian for NixOS without knowing how to get it working on here?

Thanks to anyone in advance for any help.

Hi, NixOS unstable has bambu-studio packaged for a while. It was broken for a few weeks, but currently it is back working again. If you are on NixOS unstable you can use pkgs.bambu-studio (just tested it).

Due to bambu-studio being a large big C++ codebase with plenty of dependencies, that all have to work in harmony to some extend with the current versions/changes in the nixpkgs repositories - which in particular can be a challenge with mesa and 3D rendering components.

I’ll try to submit a PR updating the nixpkgs bambu-studio package once the official 1.9 release is ready. I think with the soon approaching 24.05 release we’ll finally have a stable BambuStudio package built.

That being said, I just stumbled upon @szymonf repository on GitHub that uses pkgs.appimageTools.wrapType2 to bundle the pre-built AppImages. I’ve been somewhat successfully using the latest orca-slicer built there as well.

Here is my current config with the latest orca-slicer release preview, which also works with my BambuLab printer and the network plugin (webcam is a bit flaky though).

  orca-slicer-appimage = pkgs.appimageTools.wrapType2 rec {
    name = "OrcaSlicer";
    pname = "orcaslicer";
    version = "2.0.0-rc";
    src = pkgs.fetchurl {
      url =
        "https://github.com/SoftFever/OrcaSlicer/releases/download/v${version}/OrcaSlicer_Linux_V${version}.AppImage";
      sha256 = "sha256-tc4gKm+Q0YofH6khXFg2H1gS8iytwK3O3Wbwu9ecpug=";
    };
    extraPkgs = pkgs: with pkgs; [ webkitgtk gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-base ];
  };

I hope that helps, good luck getting your print working soon :slight_smile:.

Update: Thanks to some other work as well I just got the latest BambuStudio 1.9 RC AppImage working for me.

  bambu-studio-appimage = pkgs.appimageTools.wrapType2 rec {
    name = "BambuStudio";
    pname = "bambustudio";
    version = "01.09.00.60";
    src = pkgs.fetchurl {
      url = "https://github.com/bambulab/BambuStudio/releases/download/v${version}/Bambu_Studio_linux_ubuntu_${version}.AppImage";
      sha256 = "sha256-qxV6pn1OVU/IGS2Lv954gm9ud1MtBr8Khdy2tJvkwj8=";
    };
    profile = ''
      export SSL_CERT_FILE="${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
      export GIO_MODULE_DIR="${pkgs.glib-networking}/lib/gio/modules/"
    '';
    extraPkgs = pkgs: with pkgs; [
      cacert
      curl
      glib
      glib-networking
      gst_all_1.gst-plugins-bad
      gst_all_1.gst-plugins-base
      gst_all_1.gst-plugins-good
      webkitgtk
    ];
  };

Ahh I switched over to unstable and it compiled just find but got this (and blank windows) when running it:

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:12.322: gtk_widget_set_size_request: assertion 'width >= -1' failed
Failed to get GBM device
No such file or directory

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.778: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.778: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.781: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.782: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.783: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.784: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

(bambu-studio:4443): Gtk-CRITICAL **: 19:46:13.785: gtk_cell_layout_get_cells: assertion 'GTK_IS_CELL_LAYOUT (cell_layout)' failed

** (bambu-studio:4443): CRITICAL **: 19:46:13.794: Cannot register URI scheme wxfs more than once

** (bambu-studio:4443): CRITICAL **: 19:46:13.794: Cannot register URI scheme memory more than once
Failed to get GBM device

I’m still learning the home-manager stuff so I’ll keep digging and see if I can get that AppImage to work. Thanks for your help!

That sounds like some of mesa issues, try rebooting your host system. I’m not familiar with home manager, but it’s important that the window-manager environment is the same as the BambuStudio version (so perhaps installing it as a system package and not homemanager should work).

Good luck either way. I forgot to mention with the app image snippet the BambuStudio executable will be called BambuStudio and won’t contain a desktop entry.