EBF CLI Guide

This Command-Line Tool enables you to run shell scripts to perform EBF-CLI functions.

Installation Steps

Install the below dependencies on your Linux machine

sudo apt-get install jq curl sshpass (for Debian/Ubuntu)

sudo dnf install jq curl sshpass (for Rocky Linux)

Download EBF-CLI tool from “http(s)://<EBF-Server>/packages/ebf-cli/ebf.bin” and run below command

sudo cp {downloaded EBF-CLI path} /usr/local/bin/ebf

Give executable permission

sudo chmod a+x /usr/local/bin/ebf

After successfully installing EBF-CLI, you have to first configure it by providing the details of EBF-Server and user-credentials. You have to configure it only the first time unless there is no change in the user credentials. Please run the commands below to configure EBF-CLI.

ebf login

You can check the saved configuration for EBF using the command below.

ebf list config

For help with other options and commands, you can refer to the EBF help tool by running the command shown below.

ebf help

Quick Start Guide

To Login

ebf login

To see Configured User and EBF Server

ebf list config

To List All Active Devices

ebf list devices

To List My Devices

ebf mydevices

To see Device Allocation Details

ebf {device-name} status

Example:
ebf bbb01 status

To Release a Device Assigned to the Current User

ebf {device-name} release

Example:
ebf bbb01 release

To Release a Device Assigned to Another User

ebf {device-name} release force

Example:
ebf bbb01 release force

To Allocate a Device

ebf {device-name} allocate

Example:
ebf bbb01 allocate

To see Device Information

ebf {device-name} info

Example:
ebf bbb01 info

To control the Current Power Status of a Device

ebf {device-name} power {on/off/reboot/user-defined-command}

Example:
ebf bbb01 power on

To control Hotplug

ebf {device-name} hotplug {1-4} {on/off/switch}

Example:
ebf bbb01 hotplug 1 on

To Access the Serial Console of a Device

ebf {device-name} console

Example:
ebf bbb01 console

To Execute a Command on a Device Using SSH

ebf {device-name} ssh run  "{command}"

Example:
ebf bbb01 ssh run "ls -la /"

To Upload a File to a Device

ebf {device name} ssh upload {file-soure-path} {destination-path}

Example:
ebf bbb01 ssh upload /file.txt /home/

To Download a File from a Device

ebf {device name} ssh download {source} {destination}

Example:
ebf bbb01 ssh download /home/file.txt /home/

EBF-CLI Commands

login

For login into EBF Server, required only first time. If you want to change EBF-server or change the User-credentials then use the “ebf login” command and follow the instructions.

From Command line terminal:

ebf login

Example:

ebf login

Provide the EBF-Server IP and Credentials.

list

config

Provide the details about the EBF-Server and User configured for EBF-CLI.

From Command line terminal:

ebf list config

Example:

ebf list config

UserName:       admin
EBF-SERVER:     https://172.16.30.143
SSL Enabled:    no
EBF AUTH-Token: rst33j46n50iusq06t3bj9w0mhq0uph8kadup3dybsunm8r54inqptbxror

devices

Provide the list of all the active devices in EBF-server.

From Command line terminal:

ebf list devices

Example:

ebf list devices

TestServer_AppZombie-93
android-rpi001
bbb02

mydevices

Provide the list of devices assigned to the current User.

From Command line terminal:

ebf mydevices

Example:

ebf mydevices

android-rpi001
bbb02

fmanager

ls

List the content of the EBF-FileManager Directory or sub-directory.

From Command line terminal:

ebf fmanager ls <Directory PATH [Optional]>

Example:

ebf fmanager ls

admin                          Directory  lavaserver   4.0K     Dec 10, 2020 05:44:15 AM
ankit                          Directory  lavaserver   4.0K     Dec 15, 2020 05:03:03 PM
ankit.gupta                    Directory  lavaserver   4.0K     Dec 14, 2020 05:16:03 PM

mkdir

Create a directory inside the EBF-FileManager directory or sub-directory.

From Command line terminal:

ebf fmanager mkdir <directory-name>

Example:

ebf fmanager mkdir tmp

Successfully Folder Created

rm

Delete a directory inside the EBF-FileManager directory or sub-directory.

From Command line terminal:

ebf fmanager rm <Directory PATH>

Example:

ebf fmanager rm tmp

Successfully Content deleted

upload

Copy files to EBF-FileManager directory or sub-directory.

From Command line terminal:

ebf fmanager upload [SRC_FILE_PATH] [DST_FILE_PATH]

Example:

ebf fmanager upload /home/tmp/file1.txt tmp/

Successfully File Uploaded.

download

Download a file from EBF-FileManager Directory to a local machine.

From Command line terminal:

$ebf fmanager upload [SRC_FILE_PATH] [DST_FILE_PATH]

Example:

ebf fmanager download tmp/file1.txt /home/tmp/

Successfully Downloaded "tmp/file1.txt" into "/home/tmp/file1.txt"

version

To see the Current version of EBF-CLI installed.

From Command line terminal:

ebf version

Example:

ebf version

1.0.1

Device-Management

status

Provide device allocation details, currently assigned to someone or free.

From Command line terminal:

ebf <device-name> status

Example:

ebf bbb02 status

Device "bbb02" is assigned to user "admin"

allocate

Allocate a device to the current User.

From Command line terminal:

ebf <device-name> allocate

Example:

ebf bbb02 allocate

Device is assigned to user "admin"

release

Release a device assigned to the current User.

From Command line terminal:

ebf <device-name> release

Example:

ebf bbb02 release

Device "bbb02" is released and available to use.

force

Release a device assigned to Other Users.

From Command line terminal:

ebf <device-name> release force

Example:

ebf bbb02 release force

Device "bbb02" is Released and available to Use.

device force release permissions

Description: To set the device force release permissions

From Command line terminal:

$ebf <device name> config force-release [true/false]

Example:

$ebf bbb01 config force-release true
$ebf bbb01 config force-release false

delete

Delete a device, currently assigned to someone or free. Only admin can delete the device.

From Command line terminal:

ebf <device-name> delete

Example:

ebf bbb02 delete

It will delete device "bbb02" permanently
Would you like to proceed [Y/N] ? [N] >>> Y
Device "bbb02" deleted successfully

info

Provides information of a Device like Zombie’s, Power port, Power commands, TFTP, NFS dir, etc.

From Command line terminal:

ebf <device-name> info

Example:

ebf bbb02 info

            ************************
            *  Device Information  *
            ************************

 Hostname:                 bbb02
 Device Status:            Good
 Device Port:              1
 Number Of Consoles        1
 IOCX Status:              false
 Force Release Allowed:    false
 Console Sharing           Enabled
 Tags:                     tag1 tag2
 Zombie Name:              Zombie1
 Zombie IP:                172.16.30.93
 ZOMBIE_URL:               http://172.16.30.93/
 Powe Switch:              Ankit-Home-Power-Switch
 Power Switch Port:        4
 Power Switch Commands:    on off reboot My-CMD
 TFTP DIR:                 upload/DUT1
 NFS DIR:                  /var/lib/lava/dispatcher/tmp/nfs/DUT1/tmp
 NETBoot Type:
 GUID:
 Image:

power

status

Provides the current power status of a device.

From Command line terminal:

ebf <device-name> power status

Example:

ebf bbb02 power status

Device "bbb02" is Powered "ON"

on

Power ON the device

From Command line terminal:

ebf <device-name> power on

Example:

ebf bbb02 power on

Device "bbb02" is Powered "on"

off

Power OFF the device

From Command line terminal:

ebf <device-name> power off

Example:

ebf bbb02 power off

Device "bbb02" is Powered "off"

reboot

Power REBOOT the device

From Command line terminal:

ebf <device-name> power reboot

Example:

ebf bbb02 power reboot

Device "bbb02" is Powered "reboot"

user-defined-command

Any other Power supported user-defined command

From Command line terminal:

ebf <device-name> power <user-deined-command>

Example:

ebf bbb02 power my-cmd

hotplug

status

Provides the current Hotplug status whether it is connected to the device side or Not.

From Command line terminal:

ebf <device name> hotplug [1-4] status

Example:

ebf bbb02 hotplug 1 status

Device "bbb02" Hotplug port "1" is currently "off"

on

Connect hotplug to the Device side.

From Command line terminal:

ebf <device name> hotplug [1-4] on

Example:

ebf bbb02 hotplug 1 on

Device "bbb02" Hotplug port "1" is switched "on"

off

Disconnect hotplug from Device.

From Command line terminal:

ebf <device name> hotplug [1-4] off

Example:

ebf bbb02 hotplug 1 off

Device "bbb02" Hotplug port "1" is currently "off"

switch

Toggle the current state of a particular hotplug.

From Command line terminal:

ebf <device name> hotplug [1-4] switch

Example:

ebf bbb02 hotplug 1 switch

Device "bbb02" Hotplug port "1" is currently "on"

portfw

list

Provides a list of all the IP rules forwarded on a Zombie.

From Command line terminal:

ebf <device name> portfw list

Example:

ebf bbb02 portfw list


Rule 1
 Device IP: 192.168.111.10
 Zombie Protocol: tcp
 Zombie Port: 8022  -->  Device Port: 22
 IsActive: true

Rule 2
 Device IP: 192.168.111.10
 Zombie Protocol: tcp
 Zombie Port: 8023  -->  Device Port: 23
 IsActive: true

Rule 3
 Device IP: 192.168.111.10
 Zombie Protocol: tcp
 Zombie Port: 8024  -->  Device Port: 24
 IsActive: true

add

To add a new port forward rule.

From Command line terminal:

ebf <device name> portfw add <device-ip> <dut-port> <zombie-port> <protocol>

Example:

ebf bbb02 portfw add 192.168.111.10 22 8022 tcp

Successfully Forwarded the port

remove

To Delete a new port forward rule.

From Command line terminal:

ebf <device name> portfw remove <device-ip> <dut-port> <zombie-port> <protocol>

Example:

ebf bbb02 portfw remove 192.168.111.10 22 8022 tcp

Successfully Deleted the port forwarded rule

reconnect

To reestablish an inactive rule. Port forwarding rules could go into the inactive state under the following scenarios-

  • Old user and group level port forwarding rules post upgrade to EBF 2025.04 or later release from 2025.03 or older releases

  • EBF administrator missed to restore old zombie settings during Zombie upgrade via SDCard reflash.

From Command line terminal:

ebf <device name> portfw reconnect <device-ip> <dut-port> <zombie-port> <protocol>

Example:

ebf bbb02 portfw reconnect 192.168.111.10 22 8022 tcp

Successfully Forwarded the port

staticip

list

Provides a list of all the Static IP address set for a device.

From Command line terminal:

ebf <device name> staticip list

Example:

ebf bbb02 staticip list


Rule 1
 Device IP: 192.168.111.90
 Device MAC: b8:27:eb:70:fa:a6

Rule 2
 Device IP: 192.168.111.91
 Device MAC: b8:27:eb:70:fa:a8

add

To set a new static IP address for a device.

From Command line terminal:

ebf <device name> staticip add <device-mac> <device-ip>

Example:

ebf bbb02 staticip add b8:27:eb:70:fa:a6 192.168.111.90

Successfully added the static IP address.

remove

To delete a static IP address for a device.

From Command line terminal:

ebf <device name> staticip remove <device-mac> <device-ip>

Example:

ebf bbb02 staticip remove b8:27:eb:70:fa:a6 192.168.111.90

Successfully deleted the static IP address.

serial

run

Run a command on a device and Display its OUTPUT using the serial console.

From Command line terminal:

ebf <device name> serial run [COMMAND]

Example:

ebf bbb02 serial run "ls -la /"

download

Download a file to a local system from a device using the serial console.

From Command line terminal:

ebf <device name> serial download "<file-or-dir-path-at-device>" "<destination-path>"

Example:

ebf bbb02 serial download /tmp/test.txt ./

upload

Upload a local file to a device using the serial console.

From Command line terminal:

ebf <device name> serial upload "<src-file-or-dir>" "<upload-path-at-device>"

Example:

ebf bbb02 serial upload test.txt /tmp/

multiple serial command

From Command line terminal:

ebf <device name> serial run [OPTIONS] "<command>"
Options:
   --prompts         Provides the comma separated list of prompts
   --timeout         Provide the timeout of a command in seconds
   --single          Use this flag if you want to run a command as a single entity

  By default it capture the serial console prompt before command execution and after sending the serial command
  it continuously compares the current serial console prompt with the captured prompt and if it matches the serial prompt then it return the results,
  By default it compares the console prompts for 5 seconds and if your command is taking more time then you can increase the timeout.

  Serial command execution also supports Interactive command execution, let's suppose you execute some command and wait for a different prompt
  Then you can use --prompts option, the example of each use case is given below

Example:

Example-1: ebf bbb01 serial run "date" (Execute the command and wait for console prompts for 5 seconds)
Example-2: ebf bbb01 serial run --timeout 100 "date" (Execute the date command and wait for the same prompt captured before command execution)
Example-3: ebf bbb01 serial run "date,ls,ifconfig" (Support multiple command run using comma separated list)
Example-4: ebf bbb01 serial run --single "date,ls,ifconfig" (Will run as a single command and bypass coma seperated list)
Example-5: ebf rpi-board serial run --prompts "Password:" "pi" (First executes "pi" and wait for "Password:")
Example-6: ebf rpi-board serial run --prompts "Password:,pi@raspberrypi:~$" "pi,raspberry" (Also supported multiple comma separated prompts and commands)

list consoles

From Command line terminal:

ebf <device name> serial list

Example:

ebf dev1 serial list

Number of Consoles: 4
serial0:   172.16.30.204:60000
serial1:   172.16.30.204:60001
serial2:   172.16.30.204:60002
serial3:   172.16.30.204:60003

ssh

run

Run a command on a device and Display its OUTPUT using ssh.

From Command line terminal:

ebf <device name> ssh run [COMMAND]

Example:

ebf bbb02 ssh run "date"


Thu Jan 1 00:18:17 UTC 1970

download

Download a file to a local system from a device using SSH.

From Command line terminal:

ebf <device name> ssh download "<file-or-dir-path-at-device>" "<destination-path>"

Example:

ebf bbb02 ssh download /tmp/test.txt ./


Successfully Downloaded "/tmp/test.txt" into "./"

upload

Upload a local file to a device using SSH.

From Command line terminal:

ebf <device name> ssh upload "<src-file-or-dir>" "<upload-path-at-device>"

Example:

ebf bbb02 ssh upload test.txt /tmp/

Successfully File Uploaded.

import-key

To import Zombie ssh-key into Zombie for password-less operations.

From Command line terminal:

ebf <device name> ssh import-key <device-ip> <username> <password>

Example:

ebf bbb02 ssh import-key 192.168.111.10 root root

Successfully Zombie SSH-KEY Imported to "bbb02"

console

Terminal Access

Provides access to device serial console.

From Command line terminal:

ebf <device name> console <console name OPTIONAL>

Example:

connect to first console

ebf bbb02 console

Press 'Ctrl + ]' to Escape from Serial Console Session  0:telnet*

connect to Nth console

ebf bbb02 console serial0

Press 'Ctrl + ]' to Escape from Serial Console Session  4:telnet*

Start

Start a device serial session if sharing enabled.

From Command line terminal:

ebf <device name> console start <console name OPTIONAL>

Example:

start all available serial sessions for a device

ebf bbb02 console start

start serial device session for Nth console port

ebf bbb02 console start serial0

Stop

Stop a device serial session if sharing enabled.

From Command line terminal:

ebf <device name> console stop <console name OPTIONAL>

Example:

stop all available serial sessions for a device

ebf bbb02 console stop

stop serial device session for Nth console port

ebf bbb02 console stop serial0

Status

Provide a device serial session status if sharing enabled.

From Command line terminal:

ebf <device name> console status <console name OPTIONAL>

Example:

provide status of all available serial sessions for a device

ebf bbb02 console status

provide status of Nth serial device session

ebf bbb02 console status serial0

gpio

GPIO Connections

read_mask

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

get_mode

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

get_mode_mask

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

read

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

set_mode_mask

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

write_mask

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

set_mode

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

write

From Command line terminal:

ebf <device name> gpio [COMMANDS] [GPIO PIN PATTERN] [GPIO_PIN_DATA/OPTIONAL]


Commands             GPIO Pin Pattern       GPIO Pin Data
  set_mode_mask          1-255                  0-255
  get_mode_mask          1-255
  write_mask             1-255                  0-255
  read_mask              1-255
  set_mode               1-8                    {read,write}
  get_mode               1-8
  read                   1-8
  write                  1-8                    0-1

list

labcontrollers

List all the lab controllers assigned to a device.

From Command line terminal:

ebf <device name> list labcontrollers

Example:

ebf bbb02 list labcontrollers


Controller : 1
ID              : Zombie1
Controller Type : gpio_controller

netboot

ls

List the content of Network Boot Directory, by default it shows the content of Network-boot directory assigned to that device e.g. if the device is connected to port-1 then it will show the content of NFS-directory “DUT1”. You can also provide a directory or sub-directory inside the DUT1 folder.

From Command line terminal:

ebf <device name> netboot ls [DIR_NAME_OPTIONAL]

Example:

ebf bbb02 netboot ls

mrootfs                        Directory  root         4.0K     Nov 24, 2020 08:43:26 PM

mkdir

Create a directory inside Network Boot Directory, by default it will create a directory inside the Network-boot directory assigned to that device e.g. if the device is connected to port-1 then it will create a directory inside the NFS-directory “DUT1”. You can also create a directory or sub-directory inside a folder.

From Command line terminal:

ebf <device name> netboot mkdir [DIR_NAME]

Example:

ebf bbb02 netboot mkdir tmp

Successfully Directory tmp created

rm

Delete a directory inside Network Boot Directory, by default it will delete the directory inside the Network-boot directory assigned to that device e.g. if the device is connected to port-1 then it will delete the directory inside the NFS-directory “DUT1”. You can also delete a directory or sub-directory inside a folder.

From Command line terminal:

ebf <device name> netboot mkdir [DIR_NAME]

Example:

ebf bbb02 netboot rm tmp

Successfully Directory tmp deleted

transfer

From Command line terminal:

ebf <device name> netboot transfer [local|server|status|remove] [OPTIONS]

Description
   local|server     Extract or copy a File/Dir from local system or EBF-Server
                    into a Network-Boot Directory or sub-directory.
   status [JOB-ID]  it will provide the status off all the transfer jobs in running or queue state
                    You can also check the status of a single job using transfer Job-ID.
   remove [Job-ID]  It will cancel the jobs and remove it from the list

Option Includes:
  *   -f | --file          - path of a local file or EBF-Server
      -t | --tool          - provide tool from [tar, cp, unzip] to transfer a file
      -d | --dir           - Name of a directory in which you want to extract rootfs default is "fsroot"
      -a | --cmd-args      - any arguments you want to provide with transfer tool selected
      -r | --remove-after  - This will delete file from EBF-Server after transferring value should be "on/off"

  *  Indicates Mandatory Arguments

Example:

1. ebf bbb01 netboot transfer local -f /tmp/hello.txt
2. ebf bbb01 netboot transfer local -f /tmp/hello.txt -d fsroot
3. ebf bbb01 netboot transfer local -f /tmp/rootfs.tar.gz -d my-rootfs -t tar -a xz -r on
4. ebf bbb01 netboot transfer server -f rootfs.tar.gz -d my-rootfs -t tar -a xz -r on
5. ebf bbb01 netboot transfer status
6. ebf bbb01 netboot transfer status 04366c6a-fde2-424d-9aea-1174cb24650d
7. ebf bbb01 netboot upload remove 04366c6a-fde2-424d-9aea-1174cb24650d

download

Download a file from Network Boot Directory to the local machine.

From Command line terminal:

ebf <device name> netboot download <src-file-path> <dst-file-path>

Example:

ebf bbb02 netboot download tmp/file1.txt /home/tmp/

Successfully Downloaded "tmp/file1.txt" into "/home/tmp/file1.txt"

upload

Upload a file from Local Machine to Network Boot Directory.

From Command line terminal:

ebf <device-name> netboot upload [SRC_FILE_PATH] [DST_FILE_PATH]

Example:

ebf bbb02 netboot upload /tmp/file1.txt fsroot/

Successfully 100% upload completed.

Generate Boot menu

Kernel only

ebf <device-name> netboot gen-boot-menu -k <kernel file path>
ebf dev1 netboot gen-boot-menu -k Image123/target.srp

boot-menu file generated successfully

Kernel and Initrd files

ebf <device-name> netboot gen-boot-menu -k <kernel file path> -i <initrd file path>
ebf dev1 netboot gen-boot-menu -k Image123/target.srp -i Image123/ramdisk.img

boot-menu file generated successfully

sdcard

info

Provides the SDCard information on its size, partition, etc.

From Command line terminal:

ebf <device name> sdcard info

Example:

ebf bbb02 sdcard info

SD CRAD Information

sdb: 59.5G
sdb1: 2G (vfat)
sdb2: 57.5G (ext4)

side

Provides whether the SDCard is connected to the Zombie side or the Device side.

From Command line terminal:

ebf <device name> sdcard side

Example:

ebf bbb02 sdcard side

SDCard is connected to "device" side

switch

It will connect the sdcard to the Device side or Zombie side or Switch from the current side.

From Command line terminal:

ebf <device name> sdcard switch [device|zombie|side]

Example:

ebf bbb02 sdcard switch zombie


SDCard is switched to "zombie" side

ls

List the content of SDCard, by default it shows the partitions of SDCard and you can provide that partition or directory inside that partition It will show the content of that directory.

From Command line terminal:

ebf <device name> sdcard ls [DIR_NAME_OPTIONAL]

Example:

ebf bbb02 sdcard ls sdb1

beaglebone_black.dtb           File       root         36K      Dec 17, 2020 08:20:14 PM
MLO                            File       root         108K     Dec 16, 2020 10:43:48 AM
powernet426.mib                File       root         2.5M     Dec 24, 2020 10:38:04 AM
uboot.env                      File       root         128K     Jan 01, 1980 05:30:00 AM
u-boot.img                     File       root         633K     Dec 16, 2020 05:21:22 PM
uImage-4.14-ts-armv7l          File       root         5.0M     Dec 17, 2020 08:20:08 PM

mkdir

Create a directory inside an SDCard partition, directory name is mandatory.

From Command line terminal:

ebf <device name> sdcard mkdir [DIR_NAME]

Example:

ebf bbb02 sdcard mkdir sdb1/tmp

Successfully Directory sdb1/tmp created

rm

Delete a directory/file inside a sdcard partition, directory, or file name is mandatory.

From Command line terminal:

ebf <device name> sdcard rm [DIR_NAME/FileName]

Example:

ebf bbb02 sdcard rm sdb1/tmp

Successfully Directory sdb1/tmp deleted

format

Format an SDcard partition. The format partition information should be provided in the form of “,” separated of “PARTITION, PARTITION_TYPE”. The below example will format Partition sda1 into vfat and sda2 into ext4.

From Command line terminal:

ebf <device name> sdcard format partition,partition-type

Example:

ebf bbb02 sdcard format sda1,vfat sda2,ext4

Successfully format the partitions

partition

Create and format an SDcard partition. The partition information should be provided “,” separated in the form of LABEL, SIZE(MB), PARTITION_TYPE, BOOTABLE(True/FALSE). The below example will create Partition A of size 1000 MB and type Vfat and the bootable flag is set to “True” and Partition B of size 8000 MB and type ext4

From Command line terminal:

ebf <device name> sdcard partiion label,size,partition-type,bootable(optional)

Example:

ebf bbb01 sdcard partition A,1000,vfat,True B,8000,ext4

Successfully created the partitions

backup

Create a backup of SDCard, you can also check the progress status of a backup job and also delete a backup job.

From Command line terminal:

ebf <device name> sdcard backup [status|remove] [ARGS]

Description
   status [JOB-ID]  it will provide the status off all the backup jobs in running or queue state
                    You can also check the status of a single job using backup Job-ID.
   remove [Job-ID]  It will cancel the backup jobs and remove them from the list

Example:

1. ebf bbb01 sdcard backup (To start a SDcard Backup)
2. ebf bbb01 sdcard backup status (To see the Backup Job Queue)
3. ebf bbb01 sdcard backup status 04366c6a-fde2-424d-9aea-1174cb24650d (To check the progress status of a backup job)
4. ebf bbb01 sdcard backup remove 04366c6a-fde2-424d-9aea-1174cb24650d (To remove a backup job from the queue)

flash

Upload/Extract/Copy/Flash a rootfs/file/image to a sdcard or it’s partition.

From Command line terminal:

ebf <device name> sdcard flash [local|server|status|remove] [OPTIONS]

Description
   local|server     Extract or copy a File/Dir from the local system or EBF-Server
                    into an SDCrad Partition or Directory.
   status [JOB-ID]  it will provide the status off all the flashing jobs in running or queue state
                    You can also check the status of a single job using upload Job-ID.
   remove [Job-ID]  It will cancel the jobs and remove them from the list

Option Includes:
  *   -f | --file            - path of a local file or EBF-Server
  *   -p | --partition       - partition in which you want to copy/flash image
      -t | --tool            - provide tool from [tar, cp, unzip, dd, zcat_dd, bmaptool] to upload/flash a file/image
      -b | --backup          - Backup SDCard befor flashing an image, valid options are [on/off]
      -m | --mkfs            - Format sdcard before flashing an image, valid options are [on/off]
      -a | --cmd-args        - any arguments you want to provide with upload tool selected
      -r | --remove-after    - This will delete file from EBF-Server after image flashing, valid options are [on/off]
   -bmap | --bmap-file       - Path of any bmap file

  *  Indicates Mandatory Arguments

Example:

1. ebf bbb01 sdcard flash local -f /tmp/hello.txt -p sda1
2. ebf bbb01 sdcard flash local -f /tmp/rootfs.tar.gz -p sda2 -t tar -a xz -m on
3. ebf bbb01 sdcard flash server -f rootfs.tar.gz -p sda2 -t tar -a xz -m on -r on
4. ebf bbb01 sdcard flash server -f rootfs.tar.gz -p sda2 -t tar -a xz -m on -r on -b on
5. ebf bbb01 sdcard flash status
6. ebf bbb01 sdcard flash status 04366c6a-fde2-424d-9aea-1174cb24650d
7. ebf bbb01 sdcard flash remove 04366c6a-fde2-424d-9aea-1174cb24650d

download

Download a file from an SDCard Partition to a local machine.

From Command line terminal:

ebf <device name> sdcard download <src-file-path> <dst-file-path>

Example:

ebf bbb02 sdcard download tmp/file1.txt /home/tmp/

Successfully Downloaded "tmp/file1.txt" into "/home/tmp/file1.txt"

upload

Upload a file from Local Machine to an SDCard Partition.

From Command line terminal:

ebf <device-name> sdcard upload [SRC_FILE_PATH] [DST_FILE_PATH]

Example:

ebf bbb02 netboot sdcard /tmp/file1.txt fsroot/

Successfully Uploaded file "/tmp/file1.txt" into "fsroot/file1.txt"

usb

info

Provides the USB information on its size, partition, etc.

From Command line terminal:

ebf <device name> usb info

Example:

ebf bbb02 usb info

USB Information

sdb: 59.5G
sdb1: 2G (vfat)
sdb2: 57.5G (ext4)

side

Provides whether the USB is connected to the Zombie side or the Device side.

From Command line terminal:

ebf <device name> usb side

Example:

ebf bbb02 usb side

USB is connected to "device" side

switch

It will connect the USB to the Device side or Zombie side or Switch from the current side.

From Command line terminal:

ebf <device name> usb switch [device|zombie|side]

Example:

ebf bbb02 usb switch zombie

USB is switched to "zombie" side

ls

List the content of USB, by default it shows the partitions of USB and you can provide that partition or directory inside that partition, and It will show you the content of that directory.

From Command line terminal:

ebf <device name> usb ls [DIR_NAME_OPTIONAL]

Example:

ebf bbb02 usb ls sdb1

beaglebone_black.dtb           File       root         36K      Dec 17, 2020 08:20:14 PM
MLO                            File       root         108K     Dec 16, 2020 10:43:48 AM
powernet426.mib                File       root         2.5M     Dec 24, 2020 10:38:04 AM
uboot.env                      File       root         128K     Jan 01, 1980 05:30:00 AM
u-boot.img                     File       root         633K     Dec 16, 2020 05:21:22 PM
uImage-4.14-ts-armv7l          File       root         5.0M     Dec 17, 2020 08:20:08 PM

mkdir

Create a directory inside a USB partition, directory name is mandatory.

From Command line terminal:

ebf <device name> usb mkdir [DIR_NAME]

Example:

ebf bbb02 usb mkdir sdb1/tmp

Successfully Directory sdb1/tmp created

rm

Delete a directory/file inside a USB partition, directory, or file name is mandatory.

From Command line terminal:

ebf <device name> usb rm [DIR_NAME/FileName]

Example:

$ebf bbb02 usb rm sdb1/tmp

Successfully Directory sdb1/tmp deleted

format

Format a USB partition. The format partition information should be provided in the form of “,” separated of “PARTITION, PARTITION_TYPE”. The below example will format Partition sda1 into vfat and sda2 into ext4.

From Command line terminal:

ebf <device name> usb format partition,partition-type

Example:

ebf bbb02 usb format sda1,vfat sda2,ext4

Successfully format the partitions

partition

Create and format USB partition. The partition information should be provided “,” separated in the form of LABEL, SIZE(MB), PARTITION_TYPE, BOOTABLE(True/FALSE). The below example will create Partition A of size 1000 MB and type Vfat and the bootable flag is set to “True” and Partition B of size 8000 MB and type ext4

From Command line terminal:

ebf <device name> usb partiion label,size,partition-type,bootable(optional)

Example:

ebf bbb01 usb partition A,1000,vfat,True B,8000,ext4

Successfully created the partitions

backup

Create a backup of USB, you can also check the progress status of a backup job and also delete a backup job.

From Command line terminal:

ebf <device name> usb backup [status|remove] [ARGS]

Description
   status [JOB-ID]  it will provide the status off all the backup jobs in running or queue state
                    You can also check the status of a single job using backup Job-ID.
   remove [Job-ID]  It will cancel the backup jobs and remove them from the list

Example:

1. ebf bbb01 usb backup (To start a USB Backup)
2. ebf bbb01 usb backup status (To see the Backup Job Queue)
3. ebf bbb01 usb backup status 04366c6a-fde2-424d-9aea-1174cb24650d (To check the progress status of a backup job)
4. ebf bbb01 usb backup remove 04366c6a-fde2-424d-9aea-1174cb24650d (To remove a backup job from the queue)

flash

Upload/Extract/Copy/Flash a rootfs/file/image to a USB or it’s partition From Command line terminal:

ebf <device name> usb flash [local|server|status|remove] [OPTIONS]

Description
   local|server     Extract or copy a File/Dir from local system or EBF-Server
                    into a USB Partition or Directory.
   status [JOB-ID]  it will provide the status off all the flashing jobs in running or queue state
                    You can also check the status of a single job using upload Job-ID.
   remove [Job-ID]  It will cancel the jobs and remove it from the list

Option Includes:
  *   -f | --file            - path of a local file or EBF-Server
  *   -p | --partition       - partition in which you want to copy/flash image
      -t | --tool            - provide tool from [tar, cp, unzip, dd, zcat_dd, bmaptool] to upload/flash a file/image
      -b | --backup          - Backup USB befor flashing an image, valid options are [on/off]
      -m | --mkfs            - Format USB before flashing an image, valid options are [on/off]
      -a | --cmd-args        - any arguments you want to provide with upload tool selected
      -r | --remove-after    - This will delete file from EBF-Server after image flashing, valid options are [on/off]
   -bmap | --bmap-file       - Path of any bmap file

  *  Indicates Mandatory Arguments

Example:

1. ebf bbb01 usb flash local -f /tmp/hello.txt -p sda1
2. ebf bbb01 usb flash local -f /tmp/rootfs.tar.gz -p sda2 -t tar -a xz -m on
3. ebf bbb01 usb flash server -f rootfs.tar.gz -p sda2 -t tar -a xz -m on -r on
4. ebf bbb01 usb flash server -f rootfs.tar.gz -p sda2 -t tar -a xz -m on -r on -b on
5. ebf bbb01 usb flash status
6. ebf bbb01 usb flash status 04366c6a-fde2-424d-9aea-1174cb24650d
7. ebf bbb01 usb flash remove 04366c6a-fde2-424d-9aea-1174cb24650d

download

Download a file from a USB Partition to a local machine.

From Command line terminal:

ebf <device name> usb download <src-file-path> <dst-file-path>

Example:

ebf bbb02 usb download tmp/file1.txt /home/tmp/

Successfully Downloaded "tmp/file1.txt" into "/home/tmp/file1.txt"

upload

ad a file from Local Machine to a USB Partition.

From Command line terminal:

ebf <device-name> usb upload [SRC_FILE_PATH] [DST_FILE_PATH]

Example:

ebf bbb02 netboot usb /tmp/file1.txt fsroot/

Successfully Uploaded file "/tmp/file1.txt" into "fsroot/file1.txt"

u-boot flash using serial

For flashing u-bbot into a device using serial connection through Xmodem/Ymodem/Zmodem

From Command line terminal:

ebf <device name> uboot flash -f [uboot file path] -p [xmodem/ymodem/zmodem]

Example:

ebf bbb01 uboot flash -f /tmp/uboot.bin -p xmodem
ebf bbb01 uboot flash -f /tmp/uboot.bin -p ymodem
ebf bbb01 uboot flash -f /tmp/uboot.bin -p zmodem

Delete Zombie

Delete the Zombie and all the devices connected to it. Only admin can delete the Zombie.

From Command line terminal:

ebf zombie <zombie name> delete

Example:

ebf zombie Zombie01 delete

It will delete Zombie "Zombie01" as well as all the devices connected to it
Would you like to proceed [Y/N] ? [N] >>> Y
Zombie Zombie01 deleted successfully

Zombie Power

To Power on/off/reboot Zombie

From Command line terminal:

ebf zombie <zombie-name>

Example:

ebf zombie Zombie01 power on

Zombie Zombie01 is successfully power on

Example:

ebf zombie Zombie01 power off

Zombie Zombie01 is successfully power off

Example:

ebf zombie Zombie01 power reboot

Zombie Zombie01 is successfully power reboot

IOCX Power

To Power on/off/reboot IOCX

From Command line terminal:

ebf <device name> iocx power [on/off/reboot]

Example:

ebf bbb01 iocx power on

IOCX connected to "bbb01" is successfully power on
ebf bbb01 iocx power off

IOCX connected to "bbb01" is successfully power off
ebf bbb01 iocx power reboot

IOCX connected to "bbb01" is successfully power reboot

Share/Unshare usb devices

Description: To share/unshare any usb device connected to zombie/appzombie

From Command line terminal:

ebf <device-name> <zombie|appzombie> usb <list|share|unshare> [bus-id]

Options:
   list        List all the sharable USB devices connected on zombie/appzombie
   share       Share a USB device connected to zombie/appzombie
   unshare     Unshare a USB device connected to zombie/appzombie
   autoshare   Set/Unset the autoshare status of a USB in zombie/appzombie

Example:

Example 1: ebf rpi-demo zombie usb list
Example 2: ebf rpi-demo zombie usb share 1-1.4.2
Example 3: ebf rpi-demo zombie usb unshare 1-1.4.2
Example 4: ebf rpi-demo appzombie usb list
Example 5: ebf rpi-demo appzombie usb share 1-1.4.2
Example 6: ebf rpi-demo appzombie usb unshare 1-1.4.2
Example 7: ebf rpi-demo zombie usb autoshare "1-1.4.4" "HP, Inc" on
Example 8: ebf rpi-demo appzombie usb autoshare "1-1.4.4" "HP, Inc" off

Search/Allocate devices

Description: Search for devices in EBF and allocate the first available device based on search options.

From Command line terminal:

ebf allocate device [--field=hostname|description|device_version|device_type|tags|lab_controller] [SEARCH OPTIONS]

Field selection and interpretation:
   hostname          search based on device name
   description       search based on device description
   device_version    search based on device version
   device_type       search based on device type
   tags              search based on device tag
   lab_controller    search based on device associated with a Zombie

Search Option:
   --search-exact=<name of device you want to search>
   --search-in=<list of devices separated by comma>
   --starts-with=<search the devices if it starts with text provided>
   --ends-with=<search the devices if it ends with text provided>
   --search-contains=<case-sensitive search if the provided text present>
   --search-icontains=<ignore-case based search if the provided text present>

Example:

1. ebf allocate device --field=hostname --search-exact=bbb1
2. ebf allocate device --field=device_type --starts-with=Test --ends-with=App
3. ebf allocate device --field=tags --search-contains=test
4. ebf allocate device --field=lab_controller --search-in=Zombie1,Zombie2,Zombie3
5. ebf allocate device --field=hostname --search-icontains=bbb --field=tags --search-contains=test

Submit LAVA Jobs

Description: To submit testjob on EBF and see results

From Command line terminal:

ebf lava jobs [OPTION] <job-id> <arguments>

Options:

 submit     To sumbit testjob YAML or Saved jobs to EBF
 resubmit   To resumbit already running testjob
 results    To see the test results in junit/tap13 format
 logs       To get the testjob logs
 status     To get the status of a testjob

Example:

Example 1: ebf lava jobs submit -f ./testjob.yaml
Example 2: ebf lava jobs submit -s saved-job-name
Example 3: ebf lava jobs resubmit 44
Example 4: ebf lava jobs status 44
Example 5: ebf lava jobs logs 44
Example 6: ebf lava jobs results 44 (default format tap13)
Example 7: ebf lava jobs results 44 --format junit

uuu flash

Description:

local|server|golden_image      Select a File from local system, EBF-Server or a golden image

From Command line terminal:

ebf <device name> ebf <device name> uuu [flash|status|cancel] [zombie|appzombie] --file1 [local|server|golden_image] <file1-path> [OPTIONS]


Option Includes:
  *   --file1                    - path of a local file or EBF-Server
      --file2                    - comma separated path of files on local machine or EBF-Server
      --cmd-args                 - any arguments you want to provide with upload tool selected
      --uuu-script               - use this if file1 is uuu script
      -r                         - This will delete file from EBF-Server after image flashing, valid options are [on/off]

  *  Indicates Mandatory Arguments

Example:

Usage Examples:
   1. ebf imx6ull_1vk uuu flash zombie --file1 server u-boot-imx6ul14x14evk_sd.imx -r on
   2. ebf imx6ull_1vk uuu flash zombie --file1 local /home/u-boot-imx6ul14x14evk_sd.imx -r off
   3. ebf imx6ull_1vk uuu flash zombie --file1 golden_image u-boot-imx6ul14x14evk_sd.imx -r on --cmd-args "-b sd"
   4. ebf imx6ull_1vk uuu flash appzombie --file1 golden_image u-boot-imx6ul14x14evk_sd.imx --uuu-script
   5. ebf imx6ull_1vk uuu flash appzombie --file1 local /home/uuu.auto --file2 local /home/u-boot-imx6ul14x14evk_sd.imx,/home/ankit/imx-image-multimedia-imx6ul7d.wic --uuu_script
   5. ebf imx6ull_1vk uuu status appzombie
   6. ebf imx6ull_1vk uuu status appzombie 04366c6a-fde2-424d-9aea-1174cb24650d
   7. ebf imx6ull_1vk uuu cancel zombie 04366c6a-fde2-424d-9aea-1174cb24650d

Download Console Logs

Description: Download the console logs of a device

From Command line terminal:

Usage: ebf <device name> console logs [download] <save-logs-name>

Example:

Example1: ebf bbb01 console logs (show the console logs)
Example2: ebf bbb01 console logs serial0 download (download and save logs in current directory for console serial0)
Example3: ebf bbb01 console logs download /tmp/logs (download and save logs in /tmp/logs)

Resource

Get Resource

ebf <DeviceName> get-resource <ResourceType>

Example:

ebf rpi3-2 get-resource power-measurement

ACME1

Power Management

Start Capture

ebf  <ResourceName> power-measurement start

Example:

ebf ACME1 power-measurement start

1639551980

Stop Capture

ebf <ResourceName>  power-measurement stop <token>
ebf ACME1 power-measurement stop 1639551980
success

Get Data

ebf <ResourceName>  power-measurement get-data <token>
ebf ACME1 power-measurement get-data 1639551980

timestamp,voltage,current 1572708765,5136.289,350.707 1572708766,5136.238,351.026 1572708767,5136.247,350.910 1572708768,5136.248,350.862 1572708769,5136.207,350.965 1572708770,5136.216,350.918 1572708771,5136.238,350.876 1572708772,5136.225,350.931 1572708773,5136.243,350.907 1572708774,5136.250,350.895 1572708775,5136.239,350.944 1572708776,5136.248,350.924 1572708777,5136.252,350.912 1572708778,5136.246,350.947 1572708779,5136.246,350.938 1572708780,5136.248,350.921 1572708781,5136.245,350.951

Delete Data

ebf <ResourceName>  power-measurement delete <token>
ebf ACME1 power-measurement delete 1639551980

success

Camera

In order to execute below command you need to do add device resource map and resource config.

Refer “How to add camera Device Resource Map and Resource Config”:https://linuxlink.timesys.com/docs/bfc/admin_guide#How-to-Add-Camera-Device-Resource-Map-and-Resource-Config

Capture Still Image

ebf <ResourceName> camera capture
ebf CAM1 camera capture

http://172.16.30.246/camera/raspbian-2021-12-15_071208.jpg
ebf <ResourceName> camera capture -o <Filename>
ebf CAM1 camera capture -o myImage.jpg

Successfully Downloaded the file myImage.jpg

Audio

In order to execute below command you need to do add device resource map and resource config.

Refer “How to Add Audio Device Resource Map and Resource Config

Start

$ebf <ResourceName> audio start
ebf AUDIO1 audio start

b8ea9ad2d6454d9caa10c1138bf25c89

Stop

$ebf <ResourceName> audio stop <Audio-Id>
ebf AUDIO1 audio stop b8ea9ad2d6454d9caa10c1138bf25c89

success

Get Reference

ebf <ResourceName> audio get-ref <Audio-Id>
ebf AUDIO1 audio get-ref b8ea9ad2d6454d9caa10c1138bf25c89

https://172.16.30.245/audio/test-b8ea9ad2d6454d9caa10c1138bf25c89.wmv

Download Audio File

ebf <ResourceName> audio get-ref <Audio-Id> -o <Filename>.wmv
ebf AUDIO1 audio get-ref b8ea9ad2d6454d9caa10c1138bf25c89 -o test_audio.wmv

Successfully Downloaded the file test_audio.wmv

Delete

ebf <ResourceName> audio get-ref <Audio-Id>
ebf AUDIO1 audio delete b8ea9ad2d6454d9caa10c1138bf25c89

success

Console Sharing

Status

ebf <device-name> console sharing status
ebf dev1 console sharing status

Console sharing is disabled for this device.

Enable

ebf <device-name> console sharing enable
ebf dev1 console sharing enable

Successfully enabled console sharing for this device.

Disable

ebf <device-name> console sharing disable
ebf dev1 console sharing disable

Successfully disabled console sharing for this device.

Appendix

How to setup SSL certificate for EBF-CLI

This section will provide you the information regarding how we can use EBF-CLI in secure mode using a valid SSL client certificate.

How To Download SSL Certificate

One can download an SSL certificate using a web browser or from a command line. In this section, We will explain the download procedure for Ubuntu with google-chrome as a web browser and it might be different for other distributions. If you are using some other distributions then you have to first install an SSL certificate and then you can use EBF-CLI.

Using Web Browser

Following are the steps to download an ssl certificate using a web browser.

1 Access the EBF server URL and click on the “View Site Information” icon as shown below.

_images/ssl_browser_0.png

2 Then Click “Connection is Secure” -> “Certificate is Valid” -> Details

_images/ssl_details.png

3 Then Click on “Export” and save the certificate with .crt extension e.g. ebf_client_cert.crt

_images/ssl_cert_save.png

Using Command Line

Following are the steps to install an ssl certificate using the command line.

1 In order to download a certificate from the command line, you need OpenSSL and a ca-certificates package installed on your system, if not already installed then install using below commands. Install open ssl package by using this command sudo apt-get install -y openssl. Install open ca-certificate package by using this command sudo apt-get install -y ca-certificates

2 From the command line type the below command.

openssl s_client -connect <EBF URL>:443|tee ebf_ssl_cert.crt
E.g openssl s_client -connect 172.16.30.246:443| tee ebf_ssl_cert.crt

3 After successfully executing the above command the ssl certificate will be saved as ebf_ssl_cert.crt

How to Install SSL Certificate

Following are the steps to install an ssl certificate.

1 Copy the downloaded certificate in /usr/local/share/ca-certificates/ directory

sudo cp ebf_ssl_cert.crt /usr/local/share/ca-certificates/

2 Run the below command in order to update the ssl certificate list

sudo update-ca-certificates

How To Configure EBF-CLI for SSL certificate

Following are the steps to configure ssl certificate for EBF-CLI.

1 Download and install the latest EBF-CLI. Click Here

2 Login to EBF using EBF-CLI

ebf login

3 Provide details to configure EBF-CLI on ssl.

_images/ssl_on.png