Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 24 Next »

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.

Test setup

The installation was validated at SolidRun using the following setup:

  • Ubuntu versions: Ubuntu server 22.04.1

  • 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

Installation process

Creating bootable USB drive

Reffer to this section: https://solidrun.atlassian.net/l/cp/m9Reo11r

Connecting serial console

Please follow instructions at Using serial console with Bedrock V3000

BIOS settings

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

Configure grub

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

Live USB settings

  • Wait for the live system to boot

  • 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 ttyS4 service

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.service

  • edit grub config file: nano /etc/default/grub

    • add the console redirection to the grub default options:
      on line: GRUB_CMDLINE_LINUX_DEFAULTadd the following

      GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1 console=ttyS4,115200n8 usbcore.autosuspend=-1"

      the usbcore.autosuspend=-1argument 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.

  • No labels