Project is now superseded by CoreFreq
XFreq provides a GUI to monitor the Processor frequencies (including Turbo Boost), the temperatures, C-States, and to alter the operational features of the Intel Core i7 processor.
XFreq is also programmed for Core 2 and other Intel 64-bits architectures.
XFreq provides functionalities to play with:
C0 C1 C3 C6 C7
[Yes]|[No]
and their activation state [ON]|[OFF]
[de]activated
Core by the OS or the BIOSThe GUI Gadgets can be started as one MDI window or spanned in several Widgets, using the built-in window manager:
Right mouse button to move the Widgets on screen.
Left, to scroll Widgets, or push the GUI buttons and run the associated command.
A commands set allows to drive the Processor features, such as enabling, disabling SpeedStep
, Turbo Boost
, Thermal Control
;
but also, miscellaneous XFreq functionalities, such as setting the RGB colors, font and layout; save and load from the configuration file.
The Widgets disposal is specified with the program options. See the help below.
The tasks scheduled by the kernel among the CPU Cores are shown in real time.
XFreq's editor.
Enter an address and a CPU Core number, XFreq will monitor its register bits.
Prerequisites: as root, load the MSR Kernel driver.
modprobe msr
kldload cpuctl
1- Download the source code into a working directory
2- Build the programs:
make
3- Run the server, as root:
./XFreq/svr/bin/xfreq-intel
4- ... and the GUI client, as a regular user:
./XFreq/gui/bin/xfreq-gui
5- start the console client with:
./XFreq/cli/bin/xfreq-cli
6- To display the help, enter:
$ xfreq-gui -h
XFreq-Gui usage:
xfreq-gui [-option argument] .. [-option argument]
where options include:
-C Path & file configuration name (String)
this option must be first
default is '$HOME/.xfreq'
-D Run as a MDI Window (Bool) [0/1]
-U Bitmap of unmap Widgets (Hex) eq. 0b00111111
where each bit set in the argument is a hidden Widget
-u Set the cursor shape (Bool) [0/1]
-F Font name (String)
default font is 'Fixed'
-x Enable or disable the X ACL (Char) ['Y'/'N']
-g Widgets geometries (String)
argument is a series of '#:[cols]x[rows]+[x]+[y], .. ,'
-b Background color (Hex) {RGB}
argument is coded with primary colors 0xRRGGBB
-f Foreground color (Hex) {RGB}
-l Fill or not the graphics (Bool) [0/1]
-z Show the Core frequency (Bool) [0/1]
-y Show the Core Cycles (Bool) [0/1]
-j Show the Instructions Per Second (Bool) [0/1]
-J Show the Instructions Per Cycle (Bool) [0/1]
-i Show the Cycles Per Instructions (Bool) [0/1]
-r Show the Core Ratio (Bool) [0/1]
-p Show the Core C-State percentage (Bool) [0/1]
-w Scroll the Processor brand wallboard (Bool) [0/1]
-o Keep the Widgets always on top of the screen (Bool) [0/1]
-n Remove the Window Manager decorations (Bool) [0/1]
-N Remove the Widgets title name from the WM taskbar (Bool) [0/1]
-I Splash screen attributes 0x{H}{NNN} (Hex)
where {H} bit:13 hides Splash and {NNN} (usec) defers start-up
-S Screenshot path (String)
default is '$HOME'
-v Print version information
-h Print out this message
Exit status:
0 if OK,
1 if problems,
2 if serious trouble.
# xfreq-intel -h
XFreq-Intel usage:
xfreq-intel [-option argument] .. [-option argument]
where options include:
-c Pick up an architecture # (Int)
refer to the '-A' option
-S Clock source (Int)
argument is one of the [0]TSC [1]BIOS [2]SPEC [3]ROM [4]USER
-M ROM address of the Base Clock (Hex)
argument is the BCLK memory address to read from
-s Idle time multiplier (Int)
argument is a coefficient multiplied by 50000 usec
-d Registers dump enablement (Bool)
-t Task scheduling monitoring sorted by 0x{R}0{N} (Hex)
where {R} bit:8 is set to reverse sorting
and {N} is one '/proc/sched_debug' field# from [0x1] to [0xb]
-z Reset the MSR counters (Bool)
-B Enable SmBIOS (Bool)
-A Print out the built-in architectures
-v Print version information
-h Print out this message
Exit status:
0 if OK,
1 if problems,
2 if serious trouble.
The algorithms employed are introduced in the [Algorithms Wiki]
xfreq-intel -A
lists the built-in architectures and their default clock.
Architecture Family CPU FSB Clock
# _Model [max] [ MHz ]
0 GenuineIntel 00_00 2 100.00
1 Core/Yonah 06_0E 2 100.00
2 Core2/Conroe 06_0F 2 266.67
3 Core2/Kentsfield 06_15 4 266.67
4 Core2/Conroe/Yonah 06_16 4 266.67
5 Core2/Yorkfield 06_17 4 266.67
6 Xeon/Dunnington 06_1D 6 266.67
7 Atom/Bonnell 06_1C 2 100.00
8 Atom/Silvermont 06_26 8 100.00
9 Atom/Lincroft 06_27 1 100.00
10 Atom/Clovertrail 06_35 2 100.00
11 Atom/Saltwell 06_36 2 100.00
12 Silvermont 06_37 4 83.30
13 Silvermont 06_4D 4 83.30
14 Atom/Airmont 06_4C 4 100.00
15 Atom/Goldmont 06_5C 4 100.00
16 Atom/Sofia 06_5D 4 100.00
17 Atom/Merrifield 06_4A 2 100.00
18 Atom/Moorefield 06_5A 4 100.00
19 Nehalem/Bloomfield 06_1A 4 133.33
20 Nehalem/Lynnfield 06_1E 4 133.33
21 Nehalem/Mobile 06_1F 2 133.33
22 Nehalem/eXtreme.EP 06_2E 8 133.33
23 Westmere 06_25 2 133.33
24 Westmere/EP 06_2C 6 133.33
25 Westmere/eXtreme 06_2F 10 133.33
26 SandyBridge 06_2A 4 100.00
27 SandyBridge/eXtreme.EP 06_2D 6 100.00
28 IvyBridge 06_3A 4 100.00
29 IvyBridge/EP 06_3E 6 100.00
30 Haswell/Desktop 06_3C 4 100.00
31 Haswell/Mobile 06_3F 4 100.00
32 Haswell/Ultra Low TDP 06_45 2 100.00
33 Haswell/Ultra Low eXtreme 06_46 2 100.00
34 Broadwell/Mobile 06_3D 2 100.00
35 Broadwell/EP 06_56 22 100.00
36 Broadwell/H 06_47 4 100.00
37 Broadwell/EX 06_4F 24 100.00
38 Skylake/UY 06_4E 2 100.00
39 Skylake/S 06_5E 4 100.00
40 Skylake/E 06_55 4 100.00
Tips: you can force an architecture with the -c
option.
XFreq is a Clients-Server model based software.
A shared memory interface [SHM]
to exchange data with the server.
A daemon program which monitors the hardware and fills the SHM
with the collected data.
The server which requires the superuser privileges of root, receives and processes Client commands.
Gui and text programs which connect to the server through the SHM
and display the hardware activity.
Clients do not require the root permissions.
The files repository is the following:
./Makefile
./api/Makefile
./api/xfreq-api.h
./api/xfreq-api.c
./api/xfreq-smbios.h
./api/xfreq-smbios.c
./api/xfreq-types.h
./cli/Makefile
./cli/XFreq-Cli.cbp
./cli/XFreq-Cli-FreeBSD.cbp
./cli/xfreq-cli.c
./cli/xfreq-cli.h
./gui/Makefile
./gui/XFreq-Gui.cbp
./gui/XFreq-Gui-FreeBSD.cbp
./gui/xfreq-gui.c
./gui/xfreq-gui.h
./svr/Makefile
./svr/XFreq-Intel.cbp
./svr/XFreq-Intel-FreeBSD.cbp
./svr/xfreq-intel.c
./svr/xfreq-intel.h
The v2.1 is delivered with Code::Blocks project files.
An Arch Linux PKGBUILD is available in the aur repository.
Package is systemd compliant.
Processes must be run in the following order ...
# xfreq-intel
$ xfreq-gui
... and in the reverse order to shutdown.
SpeedStep
)Extended Halt
)Thermal Control
)CyrIng
Paris ;-)