|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Installing Debian on Dell Wyse 3040" |
| 4 | +date: 2023-06-25 12:00:00 -0500 |
| 5 | +category: "Service Setup" |
| 6 | +tags: ['linux', 'debian'] |
| 7 | +--- |
| 8 | + |
| 9 | +Recently picked up a very low power Dell Wyse 3040 to use as a headless docker host. It is powered by a quad-core Intel Atom Z8350 so not a lot of horsepower. It runs like a x64 Raspberry Pi. Installing Debian had some complications so I wanted to document them here. |
| 10 | + |
| 11 | +## Resetting the BIOS |
| 12 | + |
| 13 | +While my device came pre-reset, this is an important step. To reset the BIOS you'll need to open the case. There is a button near the battery on the board labeled PWCLR. The trick is to hold down the PWCLR button while powering up the system. It'll show a text mode screen indicating the passwords have been disabled. You can then power off, release the button and then you'll have a clear BIOS. The BIOS will revert to a locked state, and you can unlock it with the default BIOS password `Fireport` or `Fireport2`. Once you get to the BIOS you can change the boot order and wipe the eMMC. |
| 14 | + |
| 15 | +## Wiping the eMMC |
| 16 | + |
| 17 | +This is pretty easy to do. In the BIOS, navigate to _Maintenance > Data Wipe_ and check the `Wipe on Next Boot` tick. This will prompt a few confirmations to click through, then on next boot it will wipe itself. Typically I would use [ShredOS](https://github.com/PartialVolume/shredos.x86_64) but I found it did not detect the eMMC drive. |
| 18 | + |
| 19 | +## Installing Debian |
| 20 | + |
| 21 | +Picking a disto is tricky here. My device only had a 16 GB eMMC drive, which is really 14.8 GB. Most distros require 16 actualy GB. Debian does not though and installing a minimal version works well for this low power device. Luckily Debian 12 (Bookworm) just came out so I used that. I also used Ventoy, but you however you choose get it on a USB stick and in the device. |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +I leave the root password empty. This will assign the initial user account to the sudo group. If root is needed later, you can assign a password using `sudo passwd root`. I wanted to keep the install as minimal as possible, so I only select `SSH Server` and `standard system utilities`. |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +## Boot Issues |
| 30 | + |
| 31 | +Once Debian is installed, it may not boot up correctly. You may get an error saying `No bootable devices found`. Wyse devices require a `BOOTX64.EFI` file. To add this file, I loaded Debian Live and mounted the eMMC device. On my instance, the eMMC device has the label `mmcblk0p1`. Use the following to mount this device. |
| 32 | + |
| 33 | +> Wyse devices require a `/boot/efi/EFI/BOOT/BOOTX64.EFI` file to boot to the eMMC |
| 34 | +{: .prompt-warning } |
| 35 | + |
| 36 | +```bash |
| 37 | +sudo mkdir /mnt/debian |
| 38 | +sudo mount /dev/mmcblk0p1 /mnt/debian |
| 39 | +``` |
| 40 | + |
| 41 | +Then you can add a blank `BOOTX64.EFI` file if it's missing. |
| 42 | + |
| 43 | +```bash |
| 44 | +mkdir /boot/efi/EFI/BOOT |
| 45 | +touch /boot/efi/EFI/BOOT/BOOTX64.EFI |
| 46 | +``` |
| 47 | + |
| 48 | +Once this file exists, you can reboot and Debian should boot. If the boot option is missing, you can add it easily in the BIOS under _General > Boot Options_. Add a boot option with file name: `\EFI\debian\grubx64.efi`. |
| 49 | + |
| 50 | +## First Boot |
| 51 | + |
| 52 | +Once booted up, I get the IP and use SSH remotely. I typically check for systemd errors and systemd journal, |
| 53 | + |
| 54 | +```bash |
| 55 | +sudo systemctl --failed |
| 56 | +``` |
| 57 | + |
| 58 | +```bash |
| 59 | +sudo journalctl -p 3 -xb |
| 60 | +``` |
| 61 | + |
| 62 | +## Reboot Error |
| 63 | + |
| 64 | +I had an issue where my Wyse 3040 hung on shutodwn and reboot. It would shutdown to a black screen and then never finish. This is apparently related to a [Intel Atom Cherry Trail CPU issue](https://github.com/up-board/up-community/wiki/Ubuntu_20.04#hang-on-shutdown-or-reboot-for-up-board). An easy fix is to add a file to `modprobe.d`. |
| 65 | + |
| 66 | +```bash |
| 67 | +sudo nano /etc/modprobe.d/blacklist.conf |
| 68 | +``` |
| 69 | + |
| 70 | +```conf |
| 71 | +blacklist dw_dmac_core |
| 72 | +install dw_dmac /bin/true |
| 73 | +install dw_dmac_core /bin/true |
| 74 | +``` |
| 75 | + |
| 76 | +Once that file is in place, run the following. |
| 77 | + |
| 78 | +```bash |
| 79 | +sudo update-initramfs -u |
| 80 | +``` |
| 81 | + |
| 82 | +The settings will take effect after the power has been restarted. |
| 83 | + |
| 84 | +## Resources |
| 85 | + |
| 86 | +- [Installing Debian On Dell Wyse 3040](https://wiki.debian.org/InstallingDebianOn/Dell/Wyse%203040) |
| 87 | +- [Hang on Shutdown or Reboot for UP Board](https://github.com/up-board/up-community/wiki/Ubuntu_20.04#hang-on-shutdown-or-reboot-for-up-board) |
| 88 | +- [Minimal Debian Bookworm](https://www.dwarmstrong.org/minimal-debian/) |
0 commit comments