linux-docs icon indicating copy to clipboard operation
linux-docs copied to clipboard

Include installation guide for framework_tool

Open rugk opened this issue 4 months ago • 8 comments

I've heard in the forum about framework_tool, but i see it nowhere, how ti install the tool. Maybe you can include a guide here?

BTW I only found one official package in openSUSE, for some reason: https://pkgs.org/download/framework_tool

rugk avatar Sep 09 '25 23:09 rugk

CC @JohnAZoidberg - I can tackle this, but I wanted to put this on your radar as this is your project, did not wish to overstep.

ctsdownloads avatar Sep 17 '25 06:09 ctsdownloads

Let's document it upstream https://github.com/frameworkcomputer/framework-system?tab=readme-ov-file#installation

JohnAZoidberg avatar Sep 17 '25 06:09 JohnAZoidberg

Maybe from here we can link to there

JohnAZoidberg avatar Sep 17 '25 06:09 JohnAZoidberg

https://github.com/FrameworkComputer/framework-system/pull/216

JohnAZoidberg avatar Sep 19 '25 06:09 JohnAZoidberg

@rugk is that good?

JohnAZoidberg avatar Sep 19 '25 06:09 JohnAZoidberg

Yeah, I am not sure the Bazzite part is still up2date, at least on Bluefin. On all ublue OSes (or in general when you have LinuxBrew installed?), I found out it can be installed from this tap: https://github.com/ublue-os/homebrew-tap

rugk avatar Sep 26 '25 21:09 rugk

On Bluefin ATM, confirmed it is available only in homebrew-tap:

❯ brew tap ublue-os/tap
✔︎ JSON API formula.jws.json                                                             [Downloaded   31.7MB/ 31.7MB]
✔︎ JSON API cask.jws.json                                                                [Downloaded   15.0MB/ 15.0MB]
==> Tapping ublue-os/tap
Cloning into '/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/ublue-os/homebrew-tap'...
remote: Enumerating objects: 1078, done.
remote: Counting objects: 100% (328/328), done.
remote: Compressing objects: 100% (152/152), done.
remote: Total 1078 (delta 267), reused 188 (delta 176), pack-reused 750 (from 2)
Receiving objects: 100% (1078/1078), 253.89 KiB | 1.29 MiB/s, done.
Resolving deltas: 100% (614/614), done.
Tapped 11 casks and 2 formulae (30 files, 333.1KB).

~ via 🐍 v3.13.9 took 2s 
❯ brew install framework_tool
Warning: No available formula with the name "framework_tool". Did you mean framework-tool-tui?
==> Searching for similarly named formulae and casks...
==> Formulae
framework-tool-tui ✔

To install framework-tool-tui ✔, run:
  brew install framework-tool-tui ✔

==> Casks
ublue-os/tap/framework-tool

To install ublue-os/tap/framework-tool, run:
  brew install --cask ublue-os/tap/framework-tool

~ via 🐍 v3.13.9 
❯ brew install --cask ublue-os/tap/framework-tool
==> Auto-updating Homebrew...
Adjust how often this is run with `$HOMEBREW_AUTO_UPDATE_SECS` or disable with
`$HOMEBREW_NO_AUTO_UPDATE=1`. Hide these hints with `$HOMEBREW_NO_ENV_HINTS=1` (see `man brew`).
==> Downloading https://github.com/FrameworkComputer/framework-system/releases/download/v0.4.5/framework_tool
==> Downloading from https://release-assets.githubusercontent.com/github-production-release-asset/673133166/ce844ac7-
############################################################################################################## 100.0%
==> Installing Cask framework-tool
==> Linking Binary 'framework_tool' to '/home/linuxbrew/.linuxbrew/bin/framework_tool'
🍺  framework-tool was successfully installed!

~ via 🐍 v3.13.9 took 3s 
❯ sudo framework-tool
[sudo] password for matt: 
sudo: framework-tool: command not found

~ via 🐍 v3.13.9 took 2s 
❯ /home/linuxbrew/.linuxbrew/bin/framework_tool
Swiss army knife for Framework laptops

Usage: framework_tool [OPTIONS]

Options:
      --flash-gpu-descriptor <fgd> <fgd>
          
  -v, --verbose...
          Increase logging verbosity
  -q, --quiet...
          Decrease logging verbosity
      --versions
          List current firmware versions
      --version
          Show tool version information (Add -vv for more details)
      --features
          Show features support by the firmware
      --esrt
          Display the UEFI ESRT table
      --device <DEVICE>
          [possible values: bios, ec, pd0, pd1, rtm01, rtm23, ac-left, ac-right]
      --compare-version <COMPARE_VERSION>
          
      --power
          Show current power status of battery and AC (Add -vv for more details)
      --thermal
          Print thermal information (Temperatures and Fan speed)
      --sensors
          Print sensor information (ALS, G-Sensor)
      --fansetduty [<FANSETDUTY>...]
          Set fan duty cycle (0-100%)
      --fansetrpm [<FANSETRPM>...]
          Set fan RPM (limited by EC fan table max RPM)
      --autofanctrl
          Turn on automatic fan speed control
      --pdports
          Show information about USB-C PD ports
      --info
          Show info from SMBIOS (Only on UEFI)
      --pd-info
          Show details about the PD controllers
      --pd-reset <PD_RESET>
          Reset a specific PD controller (for debugging only)
      --pd-disable <PD_DISABLE>
          Disable all ports on a specific PD controller (for debugging only)
      --pd-enable <PD_ENABLE>
          Enable all ports on a specific PD controller (for debugging only)
      --dp-hdmi-info
          Show details about connected DP or HDMI Expansion Cards
      --dp-hdmi-update <UPDATE_BIN>
          Update the DisplayPort or HDMI Expansion Card
      --audio-card-info
          Show details about connected Audio Expansion Cards (Needs root privileges)
      --privacy
          Show privacy switch statuses (camera and microphone)
      --pd-bin <PD_BIN>
          Parse versions from PD firmware binary file
      --ec-bin <EC_BIN>
          Parse versions from EC firmware binary file
      --capsule <CAPSULE>
          Parse UEFI Capsule information from binary file
      --dump <DUMP>
          Dump extracted UX capsule bitmap image to a file
      --h2o-capsule <H2O_CAPSULE>
          Parse UEFI Capsule information from binary file
      --dump-ec-flash <DUMP_EC_FLASH>
          Dump EC flash contents
      --flash-ec <FLASH_EC>
          Flash EC (RO+RW) with new firmware from file - may render your hardware unbootable!
      --flash-ro-ec <FLASH_RO_EC>
          Flash EC with new RO firmware from file - may render your hardware unbootable!
      --flash-rw-ec <FLASH_RW_EC>
          Flash EC with new RW firmware from file
      --intrusion
          Show status of intrusion switch
      --inputdeck
          Show status of the input modules (Framework 16 only)
      --inputdeck-mode <INPUTDECK_MODE>
          Set input deck power mode [possible values: auto, off, on] (Framework 16 only) [possible values: auto, off, on]
      --expansion-bay
          Show status of the expansion bay (Framework 16 only)
      --charge-limit [<CHARGE_LIMIT>]
          Get or set max charge limit
      --charge-current-limit <CHARGE_CURRENT_LIMIT>...
          Set max charge current limit
      --charge-rate-limit <CHARGE_RATE_LIMIT>...
          Set max charge current limit
      --get-gpio [<GET_GPIO>]
          Get GPIO value by name or all, if no name provided
      --fp-led-level [<FP_LED_LEVEL>]
          Get or set fingerprint LED brightness level [possible values: high, medium, low, ultra-low, auto]
      --fp-brightness [<FP_BRIGHTNESS>]
          Get or set fingerprint LED brightness percentage
      --kblight [<KBLIGHT>]
          Set keyboard backlight percentage or get, if no value provided
      --remap-key <REMAP_KEY> <REMAP_KEY> <REMAP_KEY>
          Remap a key by changing the scancode
      --rgbkbd <RGBKBD> <RGBKBD>...
          Set the color of <key> to <RGB>. Multiple colors for adjacent keys can be set at once. <key> <RGB> [<RGB> ...] Example: 0 0xFF000 0x00FF00 0x0000FF
      --tablet-mode <TABLET_MODE>
          Set tablet mode override [possible values: auto, tablet, laptop]
      --touchscreen-enable <TOUCHSCREEN_ENABLE>
          Enable/disable touchscreen [possible values: true, false]
      --stylus-battery
          Check stylus battery level (USI 2.0 stylus only)
      --console <CONSOLE>
          Get EC console, choose whether recent or to follow the output [possible values: recent, follow]
      --reboot-ec <REBOOT_EC>
          Control EC RO/RW jump [possible values: reboot, jump-ro, jump-rw, cancel-jump, disable-jump]
      --ec-hib-delay [<EC_HIB_DELAY>]
          Get or set EC hibernate delay (S5 to G3)
      --hash <HASH>
          Hash a file of arbitrary data
      --driver <DRIVER>
          Select which driver is used. By default portio is used [possible values: portio, cros-ec, windows]
      --pd-addrs <PD_ADDRS> <PD_ADDRS> <PD_ADDRS>
          Specify I2C addresses of the PD chips (Advanced)
      --pd-ports <PD_PORTS> <PD_PORTS> <PD_PORTS>
          Specify I2C ports of the PD chips (Advanced)
  -t, --test
          Run self-test to check if interaction with EC is possible
  -f, --force
          Force execution of an unsafe command - may render your hardware unbootable!
      --dry-run
          Simulate execution of a command (e.g. --flash-ec)
      --flash-gpu-descriptor-file <FLASH_GPU_DESCRIPTOR_FILE>
          File to write to the gpu EEPROM
      --dump-gpu-descriptor-file <DUMP_GPU_DESCRIPTOR_FILE>
          File to dump the gpu EEPROM to
  -h, --help
          Print help

I have not submitted this to https://github.com/FrameworkComputer/framework-system yet as I need to understand what is going on with brew and how it is running applications; think it may just be broken on my machine.

I want to confirm all is well for sudo framework-tool vs sudo /home/linuxbrew/.linuxbrew/bin/framework_tool - once I do this, I will submit Bluefin instructions for merge into https://github.com/FrameworkComputer/framework-system?tab=readme-ov-file#installation from there.

@rugk confirming you needed to brew install this vs it just being available via ujust?

ctsdownloads avatar Nov 17 '25 23:11 ctsdownloads

Uhm I don't quite recall but it worked for me following the official guide in https://github.com/ublue-os/homebrew-tap?tab=readme-ov-file#this-is-useful-for (on Bluefin though), yes, with tap to add the repo and then brew install.

rugk avatar Nov 21 '25 22:11 rugk