Dell wyse 3040 windows

Several years ago, I acquired a Dell Wyse 3040 Thin Client while I was doing some contract work. The company that I was working for was getting rid of several dozen of them and offered me one if I was interested. Right after that happened, I moved and it ended up in storage, and I only just recently rediscovered that I even had it. This turned out to be quote convenient because I was using a Raspberry Pi as a Pi-hole server on my network, and I needed to repurpose that device for something else, so I decided to use this system to replace it. Even though it is an old system that is end-of-life, it is still useful.

Out of curiosity I checked eBay for prices on these things and they are not expensive. You can probably get one for around $50 with shipping, and I found someone selling a batch of 1000 of them for $2100 ($2 per unit).

I am not exactly sure how it happened, but I seem to be down to my last Raspberry Pi 4. At one point I had three of them, one I was using for Pi-hole, and the other two were for emulating old game systems. I need the one that I am currently using for my Pi-hole server for another project, and I don’t want to cannibalize the other two for this purpose, so I wanted to find something to put Pi-hole on.

The first task I wanted to do was boot it up to see if it worked and to make sure it didn’t have any old admin passwords locking it down. Fortunately, it was restored to factory default before it was given to me, so that made getting it setup considerably easier.

Dell Wyse 3040 Thin Client

Hardware Specifications

The hardware for the Dell Wyse 3040 Thin Client platform is basic, but it is more than sufficient for its primary purpose of functioning as a thin client:

Component Hardware
Processor Intel Atom x5-Z8350 (Quad Core) @ 1.44 GHz
Graphics Integrated Graphics (supports dual display up to 2560×1600 @ 60 Hz)
Memory 2 GB DDR3L SDRAM @ 1600 MHz (non-upgradeable)
Storage 8 GB or 16 GB eMMC Flash Storage (non-upgradeable)
Operating System ThinOS, ThinLinux, Windows IoT, Linux
LAN Realtek 10/100/1000 Ethernet (RJ45 port)
WLAN Optional 802.11 a/b/g/n/ac wireless
Bluetooth Optional Bluetooth 4.0
Audio Realtek ALC5670 Audio
Connectors
  • 1 x USB 3.1 Gen 1 (Front)
  • 3 x USB 2.0 (1 Front, 2 Rear)
  • 1 x Audio Combo Jack (Front)
  • 2 x DisplayPort 1.1a (Rear)
  • 1 x RJ45 Port (Rear)
  • 1 x 5.5mm Power Connector Barrel (Rear)
  • 1 x Kensington Lock Slot (Side)
Power External 24-watt power adapter
Dimensions 101.6 mm x 101.6 mm x 27.94 mm / 4″ x 4″ x 1.1″
Weight 0.24 kg / 0.53 lbs
Colour Black

The Dell Wyse 3040 model that I have is limited to only 8 GB of storage and it is not easily upgradeable. I have read a few tutorials on replacing the soldered-on eMMC with something that has a larger capacity, but I don’t think it is necessary. I have no issues with doing surface mounted soldering (although it is not my favourite thing to do), but since I paid nothing for this system, I didn’t want to spend money replacing the eMMC. For the purposes of what I want to use the Dell Wyse 3040 for, 8 GB is perfectly fine and there are ways around the limited storage in most cases. If I am really struggling with log file storage, I will just attach a USB drive for additional storage or point it to my NAS if the log files are really that important (they probably aren’t).

The Dell Wyse 3040 supports Wifi and Bluetooth with an optional M.2 module that is present on the motherboard, and that is the Azurewave AW-CM389MA card. There are no external interfaces for connecting an antenna, they are internal only. Opening the system is extremely easy, and only requires a flat head screwdriver to remove the bottom of the case. There are only two screws total holding the motherboard to the case.

The Intel Atom x5-Z8350 processor is somewhat interesting for this system. It is technically a mobile processor, and it is somewhat constrained by the fact that it only supports 2 GB of memory, despite being a 64-bit processor. The processor supports several advanced features such as Intel 64, Intel VT-x, and Secure Boot. The virtualization features are not especially useful for this system, but is present, nonetheless.

There are no fans on the Dell Wyse 3040, it uses passive cooling. This isn’t an issue, and after running the system for a few days the average temperature of the CPU is around 52°C, which is well within the

I wanted to run a BIOS update to bring the Dell Wyse 3040 to the latest version, but it ended up not being necessary because the one that I have already has BIOS version 1.2.5. This is the currently the latest version of the BIOS, and it shipped on September 10, 2018. Since the Dell Wyse 3040 is end-of-life as of December 2021, this is the last version of the BIOS to be shipped for it.

Hardware Overview

The Dell Wyse 3040 Thin Client is unremarkable, the most notable feature about it is how small the device is:

Dell Wyse 3040 Thin Client - Front Ports.

Dell Wyse 3040 Thin Client - Rear Ports.

Dell Wyse 3040 Thin Client - Bottom. The slot to open the bottom of the system is in the upper left corner.

Normally I don’t disassemble computers to take photos like this, but since it is so simple to take the Dell Wyse 3040 apart, I decided to take a closer look at it:

Dell Wyse 3040 Thin Client - Motherboard (Top). The heatsink covers the CPU, eMMC and RAM chips.

Dell Wyse 3040 Thin Client - Motherboard (Bottom). The M.2 slot can be seen on the left side of the motherboard.

lscpu

Architecture:            x86_64
  CPU op-mode(s):        32-bit, 64-bit
  Address sizes:         36 bits physical, 48 bits virtual
  Byte Order:            Little Endian
CPU(s):                  4
  On-line CPU(s) list:   0-3
Vendor ID:               GenuineIntel
  Model name:            Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
    CPU family:          6
    Model:               76
    Thread(s) per core:  1
    Core(s) per socket:  4
    Socket(s):           1
    Stepping:            4
    CPU max MHz:         1920.0000
    CPU min MHz:         480.0000
    BogoMIPS:            2880.00
    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable no
                         nstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp t
                         pr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat md_clear
Virtualization features:
  Virtualization:        VT-x
Caches (sum of all):
  L1d:                   96 KiB (4 instances)
  L1i:                   128 KiB (4 instances)
  L2:                    2 MiB (2 instances)
NUMA:
  NUMA node(s):          1
  NUMA node0 CPU(s):     0-3
Vulnerabilities:
  Gather data sampling:  Not affected
  Itlb multihit:         Not affected
  L1tf:                  Not affected
  Mds:                   Mitigation; Clear CPU buffers; SMT disabled
  Meltdown:              Mitigation; PTI
  Mmio stale data:       Unknown: No mitigations
  Retbleed:              Not affected
  Spec rstack overflow:  Not affected
  Spec store bypass:     Not affected
  Spectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
  Srbds:                 Not affected
  Tsx async abort:       Not affected

lspci

00:00.0 Host bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SoC Transaction Register (rev 36)
00:02.0 VGA compatible controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller (rev 36)
00:0b.0 Signal processing controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Power Management Controller (rev 36)
00:11.0 SD Host controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SDIO Controller (rev 36)
00:14.0 USB controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series USB xHCI Controller (rev 36)
00:1a.0 Encryption controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Trusted Execution Engine (rev 36)
00:1c.0 PCI bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #1 (rev 36)
00:1f.0 ISA bridge: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCU (rev 36)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

lshw

H/W path                 Device            Class          Description
=====================================================================
                                           system         Wyse 3040 Thin Client (07C1)
/0                                         bus            0FRCPP
/0/0                                       memory         64KiB BIOS
/0/b                                       memory         2GiB System Memory
/0/b/0                                     memory         2GiB Row of chips DDR3 1600 MHz (0.6 ns)
/0/12                                      memory         224KiB L1 cache
/0/13                                      memory         2MiB L2 cache
/0/14                                      processor      Intel(R) Atom(TM) x5-Z8350  CPU @ 1.44GHz
/0/100                                     bridge         Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SoC Transaction Register
/0/100/2                 card0             display        Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller
/0/100/b                                   generic        Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Power Management Controller
/0/100/11                mmc1              bus            Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SDIO Controller
/0/100/14                                  bus            Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series USB xHCI Controller
/0/100/14/0              usb1              bus            xHCI Host Controller
/0/100/14/1              usb2              bus            xHCI Host Controller
/0/100/1a                                  generic        Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series Trusted Execution Engine
/0/100/1c                                  bridge         Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Express Port #1
/0/100/1c/0              enp1s0            network        RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1f                                  bridge         Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCU
/0/100/1f/0                                system         PnP device PNP0c02
/0/100/1f/1                                communication  PnP device PNP0501
/0/100/1f/2                                system         PnP device PNP0c02
/0/100/1f/3                                system         PnP device PNP0c02
/0/100/1f/4                                system         PnP device PNP0b00
/1                       mmc0              bus            MMC Host
/1/1                                       generic        H8G4a
/1/1/1                   /dev/mmcblk0rpmb  generic
/1/1/2                   /dev/mmcblk0      generic
/1/1/2/1                                   volume         537MiB Windows FAT volume
/1/1/2/2                 /dev/mmcblk0p2    volume         512MiB EXT4 volume
/1/1/2/3                 /dev/mmcblk0p3    volume         6404MiB EXT4 volume
/2                       card1             multimedia     rt5672
/3                       input0            input          Power Button
/4                       input1            input          Power Button
/5                       input2            input          Video Bus
/6                       input3            input          Intel HDMI/DP LPE Audio HDMI/DP,pcm=0
/7                       input4            input          Intel HDMI/DP LPE Audio HDMI/DP,pcm=1
/8                       input5            input          Intel HDMI/DP LPE Audio HDMI/DP,pcm=2
/9                       input6            input          chtdc_ti_pwrbtn
/a                       input7            input          Dell WMI hotkeys
/b                       input8            input          sof-bytcht rt5672 Headset

Operating Systems

Windows IoT

I heard that you could install Windows 10 IoT on the Dell Wyes 3040, but since the model that I have only has 8 GB of storage, I wasn’t able to try it. Windows 10 requires a minimum of 16 GB of storage, and I wasn’t interested in trying it out on external storage. I read some information about Windows 10 on this device, and apparently it is so slow that it is practically unusable.

ThinOS

The Dell Wyse 3040 had Dell ThinOS 8.6.710 installed on it when I got it. Normally whenever I used one of these devices, they would be centrally managed and it would automatically connect to RDP or VDI, so I never actually used the desktop component. It is extremely basic, and only allows for a configuring a few options, connecting to remote resources, and managing the configuration:

The default desktop look for ThinOS 8.6.710.

The ThinOS 8.6.710 About dialog.

In the process of testing the Dell Wyse 3040, I also installed the latest version of ThinOS that was available for the system, ThinOS 9.3.1129. From a functional perspective it is very similar to earlier versions, but it does have an improved appearance:

The default desktop look for ThinOS 9.3.1129.

The ThinOS 9.3.1129 About dialog.

Ubuntu Server

I won’t get into the specifics of installing Ubuntu Server on the Dell Wyse 3040, but it is straightforward and can be completed in less than 20 minutes. I installed Ubuntu Server 22.04.4 LTS and chose the option for a minimized installation. The only packages I added after the installation were network related, and eventually Pi-hole which also installed the associated packages that it required.

Since this Dell Wyse 3040 has only 8 GB of storage, there isn’t a whole lot of ways to really partition the storage, I just wanted the maximum available storage:

Mount Point Space Filesystem
/ 6.1 GB ext4
/boot 512 MB ext4
/boot/efi 512 MB fat32

After the installation of Ubuntu has completed, there is around 2 GB of free space available for usage:

Filesystem      Size  Used Avail Use% Mounted on
tmpfs           188M  1.5M  187M   1% /run
/dev/mmcblk0p3  6.1G  3.8G  2.0G  66% /
tmpfs           939M  1.5M  937M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/mmcblk0p2  488M  130M  322M  29% /boot
/dev/mmcblk0p1  537M  6.1M  531M   2% /boot/efi
tmpfs           188M  4.0K  188M   1% /run/user/1000

The eMMC storage shows up on the system as /dev/mmcblk0. Since EFI is required, there is no way to use less than 512 MB for the /boot and /boot/efi partitions if you are partitioning the storage using the Ubuntu installer.

As a test I tried a live USB of Xubuntu 22.04.4 to see how well it worked and I didn’t encounter any issues except for the slowness of it:

Default Xfce desktop running on a Xubuntu 22.0.4.4 live USB.

All the hardware on the system appears to work correctly. I had read some reports that audio was an issue with this system, but it appears to work without any issues.

Pi-hole

I won’t get into the specifics of using Pi-hole and what it is, but if you are not familiar with it, it is a DNS Sinkhole solution that is primarily used for blocking ads on a network. By using a device running Pi-hole as a DNS provider, it is capable of blocking ads to users without any actions being required on their part. The easiest way to deploy it is to add it to the DHCP settings for your network so that it is automatically assigned to users.

Pi-hole is very trivial to install, the maintainers of the project make it extremely easy to install with a single command:

sudo curl -sSL https://install.pi-hole.net | bash

Once the script installs all necessary components, the Pi-hole service can be configured.

Pi-hole dashboard on version 5.17.3.

I decided not to bring over my existing configuration from my old Pi-hole server, except for the additional Adlists that I had configured aside from the default ones that are provided by the maintainers.

Issues

I didn’t run into too many issues with the Dell Wyse 3040 Thin Client, but there were two issues that I felt I should talk about should other people encounter them as well.

Power Issues with Linux

With the hardware limitations of the Dell Wyse 3040 aside, I did notice one particularly odd issue while I was testing it. While I had it hooked up to an external monitor and had a keyboard connected to it, there was no way to reliably shutdown or restart the system when it was running Ubuntu Server from the local storage. I noticed this issue the first time that I powered it down so that I could move it, and the system would just hang with the power LED still on, but it wasn’t fully powered off. The issue also occurred whenever I restarted the system and it never actually restarted, it would just hang. The only way to fix the issue was to disconnect the power to turn the system completely off.

This is a major issue for me since the ability to reliably restart the system remotely is something that I would need to do, since I don’t want to have to physically disconnect the power every time I run updates.

The workaround that I found was that if the DisplayPort cable was disconnected the system would always shutdown or restart correctly. I tested this by restarting and shutting down the system around a dozen times and it always worked without the DisplayPort cable connected.

This isn’t an issue since the device will never have a monitor connected to it, but it is something to be aware of. I am sure that I could mess around and find out what the actual issue is, but since I never intend to use the system with a monitor attached, the fix is perfectly fine for my needs.

Dell Wyse USB Imaging Tool

In the processing of testing various versions of ThinOS, I had to create a few USB drives to install the software. I ran into an odd issue when using the Dell Wyse USB Imaging Tool. For some reason when I was using the latest version of the software (version 3.5.0), the tool would always throw an error that it couldn’t write to the USB drive. I tried multiple USB drives, and I kept encountering the exact same issue. To resolve the issue, I ended up downgrading to the previous version (3.4.0) and it resolved the issue.

Links

  • Dell ThinOS
  • Dell Wyse 3040 Datasheet
  • Dell Wyse 3040 Executive Summary
  • Dell Wyse 3040 User Guide
  • How to Use the Dell Wyse USB Imaging Tool to Update Firmware
  • Pi-hole

Dell Wyze 3040

Note

This guide is out of date. @boerni667 reported that 23.05.3 works (for the most part) fine on these units.

See: #3




This is mainly about building and installing OpenWRT on the Wyse 3040. I have included as much additional information as possible.

I suspect this will work for any Intel Atom based processors, though I have not tested it. I don’t think the standard images are compiled with Atom support. There’s a special flag to toggle in kernel_menuconfig to enable Atom specifically.

TOC

  • Dell Wyze 3040
    • Notes
    • Hardware
    • Boot Options
    • BIOS
    • Operating Systems
      • OpenWRT
        • Building
        • My Unofficial Builds
        • Installing
      • ThinLinux
      • Mint
      • antiX Linux
      • VyOS
      • Windows
    • Images
      • Device
      • OpenWRT
      • antiX

Notes

Dell Pages

dell pages

Articles

articles

Hardware

hardware

Boot Options

  • F2 — Boots BIOS
    • Default BIOS password is Fireport.
  • F12 — Boot Menu

BIOS

Updates

bios update

Setup

  • 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

Operating Systems

OpenWRT

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.

Building

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

Build:

I used directions from OpenWRT Build System Usage.

git clone git@github.com:openwrt/openwrt.git
cd openwrt
# list tags
git tag
# I'm using the latest rc as of today
git checkout tags/v22.03.2

# Update/install the feeds
./scripts/feeds update -a
./scripts/feeds install -a

# Optional: 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 -j$(nproc)

# Select options:
#   Target System -> x86
#   Subtarget -> x86_64
#   Target Profile -> Generic x86/64
#   Target Images -> (uncheck) Use Console Terminal (in addition to Serial)
#   Target Images -> (clear out) Serial port device
#   Target Images -> (uncheck) GZip images
#   LuCI -> Collections -> luci
#   Select whatever else you want/don't want
# Save/Exit

# Make your kernel config
make kernel_menuconfig -j$(nproc)

# Select Options:
#   Processor type and features -> Processor family -> Intel Atom
# Save/Exit

# Disable DHCP server on LAN
# If you do not do this, it'll try to serve DHCP from the LAN port which can clobber stuff on your network.
sed -i "s/config dhcp lan/config dhcp lan\n\toption ignore '1'/" package/network/services/dnsmasq/files/dhcp.conf

# Do the build, it'll take like an hour.
# It will prompt you several times for several questions
# I use defaults for all.
make defconfig download clean 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"

My Unofficial Builds

  • openwrt.atom.v22.03.2.img.gz

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 the image from above or do your build.
  • gunzip openwrt.atom.v22.03.2.img.gz
  • Copy openwrt.atom.v22.03.2.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=512 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.
  • Resize your partition.
    • Reboot back to your LiveUSB
    • Open gparted and resize the ext4 partition.
    • NOTE: DO NOT resize it to the full 8GB or it will not boot, keep slightly under 8GB. I have no clue why. I left 100MB at the end of my drive and it worked fine.

ThinLinux

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.

Mint

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 Linux

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.

VyOS

This person has done some work with VyOS. https://blog.kroy.io/2020/01/17/the-baby-wyse-the-dell-3040/

Windows

Requirements are:

  • 1GHz CPU
  • 1GB RAM
  • 16GB HDD

Unless you have the 16GB version of the 3040, it probably won’t work. There’s an edition of Win10 called Tiny10, which you may get lucky with.

Images

images

Тонкий клиент Dell 210-ALEK/003 Wyse 3040 8GB FLASH/2GB RAM обладает всеми функциями беспроводной связи и проводными сетевыми подключениями, двумя разъемами DisplayPort, 4 портами USB, в том числе 1 портом USB 3.0.

Благодаря высокой производительности, достигаемой с помощью четырехъядерных процессоров Intel, обеспечивает высочайшее качество работы виртуальных настольных систем в своем классе.

Артикул 212098
Гарантия 12 месяцев.
Страна производства Китай
Инструкция В комплекте.
Сертификат Посмотреть
Производитель Dell
Партнамбер 210-ALEK/003

Технические характеристики:

  • Модель Wyse 3040
  • Цвет Чёрный
  • Тип компьютера Тонкий клиент
  • Форм-фактор компьютера Mini PC
  • Область применения для работы
  • Процессоров установлено 1
  • Производитель процессора Intel
  • Тип процессора Intel Atom
  • Индекс процессора Z8350
  • Частота процессора 1440МГц
  • Тип памяти On board DDR3
  • Установлено памяти всего 2ГБ
  • Установлено дисков 1
  • Тип диска SSD
  • Объём диска SSD 8GB
  • Привод noDVD
  • Графический контроллер Интегрированный
  • Тип графического контроллера Intel HD Graphics
  • Сеть Gigabit Ethernet
  • Портов USB2.0 Type A 3
  • Портов USB3.0 Type A 1
  • Портов DP 2
  • Портов RJ45 1
  • Мощность БП 15Вт
  • Установленная ОС Wyse ThinOS
  • Габариты (мм) 27.94 x 101.6 x 101.6
  • Вес 0.9кг

* Информация о технических характеристиках, комплекте поставки, стране изготовления, внешнем виде и цвете товара в
интернет-магазине Борн носит справочный характер и основывается на последних доступных к моменту публикации сведениях.

Ваши преимущества при покупке в интернет-магазине Борн:

  • официальная гарантия на обслуживание в сервисных центрах производителей;
  • персональный подход на оптовые запросы, конкурсы, тендеры и проекты;
  • выгодная цена от официального партнера на все товары из каталога;
  • возможность купить Dell 210-ALEK/003 по низкой цене с доставкой по всей России;
  • документы для юридических лиц с НДС 20% — счета, накладные, счет-фактуры.

The Dell Wyse 3040 is an ultra low power, fanless thin PC.

unit

The Wyse 3040, in all of its pocket-sized glory.

Sporting an Intel Atom x5-8350 CPU, 2/4GB of RAM, and 8/16GB of storage, this thin PC is never going to win any performance awards. But what it lacks in raw performance, it makes up for in size. Barely larger than a Raspberry Pi, the 3040 features 2 DisplayPort outputs, gigabit ethernet, 4x USB ports (2x front, 2x rear, one of which is USB 3), and an internal hardware clock.

youtube icon

Overview of a Dell Wyse 3040

Check out our video overview of the Dell Wyse 3040.

base

Bottom of the Wyse – you can see this particular device is the 5V version.

This one can be powered using 5V – a USB to 4 x 1.7mm centre positive barrel jack cable allows it to be powered using a USB charger. While the device is rated at 3A, in practice, even under full load it remains at around 1.5A. There is a second variant that takes 12V – be sure to check the bottom of your device before plugging it in.

A major difference between this and other similarly sized devices is the CPU architecture. Like other Intel CPUs, this Cherry View Atom is x86-64 based, meaning it can theoretically run any software that will run on a fully-fledged PC, with decent driver support to boot. Boards such as the Raspberry Pi are ARM based, which has more limited software support.

If you’re interested in a more detailed comparison with a Raspberry Pi 4, check out our comparison article.

internal icon

Comparing a Dell Wyse 3040 with a Raspberry Pi 4

Check out our article comparing the Dell Wyse 3040 with the Raspberry Pi 4.

Out of the factory, the only operating systems available were ThinOS and ThinLinux, both very basic and providing only what is required to use the device as a thin client.

It is possible, however, to install a fully fledged Linux OS on these machines. Let’s take a look at how it’s done.

Configuring the BIOS

The first step is to boot the device into the BIOS. To do this, press the F2 key once you’ve powered the device on.

bios

System information displayed in the BIOS. This machine is the 2GB RAM/8GB storage version.

The tree structure on the left-hand side houses all of the available menus.

Unlocking the BIOS

Before we can change any settings, the BIOS needs to be unlocked. Click on the ‘Unlock’ button at the bottom of the screen. If your BIOS does not have a password lock, you can skip to the next section.

If you’re unsure, check the buttons along the bottom right of the screen – if you see an ‘Unlock’ button, with a padlock above it, your BIOS is password protected.

password entry

Password unlock screen.

In the box that pops up, type the system password. By default, the password is Fireport.

Once the system is unlocked, we can remove the password completely, so we will not have to unlock the device in future. Note that this is optional; if you’d rather keep the current password, this step can be skipped.

The option to change this can be found under Security >> Admin Password.

password change

Setting a new admin password.

Enter the current password in the top box, and leave the other two blank. Click ‘OK’ to save, and the password will now be removed.

Alternatively, you can enter an alternative password in the lower two boxes, to set a new password. If you do this, you’ll still need to unlock the BIOS each time if you want to change any settings.

Enabling USB Boot

To install a new OS, we’ll need to make sure USB boot is enabled.

The setting for this can be found under System Configuration >> USB Configuration.

usb boot support

Check the ‘Enable USB Boot Support’ box.

With the box for USB support checked, we will now be able to boot from a USB device.

The USB device used must support UEFI – if you need to set this up, I recommend taking a look at Ventoy. Once the USB is configured with Ventoy, adding bootable OS’s is as simple as copying the ISO file to the drive.

Installing an OS

Once booted from an external drive, the device is (for the most part) just like any other. Whichever Linux distro you’ve chosen, you should follow the installation instructions for that distro.

Just bear in mind, the 3040 doesn’t use a typical storage device – while a typical PC will use /dev/nvme* (PCIe) or /dev/sd* (SATA) mount points, as this device uses eMMC, the storage mount point is /dev/mmcblk0.

One issue you could encounter is a crash during the install process. This will usually occur early on in the process, for example, after selecting ‘Install’ on a LiveCD. It can also occur when doing anything drive/partition related through the live session. If you manage to extract the error log, you might see a message similar to the one below.

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 83: invalid start byte

This is a known issue, caused by the hardware device name used by the Wyse for the eMMC. The name MMC H8G4a\x92 contains a non-unicode character, which causes issues for software trying to read the device name, and prevents installation from progressing.

If you encounter this issue, make sure you’re using the most up to date version of your chosen distro, as this bug has since been fixed. If this is not possible, check out the potential fix given in this GitHub bug report.

UPDATE (March 2024): As per the comment by reader mmarrk, this bug is still present in the latest version of the Ubiquity installer, used by popular distributions such as Ubuntu. We no longer encountered the error as we were using Ubuntu Server for testing, which does not use Ubiquity, hence wrongly assuming the bug was fixed.

mmarrk has also offered an alternative solution, which we have quoted (with minor tweaks for brevity) below.

Install Ubuntu from a Live USB flash drive on to a second USB flash drive, but “Try…” the Ubuntu Desktop flavour first and run…

sudo rm /dev/mmcblk0

…to obscure the problematically-named onboard flash device before launching the installer. You can then install to the second USB flash drive without hitting the error.

Once Ubuntu is installed on to the separate USB drive and you boot from it, udev will rediscover the onboard 8GB flash storage device and you can then format and use it if you want.

If you’re using a more ‘user-friendly’ Linux distro, such as Ubuntu or Fedora, you shouldn’t encounter any further issues. However, if you’ve opted for Debian or a more exotic distro such as Arch or Gentoo, you’ll want to consider the point(s) below when configuring your system.

UEFI Shenanigans

Despite the BIOS allowing custom UEFI boot locations, it turns out that the 3040 requires the UEFI fallback location (\EFI\BOOT\BOOTX64.EFI) to be populated.

In testing, distros such as Ubuntu handle the system well, and boot without any additional setup – presumably, this is down to the use of the GRUB bootloader. Arch, Gentoo and (surprisingly) Debian on the other hand, do not. In the case of Debian, this is down to a design choice – they intentionally opt not to cater for broken UEFI implementations like the one in the 3040.

If this file doesn’t exist, the system will not only fail to boot, but all boot entry paths are set to the fallback location – the one it’s realised doesn’t exist. Odd behaviour to say the least.

Unfortunately, this took me while to notice – only to find, this issue has already been documented. If you’re using GRUB, the command mentioned over there works fine – the --removable part of the command forces GRUB to use the fallback location, rather than its default.

In practice, this means you must have a file at \EFI\BOOT\BOOTX64.EFI. It doesn’t matter what the file is – I tried creating an empty file using

touch /boot/EFI/BOOT/BOOTX64.EFI

and the UEFI happily booted without wrecking my other entries. That file simply has to exist. The command you need to run might be slightly different – check the section below to find the correct location to create this file.

Dell clearly wanted to alert users in the strongest possible way if their UEFI fallback wasn’t set. Thanks Dell. :/

I jest of course, as we must remember that these devices were never designed to take anything other than the operating systems Dell supplied them with. We are fortunate that this functionality was included at all.

Finding the Correct EFI System Partition Location

Now, if you’re trying this for yourself, you’ll need to make note of the location your EFI system partition is located to create the file in the right place. An easy way to do this is to run

fdisk -l

and find a result with the type EFI System.

Device          Start       End   Sectors   Size Type
/dev/mmcblk0p1   2048    264191    262144   128M EFI System

Check if this is already mounted by running

df -h

If it’s mounted, you’ll find an entry in this list with the filesystem matching the device field from the fdisk output.

/dev/mmcblk0p1  127M  112M   15M  89% /boot

Make note of the path at the end of the entry, which specifies the mount point. In this case, mount point is /boot.

If it is not present, create a new folder somewhere on the device. It doesn’t matter where, or what it is called, but we’ll use /esp in this example.

mkdir /esp

Mount the EFI system partition identified using fdisk to this new folder.

mount /dev/mmcblk0p1 /esp

Make note of /esp, or your chosen path if you used something different.

Now, to actually create the blank file needed. Run the following command, appending the path you noted in place of /x.

touch /x/EFI/BOOT/BOOTX64.EFI

You’ll note in my previous example, I replaced /x with /boot, as I identified /boot as the location the EFI system partition was mounted to.

In my case, I chose to leave an old kernel in the fallback location, and use \EFI\gentoo\gentoo.efi for new kernels. Because having a fallback is good. That’s definitely why. It’s absolutely not because I’m stubborn and want to use my own EFI path thank you very much Dell.

File System Sheninigans

Having faffed around with the UEFI for a while, I encountered repeated issues getting the system to boot Gentoo, my OS of choice. I did also have the same problem with Arch, but did no further testing as it wasn’t the OS I intended to keep.

Now I’m certainly no expert when it comes to compiling kernels, but I have set up several machines using a mixture of EFI stub and GRUB, with a variety of hardware. So at the very least, I know how to stumble my way around the important bits.

Despite being fairly confident in my kernel configuration, I consistently came across the same kernel panic:

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

The message is pretty clear – the kernel can’t load the root file system. Without which, there is no system. Excellent. Sometimes you’ll see hints alongside this message, a driver name that failed to load, a root path suggestion. But I got nothing.

A fix for this turned out to be something I’d never had to set up before – an initramfs. An initramfs, or initial ramdisk, is loaded straight after the kernel, but before the kernel mounts the system root. It contains additional drivers, microcode updates etc – things that are needed to boot the system, but would be otherwise inaccessible until after the device has booted.

It turns out it’s actually rather simple. I used dracut to create it.

dracut --kver=5.16.8-gentoo

Just replace with your kernel version, and you’re away. Just don’t forget to update your booting method to include the new file.

My hunch is that the eMMC driver is not available early enough to mount the root filesystem. Though it could be another driver, a kernel config error, or some other form of user error on my part.

UPDATE (March 2024):

It turned out this hunch was correct, and an alternative solution is to ensure the eMMC driver is built in to your kernel. For a while now, we have maintained a working kernel config file for the 3040, which includes the driver required to boot from the internal storage. You can find this on GitHub using the link below.

Wyse 3040 Linux Kernel Config File

Basic Linux kernel config for a Dell Wyse 3040 thin client.

The README included in the GitHub repository gives a more detailed description of what is included in the default configuration, as well as explaining a few settings you might want to change.

Benchmarks & Conclusion

Below are a few benchmarks of the Wyse, compared to a Lenovo Thinkcentre M93p (i5 4570T), and a fanless IGEL M430C (AMD GX412).

benchmarks

Benchmark results, scaled.

The results are scaled relative to the i5 machine, which is given a score of 100 for each test.

Unsurprisingly, the i5 wins all but one benchmark. The Wyse holds its own against the similarly fanless GX412, but with a much smaller footprint and lower power consumption.

While the Wyse 3040 won’t win any performance awards, it can make a decent silent home server. If you can pick one up cheaply, it would make a good Raspberry Pi alternative for basic computing tasks.

Other Wyse 3040 Content

To round out the post, we’ll leave links to a few other articles we have created on the Wyse 3040, as well as our YouTube videos and links to our GitHub projects you might be interested in.

internal icon

Comparing a Dell Wyse 3040 with a Raspberry Pi 4

Check out our article comparing the Dell Wyse 3040 with the Raspberry Pi 4.

internal icon

Adding Internal Storage to a Dell Wyse 3040

Check out our article showing how you can add additional internal storage to a Dell Wyse 3040.

internal icon

Dell Wyse 3040 Vesa Mount 3D Models

3D models of VESA compatible mounts for the Dell Wyse 3040, suitable for 3D printing.

youtube icon

Overview of a Dell Wyse 3040

Check out our video overview of the Dell Wyse 3040.

Go to Dell


r/Dell




r/Dell

The unofficial subreddit for Dell Technologies




Members





Online


devicemodder2

My dell Wyse 3040 running windows 10 natively. Runs well.

Other

r/Dell - My dell Wyse 3040 running windows 10 natively. Runs well.


imgur.com

Top Posts


  • Reddit

    reReddit: Top posts of October 2, 2019


  • Reddit

    reReddit: Top posts of October 2019


  • Reddit

    reReddit: Top posts of 2019



Reddit Rules

Privacy Policy

User Agreement


Reddit, Inc. © 2025. All rights reserved.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Radmin windows server 2019
  • Gdi windows не дает выключить компьютер
  • Updatepack windows server 2008 r2
  • Windows 7 максимальная flash
  • Windows rights management services client