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

It is recommended to install ubuntu server 23.04 since it has kernel version 6.2 which includes all required drivers

Test setup

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

Installation process

Creating bootable USB drive

Please follow instructions at 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

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

  • 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