Files
cubelinux-2/RESUME-20260820.md
T

4.1 KiB

Resume Marker — 2026-08-20 (kernel build + GUI session switching)

Context

User restarted the session. Two parallel tasks were in progress when interrupted:

  1. Kernel Rust build config issue (kbuild + nightly rustc)
  2. GUI session switching — install Xfce on workhorse so user can switch GNOME↔Xfce at login

Task 1: Kernel Rust Build Config

Status: unresolved — root cause found, fix not yet applied

What we know:

  • Kernel source: /home/CUBELinux/CUBELinux-2/src/CUBELinux-build/ (vanilla v6.19.3 + ipu4 out-of-tree)
  • CONFIG_RUST=y set in .config
  • rustc 1.97.1 (stable) is default; rustc 1.100.0-nightly also installed via rustup (default host: x86_64-unknown-linux-gnu)
  • scripts/target.json exists with rustc-abi: x86-softfloat, llvm-target: x86_64-linux-gnu
  • make rust/core.o fails: error loading target specification: custom targets are unstable and require -Zunstable-options
  • The rustc_library command in rust/Makefile:559 does NOT pass -Zunstable-options
  • rust/Makefile already uses -Zunstable-options in rustdoc paths (lines 136, 324, 333) but NOT in the core rustc_library invocation
  • KBUILD_RUSTFLAGS (from arch/x86/Makefile) sets --target=.../scripts/target.json but no -Zunstable-options
  • The rustc_library rule (rust/Makefile:555-567) builds the command as:
    $(RUSTC) $(filter-out $(skip_flags),$(rust_flags)) $(rustc_target_flags) --emit=...
    
    where rust_flags = KBUILD_RUSTFLAGS + rust_common_flags and rustc_target_flags = core-flags (which is --edition=... + cfgs). Neither carries -Zunstable-options.

What needs to happen:

  • Option A: Patch rust/Makefile to add -Zunstable-options to the rustc_library command (line 559 area) — minimal change, mirrors what rustdoc already does
  • Option B: Use nightly rustc as RUSTC and ensure it's invoked with -Zunstable-options — but kbuild doesn't add it automatically
  • The real fix is Option A: add -Zunstable-options to the rustc invocation in the rustc_library rule, since the target.json is a custom target spec that requires it
  • After that: make rust/all or make rust/core.o should succeed, then full kernel build

Files involved:

  • /home/CUBELinux/CUBELinux-2/src/CUBELinux-build/rust/Makefile (line 555-567, rustc_library rule)
  • /home/CUBELinux/CUBELinux-2/src/CUBELinux-build/arch/x86/Makefile (KBUILD_RUSTFLAGS)
  • /home/CUBELinux/CUBELinux-2/src/CUBELinux-build/scripts/target.json (custom target spec, needs -Zunstable-options)

Task 2: GUI Session Switching (Xfce on workhorse)

Status: dpkg interrupted — lightdm stuck half-configured

What we know:

  • Workhorse runs GNOME (gdm3 + gnome-shell) currently
  • User wants GNOME ↔ Xfce switching at the login screen (like Cinnamon is available)
  • apt-get install -y task-xfce-desktop timed out (exit 124) and left dpkg in interrupted state
  • dpkg --configure -a fails: lightdm is half-configured, depends on itself being configured first
  • lightdm package status: iF (half-configured), light-locker and task-xfce-desktop also stuck
  • Xfce components were likely downloaded but not configured due to the dpkg blockage

What needs to happen:

  1. Fix dpkg: either dpkg --remove --force-remove-reinstreq lightdm then dpkg --configure -a, or manually remove the lock/status entries
  2. Re-run apt-get install -y task-xfce-desktop (or just xfce4 + lightdm if minimal)
  3. Verify xfce4-session works: xfce4-session --version
  4. Verify GDM shows Xfce session: check /usr/share/xsessions/xfce.desktop exists, gdm3 is running
  5. Test: log in via Xfce session

Files/dirs involved:

  • /usr/share/xsessions/ (GDM session definitions)
  • /usr/share/wayland-sessions/ (if Wayland Xfce session needed)
  • /etc/gdm3/ (GDM config)

General Notes

  • User explicitly does NOT want auto-launching heavy kernel compiles while they're using the machine
  • Kernel build with make -j$(nproc) will saturate CPU — must ask before launching
  • The workhorse is Debian-based, root access available
  • rustup is installed at /root/.rustup, toolchains in /root/.rustup/toolchains/