Difference between revisions of "Build FOG file system with BuildRoot"

From FOG Project
Jump to: navigation, search
(Compile the buildroot toolchain and build the filesystem image)
(Debian 7 (and Ubuntu 12.x and newer))
 
(20 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
This page will tell you how to build the filesystem on your own from SVN.
 
This page will tell you how to build the filesystem on your own from SVN.
  
== Debian 7 ==
+
== Dependencies ==
  
=== Debian update ===
+
=== Debian 7 (and Ubuntu 12.x and newer) ===
+
Install the latest partclone information to allow build to work
sudo apt-get update
+
* Add repositories
sudo apt-get upgrade
+
** <pre>deb http://free.nchc.org.tw/drbl-core drbl stable testing unstable dev</pre>
 
+
** <pre>deb-src http://free.nchc.org.tw/drbl-core drbl stable testing unstable dev</pre>
=== install all essential package ===
+
* Add repository key
 
+
** <pre>wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; apt-key add GPG-KEY-DRBL</pre>
sudo apt-get install build-essential subversion libqt4-dev bison flex gettext texinfo zlib1g-dev uuid-dev ncurses-dev unzip libpci-dev libssl-dev
+
* Update repos to allow easier integration.
 
+
** <pre>apt-get update</pre>
 
+
* Install the files
=== Download the relevant FOG source ===
+
** <pre>sudo apt-get install build-essential subversion git bison bc flex gettext texinfo zlib1g-dev uuid-dev ncurses-dev unzip libpci-dev libssl-dev rsync build-dep partclone</pre>
 
 
svn checkout https://freeghost.svn.sourceforge.net/svnroot/freeghost/trunk/src fogsrc
 
  
 +
== Download the relevant FOG source ==
 +
svn checkout https://svn.code.sf.net/p/freeghost/code/trunk/src fogsrc
  
=== Download Buildroot ===
+
== Download Buildroot ==
 
   
 
   
  wget http://buildroot.uclibc.org/downloads/buildroot-2014.08.tar.bz2
+
  wget http://buildroot.uclibc.org/downloads/buildroot-2014.11.tar.bz2
  tar xjf buildroot-2014.08.tar.bz2
+
  tar xjf buildroot-2014.11.tar.bz2
  
=== Copy source to Buildroot ===
+
== Copy source files inside Buildroot's tree ==
  
  cp -r fogsvn/buildroot/* buildroot-2014.08/
+
  cp -r fogsrc/buildroot/* buildroot-2014.11/
  cd buildroot-2014.08
+
  cd buildroot-2014.11
 
  mv fog.buildroot.config.32 .config # or config.64 for 64 bits
 
  mv fog.buildroot.config.32 .config # or config.64 for 64 bits
  
=== build FOG file system ===
+
== build FOG file system ==
 +
# A chance to see what's inside the buildroot, and change options in a graphical UI :
 
  make menuconfig
 
  make menuconfig
 
  # This will download all the required packages from their sources, it's around 300 MB
 
  # This will download all the required packages from their sources, it's around 300 MB
 
  make source
 
  make source
  # All packages are now in buildroot-2014.08/dl/ So we compile:
+
  # All packages are now in buildroot-2014.11/dl/ So we compile.
 +
# Go get some coffee, this takes a long time, depending on your config.
 
  make
 
  make
 
  # Here is our init.xz
 
  # Here is our init.xz
  cp output/images/rootfs.ext2.xz init.xz
+
  cp output/images/rootfs.ext2.xz ../init.xz
 +
cd ..
  
  copy init.xz to your FOG server /tftpboot/fog/images/init_32.xz (or init.xz for 64 bits)
+
  copy init.xz to your FOG server /var/www/fog/service/ipxe/init_32.xz (or init.xz for 64 bits)

Latest revision as of 15:46, 13 December 2014

In order for the FOG Client to boot on the hosts, it requires a kernel and a filesystem image containing its filesystem. Buildroot helps building the toolchain (uclibc) and generate that image with busybox and all the packages we need. This page will tell you how to build the filesystem on your own from SVN.

Dependencies

Debian 7 (and Ubuntu 12.x and newer)

Install the latest partclone information to allow build to work

  • Add repositories
    • deb http://free.nchc.org.tw/drbl-core drbl stable testing unstable dev
    • deb-src http://free.nchc.org.tw/drbl-core drbl stable testing unstable dev
  • Add repository key
    • wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; apt-key add GPG-KEY-DRBL
  • Update repos to allow easier integration.
    • apt-get update
  • Install the files
    • sudo apt-get install build-essential subversion git bison bc flex gettext texinfo zlib1g-dev uuid-dev ncurses-dev unzip libpci-dev libssl-dev rsync build-dep partclone

Download the relevant FOG source

svn checkout https://svn.code.sf.net/p/freeghost/code/trunk/src fogsrc

Download Buildroot

wget http://buildroot.uclibc.org/downloads/buildroot-2014.11.tar.bz2
tar xjf buildroot-2014.11.tar.bz2

Copy source files inside Buildroot's tree

cp -r fogsrc/buildroot/* buildroot-2014.11/
cd buildroot-2014.11
mv fog.buildroot.config.32 .config # or config.64 for 64 bits

build FOG file system

# A chance to see what's inside the buildroot, and change options in a graphical UI :
make menuconfig
# This will download all the required packages from their sources, it's around 300 MB
make source
# All packages are now in buildroot-2014.11/dl/ So we compile.
# Go get some coffee, this takes a long time, depending on your config.
make
# Here is our init.xz
cp output/images/rootfs.ext2.xz ../init.xz
cd ..
copy init.xz to your FOG server /var/www/fog/service/ipxe/init_32.xz (or init.xz for 64 bits)