Dell Wyse 5070 Rocky Linux Installation

Thu, Feb 3, 2022 6-minute read

Dell Wyse 5070

My Dell Wyse 5070 arrived and I have started installing linux on them, since I don’t want to use the built in WyseOS, which is a “remote desktop” OS - and I want a server OS that I can use for cluster purposes.

Challenges

  • How to get into BIOS
  • Configure PXE boot
  • Use MMC or not

How to get into the bios

When the machine is starting you have to hammer F2 - if you are lucky it registers and you are met with a BIOS screen.

To be able to change anything you need to enter an administrator password. The default administrator password is “Fireport” - without the quotes obviously.

Settings to change

UEFI Boot Path Security

This is setting that forces you to enter the BIOS password - if you put in a USB device and want to boot from it - e.g. like when you try to install Linux. So this needs to be set to Never.

Dell Wyse 5060 Uefi Boot Path Security

Serial port

Who uses this in 2020 except perhaps if you have a POS device. So this needs to be disabled.

Dell Wyse 5060 Serial Port

Smart Reporting

This needs to be turned on - so any drive can report SMART information.

Dell Wyse 5070 Smart Reporting

USB Configuration

This needs to be changed to allow USB Boot support - otherwise we cannot install linux from the USB Stick.

Dell Wyse 5070 Usb Configuration

Audio

Who needs audio on a “server” - so obviously this needs to be turned off, so the linux kernel does not load any drivers.

Dell Wyse 5070 Audio

AC Recovery

So we need our machines to automatically turn on again - in the unlikely case that we get a power out - or the UPS stops working. So this needs to be set to Last Power State.

Dell Wyse 5070 Ac Recovery

VT for Direct I/O

So in case we want to use these machines as a proxmox cluster - we need to have this turned on so proxmox can better handle the virtualization.

Dell Wyse 5070 Vt D

Configure PXE Boot

This needs to be done in the BIOS - but no matter what I did - I could not get the machine to boot from my PXE server that happily serves other machines+VMs.

Googling a bit it seems like Dell has locked down the Wyse machines so they can only boot from specialized Dell Wyse PXE solutions.

So scrap getting network PXE boot to working with a normal PXE server.

P.S. If anyone reads this and know how to get PXE working, please send me a mail :smiley:

Solution

So not giving up on automating as much of my installation as possible - I decided to make an USB installer - and modify the grub configuration so it loads my kickstart file from my network server and also uses my installation source.

USB boot

So fire up Rufus - create the USB based on the installation CD.

Modify

EFI/BOOT/grub.cfg

So instead of

menuentry 'Install Rocky Linux 8' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=ROCKY-8-5-X quiet
	initrdefi /images/pxeboot/initrd.img

It now says

menuentry 'Install Rocky Linux 8' --class fedora --class gnu-linux --class gnu --class os {
	linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=ROCKY-8-5-X quiet inst.ks=ftp://192.168.0.4/pub/rocky8-ks-efi.cfg inst.repo=ftp://192.168.0.4/pub/rocky8
	initrdefi /images/pxeboot/initrd.img

So almost as good as a network installation.

I just plug in the USB - press F12 to get the boot menu

Dell Wyse 5070 Usb Boot

Kick start takes care of the rest and the machine will be installed with my configuration for the installation.

My current kick start file for my Dell Wyse is
auth --enableshadow --passalgo=sha512

# Use text
text
# Run the Setup Agent on first boot
firstboot --enable

# Remove all existing partitions
clearpart --all --initlabel

# Except for the USB installer
ignoredisk  --drives=/dev/disk/by-path/*usb*

#/boot & /usr should be mostly readonly except when updating
part /boot --fstype=ext4 --asprimary --size=1000 --ondisk=mmcblk0
part /boot/efi --fstype=efi --asprimary --size=600 --ondisk=mmcblk0

#put partitions that gets written to a lot onto the m.2 sata - to protect the built in mmcblk0
part / --fstype=ext4 --asprimary --grow --size=1 --ondisk=sdb
part /tmp --fstype=ext4 --ondisk=sdb --size=5000
part swap --size=4096 --ondisk=sdb

# Keyboard layouts
keyboard --vckeymap=dk --xlayouts='dk'
# System language
lang en_US.UTF-8 --addsupport=en_DK.UTF-8

# Network information
network  --bootproto=dhcp --device=ens192 --ethtool="autoneg on"  --activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted <REDACTED>
# System services
services --disabled="chronyd"
# System timezone
timezone Europe/Copenhagen --isUtc --nontp
user --groups=wheel --name=bbs --password=<REDACTED> --iscrypted --gecos="Bjorn Smith"

reboot

%packages --excludedocs
@core --nodefaults
-aic94xx-firmware*
-alsa-*
-iwl*firmware
-iprutils
-hunspell*
-libX11*
-centos-logos
-postfix
-mariadb-libs
-btrfs-progs
-mozjs17
-python-libs
-selinux-policy-targeted
-firewalld
-iptables
-sg3_utils
nfs-utils
kexec-tools
wget
net-tools
nano
mailx
%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%post --log=/root/ks-post.log
echo "Installed by KickStart on $(/bin/date)" > /etc/motd

#create ssh authorized keys, so ssh auto login works

mkdir -p /home/bbs/.ssh
chmod go-w /home/bbs
chmod 700 /home/bbs/.ssh

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAm8z8t1KnU0DKBd7W78Qaano/uT2vJX360qcKAsrmjCd/x6bgBqAC1/WolrZHvgMyzk9U3ZGERbCvo6TR5zMeywqKf63ObRvHRboDgucrl8jGS7Ra+ymxmCURwq0T57o7An5tSyOFevDIOFmHjuid20EcwCyvu9IcaOK7v6EeS$
chmod 600 /home/bbs/.ssh/authorized_keys

# make bbs owner of /home/bbs
chown -R bbs:bbs /home/bbs

# make symlink for mailx
ln -s /bin/mailx /bin/email

#create mail relay config

cat <<EOT >> /etc/mail.rc
set smtp=smtp://mail.root.dom:25
EOT
cat <<EOT >> /etc/crontab
#$(/bin/date +%M) 4 * * * root /usr/bin/yum -y update
EOT

sed -i 's/MAILTO=root/MAILTO="[email protected]"/' /etc/crontab
sed -i 's/MAILTO=root/MAILTO="[email protected]"/' /etc/anacrontab

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

Use built in MMC

The machine comes with a built in 16GB SKhynix H26M51002kpr eMMC of unknown durability

Dell Wyse 5070 Sk Hynix Emmc

So to get some usage of the built in MMC and still protect it somewhat from applications that write - I have decided to only put the following partitions

/boot
/boot/efi

onto the MMC disk. The boot partitions should be more or less readonly and should only be updated when I update the kernel.

The rest I have added to the 128GB m.2 drive I added, with the following partition layout

/
/tmp
swap

Those three paritions should capture most if not all of the write that would happen during normal operation - if not then I need to change the layout.

I should be able to see what partitions that receives writes using the built in tools in linux.

Next up is what to install onto the Rocky installation.

I suspect I will be trying a kubernetes cluster and if that does not work for me a docker swarm - and then last possibly a proxmox cluster - although the machines might be just a tiny bit too slow for this. But time will tell.

Other resources

More detailed pictures of the motherboard can be found here

Another site with more information

Updated 2022-02-19

I ordered a 16GB DDR4 SODIMM module - to see if I could upgrade my nodes to 32GB each. More specifically I ordered a Crucial CT16G4SFRA266. It arrived today and I popped it into my “primary” node - and after having pondered a bit about it - my wyse booted with the warning that memory size had changed - and when I clicked continue it just booted.

So I can confirm that Crucial CT16G4SFRA266 works just fine in a Dell Wyse 5070 - which should bring it up to 32GB total memory easy.

So even though it will be just as expensive - if not even more expensive that the machine itself - I think its worth it to upgrade the machines to 32GB each - since it opens up more options on what kind of services I can host on my kubernetes cluster.