summaryrefslogtreecommitdiffstats
path: root/doc/bootstrap.txt
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2013-03-22 16:47:17 -0700
committer Eric Hameleers <alien@slackware.com>2013-03-22 16:47:17 -0700
commit69dd99f961988fa15da8d7f0d63b62f3385419c3 (patch)
treed57eb3e85e1d08e7815787de26946ee42c398b66 /doc/bootstrap.txt
downloadalienarm-69dd99f961988fa15da8d7f0d63b62f3385419c3.tar.gz
alienarm-69dd99f961988fa15da8d7f0d63b62f3385419c3.tar.xz
Initial commit of a Slackware cross-arch bootstrap framework.
Diffstat (limited to 'doc/bootstrap.txt')
-rw-r--r--doc/bootstrap.txt67
1 files changed, 67 insertions, 0 deletions
diff --git a/doc/bootstrap.txt b/doc/bootstrap.txt
new file mode 100644
index 0000000..7004022
--- /dev/null
+++ b/doc/bootstrap.txt
@@ -0,0 +1,67 @@
+Inspiration and a lot of lines taken from:
+
+ http://fedorapeople.org/cgit/djdelorie/public_git/bootstrap.git
+
+Using my stage12.sh and stage2.sh :
+===================================
+
+Take any Slackware version as the cross-compiling host - a Slackware64 13.37
+virtual machine is what I am using since I use Slackware64 13.37 servers as
+distcc hosts. You will be compiling sources for the software releases which
+you are also running on the ARM target.
+
+As normal user (not root!) create a directory - any will do:
+
+ $ mkdir crossdev
+
+This is the directory where the stage1.sh script will create all its output.
+The ./install directory will eventually contain the cross-compiler suite which
+is meant to run on the host machine. You can copy that tree to a different
+Iocation and use it with distcc.
+The directory ./rootfs will be populated with binary code which has been
+cross-compiled for your target ARM architecture. It is meant to be used on
+the ARM target, either as a bootstrap boot or as a chroot environment on a
+different ARM distro which is already installed on the target.
+
+Be sure to have lots of space available in your work directory!
+
+ $ cd crossdev
+
+Next, create a symlink to the directory which has a Slackware source tree as
+subdirectory. Ideally this is filled with ARM compatible SlackBuild scripts.
+but initially we will have to start with a local stash of modified SlackBuild
+scripts. The stage1.sh script must know where to find that directory with
+modified sources, its location is defined in the variable "SLACKSOURCE_LOCAL".
+The stage1.sh script will always look for sources first in this "local source"
+directory and use the Slackware source tree only in case nothing was found in
+the "local source" directory.
+The name of the symlink which you are going to create must be identical to the
+"DISTRO" variable in the stage1.sh script.
+
+ $ ln -sf /mnt/nfs/sox/ftp/pub/Linux/Slackware/slackware64-14.0 slackware
+
+Now, run the stage1.sh script, it can be on any random location. In my case,
+this is a NFS-mounted directory:
+
+ $ sh /mnt/nfs/sox/store/ARM/slackware/bootstrap/stage1.sh
+
+This script will run for a long time, and compile your cross-compiler, target
+rootfs and prepare the stage2 step.
+Sources will be copied from their original locations into ./sources , and
+the compilation will take place in a subdirectory ./builds .
+Sources which have been compile and installed into ./install (which is the
+cross-compiler directory tree) are marked "done" by creating a file in the
+subdirectory ./done . Repeated invocations of the stage1.sh script will skip
+everything which has been marked "done" which allows for last-minute fixes to
+the compilation commands.
+
+The final step in the stage1.sh script is to invoke a "stage2" step which
+populates a "stage2" directory tree into the rootfs. After you have copied
+the rootfs to the target machine, you should run /stage2/stage2.sh in order
+to compile the remaining binaries for the rootfs. When that is done, your
+rootfs will be in good shape to build a complete ARM Slackware distro package
+tree from scratch.
+
+
+===============================================================================
+Eric Hameleers <alien@slackware.com> 08-nov-2012