Include installation guide for framework_tool
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
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.
Let's document it upstream https://github.com/frameworkcomputer/framework-system?tab=readme-ov-file#installation
Maybe from here we can link to there
https://github.com/FrameworkComputer/framework-system/pull/216
@rugk is that good?
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
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?
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.