Many hours died to bring you this information
tl;dr: run grub-install --target=x86_64-efi --efi-directory=<espdir> --removable
if following the Arch Linux install guide
Interested in more info on the Wyse 3040? ParkyTowers has a treasure trove of info on the hardware, disassembly, firmware, installing TinyCore Linux, and some further reading. Enjoy!
I acquired a Dell Wyse 3040 thin client recently. I hit a snag during the install, in that it would not boot the new operating system.
grub-install
claimed to have successfully completed, but it wasn’t booting. The entry was present on the Dell setup page, but it was being bypassed:
As a side note, I don’t seem to be able to disable UEFI boot mode in favour of legacy. Someone on the Dell forums claims this was removed but I can’t confirm or refute that.
After much futzing, not helped by the fact I was using a netboot image (PS: check out netboot.xyz, it’s really good!), I discovered that the Wyse 3040 was using the fallback location for the EFI image.
This is mentioned on the Grub wiki page under ‘troubleshooting’:
Default/fallback boot path
Some UEFI firmwares require a bootable file at a known location before they will show UEFI NVRAM boot entries. If this is the case,
grub-install
will claimefibootmgr
has added an entry to boot GRUB, however the entry will not show up in the VisualBIOS boot order selector. The solution is to install GRUB at the default/fallback boot path:
# grub-install --target=x86_64-efi --efi-directory=esp --removable
Alternatively you can move an already installed GRUB EFI executable to the default/fallback path:
# mv esp/EFI/grub esp/EFI/BOOT
# mv esp/EFI/BOOT/grubx64.efi esp/EFI/BOOT/BOOTX64.EFI
As another aside, I find myself yearning for something simpler than WordPress. The block editor is… fine, but sometimes it gets in your face a bit; like when you’re trying to paste preformatted text in a quote. Also, blocks look different in the editor to how they look ‘on the page’… But I digress.
Strangely, while the boot manager on the setup page has an option to browse and set a path to the EFI image, it does not seem to honour this setting. I spent a couple of reboot cycles trying that before using the fallback path. It was only when I took some images of the screen after a reboot that I noticed that the file path changed:
Once I moved the EFI executable to the fallback path of /EFI/BOOT/BOOTX64.EFI
Arch booted successfully.
My final tip? If you’re tracking down a boot problem, use a standard USB instead of a netboot image; and disable any inbuilt PXE options. Waiting for an image to download over and over and for PXE to timeout becomes… tedious. Especially if you have to go up and downstairs to re-enable ssh after booting while testing! But hey, it’s a way to exercise during lockdown…
Pingback: Turning a Wyse 3040 Into an HTPC (Part 1) – Bertie Baggio's Wonderland
Pingback: A Better Raspberry Pi? Dell Wyse 3040 Project #1 - crimesjohnson.net
Hi,
I was installing debian and tried just to move home folder DEBIAN to BOOT and then rename grubx64.efi into bootx64.efi. But still it didn’t want to boot.
The only difference from your installation is that I was trying to use lvm from the very first try.
After that I found recommendations to use debian installer rescue mode right after installation and install grub. People say it helps to recover bootloader.
Anyway in my case I succeded after clean installation (with removing partitions) without lvm with just one shot.
Hi Maksim,
Thanks for sharing that. It’s interesting that with Debian you need to use the rescue mode if using LVM, but not if you are using plain partitions- a cross-distro UEFI boot idiosyncrasy.
Cheers,
Rob
HI Guys,
I am trying to install debian on the Wyse 3040 8g/2g but it wont load at all. I see you need to change some configuration, is anywhere a step by step guide?
Sorry I am a total newbie, but I would like to get it done, in would like to use wyse with pi-hole, unbound and some other containers.
Can Maksim or Rob help me please? much appreciated
Thanks, you saved me pulling my hair out. I used the mv method (in a rescue prompt) on a debian 11 install to get it booting. (slightly different naming EFI/debian to EFI/BOOT, but you got me there 🙂 )
Hey Peter, thanks for the info- glad to be of help and that you got there in the end! 🙂
Pingback: Better Than a Raspberry Pi? Dell Wyse 3040 - Patch Panel Panic
Pingback: Install a New OS On a Dell Wyse 3040 – Qubits & Bytes
Pingback: Install a New Linux OS On a Dell Wyse 3040 – Qubits & Bytes
You’re my hero! Just spent 3 hours troubleshooting this.
Glad it helped eventually!
man you’ve been blogging longer than I’ve been alive but saved me just now. Thanks so much for documenting this one – I’ve even got a newer dell thin client that ran debian just fine (minus a couple of hours of unlocking the bios with the hardware service pins) but this one didn’t. Funny stuffs these thin clients
thanks again
Hi Liam, oh gosh yes I’ve been blogging a while :’D (where did emoji support go?)
Glad it was helpful, I know the pain of “why doesn’t this work it should just work!” all too well. Hope you get some good use out of the Wyse now you’ve got it sorted 🙂
emoji test: ?
There it is! Several hours and several sharks*,†,‡, later…
*: Since you asked. I figured I needed to change the database collation, which was
latin1_swedish_ci
for some reason — cf https://wordpress.org/support/topic/emojis-show-up-as-2/#post-15925159 — so I went to take a database backup.borg.locking.LockFailed: Failed to create/acquire the lock /home/bertieb/backups/borg/web/lock.exclusive ([Errno 28] No space left on device: '/home/bertieb/backups/borg/web/lock.exclusive.ixgs2m7p.tmp').
Oh. So I had to clear space off the array so I could
borg prune
, but to do that I had to update my local borg repo cache, and I ran out of space in my home directory, so Ilvexpanded + resize2fs'd
that, then re-updated the cache. Then I could finally prune more aggressively, but that took a while. Then I had toborg compact
.By the time that was all done the sun had disappeared but one of the periodic database backups had fired off, working as intended. But then I needed to get a tool to change the collation. PhpMyAdmin can do it but I was recommended inter.connect’s tool a while back. So I used that, but then missed some tables as there were others in the way…
Anyway. Sharks: escaped from. Yak: shaved. Emojis: ?
†: it never ceases to confuse me that I can write posts in markdown, but not comments
‡: You just know a comment is gonna be either either great or mildly unhinged when you see three footnote indicators…