Tinux |
Tinux - short for Clementinux - is a Linux From Scratch distribution.
One repo with one Devuan Linux ISO - afterwards no more downloads, no binaries, zero configs.
It's source code all the way down...
Tinux is a Linux distribution based on the Linux From Scratch book. During the installation, all the packages from the book get compiled and installed automatically, including the kernel and grub boot loader. The result is a working Qemu virtual machine image disk file. As the stable base for the installation process an official Devuan install ISO disk image is being used. Another distribution's install disk image is used, so that Tinux does not depend on itself. The Devuan binary image is signed by the official Devuan maintainer. The rest of Tinux are all the official source project packages curated by the Linux From Scratch project. So besides this Devuan ISO image to bootstrap from, everything else of Tinux is 100.0 percent build from source code and without any further manual intervention of configuration! So all you need to get your own Linux operating system build entirely from source code is any standard Linux system with a Qemu/KVM virtual machine on a 64 bit amd64/x86_64 Intel architecture system and a bit over 100 GB of extra disk space. If you later want to move the Tinux virtual machine installation to the bare metal hardware, a simple free partition on your host and copy via rsync on the host from the running VM is sufficient. Just add the partition to your existing /boot/grub/grub.cfg configuration file on the host and edit the /etc/fstab file on the new destination's partition with input from blkid before reboot. Network configuration of /etc/sysconfig/ifconfig.eth0 after reboot might be a good idea too:). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
News
Look for older news via the version history. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Download Once you downloaded the Clementinux repository with git to your local disk, everything compiles offline, assuming you have all requirements (see below). But be warned, the Tinux git repository is 11 GB huge and contains the original Devuan Beowulf 3.1.1 desktop installation ISO disk image and lots of LFS/BLFS packages. This is to provide a stable, reproducable, and sufficiant base in one single download that contains everything thereafter. So take a cup of coffee and hit: git clone http://techinvest.li/git/tinux.git Afterwards you can use my public PGP key listed under contact to verify the git hashes in doc/git.log and the binary files in SHA256SUMS with: gpg --verify SHA256SUMS.asc If you want just a pre peak at how this all looks without downloading 6+ Gigs of stuff you might already have, here is a 1.6MB tar file of everything except the binaries and history: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Thanks and gratitude go to the LFS authors, malina, the mrustc project, bryanpedini, the #lfs crew, the Devuan project, and wallpaperflare.com. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Requirements
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Installation / Build
./configure Notice the password '123123' that is given to each user (root and and in the Devuan VM also the tinux user). After all is done, you might want to change the root password in the final Tinux VM manually with the 'passwd' command after login. If you rerun everything, 'make clean' will delete all the images created inbetween, but also the used ports for the local ssh connection in your ~/.ssh/known_hosts file. After the final Tinux image is create and started in server mode, you can continue to create some base tools from the Beyond Linux From Scratch book like emacs and a handy tool like tmux with: 'make blfs' Outside of the Qemu VM window, you can connect to the Virtual Machine with: 'ssh -p 2231 root@localhost' And the very first things before the installation you can do,
are: And have a look at those SHA256 hashes;-). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Documentation The steps to create the Devuan virtual machine image are here. Tinux comes with the original LFS and BLFS documentation. The best documentation about the nitty gritty details of all related to Linux in generell. TFS and BTFS are forks of these two books to accomodate the priorities that Tinux has.
As Tinux uses package specifications from different LFS versions, all currently used LFS or BLFS versions are included here. Unix Documentation Once you login to you new Tinux installation, on a terminal, if you are not familiar with Unix, in order to get an introduction to basic Unix commands: help The next step in order to customize your Tinux setup, when you have already some Unix experience, is to look at the 'afterboot' man page with:
man afterboot Some packages come with additional documentation besides the man pages, like HTML or pdf documents. For those, look in the /usr/share/doc directory. The have been all part of the LFS and BLFS project. Unique to Tinux is also this command to print out version information: about This current Tinux page with the overview documentation can be read on Tinux from the command line with: lynx /usr/share/doc/tinux/index.html /usr/share/doc The book Tinux From Scratch (aka Linux From Scratch) comes already with further documentation installed under /usr/share/doc. Noteworthy examples are: GraphViz: Drawing graphs with dot GraphViz: Drawing graphs with NEATO Report on the Algorithmic Language Scheme Books Below are some documents and books for offline reading. They are all allowed to be freely distributed, so therefore they are included with Tinux.
Original Software/Sources/Packages CVE Details
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FAQ The Tinux Qemu VM starts up with a screen resolution of 1024x768. However, I have a bigger screen. How can I use the full screen resolution? It takes a little bit of hand work, like on Arch. And you will have to do it again once you restart your VM. Candidate to automate it therefore. Here is how it goes with 1280x1024 as an example from the command line:
xrandr How can I change my wallpaper from the command line?
ls -la /usr/share/wallpapers Changed the screen resolution, and now my xclock is out of location. How can I setup a new location? Kill the running xclock process and edit ~/.config/openbox/autostart. For 1280x1024 this line works for me: xclock -geometry 141x28+1137-1002 -digital -strftime "%Y-%m-%d %H:%M" & Copy paste the same line into an xterm to make it work for your current session. Love my wallpaper so much, but my screen is fully covered with application windows. How can I have a look at it? In ~/.config/openbox/rc.xml is ToggleShowDesktop defined with a key binding of W-d. W might stand for the Windows key, AltGr, the right Alt key, or what have you. If you can't figure it out, you can rebind it also to something that works for you (and reload the X config - or restart X). Using it will show the wallpaper/desktop. Use it again to get all your windows back, including the xclock. All the windows also don't allow me to use the right mouse click on the background to open the applications menu. How to get to this menu without seeing the desktop background? In ~/.config/openbox/rc.xml is also the W-m keybinding defined. Same remarks as to the question above apply here. Great having a whole build of a running Linux From Scratch system with a bunch of Beyond Linux From Scratch applications (notably X Org) already in place. Still, there is not all there yet that I wish.. How can I continue playing with BLFS and installing more applications to my desire? Open an xterm terminal and switch to the 'lfs' user and proceed with something like the following:
su - lfs Then put this into a bash script and send it to me:). How to build rustc from source without using a pre-existing binary rustc version? ./configure
The resulting rustc and cargo binaries (1.52.0) are stored on the host in
the build directory (./build/rustc-1.52.0/bin). The bootstrap
process starts with mrustc, which uses GCC to build
itself. Afterwards mrustc is used to build rustc 1.40 which is
then used recursively all the way up till version 1.52. In case you don't use Tinux but LFS/BLFS directly, here is an HowTo for building Rustc from source with LFS/BLFS 11.0 (hint, you have to install GCC 9.2.0 first). Actually, this HowTo works also on Tinux 11.0 :). In case you use the latest Tinux, 11.12 right now, just use 'make rustc' (after the whole BLFS and LFS had been built already) on the host with the Qemu client image not running and powered off. How to replace the xterm icon? Who got the idea to mix the colors red and blue for an icon?! So this is how our slight variation looks: To build xterm with this icon, add the following two files into the icons directory inside the untarred xterm-368 folder, when building xterm according to the BLFS 11.0 guide.
cd xterm-368/icons Having build all of BLFS and using the Falkon web browser is all fine and dandy. But how about building Firefox? For Firefox you need Java (I think) and especially Rustc. You can install both via binary packages according to the BLFS book. Or you can build them mostly (in the Java case) from source. But rust on an AMD 2700X with 8 cores and 16 threads takes 20 hours to build. So if you want to go ahead, do this on the host with no Qemu image actively running: make java && make rustc && make firefox |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
License The LFS/BLFS books are licensed under the MIT License, and therefore everything that represents Tinux, scripts and documentation, is also licensed under the MIT Licence. The binary Devuan install image and all the source based packages/projects in archive files, which Tinux bundles together, are of course licensed each under their respective licenses, e.g. the Linux kernel under the GPL version 2.0 etc. Except the Devuan installation image, all the included packages are distributed with full source code (and only source code) and contain their full license information each. For Devuan see here: https://www.devuan.org/os/source-code |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contact For contact join the IRC channel #tinux on the Libera network (irc.libera.chat) or send email to: clemens.lahme@techinvest.li My PGP public key you can find at: http://techinvest.li/clemens_lahme_at_techinvest_dot_li.pgp |