This is mainly about building and installing OpenWRT on the Wyse 3040. I have included as much additional information as possible.
- Thin Clients Wyse 3040 (N10D): Hardware
- Thin Clients Wyse 3040 Disassembly
- A Baby WYSE, the 3040
- Install a New OS On a Dell Wyse 3040
- Power: My device shows 5V @ 3A, I use this power adapter.
- CPU: Intel(R) Atom(TM) x5-Z8350 CPU @ 1.44GHz
- Memory: 2GB DDR3 1600 MHz Soldered
- Drive: 8GB EMMC SK Hynix H56C4HP4A - There is also a 16GB version of this board.
- Audio: PulseAudio shows:
- Intel HDMI/DP LPE Audio - snd_hdmi_lpe_audio
- Dell Inc. - Wyse 3040 ThinClient -- CherryTrailCR - snd_soc_sst_cht_bsw_rt5672
- USB:
- 3x USB 2.0
- 1x USB 3.1
- Video:
- 2x DisplayPort
- Max Resolution 1920x1080
- Intel Corporation Atom Processor x5-E8000 Integrated Graphics Controller
- Ethernet: 1x Ethernet 1 Gbps - Realtek RTL8111/8168/8411
- Expansion: M.2 E-Key
-
This is NOT a true E-Key slot, it is an SDIO interface.
-
There is more SDIO wifi info in this FreeBSD article.
-
I tried various E-Key wifi cards, none worked.
-
Reference this
lspci
line:00:11.0 SD Host controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SDIO Controller (rev 36)
-
- lshw - Hardware lshw.txt
- lspci - PCI lspci.txt
- pacmd - Audio pacmd.txt
- F2 - Boots BIOS
- F12 - Boot Menu
My unit would not let me update to 1.2.5 from 1.2.4, no clue why. It just showed <invalid>
in the updater.
- Download from Dell: https://www.dell.com/support/home/en-us/product-support/product/wyse-3040-thin-client/drivers
- Unzip it if it is zipped.
- Copy to a USB flash drive, FAT32 formatted.
- Boot the with F12 key.
- Follow instructions on screen.
- Enter BIOS with F12
- System Configuration -> USB Configuration, then check Enable USB Boot Support
- Secure Boot -> Secure Boot Enaable, set to Disabled
- Power Management -> AC Recovery, set to Power On
- Save Settings
The current build of OpenWRT does not install on the Wyze. From what I understand, this is due to the default build outputting to Serial. I built my own version specifiying the Atom processor with no serial output and had some good luck.
I'm not an expert on building OpenWRT, this is the first custom build I've done. I may be missing some stuff or could be wrong about any amount of this. Feel free to drop a comment/bug/pull request.
Requirements:
binutils bzip2 diff find flex gawk gcc-6+ getopt grep
install libc-dev libz-dev make4.1+ perl python3.6+ rsync
subversion unzip which
Install:
I used directions from OpenWRT Build System Usage.
git clone [email protected]:openwrt/openwrt.git
cd openwrt
# list tags
git tag
# I'm using the latest rc as of today
git checkout v22.03.0-rc3
# Update/install the feeds
./scripts/feeds update -a
./scripts/feeds install -a
# Download my config
wget "https://raw.githubusercontent.com/pjobson/dell-wyse-3040-openwrt/main/config/config" -O .config
# Otherwise make your own
# Make your config
make menuconfig
# Make your kernel config
make kernel_menuconfig
# Do the build, it'll take like an hour.
make world -j$(nproc) V=sc
# You can find the builds in: openwrt/bin/
# This includes all the packages.
find . -name "openwrt-x86-64-generic-ext4-combined-efi.img.gz"
Gunzip and copy the openwrt-x86-64-generic-ext4-combined-efi.img.gz
and copy openwrt-x86-64-generic-ext4-combined-efi.img
file to a USB stick, boot the device off a secondary drive with linux on it, as described below.
Open a terminal from your LiveUSB stick.
# Find your EMMC drive, mine is: /dev/mmcblk0
sudo fdisk -l
# Find the image
find /media/mint -name openwrt-x86-64-generic-ext4-combined-efi.img
# Write the image.
sudo dd if=./openwrt-x86-64-generic-ext4-combined-efi.img of=/dev/mmcblk0 bs=512 status=progress
# Use fdisk to show your partitions
sudo fdisk -l
# It'll probably show some partition errors, we will fix those now.
# For some reason the img file has the partitions in a weird order.
sudo gdisk /dev/mmcblk0
s - sort partitions
w - write table and exit
Y - Do you want to correct this problem?
Y - Do you want to proceed?
# Should return
# OK; writing new GUID partition table (GPT) to /dev/mmcblk0.
# The operation has completed successfully.
# fdisk should no longer show errors.
sudo fdisk -l
From here, I used gparted to resize the system partitions, because I couldn't seem to get it to go properly in gdisk, I probably just don't know how to use gdisk properly. DO NOT resize it to the full 8GB or it will not boot, keep slightly under 8GB. I have no clue why.
Installing:
- You need two USB sticks, one you should put some linux distribution on, the other you should format. I formatted mine to ext4, but it probably doesn't matter.
- Download a build.
gunzip openwrt.atom.build.img.*.gz
- Copy openwrt.atom.build.########.img to your second USB stick.
- Put your Linux boot stick into one of the USB2.0 slots.
- Put the stick with the OpenWRT image on it in the USB3.1 slot.
- Boot the unit hitting F12 to get to the boot menu, then select the linux boot stick.
- Open a terminal.
- Find your EMMC with:
sudo fdisk -l
- Both of mine were:
/dev/mmcblk0
- Find your img file, if you're using mint it'll be in media:
ls -laR /media/mint/
- Write the image using
dd
. sudo dd if=/path/to/openwrt.atom.build.img of=/dev/mmcblk0 bs=4096 status=progress
- Wait for awhile.
- Reboot the device removing all USB sticks. I just power cycle it, because I don't care.
- Setup your network as I desribe in this gist: OpenWRT on x86_64 - First Boot
- You can now open LUCI in your browser by going to whatever IP you set the unit to.
Dell has their own linux distributino for the Wyze 3040 called ThinLinux. You can download it from their Support Site. The file is 2.2.0.00_3040_16GB_merlin.exe
which you can extract the img
files from with 7zip, like: 7z x 2.2.0.00_3040_16GB_merlin.exe
. I have not tested this and I probably won't.
Linux Mint will boot off the USB stick and I have used the Live USB stick to mess around with the device. The minimum system requirements for Mint are 2GB of RAM and 20GB of disk space. The installer will crash shortly after selecting keyboard type.
antiX is probably a better option as the minimum system requirements are 256MB RAM and 5GB HDD. This seems to install and run fine, you will need to write the ISO to a USB with live-usb-maker as the default antiX distribution ISO is legacy boot only.
This person has done some work with VyOS. https://blog.kroy.io/2020/01/17/the-baby-wyse-the-dell-3040/
External
Board
CPU
EMMC
SDIO
Clear CMOS
Clear Passwords