Recommended Free Tools
From the root of a Linux kernel source tree, the shortest documented workflow is:
make headers
make -C tools/testing/selftests
make -C tools/testing/selftests run_tests
Use make kselftest when you want one target to build and run the suite. The tests are userspace programs under tools/testing/selftests/; they exercise individual kernel code paths after you have built, installed and booted the kernel you intend to test. Some tests need root privileges, and a test can be inapplicable to your kernel configuration or machine. The Linux kernel kselftest documentation for the kernel tree you are using is the authority for test-specific requirements.
As an Amazon Associate I earn from qualifying purchases.
What kselftest tests
kselftest is the Linux kernel’s collection of small, focused selftests. The source is in tools/testing/selftests/, organized into test groups such as ptrace, size and timers. A test normally runs as a userspace process against a booted kernel, rather than as code built into the kernel itself.
That distinction determines what a result means. Building the test binaries only shows that a test compiled in your build environment. Running them exercises the running kernel and its available devices, permissions, modules and configuration. A successful aggregate command therefore does not promise that every test ran or that every test was relevant to your machine.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Selftests are useful at several points in a kernel workflow. A developer can run one subsystem while changing related code; a distribution or integrator can run a selected set against a newly built kernel; and CI can enforce that every requested group actually compiled before it executes. The same command can therefore represent a narrow regression check or a broad, environment-dependent suite. Record the scope rather than describing every invocation simply as “the full selftest run.”
Before you start
Use the matching kernel source and booted kernel
Run the commands from the top level of the kernel source tree containing tools/testing/selftests/. The suite is intended to be run after building, installing and booting a kernel. If you build one kernel but boot another, a result can describe the booted kernel rather than the source tree you just compiled.
For a meaningful report, identify the source revision and the kernel release currently reported by the booted system. A userspace test binary can be copied between systems, but its result still depends on the kernel, modules, architecture and hardware at execution time.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Plan for privileges and hardware-dependent tests
Some tests require root. Run the complete suite only in an environment where you can provide the privileges and kernel facilities selected tests need. A test may also be skipped or fail because its kernel configuration, module availability or runtime environment is missing; those outcomes are not evidence that unrelated kernel code is broken.
Tests that manipulate namespaces, tracing, devices, CPU state or memory state can have requirements beyond ordinary compilation. A disposable test machine or virtual machine is preferable when a test changes system-wide state. Do not infer that an unprivileged shell can exercise every group merely because the binaries were built successfully.
Read the selected test’s requirements
Configuration is not uniform across the suite. Check the documentation and configuration file in each selected test directory before deciding what to enable. A test-specific configuration file is the place to record options that test needs; there is no single configuration switch that makes every selftest applicable.
Check requirements again after changing the kernel configuration or moving tests to another host. Architecture, available modules, devices and privilege policy can change the set of tests that is runnable even when the command line remains identical.
Build and run the complete available suite
- Build the exported headers. From the source-tree root, run
make headers. - Compile selftests. Run
make -C tools/testing/selftests. This enters the selftest build directory without changing your shell’s working directory. - Run the tests. Run
make -C tools/testing/selftests run_tests.
The commands are separate so you can inspect or rebuild binaries before executing them. For a combined build-and-run operation, use:
make kselftest
The aggregate target follows the kernel tree’s selftest rules. It may not build every group successfully unless you request strict coverage, and the runtime environment still determines which tests can execute.
make headers is a preparation step for the userspace portions that consume exported kernel headers. It does not install a kernel or switch the running system to a newly built kernel. Boot and module installation remain separate operations in your normal kernel build process.
Configure tests that need kernel options or modules
When a selected test requires particular kernel options, add or use the configuration file in that test’s directory as directed by its documentation. Treat the module workflow shown by the kernel guide as an example for module-based tests, not as a universal recipe for every group.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstall- Record the required options in the relevant test directory’s configuration file.
- Use
make kselftest-mergeto merge the selftest requirements into the kernel configuration as described by that test. - Build the kernel and any required modules.
- Install those modules, then boot the resulting kernel.
- Build and invoke the selected selftest target from that booted environment.
The exact options and installation steps depend on the selected test and kernel revision. If the test’s configuration file or documentation calls for a module, verify that the module is installed and available before running the test; merely compiling the selftest does not load or install a kernel module.
Keep the resulting kernel configuration with the test record. If a test is skipped because an option is disabled, that is a configuration limitation, not the same diagnosis as an assertion failure in a test that did run. When enabling options for a CI kernel, ensure the generated configuration is the one used to build and boot that kernel, rather than only the one used to compile the userspace binaries.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Run only the groups you need
Use the TARGETS variable to limit a build or run to one or more named groups. For example:
make -C tools/testing/selftests TARGETS=ptrace run_tests
make TARGETS="size timers" kselftest
The first command runs the ptrace group through the selftest directory. The second asks the top-level combined target to build and run the size and timers groups. Use names that exist in the kernel tree you checked out; group availability can change between revisions.
Selection is useful for more than speed. It makes a result easier to interpret because the report names the exact subsystem scope. Start with one group when diagnosing a failure, then expand to related groups after the kernel and environment are known to satisfy the prerequisites.
To omit groups, set SKIP_TARGETS. This is useful when a broad run includes a known-inapplicable area:
make SKIP_TARGETS="<group-to-skip>" kselftest
Replace the example value with an actual group name in your tree. Keep a record of skipped groups in CI or test reports so a partial run is not mistaken for full coverage.
Require every selected group to build
By default, an aggregate build can succeed when at least one target builds, even if another selected target does not. Set FORCE_TARGETS=1 when every selected group must build successfully:
make TARGETS="size timers" FORCE_TARGETS=1 kselftest
This is particularly important in continuous integration: without the flag, a green aggregate build can conceal a failed or unavailable selected group.
Use the default behavior deliberately for exploratory work, where one available group may be enough to make progress. Use FORCE_TARGETS=1 for a coverage claim, release gate or regression job in which a missing target must make the job visible as incomplete.
Separate build output and make results easier to audit
Put output outside the source tree
The guide supports an out-of-tree output directory with either O= or KBUILD_OUTPUT. If both are supplied, O= takes precedence. For example:
make O=/path/to/kernel-output kselftest
Use the equivalent KBUILD_OUTPUT setting when that fits your build system. Keep the output path consistent with the kernel build you intend to boot and test.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsAn external output directory is useful when one source checkout feeds several configurations or when CI must preserve artifacts separately from a clean source tree. It does not remove the need to identify which output produced the booted kernel.
Request a summary
Add summary=1 to the kselftest target to request summary output:
make summary=1 kselftest
The summary is an overview. Detailed individual result files are written separately by the runner, so retain those files when diagnosing a failure or comparing runs.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Summaries are convenient for a dashboard, but they should not replace the per-test files. The latter distinguish a pass, skip, timeout and failure and preserve the evidence needed to reproduce a problem.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Understand timeouts and hotplug tests
Timeout behavior
The kselftest documentation specifies a default timeout of 45 seconds per test. A test can replace that default in its settings file, and the runner also supports a command-line timeout override. Check the selected test’s settings before changing a timeout: increasing it may allow a slow but valid test to finish, while masking a hang if used indiscriminately.
Treat a timeout as a result requiring classification. A busy or heavily virtualized host may need more time, but an operation waiting for a resource that can never appear is a different problem. Preserve the timeout value used in the report so later runs can be compared fairly.
CPU and memory hotplug
Ordinary hotplug tests run in a limited, safer mode. The documentation also provides separate hotplug and run_hotplug targets for the full range of hotplug testing. Full hotplug tests can wait while CPUs or memory are offlined and may hang in some environments. Use the ordinary mode unless you specifically need the broader coverage and have an environment in which offlining resources is safe.
Do not schedule full hotplug targets casually on a shared production host. Confirm that the machine supports the requested CPU or memory operations, that workloads can tolerate temporary offlining, and that you have console access if the operation does not return.
Free tools Windows power users keep installed
One-click scans. No signup required.
Install the tests and run them elsewhere
An in-tree run is convenient when the source and build environment are also the test environment. To place the runnable suite in the documented default installation location, run:
make -C tools/testing/selftests install
Set INSTALL_PATH to choose another destination:
make -C tools/testing/selftests INSTALL_PATH=/path/to/kselftest-install install
The installed directory contains run_kselftest.sh, which provides a stable entry point independent of your current source-tree location.
Installation separates the runnable files from the source checkout, but it does not make tests independent of the kernel. The destination still needs the kernel configuration, modules, devices and privileges required by each selected test.
Discover and select installed tests
Use the runner’s options to inspect or narrow the installed suite:
run_kselftest.sh -llists available tests.run_kselftest.sh -c <collection>selects a test collection.run_kselftest.sh -t <test>selects an individual test.
Use the names printed by -l rather than assuming that a group name and an individual test name are interchangeable.
A useful transfer workflow is to list the installed contents on the destination first, then run one collection or test, save its detailed result, and only afterward schedule a broader run. If a requested name is missing, the problem is usually the contents of the installation or package rather than the runner’s ability to execute an existing test.
Create a package
The selftest build supports packaging with:
make -C tools/testing/selftests gen_tar
Set TARGETS with gen_tar when you want a package containing only selected groups. Install or unpack that package on a system with the required kernel configuration and privileges, then invoke its run_kselftest.sh.
A package is therefore a transport mechanism, not a substitute for kernel setup. Package the same target list you intend to report, and record the kernel revision and configuration used on the receiving machine.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Choose the workflow that matches your goal
| Goal | Command pattern | What it changes | Important qualification |
|---|---|---|---|
| Build and run the available suite in the source tree | make kselftest |
Combines the aggregate build and run | Applicability, privileges and target build coverage still vary |
| Run a single group | make -C tools/testing/selftests TARGETS=ptrace run_tests |
Limits execution to ptrace |
The group must exist and meet its own configuration requirements |
| Run several groups | make TARGETS="size timers" kselftest |
Limits the combined target to named groups | Use names from the current kernel tree |
| Exclude groups | make SKIP_TARGETS="..." kselftest |
Omits named groups | Document exclusions when reporting coverage |
| Enforce complete selected builds | make TARGETS="..." FORCE_TARGETS=1 kselftest |
Fails the aggregate build if a selected target cannot build | Useful for CI’s coverage guarantee |
| Keep build artifacts separate | make O=/path/to/output kselftest |
Uses an out-of-tree output directory | If both O= and KBUILD_OUTPUT are set, O= wins |
| Get an overview of results | make summary=1 kselftest |
Enables summary output | Detailed result files remain separate |
| Run an installed suite | run_kselftest.sh -l/-c/-t |
Lists or selects installed tests | The destination still needs the selected test’s kernel environment |
The main trade-off is scope versus control. An aggregate in-tree run is simple, while selected targets reduce noise and make failures easier to attribute. An installed or packaged run is convenient for a dedicated test host, while an in-tree run keeps source, build logs and binaries together. Strict target enforcement adds confidence in CI at the cost of failing earlier when a selected group cannot build.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot incomplete or surprising runs
The command succeeds but a group did not build
Check whether you used the default aggregate behavior. Add FORCE_TARGETS=1 for a strict selected-target build, then inspect the failing group’s build output and its configuration requirements. A successful aggregate status without that flag can mean that at least one target built while another did not.
A test is skipped or reports that it cannot run
First check the selected test’s documentation and configuration file. The running kernel may lack an option, module or facility that test expects, or the test may not apply to the current machine. Do not convert an inapplicable result into a kernel failure; record the reason and the exact kernel configuration used.
A test needs root
Re-run it with the privileges specified by its documentation, usually from an account that can obtain root. If policy prevents those privileges, mark the test as unexecuted rather than treating a permission error as a functional failure.
Free tools Windows power users keep installed
One-click scans. No signup required.
A hotplug run appears stuck
Hotplug tests can wait on CPU or memory offlining. Stop and investigate rather than repeatedly increasing the timeout. Prefer the ordinary limited hotplug mode, and reserve hotplug or run_hotplug for a controlled environment designed for full offlining coverage.
The installed runner cannot find a selected test
Run run_kselftest.sh -l in the installed directory and select the exact collection or test name it prints. If the name is absent, rebuild or regenerate the installation with the required TARGETS; an installed package contains only what was selected when it was created.
The binaries build but fail immediately
Confirm that the machine booted the kernel you configured for the test, that required modules were installed, and that the test is being run with the documented privileges. Then compare the selected test’s configuration file with the booted kernel configuration. Compilation alone cannot validate runtime facilities.
Record results so they are reproducible
For each run, retain the kernel source revision, the kernel configuration, whether modules were installed, the command and variables used, the booted kernel, privilege level, selected and skipped targets, and the runner’s detailed result files. Include whether FORCE_TARGETS=1 was used and whether an out-of-tree output directory was selected. These details distinguish a complete run from a deliberately narrowed or environment-limited one.
When reporting a failure, include the individual test result and its environment rather than only the aggregate exit status. A test that timed out at the documented 45-second default, a test skipped for missing configuration and a test that failed an assertion require different follow-up.
For packaged runs, also record the package target list, installation path and destination host. For repeated CI jobs, preserve the summary and detailed files together so a later reader can tell whether a change affected test behavior, build coverage or only host applicability.
A practical command sequence
This sequence builds and runs two groups strictly, keeps build output separate and requests a summary:
make O=/path/to/kernel-output headers
make O=/path/to/kernel-output TARGETS="size timers" FORCE_TARGETS=1 summary=1 kselftest
For a focused in-tree run of one group, use:
make headers
make -C tools/testing/selftests TARGETS=ptrace
make -C tools/testing/selftests TARGETS=ptrace run_tests
For a package intended for another machine:
make -C tools/testing/selftests TARGETS="size timers" gen_tar
make -C tools/testing/selftests INSTALL_PATH=/path/to/kselftest-install install
After transferring the installed files, discover the exact names and run the desired collection or test with run_kselftest.sh. The destination machine must boot a kernel and provide the options, modules, hardware and privileges required by those tests.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Frequently asked questions
Do I need to install a kernel before running kselftest?
The documented workflow assumes the tests run against a built, installed and booted kernel. You can compile the userspace tests before installation, but runtime results describe whichever kernel is currently booted.
Best Value
Can I run only one selftest?
Yes. Use TARGETS for a test group during an in-tree build and run, or install the suite and use run_kselftest.sh -t with the exact individual test name shown by -l.
What is the difference between TARGETS and SKIP_TARGETS?
TARGETS defines the groups to include. SKIP_TARGETS removes named groups from a broader invocation. Whichever method you use, document the resulting scope.
Why did a successful kselftest build omit a group?
The default aggregate behavior can succeed when at least one target builds. Add FORCE_TARGETS=1 when every selected target must compile, then inspect the omitted group’s own requirements.
How long does each test have to finish?
The documented default is 45 seconds per test. Individual settings can replace it, and the runner accepts a command-line override. Check the selected tree’s settings before changing it.
Are hotplug tests safe on any machine?
No. Ordinary hotplug testing uses a limited mode, while hotplug and run_hotplug cover the full range and may wait while CPUs or memory are offlined. Use full targets only on a controlled host.
Can I copy installed tests to a different kernel machine?
Yes, through the install output or a gen_tar package, but the destination kernel must provide the options, modules, hardware and privileges required by the selected tests.
Does summary=1 include all diagnostic details?
No. It enables summary output. Keep the separate per-test result files for diagnosis and reproducibility.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallFrequently Asked Questions
What is the minimum command sequence for kselftest?
From the kernel source root, run make headers, then build with make -C tools/testing/selftests and execute with make -C tools/testing/selftests run_tests. make kselftest combines build and run.
How do I make CI fail when one selected group cannot build?
Set FORCE_TARGETS=1 with your selected TARGETS. Without it, an aggregate build may succeed when at least one target builds even if another selected target is unavailable.
What should I do when a test is skipped?
Check that test’s documentation and configuration file, then verify the booted kernel, modules, hardware and privileges. Record the reason as inapplicable or unexecuted instead of treating it as an assertion failure.
How can I run tests on another host?
Install with make -C tools/testing/selftests install, set INSTALL_PATH if needed, or create a subset tarball with gen_tar. On the destination, use run_kselftest.sh -l, then select with -c or -t.
The Bottom Line
Start in the matching kernel source tree, build headers and selftests, and run either the complete available suite or explicitly selected TARGETS. Treat configuration, modules, privileges and the booted kernel as part of the test, not as incidental details. Use FORCE_TARGETS=1 when CI must prove every selected group built, preserve detailed result files, and use the limited hotplug mode unless full offlining tests are required on a controlled machine.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




