Files
cubelinux-2/RESUME-20260820.md
T

73 lines
4.1 KiB
Markdown

# 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/`