I'm going to do a series of blog posts after the #Vizio trial is over about my upgrade to my #NovaCustom laptop & a much newer #Debian & all the stuff I went through to make it happen.
I'm starting this thread simply to have a place to keep all my ideas about those posts publicly, in case they are immediately useful.
I suspect I won't have time to engage in replying on this thread until circa 2026-02-15, which is when I plan to start the blog posts.
TL;DR: it's going pretty good.
I don't know if I'm the only one who experiences this problem, and it may be just because I upgrade #Debian only when I upgrade to a new machine, and I only change machines once every 5-8 years.
While I did lose about 2-3 more days of work than I expected in this transition, I would have lost more if I'd not put a chroot of my old machine in /srv/chroot/ and set it up with schroot to be able to run any command I relied on with a simple:
$ schroot -c $OLD_MACHINE -- $COMMAND
@bkuhn Would love to hear a summary of the Visio case as well, specifically with respect to copyleft legal strategy for user future software availability freedoms (no closed source better versions).
Seeing @kevin boost this…
https://tooter.wishy.co.uk/@wishy/115691364873161411
…reminded me of the more classic version: naming machines. I often wonder if #SFC is the last place that has a theme for machine naming. (It's biological tree species (because our logo)).
But, my recent evitalized excitement about my lifelong fandom led me to ask our sysadmin @paulv for an exception to name my newer SFC equipment after #MST3K things.
The #NovaCustom laptop is 'torgo' at my spouse's suggestion.
The right people will get it!
RT: https://tooter.wishy.co.uk/users/wishy/statuses/115691364873161411
It's always much work configuring new hardware, but usually it's rote work & issues resolve quickly.
Sadly, one issue with my new #NovaCustom laptop lingers: I cannot get hibernate-to-disk to work reliably.
I realize w/ extra-long battery life in most laptops, hibernate-to-disk is out of fashion, but the @novacustom has only ≈ 2hrs battery life with Intel Management Engine off, so I need it.
I posted on @novacustom forums but maybe others here can help too?
https://novacustom.com/forum/d/619-resume-after-hibernation-initially-worked-but-now-fails-every-time
Anyone else still use #sawfish window manager? I've used it since it was called "sawmill", & some of my configs date to 2002.
Anyway, I script my window interactions heavily w/ sawfish. What I need now is sawfish to send a window to a different display. (When I first started using sawfish, I had at most two displays. Now I have 3 huge ones, & it's a lot to drag a window all the way across.)
On single displays, (move-window-to-workspace) is what I use; I basically want (move-window-to-display)
@bkuhn still using sawfish but only with single display
@bkuhn
I am an old enough dog to have used sawfish too.
But for learning new tricks leading up to my Debian Trixie setup I have been quite happy moving to sway.
Since it is tiling, it is very usable without reaching for the mouse. I find the multi monitor workspace layout easy to use.
I set the foot terminal and my emacs to the same font and everything looks tidy but the web browser.
Nice to hear sawfish is still viable, good luck.
But trendy new things aren't all bad.
@bkuhn
In sway I have key binding set up
bindsym $mod+Shift+1 move container to workspace number 1
For various numbers. The sway workspaces can be named any way.
That does your sending the window to another display function.
@aa4hs I've made four serious efforts to move to tiling WMs and they just aren't for me.
No one has made a traditional window manager as fully scriptable as sawfish that I've ever seen. But any wm with overlapping windows and a Turing complete scripting language would work fore.
@bkuhn
Now I am tweaking sawfish. Default sawfish is quite plain.
Remember, 'this the season to be running xsnow.
I *think* I have a solution idea for my "send window to different display", but it requires sawfish being able to know what display the window is currently on.
Note this isn't about workspaces or viewports: I'm talking specifically about physical displays. I wanna warp windows between displays with a keystroke.
I can just do it by "move this many pixels, left or right" if sawfish can tell me via its Lisp (a) what display I'm on, (b) geometry of window, & (c) resolution of display.
(b) is easy
I found some really really old HDMI cable I never used. I bought a pack of three very cheap back when (a) I didn't realize that HDMI was terrible & I should prefer Display Port & (b) 1080p was the highest resolution available on any display.
Welp, I"m using my old TV (bought around the same era) as my 3rd display & boy, is this cable flaky. The fonts are all wobbly.
I'll get better cable soon, but it's wobbly fonts on the big screen until then!
😲… I truly had *no idea* how much my work efficiency goes up when I had more physical screen real estate by adding additional displays. Until recently, I'd been using hardware that just can't support anything more than two displays. Now I can support up to four easily, and maybe more with more Thunderbolt hubs. At the moment, I have just laptop LCD + 2 external displays. It *really* helps me work on policy drafting tasks at least 2x faster! (as I need four different documents open at once).
@bkuhn 10 displays further in, i look forward to your book "the mythical screen month" 🤡
@hko I think four total would be the limit of usefulness.
But I would want a fifth whose sole purpose is to be outward facing to the window of my office at front of my house to tell solicitors who ignore the 5 “no soliciting” signs they walked past to GO AWAY without having to get up.
Speaking of which, anyone know and holiday themed screensavers I can use this time of year for the display visible from the outside?
- replies
- 1
- announces
- 0
- likes
- 0
I tried the 'four displays' setup when last I was at my work's headquarters. Each desk there has two monitors connected to a USB-C docking station; I added my own USB-C portable monitor, and obviously also the laptop's built-in.
3 is useful. One where you work, one with the result of your work, one where you have reference material.
I had no real use for the fourth. I tried my mail and chat clients there, but that just didn't work for me.
@hko
I felt that I couldn't pay attention to more than three displays. Even though the displays were arranged optimally (the desk's 2 on stands side by side, the laptop and portable one below those), it quickly became impossible for my brain to care about the fourth display. I'd often look from the laptop to the portable monitor and back, occasionally to top left, but top right just kept being ignored, even though lots was happening there.
YMMV, of course.
@hko
Keep in mind that I am a collector of old displays. I've been collecting cast-offs for this moment, which means I have the native #NovaCustom laptop, plus a 1920x1200 DVI/VGA (13 yrs old) plus a 1080p TV built in 2009. So, they are just *big* but still less screen real-estate than most people have.
My plan for a fourth is to mount it on an arm *above* all these, and use it only for items I monitor throughout the day, not active work.
Cc: @hko
[ Solved, likely a #Coreboot bug, see downtread. ]
So, I'm now desperate: the only blocker for my @novacustom laptop to meet my computing requirements.
Hibernation (suspend-to-disk/deep sleep) to an encrypted partition *is* tricky,but the tricky part isn't the problem b/c (given logs) hibernate image is found during startup. Key error message is:
> “Hibernate inconsistent memory map detected!…PM: hibernation: Image mismatch: architecture specific data”
@bkuhn a really far shot: I believe I noticed hybernation failed/worked depending on how it was triggered: via software or by pressing the power button.
I guess it is ultimately the same, but who knows 🤷♂️ …
@bkuhn @novacustom @debian possibly dumb question, but is cryptsetup prompting you for the LUKS swap device at resume time?
Thanks for answering, @kees.
I should have mentioned that I've done hibernate-to-disk w/ a LUKS encrypted partition for years, so I know that particular hurdle. I'm definitely decrypting at boot & per the logs (provided in full in my @novacustom post), it's pretty clear that Linux starts *reading* the (unencrypted) data & *then* there's a problem.
Also, note that hibernate worked the first few times & stopped working w/out any config change I recall.
Full details in: https://novacustom.com/forum/d/619-resume-after-hibernation-initially-worked-but-now-fails-every-time
Good thought, @mray, *but* (a) it worked using ` systemctl hibernate -i` & *then* w/ (I believe) no config change failed via same method, & (b) since it started failing, I've now tried every known method of hibernating & none of them work (see my detailed post to the @novacustom forum in this thread).
The only one that "works" is test mode…
> echo test_resume > /sys/power/disk
> echo disk > /sys/power/state
…which hints at decryption error, but I don't think that's it based on logs.
Cc: @kees
@bkuhn @novacustom Yeah, I suspected you had that all working, but thought I'd double check. I agree about the "looks corrupted" bit, which kinda feels like some weird race condition (which could explain "worked before"). I can't imagine what could be racing it given how VERY early this all happens. I am scarred from old races against udev and the helpers it would launch during device discovery.
Thanks for thinking about this question.
Do you think I should just build my own kernel w/ some debugging turned on that might collect more info?
The next thing I'm going to try is a swap file on an actual partition, but I think that actually might be even less likely to work since the resume setup needs an offset into the partition and of course all my partitions are LUKS-encrypted.
Eventually, I'll be forced to try an unencrypted swap file just to see, but I don't think that's it.
@bkuhn I'm out of practice on this particular debugging endeavor. Swap thrashing on a laptop is such a broken experience that to save myself from it I got rid of swap entirely (and so also hibernation). All that said, I would probably start doing userspace debugging from the initrd scripts to see if anything was running at the same time, adding sleeps, etc.
But yeah, if that didn't quickly point me somewhere, I'd probably wipe the luks swap and use an unencrypted one to see if it was stable, like you mentioned.
@kees When I combine that thought with how rarely folks use suspend-to-disk anymore, I'm not terribly surprised.
My skills on Linux development are quite rusty (my last kernel patch was literally in 1993), but I ostensibly have the skills to figure this out.
I won't have time to work on this until after FOSDEM, but do you have some suggestions on where and what to start reading if I wanna figure out how to debug this further?
Cc: @bwh (just in case Ben actually wants into this thread 😜)
Thanks all who engaged on this thread re: my problems w/ hibernate (suspend-to-disk) on my new @novacustom laptop V54.
I've confirmed this problem has nothing to do w/ #NovaCustom, but an #Anker #Thunderbolt hub that I bought. Details: https://novacustom.com/forum/d/619-resume-after-hibernation-initially-worked-but-now-fails-every-time/2
The only thing left is I'd love advice on how to report this bug upstream to #Linux. I've truly never understood how to make useful bug reports to Linux itself, as problems are often so hardware specific.
@bkuhn @novacustom @bwh @mray @debian OMG, yeah, that's the kind of absolutely bonkers "cause" it felt like it would be. And that hub isn't even in the I/O path of the device!? Ugh, totally bizarre.
As for bug reporting, best traction tends to be reporting though your distro. There is technically a kernel bugzilla but it is almost totally ignored by most subsystems. The various Linux subsystem mailing lists tend to be development lists, so unless the report is accompanied by a patch, it'll also likely be ignored just due to volume of other work going on, but you could get lucky: check the MAINTAINERS file for thunderbolt?
Yup, definitely not in the I/O path. In fact, I can reproduce the problem when nothing is plugged into the hub!
The mere appearance of the hub at boot time seems to convince the hibernate restore code that the hibernate image is not valid in some way.
I think you're right. In the very old days (1990s), merely offering on a mailing list to buy the offending hardware for a maintainer would work. (I once sent someone a SCSI card.)
I'll report it via Debian to start & see what happens.
@bkuhn @kees The memory map being provided by your firmware at resume time is different to what was provided when you originally booted, and the kernel can't handle that. Presumably your firmware is allocating resources for the Thunderbolt device at startup - if it's doing any address space randomisation that could result in this breaking.
Well, the firmware is Coreboot. So, maybe the bug goes there?
I'm a bit baffled why it might only do memory randomization when a Thunderbolt hub is plugged in though?
@mjg59, any hints on who I should report this to & how would be appreciated. I know you understand this stuff intuitively so I'd appreciate your advice & want to save anyone else from facing the same annoyances if they try something similar.
(For me, I can use the “doctor, it hurts when I …” solution indefinitely.)
Cc: @kees
@bkuhn @kees Thunderbolt resource allocation probably happens later than other resource allocation, so if the firmware has allocated some random address range that would otherwise be used for Thunderbolt then that would end up elsewhere. But that's an absolute guess. Almost certainly a Coreboot bug of some sort.
Thanks. I've asked @novacustom for advice on how to report this:
https://novacustom.com/forum/d/619-resume-after-hibernation-initially-worked-but-now-fails-every-time/3
#NovaCustom uses a third-party vendor for their Coreboot images called @Dasharo. I'll try to report the bug through them, as that seems more likely to help someone than trying to report directly upstream to @coreboot.
I do know a bunch of the #Coreboot developers personally as they're an #SFC project so I may also bug them about this the next time I see them.😈
Cc: @kees
Yes, & rather pointlessly too b/c problem I've had is that I can't convince Linux during initramfs boot period to properly discover hard drives that are attached via Thunderbolt & put them in the RAID-1 array.
So, like, here is Coreboot messing with my suspend-to-disk resume b/c it's *finding* my Thunderbolt hub, & yet I can't seem cajole Linux into *seeing* drives plugged into that Thunderbolt hub!
As a user, my usual solution to this is wait 10 years & try it again.🤣
Per my post elsewhere in the thread, I'd take the tradeoff you're alluding to *if only* the drives plugged into the Thunderbolt hub were *actually there* for use by Linux to put them back into my RAID-1 array, but they aren't for unknown reasons. That could be Debian's fault, though.
(Yes, I know it's bizarre that my backup strategy includes detachable disks in a RAID-1 with internal laptop drives.)
https://fedi.copyleft.org/@bkuhn/115721065521602313
Cc: @dalias @kees
RT: https://fedi.copyleft.org/users/bkuhn/statuses/115721065521602313
Yeah, I figured. I stopped debugging that part to work on my hibernate problem (& now I'm not going to try to boot with Thunderbolt anyway so hibernate works reliably),but the problem wasn't that drives weren't there for the initramfs, but seemed that Debian's initramfs scripts hadn't contemplated assembling a RAID-1 for / that included both internally installed disk & some attached by Thunderbolt.
I mean, I gotta be the first person to try such a weird thing, right?
Speaking of security, I still don't really get why using Secure Boot prohibits resume-from-disk, especially given that my swap partition is encrypted.
I wanted to ask @mjg59 why this is: just that “no one thought to bother with it”?
Why *can't* Linux just also check whether my resume-to-disk image was signed by a key in the Secure Boot chain at hibernate time & resume from it?
(I realize I'd need to put my own keys as trusted, but I plan to do that anyway).
@bkuhn @kevin I've never had a problem with users who provision their own hardware naming it how they want. The only consistency in SFC laptop names are the ones I installed, which are named after fruit that grows on trees because I thought fit the existing scheme well enough.
At my previous job, where I was but one small cog in an enormous, lumbering, dysfunctional IT machine built from the ashes of teams from various M's & A's, the machines were named after
1. The 3 letter code of the nearest airport, though I think they really meant nearest airport that normal people would have heard of, eg CVG but not LUK and definitely not ISZ.
2. The os abbreviated to 1 letter. I don't know if they used m or o for Mac os.
3. 2-4 letters for function, eg db, dc, web, mail
4. A 2 digit number starting at 01, to be used in the event of collisions.
ordldb02 was always my example of how absurd it was.
I told them, frequently and at great length, how awful this was system was. I think it must have been started by network admins somewhere (back when the 0s were free but you needed to smash rocks together to get 1s). Fortunately it was not strictly enforced unless you needed it to be properly blessed by TPTB.
(Or if you, *cough*, found the one PTB that agreed with you and made friends).
@bkuhn @mjg59 @dalias I found this: https://community.frame.work/t/guide-fedora-36-hibernation-with-enabled-secure-boot-and-full-disk-encryption-fde-decrypting-over-tpm2/25474
Is there really no logic to checking for an encrypted backing device??! Because this patch seems like a bit too much yolo:
https://gist.github.com/kelvie/917d456cb572325aae8e3bd94a9c1350
@bkuhn @mjg59 @dalias This function
https://elixir.bootlin.com/linux/v6.18.1/source/kernel/power/hibernate.c#L109
needs to grow "check for encrypted backing device" logic like loadpin's "check for read-only backing device":
https://elixir.bootlin.com/linux/v6.18.1/source/security/loadpin/loadpin.c#L101
@kees
Yeah, I could probably make the right udev things happen in initramfs, but of course given that I can't resume-from-disk using Thunderbolt *anyway* at the moment, I have to assume my RAID-1 boots in degraded mode for the foreseeable future anyway.
If the Coreboot bug gets fixed, and I can resume-from-disk with Thunderbolt devices plugged in, then it'll be worth it.
I mean, making a RAID-1 out of an internal laptop disk & an external drive was pretty out there from get.
@bkuhn @mjg59 @novacustom @coreboot @kees thanks for letting us know. https://github.com/Dasharo/dasharo-issues is first place to report we will either fix it downstream and contribute upstream or escalate to coreboot community if problem will be more serious.
P.S. Dasharo is a trademark of 3mdeb.
@alwayscurious @bkuhn @bwh With Chrome remembering my tabs and nvme boot taking like 20 seconds, I just power off. *shrug*
Here's a new one in my hibernate (suspend-to-disk) saga. After figuring out work around & resume is working, when I unlock my screen & start typing in terminal, X11 sometimes just crashes. (&, no, I don't think I wanna run Wayland instead. 😆).
I saved logs for later, but if I'm gonna get logged out right after resuming, I may as well do like @kees & start using saved tabs (I usually do all browsing in private/incognito mode). #Emacs reloads desktop but it takes a while to restore 3k buffers.