Using BaseOS with BMC (Remote Media)

IGX BMC has the support of USB remote media based on openbmc virtual media - docs/designs/virtual-media.md at master · openbmc/docs · GitHub

The IGX Developer Kit BMC enumerates USB virtual media devices to the Orin USB host, which helps to install BaseOS using the UEFI menu. IGX BMC can work as virtual media over CIFS transfer protocol.

image8.png

  1. CIFS samba server configuration in Ubuntu Desktop.

    1. Install SAMBA and configure it on the Ubuntu Desktop. Place BaseOS into the SAMBA server path to initiate the BMC virtual media for the BaseOS image:

      Copy
      Copied!
                  

      sudo apt update

      Copy
      Copied!
                  

      sudo apt install samba

    2. Now that Samba is installed, we need to create a directory for it to share.

      Copy
      Copied!
                  

      mkdir /home/<username>/sambashare/

    3. Add samba configuration for sambashare directory

      Copy
      Copied!
                  

      sudo vim /etc/samba/smb.conf

    4. Add block to samba configuration to end of the smb.conf

      Copy
      Copied!
                  

      [sambashare] comment = Samba on Ubuntu path = /home/username/sambashare read only = no browsable = yes

    5. Update firewall settings and restart the samba service

      Copy
      Copied!
                  

      sudo ufw allow samba

      Copy
      Copied!
                  

      sudo service smbd restart

    6. Set up user and password

      Copy
      Copied!
                  

      sudo smbpasswd -a username

  2. Enumerate BMC USB Virtual Media

    1. Get the BaseOS release and copy the BaseOS image to the sambashare folder.

      Copy
      Copied!
                  

      cp <BaseOS image> /home/username/sambashare/

    2. Provide the BMC username and password to get the token.

      Copy
      Copied!
                  

      export bmc=<BMC IP>

      Copy
      Copied!
                  

      export token=`curl -k -H "Content-Type: application/json" -X POST https://${bmc}/login -d '{"username" : "<BMC Username>", "password" : "<BMC Passowrd>"}' | grep token | awk '{print $2;}' | tr -d '"'`

    3. Fill the Samba username, password, and BaseOS file to enumerate the USB virtual media using the Redfish.

      Copy
      Copied!
                  

      curl -k -H Content-Type:application/json -H "X-Auth-Token:$token" -X POST https://${bmc}/redfish/v1/Managers/BMC_0/VirtualMedia/USB1/Actions/VirtualMedia.InsertMedia -d '{"Image":"smb://<Ubuntu Desktop IP>/sambashare/<BaseOS filename>","WriteProtected":true,"UserName":"<SAMBA Username>","Password":"<SAMBA Password>","Inserted":true,"TransferMethod":"Stream","TransferProtocolType":"CIFS"}'

      Copy
      Copied!
                  

      Ex: curl -k -H Content-Type:application/json -H "X-Auth-Token:$token" -X POST https://${bmc}/redfish/v1/Managers/BMC_0/VirtualMedia/USB1/Actions/VirtualMedia.InsertMedia -d '{"Image":"smb://192.168.1.1/sambashare/IGX-r36v0.1-2023-10-04-12-32-47.iso","WriteProtected":true,"UserName":"nvidia","Password":"nvidia","Inserted":true,"TransferMethod":"Stream","TransferProtocolType":"CIFS"}'

    4. Confirm the USB Virtual Media entry in the Orin host lsusb.

      image12.png

  3. Install BaseOS from UEFI

    1. Reboot the Orin, wait until UEFI starts, then press ESC to enter the UEFI menu

      image2.png

    2. Select the Boot Manager with the down arrow(↓) key. USB Virtual media will be seen on the menu.

      image8.png

    3. Select the UEFI 0penBMC Virtual Media, and install the BaseOS, or edit options using the ‘e’ key before installation.

      image13.png

    4. Eject current media using the below command if want to mount a new ISO

      Copy
      Copied!
                  

      curl -k -H Content-Type:application/json -H "X-Auth-Token:$token" -X POST https://${bmc}/redfish/v1/Managers/BMC_0/VirtualMedia/USB1/Actions/VirtualMedia.EjectMedia -v

Previous Orin QSPI Flash from BMC
© Copyright 2024, NVIDIA. Last updated on Jan 19, 2024.