<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:foaf="https://xmlns.com/foaf/0.1/" xmlns:og="https://ogp.me/ns#" xmlns:rdfs="https://www.w3.org/2000/01/rdf-schema#" xmlns:schema="https://schema.org/" xmlns:sioc="https://rdfs.org/sioc/ns#" xmlns:sioct="https://rdfs.org/sioc/types#" xmlns:skos="https://www.w3.org/2004/02/skos/core#" xmlns:xsd="https://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.linuxjournal.com/tag/busybox">
  <channel>
    <title>BusyBox</title>
    <link>https://www.linuxjournal.com/tag/busybox</link>
    <description/>
    <language>en</language>
    
    <item>
  <title>DIY: Build a Custom Minimal Linux Distribution from Source</title>
  <link>https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source</link>
  <description>  &lt;div data-history-node-id="1339894" class="layout layout--onecol"&gt;
    &lt;div class="layout__region layout__region--content"&gt;
      
            &lt;div class="field field--name-field-node-image field--type-image field--label-hidden field--item"&gt;  &lt;img src="https://www.linuxjournal.com/sites/default/files/nodeimage/story/bigstock-Diy-blue-round-web-icon-Circl-208581040.jpg" width="600" height="600" alt="""" typeof="foaf:Image" class="img-responsive" /&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-author field--type-ds field--label-hidden field--item"&gt;by &lt;a title="View user profile." href="https://www.linuxjournal.com/users/petros-koutoupis" lang="" about="https://www.linuxjournal.com/users/petros-koutoupis" typeof="schema:Person" property="schema:name" datatype="" xml:lang=""&gt;Petros Koutoupis&lt;/a&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"&gt;&lt;p&gt;&lt;em&gt;Follow along with this step-by-step guide to build your own distribution from source and learn
how it installs, loads and runs.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;
When working with Linux, you easily can download any of the most common
distributions to install and configure—be it Ubuntu, Debian, Fedora,
OpenSUSE or something entirely different. And although
you should give several distributions a spin, building your own custom,
minimal Linux distribution is also
a beneficial and wonderful learning exercise.
&lt;/p&gt;

&lt;p&gt;
When I say "build a custom and minimal Linux distribution", I mean from
&lt;em&gt;source&lt;/em&gt; packages—that is, start with a cross-compiling
toolchain and then build a target image to install on a physical or
virtual hard disk drive (HDD).
&lt;/p&gt;

&lt;p&gt;
So, when I think of the ultimate Do-It-Yourself (DIY)
guide related to Linux, it's got to be exactly this: &lt;em&gt;building a Linux
distribution from source&lt;/em&gt;. The entire process will
take at least a couple hours on a decently powered host machine.
&lt;/p&gt;

&lt;p&gt;
If you follow along with this exercise, you'll learn what it takes to build a custom
distribution, and you'll also learn how that distribution installs,
loads and runs. You can run this exercise on either a
physical or virtual machine.
&lt;/p&gt;

&lt;p&gt;
I'd be lying if I said that this process wasn't partly inspired
by the wonderful Linux From Scratch (LFS) project. The LFS project
proved to be an essential tool in my understanding of how a
standard Linux operating system is built and functions. Using a
similar philosophy, I hope to instill some of the same wisdom to
you, the reader, if you'd like to follow along.
&lt;/p&gt;

&lt;h3&gt;
Terms&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Host:&lt;/strong&gt;
the &lt;em&gt;host&lt;/em&gt; signifies the very machine on which you'll
be doing the vast majority of the work, including cross compilation
and installation of the target image.
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;Target:&lt;/strong&gt;
the &lt;em&gt;target&lt;/em&gt; is the final cross-compiled operating
system that you'll be building from source packages. It'll be
built using the cross compiler on the host
machine.
&lt;/li&gt;

&lt;li&gt;
&lt;strong&gt;Cross compiler:&lt;/strong&gt;
you'll be building and using a &lt;em&gt;cross compiler&lt;/em&gt;
to create the &lt;em&gt;target&lt;/em&gt; image on the &lt;em&gt;host&lt;/em&gt;
machine. A cross compiler is built to run on a host machine, but it's
used to compile for a target architecture or microprocessor that
isn't compatible with the host machine.
&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;
Prerequisites and Tools&lt;/h3&gt;

&lt;p&gt;
To continue with this tutorial, you'll need to have
GCC, make, ncurses, Perl and grub tools (specifically grub-install)
installed on the host machine.
&lt;/p&gt;

&lt;p&gt;
In order to build anything, you'll also need to download and
build all the packages for the cross compiler and the target
image. I'm using the following open-source packages and versions
for this tutorial:
&lt;/p&gt;&lt;/div&gt;
      
            &lt;div class="field field--name-node-link field--type-ds field--label-hidden field--item"&gt;  &lt;a href="https://www.linuxjournal.com/content/diy-build-custom-minimal-linux-distribution-source" hreflang="en"&gt;Go to Full Article&lt;/a&gt;
&lt;/div&gt;
      
    &lt;/div&gt;
  &lt;/div&gt;

</description>
  <pubDate>Tue, 03 Jul 2018 11:30:00 +0000</pubDate>
    <dc:creator>Petros Koutoupis</dc:creator>
    <guid isPermaLink="false">1339894 at https://www.linuxjournal.com</guid>
    </item>

  </channel>
</rss>
