The goal of TuxML is to predict properties of Linux Kernel configurations (e.g., does the kernel compile? what's its size? does it boot?). The Linux Kernel provides nearly 15000 configuration options: there is an infinity of different kernels. As we cannot compile, measure, and observe all combinations of options (aka configurations), we're trying to learn Linux kernel properties out of samples of configurations. See talk at Embedded Linux Conference Europe in 2019:
You can easily loan your machine and contribute if you want, just copy and paste the line below!
<img align="right" width="100" height="100" src="miscellaneous/informations/tuxml_logo_small.png" alt="TuxML's Logo"/>
The goal of the TuxML team is to develop tools, mainly based on Docker and Python, to massively compile and gather data about thousand of kernel configurations. The TuxML name comes from the combination of Tux, the mascot of the Linux Kernel, and ML for statistical Machine Learning.
Requirements : Python3
and Docker
are needed (do not forget to
start the docker service usually with sudo service docker start
).
wget https://raw.githubusercontent.com/TuxML/tuxml/master/kernel_generator.py ; python3 kernel_generator.py --dev 1
Copy this command and run it in a terminal. It will send compilation results to our database. You can modify the 1 parameter to any other number (it's the number of kernels your machine will compile). The python script gives you some other options that you can use, see this page for more.
For a more up-to-date version of TUXML, please consider the dev branch
git clone https://github.com/TuxML/tuxml
cd tuxml
cd docker_management
python3 docker_image_tuxml.py -f
docker images
cd ..
python3 kernel_generator --dev 1 --linux_version 5.8 --tiny
https://gitlab.inria.fr/diverse/docker/container_registry
Please check our wiki.
We suggest to install with your package manager instead of pip
.
For more info, please check the notes from its github
repository:
This project adds Python 3 support and bug fixes. I hope this fork is merged back to MySQLdb1 like distribute was merged back to setuptools.
and this stackoverflow question
Check sphinx extensions used in the configuration file
Run the following command from the root dir (ProjetIrma
)
make doc
Index file of the documentation will be generated in
Documenetation/doc/index.html
You can clean the Documentation
directory with the following command
make cleandoc
(You can check Documentation
's Makefile
for more info about the
doc generation)
Generate local images and run the kernel generator
cd docker_management/;
python3 docker_image_tuxml.py;
cd ../;
python3 kernel_generator.py --dev --local --tiny --logs LOGS 1;
WIPE Docker images and containers /!\ WARNING all docker images and containers will be removed
docker stop $(docker ps -a -q);
docker rm $(docker ps -a -q);
docker rmi $(docker images -q);