Skip to content

Real-time Configuration helper tool

License

Notifications You must be signed in to change notification settings

canonical/rt-conf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rt-conf - Real-Time Configuration Tool

rt-conf CodeQL Test and Build TIOBE Static Analysis

This is a tool to help with configuration and tuning of real-time Ubuntu.

Installation

To install the rt-conf snap:

sudo snap install rt-conf

This snap is confined, which means that it can access a limited set of resources on the system. Additional access is granted via snap interfaces.

Default configuration file

Upon installation the default rt-conf configuration file is added at: /var/snap/rt-conf/common/config.yaml.

Usage

Edit the default configuration file or a copy of it. In case of a copy, it must be placed it in a directory accessible to the snap, such as the user home directory. The copy must be owned by and writable to the root user only.

Run rt-conf to apply the configurations:

sudo rt-conf

Set --help for more details.

The rt-conf app runs a oneshot service on system startup. This is useful for re-applying non-persistent IRQ tuning and power management settings on boot.

By default, the service reads the default configuration file. To change the config file path, use the config-file snap configuration. Example:

sudo snap set rt-conf config-file=/home/ubuntu/rt-conf.yaml

Then, start and enable the service:

sudo snap restart rt-conf

Verify that it runs successfully by looking at the logs:

sudo snap logs -n 100 rt-conf

Verbose logging

To enable verbose logging, set:

  • --verbose flag on the CLI
  • verbose=true snap configuration option for the service

Hacking

Firstly, clone the repository:

git clone https://github.com/canonical/rt-conf.git

It's possible to run the rt-conf application from source by having Go installed and running:

go run cmd/rt-conf/main.go

Tip

For local hacking on GRUB systems, it's recommended to point to a local drop-in grub file. Also, you may want to use the local config.yaml file provided on the root of the repository:

go run cmd/rt-conf/main.go --file=./config.yaml --grub-custom-file=./60_rt-conf.cfg

Run tests:

go test ./...

Local Build

Firstly, build it using Snapcraft:

snapcraft -v

Then, install it in dangerous mode:

sudo snap install --dangerous *.snap

After the installation connect the following interfaces:

sudo snap connect rt-conf:cpu-control
sudo snap connect rt-conf:etc-default-grub
sudo snap connect rt-conf:hardware-observe
sudo snap connect rt-conf:home

About

Real-time Configuration helper tool

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 5