Dell Wyse 5070 Rocky Linux Installation
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.
Serial port
Who uses this in 2020 except perhaps if you have a POS device. So this needs to be disabled.
Smart Reporting
This needs to be turned on - so any drive can report SMART information.
USB Configuration
This needs to be changed to allow USB Boot support - otherwise we cannot install linux from the USB Stick.
Audio
Who needs audio on a “server” - so obviously this needs to be turned off, so the linux kernel does not load any drivers.
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.
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.
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
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
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.