The goal of TuxArt is to create as many different Tux as possible configuration files of the Linux kernel.
We are developping a Python-based generator that can produces the Tux of your machine, a family of Tux (as a gif or grid), or a custom Tux. You can even use a Docker image to play with TuxArt! You're warmly welcomed to participate: we are seeking ideas, creations, artists, coders to help improving the Tux generator.
The first question you might ask if you are not familiar with Linux is what is Tux? Well basically Tux (link to the wiki) is a penguin and the official mascot of the Linux kernel. The Linux kernel contains over 15000 configuration options, most of them take 3 different value (yes, no or module). So theorically there are 3^15000 possible configuration files of the Linux kernel.
This program will fetch for your running Kernel's configuration file and then generate an unique Tux based on the current active configurations on your kernel.
The script will fetch in the default folders /boot and /proc for a configuration file.
An arbitrary kernel configuration file can be passed as argument, output file will be stored in ~/Pictures/CustomTux
-
From terminal type
wget "https://github.com/HommeOursPorc/tuxart/releases/download/3.2.1/tuxart-3.2.1.tar.gz"
pip3 install tuxart-3.2.1.tar.gz --user --install-option="--install-scripts=~/.local/bin"
(note: you can usepip3 install . --user --install-option="--install-scripts=~/.local/bin"
if you want to update tuxart from the sources/git assuming that '.' refers to the directory of the sources)
-
Then add
~/.local/bin
to your command line withexport PATH=$PATH:~/.local/bin
- From terminal type
tuxart
If you want to pass your custom configuration file:
- From terminal type
tuxart -f [configuration file]
Type tuxart -h
or tuxart --help
for help from terminal
You can build the image with the Docker file:
docker build . -t macher/tuxart:latest
(in docker
folder)
or simply reuse a custom and ready-to-use image:
docker run --rm macher/tuxart tuxart --grid linux-4.13.3
Various options are available if you already have a linux kernel.*
You can either :
- generate a grid of Tux (like the one in the header)
- generate a .gif of Tux
- summon elemenTux ( all configurations set to yes, module or no )
- From terminal type :
tuxart --grid [path to kernel folder] [number of tux, default = 4]
tuxart --gif [path to kernel folder] [number of tux, default = 4]
tuxart --rgb [path to kernel folder]
If you don't have a kernel, download one from https://www.linux-mips.org/pub/linux/mips/kernel/v4.x/ Unpack the archive and run one of the command lines from above with the path to the archive's folder passed as argument.
If you are interested in how tuxart work I suggest you to read the DESIGN.md file
While working with randomly generated kernels, a visual feedback can increase the comprehension of the latters.
Visual feedback can be improved by increasing choice between custom accessories. This kind of benefits can be achieved by adding more accessories and by fully respecting dependencies between related configurations.
- Loading bar get overwritten in --grid and --gif options
- Misconfiguration of the installation folder when .tar is download from pypi
The project has started at University of Rennes 1 (ISTIC)
- Khaled Arsalane
- Eliot Marie
- Pierre Pouteau
- Mathieu Acher (supervisor)
- Zakariae Boukhchen
- Richard Faraji-Huon
Want to see 100 variants of the Tux family? https://gist.github.com/FAMILIAR-project/2d6588ad2711be43decdc2a9128d6c45