Bedrock V3000 does not have a display, so Ubuntu installation requires connecting lacks an integrated display adapter. Consequently, to install Ubuntu, users must connect Bedrock to a host PC using a console (, facilitated by serial over USB).
This document describes Ubuntu installation process on Bedrock V3000.
...
Table of Contents
Anchor | ||||
---|---|---|---|---|
|
The This installation was process has been validated at by SolidRun using with the following setupconfigurations:
Ubuntu versions:
Ubuntu server 22.04
Ubuntu server 23.104
Ubuntu server 2324.04
Terminal software:
PuttyAlternatively, 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
Anchor | ||||
---|---|---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
Please follow instructions at https://solidrun.atlassian.net/l/cp/m9Reo11r
Anchor | ||||
---|---|---|---|---|
|
Please follow instructions at Using serial console with Bedrock V3000
Anchor | ||||
---|---|---|---|---|
|
...
Boot select
You need to enable some configurations in BIOS before starting to choose your USB bootable device to start 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 menu screen will appear
If you dont see a grub menu, reboot and press the “arrow down” key repetitively right after you pressed enter to boot from BIOS
Anchor | ||||
---|---|---|---|---|
|
A At the grub menu will appear saying (displaying "try or install Ubuntu. "),Press ‘e’ to set the boot parameters.
You will be prompted with 'll encounter a window like thisresembling:
Code Block setparams 'Install Ubuntu Server'
...
set gfxpayload=keep
...
linux /casper/vmlinuz quiet ---
...
initrd /casper/initrd
Remove the quiet parameter and change the entry that starts with the linux line‘linux’ to look as follows:
unitCode Block linux /casper/vmlinuz console=tty1 console=ttyS4,115200n8 systemd.
.servicewants=serial-getty@ttyS4
—
Wait for the live USB to boot
Live USB settings
...
Info |
---|
might take some time for the |
...
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.
Code Block |
---|
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
...
installer to run, so just give it some time |
Anchor | ||||
---|---|---|---|---|
|
After live USB boots
Run
sudo subiquity
NOTE: On newer Ubuntu versions the installer might run automatically, so you can skip this step.
If you see a “waiting for cloud init” message, wait until it times out and opens the installer (could take some time since some services should finish starting in the background).
Proceed with your preferred installation settings and await completion
Wait until installation is complete
When prompted, remove the installation media and press enter
Device will be rebooted
Anchor | ||||
---|---|---|---|---|
|
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' keypress the “arrow down” key repetitively right after you pressed enter to boot from BIOS
If you dont get the grub menu after pressing shift, connect a keyboard to the divice device and pres hold shift on the connected keyboard .when booting
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:
linuxparameters to grub after the ‘ro’ parameter
from this:
Code Block linux /boot/vmlinuz-6.2.0-27-generic root=UUID=1dfc1a94-6289-4b15-9f4f-0fb36c083841 ro
to this:
Code Block linux /boot/vmlinuz-
6.
2.0-
27-generic root=UUID=
1dfc1a94-
6289-
4b15-
9f4f-
0fb36c083841 ro console=tty1 console=ttyS4,115200n8
systemd.wants=serial-getty@ttyS4 quiet
Note: if you want to see the boot logs remove the
quiet
argumentPress ctrl+x to boot
Type to enable the ttyS4 service automatically when you boot:
systemctl enable serial-getty@ttyS4
edit grub config file:
nano /etc/default/grub
add the console redirection to the grub default options (same as above):
on line:GRUB_CMDLINE_LINUX_DEFAULT
add the following
theCode Block GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1 console=ttyS4,115200n8 usbcore.autosuspend=-1"
usbcore.autosuspend=-1
argument is used to enable all 4 of the usb ports.save the file and run:
update-grub
NOTE: it might be hard to notice the login prompt because the kernel boot output is also on screen.