<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#update-as-of-now-don-t-proceed-with-the-guide-yet-the-script-is-still-in-its-testing-phase-and-i-m-halfway-done-successfully-testing-it-p">Update as of now: DON'T PROCEED WITH THE GUIDE YET. The script is still in its testing phase, and I'm halfway done successfully testing it :p</a><ul><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s1-cloning-the-repository">S1: Cloning the repository</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s2-run-the-compatibility-checker">S2: Run the compatibility checker</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s3-partitioning-the-target-device">S3: Partitioning the target device</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s4-setting-the-lfs-variable">S4: Setting the $LFS variable</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s5-mounting-the-partitions">S5: Mounting the partitions</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s6-start-the-core-installation-tool">S6: Start the core installation tool</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s7-enter-lfs-user">S7: Enter lfs user</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s8-actually-building-the-system-itself">S8: Actually building the system itself</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s9-setting-up-the-system">S9: Setting up the system</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s10-making-it-boot">S10: Making it boot</a>
</li><li>
<ahref="https://rootsource.cc/Articles/tylkolinux-installation/#s11-the-end-tm">S11: The End:tm:</a>
</li></ul></li></ul>
</div>
</aside><p>Requires the branch for <code>TylkoLinux 25.2 Delirium x86_64</code></p>
<h1id="update-as-of-now-don-t-proceed-with-the-guide-yet-the-script-is-still-in-its-testing-phase-and-i-m-halfway-done-successfully-testing-it-p">Update as of now: DON'T PROCEED WITH THE GUIDE YET. The script is still in its testing phase, and I'm halfway done successfully testing it :p</h1>
<p>Make sure everything is successful. If not, update your packages.</p>
<h2id="s3-partitioning-the-target-device">S3: Partitioning the target device</h2>
<p>Now that we have the installer ready, let's not run it just yet!
First, we need to <strong>partition the drive we want to install it to.</strong>
Now, of course, there are a lot of guides on how to do that online and depending on what setup you might want to achieve.</p>
<p>What IS clear though, is that you need a boot partition and a root partition, those are the bare minimum.</p>
<p>Obviously, I won't be able to write an ENTIRE guide on how to partiton your drive. If you don't know how to do that in the first place, then you shouldn't use TylkoLinux.</p>
<h2id="s4-setting-the-lfs-variable">S4: Setting the $LFS variable</h2>
<p>Set the $LFS variable to point to /mnt/lfs. Of course, if you desire, you may also make it point to a different destination.</p>
One way to ensure that the LFS variable is always set is to edit the .bash_profile file in both your personal home directory and in /root/.bash_profile and enter the export command above. In addition, the shell specified in the /etc/passwd file for all users that need the LFS variable must be bash to ensure that the /root/.bash_profile file is incorporated as a part of the login process.</p>
<p>Another consideration is the method that is used to log into the host system. If logging in through a graphical display manager, the user's .bash_profile is not normally used when a virtual terminal is started. In this case, add the export command to the .bashrc file for the user and root. In addition, some distributions use an "if" test, and do not run the remaining .bashrc instructions for a non-interactive bash invocation. Be sure to place the export command ahead of the test for non-interactive use.</p>
</blockquote>
<h2id="s5-mounting-the-partitions">S5: Mounting the partitions</h2>
<p>Create the mount point and mount the filesystem using the following commands:</p>
</span><spanstyle="color:#65737e;"># Replace <owo> with the name of the swap partition.
</span></code></pre>
<h3id="s5-1-move-bash-bashrc-out-of-the-way">S5.1: Move bash.bashrc out of the way</h3>
<p>Several commercial distributions add an undocumented instantiation of /etc/bash.bashrc to the initialization of bash. This file has the potential to modify the lfs user's environment in ways that can affect the building of critical TylkoLinux (LFS) packages. To make sure the lfs user's environment is clean, check for the presence of /etc/bash.bashrc and, if present, move it out of the way. As the root user, run:</p>
<h2id="s6-start-the-core-installation-tool">S6: Start the core installation tool</h2>
<p>To start the installer, make sure you're in the same directory as the git repo we cloned, running as the <code>root</code> user, then type the following:</p>
<p>When in the script, you should see the following:</p>
<predata-lang="bash"style="background-color:#2b303b;color:#c0c5ce;"class="language-bash "><codeclass="language-bash"data-lang="bash"><spanstyle="color:#bf616a;">[i]</span><span> The colour variables have been set.
<h3id="s7-1-going-through-pending-steps">S7.1: Going through pending steps</h3>
<p>You are about to build a cross toolchain and temporary tools. You're going to see the following:</p>
<predata-lang="bash"style="background-color:#2b303b;color:#c0c5ce;"class="language-bash "><codeclass="language-bash"data-lang="bash"><spanstyle="color:#bf616a;">Einrichter</span><span> is designed to work as an install script where you can resume where you left off. Do NOT skip anything if you have not ran the step yet.
</span><spanstyle="color:#bf616a;">Pending</span><span> step: Setting up environment. Run, skip or quit?
</span></code></pre>
<p>Either type R to run, S to skip or Q to quit.
Do the same for the other remaining quesitons:</p>
<predata-lang="bash"style="background-color:#2b303b;color:#c0c5ce;"class="language-bash "><codeclass="language-bash"data-lang="bash"><spanstyle="color:#bf616a;">Pending</span><span> step: Setting up toolchain. Run, skip or quit? R
</span><spanstyle="color:#bf616a;">Pending</span><span> step: Installing cross toolchain and packages. Run, skip or quit? R
One way to ensure that the LFS variable is always set is to edit the .bash_profile file in both your personal home directory and in /root/.bash_profile and enter the export command above. In addition, the shell specified in the /etc/passwd file for all users that need the LFS variable must be bash to ensure that the /root/.bash_profile file is incorporated as a part of the login process.</p>
<p>Another consideration is the method that is used to log into the host system. If logging in through a graphical display manager, the user's .bash_profile is not normally used when a virtual terminal is started. In this case, add the export command to the .bashrc file for the user and root. In addition, some distributions use an "if" test, and do not run the remaining .bashrc instructions for a non-interactive bash invocation. Be sure to place the export command ahead of the test for non-interactive use.</p>
</blockquote>
<p>Now that you finished that section, enter the chroot environment like this:</p>
<p>If after running eic.essentials.verify, the packages have not been installed, try to troubleshoot the actual package that failed to install and try again.</p>
<h3id="s8-1-strip-system-optional">S8.1: Strip system (optional)</h3>
<p>Done after so long? If you don't plan on doing any debugging on the system software/aren't that much of a programmer, you can remove debugging symbols and unnecessary symbol table entries from binaries and libraries.
<p>Modified from the LFS handbook: The interface names depend on the implementation and configuration of the udev daemon running on the system. The udev daemon for TylkoLinux (well, LFS) (systemd-udevd) will not run unless the TylkoLinux/LFS system is booted. So it's unreliable to determine the interface names being used in the TylkoLinux system by running those commands on the host distro, even though you are in the chroot environment.</p>
</blockquote>
Udev normally assigns network card interface names based on physical system characteristics such as enp2s1. If you are not sure what your interface name is, you can always run <code>ip link</code> after you have booted your system.
For most systems, there is only one network interface for each type of connection. For example, the classic interface name for a wired connection is eth0. A wireless connection will usually have the name wifi0 or wlan0.</p>
<p>If you'd like to use classic/customised network names, run the following function and enter the demanded information:</p>
</span><spanstyle="color:#bf616a;">[i]</span><span> Enter the name of the configured interface: nasaethernet1 </span><spanstyle="color:#65737e;"># example
</span><spanstyle="color:#bf616a;">[?]</span><span> Add DNS? If no, type N. If yes, type DNS address.
</span><span>> Y </span><spanstyle="color:#65737e;"># example
</span><spanstyle="color:#b48ead;">[</span><span>?</span><spanstyle="color:#b48ead;">] </span><spanstyle="color:#bf616a;">Add</span><span> domain? If no, type N. If yes, type domain name.
</span><span>> N </span><spanstyle="color:#65737e;"># example
</span><spanstyle="color:#b48ead;">[</span><span>i</span><spanstyle="color:#b48ead;">] </span><spanstyle="color:#bf616a;">Skipped</span><span> domain addition. </span><spanstyle="color:#65737e;"># example
</span><spanstyle="color:#bf616a;">[i]</span><span> Enter the name of the configured interface: itsthesamethingagain0 </span><spanstyle="color:#65737e;"># example
<p>From the LFS handbook: If using methods incompatible with systemd-resolved to configure your network interfaces (ex: ppp, etc.), or if using any type of local resolver (ex: bind, dnsmasq, unbound, etc.), or any other software that generates an /etc/resolv.conf (ex: a resolvconf program other than the one provided by systemd), the systemd-resolved service should not be used.</p>
<p>To switch settings about whether this should be allowed or not, run the command below ↓</p>
</span><spanstyle="color:#bf616a;">[?]</span><span> Add domain? If no, type N. If yes, type domain name.
</span><span>> N </span><spanstyle="color:#65737e;"># example
</span><spanstyle="color:#b48ead;">[</span><span>?</span><spanstyle="color:#b48ead;">] </span><spanstyle="color:#bf616a;">Add</span><span> primary nameserver? If no, type N. If yes, type nameserver name.
<p><del>Remind me to work on this section.</del> Call me lazy (please don't), but to get over this guide a tiny tiny bit faster, I recommend you to google (or otherwise look up) "how to set up etc hosts". Usually it's managed by systemd I think? (obv unless you disabled it)</p>
<h3id="s9-2-system-time">S9.2: System time</h3>
<p>You can tell the system whether your hardware clock is set to local time or UTC.</p>
<p>In systemd 216 and up, the network time synchronisation service is enabled by default. <strong>If you want, disable/enable it like this:</strong></p>
<predata-lang="bash"style="background-color:#2b303b;color:#c0c5ce;"class="language-bash "><codeclass="language-bash"data-lang="bash"><spanstyle="color:#65737e;"># In shell and EIC
</span><spanstyle="color:#bf616a;">ls -a </span><span>| </span><spanstyle="color:#bf616a;">grep</span><span> .config
</span></code></pre>
<p>If you see the .config file, we can continue. If not, don't run this step, exit out of the Einrichter-in-chroot.sh script to go back to the Einrichter-CLI.sh script. After that, run:</p>
<p>Well, you made it! Congrats on installing the basics of TylkoLinux... If you want, you can also mark your installation as a TylkoLinux one by running this:</p>
<div><pid="site-footer-copyright">raiz1.noho.st owns this website
</p>
<p>Powered by <aclass="link external"href="https://www.getzola.org"rel="">Zola</a> and <aclass="link external"href="https://ametrine.daudix.one"rel="">Ametrine</a>