man(8)

πŸ“¦
version 2.7.1 Β· 3 versions
, in fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– bfb-install β€” from the man(8) girlies πŸ’–

okay bestie, sit down, hydrate, and let me tell you about bfb-install β€” it's the glow-up script from the man(8) manual section, and it's literally the BFB installing script for BlueField SoC over the rshim driver. she's niche but she ATE. πŸŽ€


✨ NAME ✨

bfb-install β€” BFB installing script for BlueField SoC over rshim driver


🌸 SYNOPSIS 🌸

bfb-install -b, --bfb <bfb_file> -r, --rshim [<ip:>[:port]:]rshim<N>
[-a, --activate <0 | 1>] [-c, --config <config_file>] [-f, --rootfs
<rootfs_file>] [-h, --help] [-k, --keep-log] [-l, --lfwp] [-m, --remote-
mode <scp|nc|ncpipe>] [-R, --reverse-nc] [-u, --runtime] [-v, --verbose]

like. look at her. all those little bracket besties. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

bfb-install is a utility script to install or activate BFB images on BlueField SoC over the rshim driver. that's the whole vibe. install, activate, slay.

so here's the tea on how she decides where to go:

when the --rshim option doesn't provide an ip argument, the script runs in local mode β€” she tries to access the local rshim device and installs the BFB image through it. cozy. local. home turf. 🏠

when the --rshim option does provide an ip argument, she goes remote mode β€” accessing the remote rshim device and installing the BFB image through it. long distance relationship, but make it firmware. ✈️

and there are three remote modes, bestie, keep up:

  • scp β€” uses the scp command to transfer the BFB image to the remote rshim device. this is the default remote mode, she's the main character by default. πŸ‘‘
  • nc β€” uses the nc command to transfer the BFB image to the remote rshim device.
  • ncpipe β€” similar to nc, but uses a named pipe on the remote device to help transfer the BFB image and achieve faster speed. she's the speedrun version. πŸ”₯

now, the --reverse-nc flag β€” used with the nc or ncpipe remote modes β€” enables a reversed connection method where the remote host operates as a netcat server and the local host, as a client, initiates the connection. this method is particularly useful for environments with firewall restrictions on the local host side. so like, when the local host's firewall said "no ❀️", reverse-nc said "bet". πŸ™ˆ


πŸ’… OPTIONS πŸ’…

  • -a, --activate β€” this argument is used for upgrade activation. for now it's only used with LFWP (Live-Firmware-Patch). --lfwp enables LFWP and does activation by default unless --activate=0 is specified. so yeah, she activates unless you explicitly tell her not to. respect the boundaries.
  • -b, --bfb β€” this is the BFB image to use, which is pushed as the boot stream. when doing runtime upgrade, a bundle BFB with initramfs gets converted to a flat bfb with FW images only before being pushed as the boot stream. glow-down to glow-up pipeline. ✨
  • -c, --config β€” this is an optional configuration file to use, usually called bf.cfg.
  • -f, --rootfs β€” this is the optional rootfs tar.xz file which is uaually used when installing Yocto. (yes, "uaually". the manual said what it said and we don't edit the queen. πŸ’€)
  • -h, --help β€” show the help message.
  • -k, --keep-log β€” do not clear the rshim log buffer after reading during bfb install. keep the receipts, bestie. 🧾
  • -l, --lfwp β€” this argument is used to enable LFWP (Live-Firmware-Patch).
  • -m, --remote-mode β€” specify the remote mode to use. the default mode is scp. the available modes are scp, nc, and ncpipe.
  • -r, --rshim β€” this is the rshim device to use, in the format of [<ip>:<port>:]rshim<N>. the ip and port are optional and only used when the remote mode is specified. these two fields will be ignored when the remote mode is not specified. both IP address and host name are supported for the ip field. if the port is not provided, the default port 9527 is used. the N is the rshim device number, usually 0 or 1. so like rshim0 or rshim1, she's not complicated. πŸŽ€
  • -R, --reverse-nc β€” enables a reverse connection for nc and ncpipe modes, allowing the local host to initiate a connection to a netcat server running on the remote. 🫢
  • -u, --runtime β€” run upgrade in runtime mode (BF3 + local rshim only). read that again. BF3. local rshim. only. don't try her anywhere else, she will simply not. πŸ’€
  • -v, --verbose β€” show verbose output. she will tell you EVERYTHING. no secrets. πŸ—£οΈ

🌈 EXAMPLES 🌈

to install a BFB image using the host rshim method:

bfb-install --bfb bluefield.bfb --rshim rshim0

to install a BFB image using the BMC rshim scp method:

bfb-install --bfb bluefield.bfb --rshim 10.15.8.200:rshim0

to install a BFB image using the BMC rshim nc method:

bfb-install --bfb bluefield.bfb --rshim 10.15.8.200:rshim0
--remote-mode nc

to install a BFB image using the BMC rshim ncpipe method with custom port number and verbose output:

bfb-install --bfb bluefield.bfb --rshim 10.15.8.200:9709:rshim0
--remote-mode ncpie --verbose
ngl bestie, yes, that example says ncpie and not ncpipe. that is exactly what the manual says, character for character, so I'm keeping it. she's built different. or built typo'd. either way she's iconic. πŸ™ˆ

to install a BFB image in local mode with a custom configuration file:

bfb-install --bfb bluefield.bfb --rshim rshim0 --config bf.cfg

to install a BFB image with the BMC rshim using the netcat pipe method and a reverse connection, specifying a local port within the rshim value:

bfb-install --bfb bluefield.bfb --rshim 10.15.8.200:9709:rshim0
--remote-mode ncpipe --reverse-nc

πŸ‘‘ KNOWN ISSUES πŸ‘‘

okay this is the serious part, so put the phone down for one sec. 🫢

when using remote mode nc or ncpipe, there's a short window of time when there is a netcat server running on the local or remote host on the specified TCP port (default 9527). this could be a potential security risk.

so these two methods should only be used on a secure network and the security implications are understood. no cap. fr fr. do not run this on a random coffee shop wifi and then act surprised. πŸ’€

and that's the whole page, bestie!! πŸ¦‹ this was bfb-install from the man(8) pages, source/version 3.0, dated 2 Feb 2024. go install something and be safe out there. mwah. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from