Bedrock V3000 does not have a display, so Ubuntu installation requires connecting Bedrock to a host PC using a console (serial over USB).
This document describes Ubuntu installation process on Bedrock V3000.
The installation was validated at SolidRun using the following setup:
Ubuntu versions:
Ubuntu server 22.04.1
Ubuntu server 23.04
Terminal software:
Putty
Alternatively, Tio can also be used.
known TIO limitation: in BIOS, the currently selected option is displayed in the same color as the background, which makes it not visible yet it is still fully functional.
USB flash disk: Kingston Data Traveler
Please follow instructions at https://solidrun.atlassian.net/l/cp/m9Reo11r
Please follow instructions at Using serial console with Bedrock V3000
You need to enable some configurations in BIOS before starting the installation.
Insert the USB media to the device
Turn on Bedrock
Repetitively press the DEL / ESC key to enter the BIOS setup
In BIOS go to -> Save & Exit -> <your bootable USB device> -> yes
Device will reset and a grub screen will appear
A grub menu will appear saying try or install Ubuntu. Press ‘e’ to set the boot parameters.
You will be prompted with a window like this:
setparams 'Install Ubuntu Server'
set gfxpayload=keep
linux /casper/vmlinuz quiet ---
initrd /casper/initrd
Remove the quiet parameter and change the entry with the linux line to look as follows:linux /casper/vmlinuz console=tty1 console=ttyS4,115200n8 systemd.unit=getty@ttyS4.service —
Wait for the live USB to boot
Wait for the live system to boot
Note: it might be hard to see the shell prompt within all the kernel output so you can just press ‘enter’ to find it quicker.
run: cat > init_services.sh
copy the code below into the file and press ctrl+d to save it.
echo enabling services sudo systemctl start apport.service > /dev/null sudo systemctl start blk-availability.service > /dev/null sudo systemctl start cloud-final.service > /dev/null sudo systemctl start cloud-init-local.service > /dev/null sudo systemctl start cloud-init.service > /dev/null sudo systemctl start console-setup.service > /dev/null sudo systemctl start cron.service > /dev/null sudo systemctl start dbus.service > /dev/null sudo systemctl start finalrd.service > /dev/null sudo systemctl start irqbalance.service > /dev/null echo "20% done" sudo systemctl start keyboard-setup.service > /dev/null sudo systemctl start kmod-static-nodes.service > /dev/null sudo systemctl start lvm2-monitor.service > /dev/null sudo systemctl start ModemManager.service > /dev/null sudo systemctl start multipathd.service > /dev/null sudo systemctl start networkd-dispatcher.service > /dev/null sudo systemctl start plymouth-quit-wait.service > /dev/null sudo systemctl start plymouth-quit.service > /dev/null sudo systemctl start plymouth-read-write.service > /dev/null echo "40% done" sudo systemctl start polkit.service rsyslog.service > /dev/null sudo systemctl start polkit.service > /dev/null sudo systemctl start rsyslog.service > /dev/null sudo systemctl start setvtrgb.service > /dev/null sudo systemctl start snap.subiquity.subiquity-server.service > /dev/null sudo systemctl start snap.subiquity.subiquity-service.service > /dev/null sudo systemctl start snapd.apparmor.service > /dev/null sudo systemctl start snapd.hold.service > /dev/null sudo systemctl start snapd.seeded.service > /dev/null sudo systemctl start snapd.service > /dev/null sudo systemctl start ssh.service > /dev/null sudo systemctl start systemd-journald.service > /dev/null echo "60% done" sudo systemctl start systemd-logind.service > /dev/null sudo systemctl start systemd-modules-load.service > /dev/null sudo systemctl start systemd-modules-load.service > /dev/null sudo systemctl start systemd-modules-load.service > /dev/null sudo systemctl start systemd-networkd-wait-online.service > /dev/null sudo systemctl start systemd-networkd.service > /dev/null sudo systemctl start systemd-random-seed.service > /dev/null sudo systemctl start systemd-remount-fs.service > /dev/null sudo systemctl start systemd-resolved.service > /dev/null sudo systemctl start systemd-sysctl.service > /dev/null echo "80% done" sudo systemctl start systemd-sysctl.service > /dev/null sudo systemctl start systemd-remount-fs.service > /dev/null sudo systemctl start systemd-tmpfiles-setup.service > /dev/null sudo systemctl start systemd-tmpfiles-setup-dev.service > /dev/null sudo systemctl start systemd-user-sessions.service > /dev/null sudo systemctl start udisks2.service > /dev/null sudo systemctl start unattended-upgrades.service > /dev/null sudo systemctl start ufw.service > /dev/null echo "100% done" sudo subiquity |
run: chmod +x init_services.sh
run: ./init_services.sh
Choose your prefered settings for installation
Wait until installation is complete
when asked, remove the installation media and press enter
Device will be rebooted
Enable the ttyS4 console to be able to interact with the system.
Boot into BIOS
Boot from the disk you installed linux on.
If you don't get a grub menu automatically on boot, hold the 'shift' key
If you dont get the grub menu after pressing shift, connect a keyboard to the divice and pres shift on the connected keyboard.
In the grub menu choose:
Advanced options for Ubuntu
Select the line that says recovery mode
Press ’e’
In the line that says: linux /boot/vmlinuz-5.15.0-43-generic root=UUID=4c58e5aa-6443-4fb2-84e7-4ac2265a7b9e ro recovery nomodeset dis_ucode_ldr
Add the console redirection:
linux /boot/vmlinuz-5.15.0-43-generic root=UUID=4c58e5aa-6443-4fb2-84e7-4ac2265a7b9e ro console=tty1 console=ttyS4,115200n8 recovery nomodeset dis_ucode_ldr
Press ctrl+x to boot
Choose Root (drop into shell)
Type to enable the ttyS4 service automatically when you boot: systemctl enable getty@ttyS4
edit grub config file: nano /etc/default/grub
add the console redirection to the grub default options:
on line: GRUB_CMDLINE_LINUX_DEFAULT
add the following
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1 console=ttyS4,115200n8 usbcore.autosuspend=-1" |
the usbcore.autosuspend=-1
argument is used to enable all 4 of the usb ports.
save the file and run: update-grub
Boot Linux in normal mode
NOTE: it might be hard to notice the login prompt because the kernel boot output is also on screen.