Thin Client Wysens Up To Become OpenWrt Router

For some of us, unused hardware lying around just calls to be used. It seems like [Miles Goodhew] heard the call, and wanted to put a Dell Wyse 3040 thin client to use — in this case as a wireless router. It seems simple enough. OpenWrt supports x64_64 targets, and the thin client has 2G of ram and 8G of flash. It should make for a very capable router.

And before you tell us that it’s just another computer, and that installing OpenWrt on a miniature x86 machine isn’t a hack, note that there were some speedbumps along the way. First off, the motherboard has integrated storage, with the not-very-useful ThinLinux installed, and the system BIOS locked down to prevent reinstall. There is a BIOS clear button on the system’s diminutive motherboard. With the BIOS lock out of the way, a real Linux system can be installed on the small 8 GB mmcblk device.

The next issue the the CPU. It’s an Intel Atom x5 z-series. OpenWrt won’t actually boot on that oddball, not-quite- processor, so [Miles] opted to install Fedora and test via virtualization instead. If that statement makes you do a double-take, you’re not alone. The initial explanation sounded like the mobile-centric processor was missing instructions to make OpenWrt run, but virtualization doesn’t add any instructions for a guest to use. It turns out, the problem is a missing serial port that OpenWrt uses as a debugging output by default.

After a custom OpenWrt compile, the device comes up just as you’d expect, and while it would be underpowered as a desktop, OpenWrt runs happily shuffling bits from Ethernet to wireless adapter at respectable speeds. As [Miles] points out, there’s nothing ground-breaking here, but it’s nice to have the details on re-using these machines compiled in one place. And if you too love the idea of putting OpenWrt in places where nobody intended, we’ve got you covered.

26 thoughts on “Thin Client Wysens Up To Become OpenWrt Router

    1. I _think_ that should be possible. Router7 seems to be based on the Gokrazy OS (Which I have only just learned about). Gokrazy seems to be targeting RPi hardware though, so there might be some work to bundle a Atom-Z kernel + drivers for whatever extra hardware you need (In my case the Mediatek 7921au WiFi adapter).

      1. yeah, rtr7 has a functioning x86-64 kernel as it was originally prototyped on a recent PC Engines APU2C4, I have that same kernel booting on one of those cheap TOPTON 4×2.5GbE “routers”.

        it’s pretty easy to tweak the kernel as there is built in support for tracking the mainline kernel and autobuilding/committing it to github, but yeah the WiFi adapter would need to be catered too, gokrazy has a wifi daemon but AFAIR it only supports station mode and WPA2-PSK, you could probably bundle hostapd via the freeze tool, and update the wifi module to include the firmware for the adapter if any is needed.

        1. I’m not sure a generic x86-64 kernel will work on Atom-Z (Not sure it WON’T either – you’d have to test it). For example: none of the pre-built x86-64 OpenWRT images work on the 3040’s and the Python graphical installers for Fedora and Ubuntu fail-out and die (but if the OSes are installed in text mode they work just fine – you can even install a GUI desktop afterwards with no problems as well).

          I don’t know how the Gokrazy kernel is built, but presumably if it’s a case of “clone the git repo and run make menuconfig”, then it should be possible to select the Atom target.

          Nevertheless, it should be possible, it might just take a bit of fiddling around.

    1. AFAIK, the default BIOS password for WYSE and Dell thin clients is Fireport for all of them. The only reason to need to use the reset is if someone changed it from the default, but who does that?

      1. I did try that at first, however it seems that whoever owned the 3040s before me had changed the passwords (or they had a different default or something).
        So while the “Fireport” password _might_ work for any given 3040, the password reset button will _always_ work. The 3040s are _very_ easy to open (They even have a handy flat-blade screwdriver slot), so I oped to keep the post simpler and only have the most reliable method of getting into them.

    1. Same, but I recently upgraded to the 16GB model as I was running out of room with only 8GB and large updates wouldn’t fit. It was easier than I expected, using the backup / restore feature in HA. The 8GB one is going to become a MainsailOS host for Klipper.

    1. The excusing is because there are plenty of HaD “articles” about “man installs windows on his laptop”, “nail put in wall with hammer allows us to hang pictures”, or the especially interesting “look at this person’s 3d printed box! Isn’t it clever?”

      And these sort of posts tend to get heckled by the comments.
      And rightly so.

      This certainly clears the bar of “hack”, but not everything here does.

      1. It’s certainly not ground breaking, but I really just wanted to capture a concise and complete “how to” for setting up OpenWRT on these little boxes. Anyone could do it with some research, but there are a couple of “gotchas” I wanted to capture:
        * How to reliably “jail break” them (Not that it’s much of a challenge, but like I said in another comment: The commonly known default password did not work for me)
        * How to get OpenWRT to work on the Atom-Z (From Paul Jobson: https://github.com/pjobson/dell-wyse-3040-openwrt) – it just hangs otherwise.
        * Using a USB WiFi dongle with a “good” in-kernel driver (From morrownr/USB-WiFi https://github.com/morrownr/USB-WiFi/blob/main/home/The_Short_List.md)
        * The fact the Atom-Z has VT-x (OK, Not really OpenWRT related, but I thought it cool enough to shoe-horn in there)

  1. Pro tip: To push a BIOS update using the Wyse USB Imaging Tool, make sure you select 32-bit OS architecture (regardless of the OS you intend to install) or the tool won’t work.

  2. Wait, what?

    Something doesn’t work out of the box on a particular processor because it is looking for a specific serial port…

    Are serial ports implemented in the processor now?

  3. I bought several of these because their power consumption is really LOW, under 5 watts. Nice printer server for those printers that won’t work with ARM drivers. Unfortunately, the wifi module is a rare SDIO card and is not obtainable.

      1. What I was actually pointing out was the Chromebox has standard Mini-PCIe wifi, 2242 M.2 Sata storage (although I have a SATA port adapter coming). And full processors, not Atom. Also some have 1 So dimm slot and some have 2 so dimm slots. And For $20. If you happen to need the low power or get them free, otherwise maybe look for the chromeboxes.

  4. The standard x86/64 Openwrt images can be made to boot on Wyse 3040 but you need to remove the serial/console parameters from the grub.cfg, otherwise it hangs with ‘Starting OpenWrt’ on the screen. Search the OpenWrt forum for more details.

    Easiest way to test OpenWrt is to install and boot standard openwrt images from a usb flash drive. Easier to edit the grub.cfg on another computer to fix the hanging bug.

    A Display Port monitor (or perhaps dummy plug) also needs to be connected to the 3040, otherwise, the device appears to run at ‘reduced’ performance.

    Best OpenVpn throughput I’ve seen is about 135 mbps using VLAN trunk into a managed switch with the 3040 when using AES-256-cbc cipher.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.