diff options
Diffstat (limited to 'build_tools/clarch/larch/docs')
19 files changed, 2528 insertions, 0 deletions
diff --git a/build_tools/clarch/larch/docs/CHANGES b/build_tools/clarch/larch/docs/CHANGES new file mode 100644 index 0000000..188cf99 --- /dev/null +++ b/build_tools/clarch/larch/docs/CHANGES @@ -0,0 +1,109 @@ +2008.08.10 +Version 5.3.8 +Added pacman-packed.tar.gz to repository, a self-contained pacman package, +including the libraries it needs to run. So now building on non-Arch +systems shuold work again. +Adjusted larch-setup to handle this new package. +'mirrorlist' now has '@carch@', which getPackageServer must handle (done +in PKGBUILD) + +2008.08.09 +Version 5.3.7 +The packages.txt file is no longer supplied in Arch repositories, so inpacs +now gets the list of base packages using (something like) 'pacman -Sg base'. +As of pacman-3.2 there is no longer a static build, so building larch systems +on non-Arch boxes will no longer work:( +Tweaked xmaxi profile. + +2008.07.30 +Version 5.3.6 +Remove unmaintained kde profile, replace mc-utf8 by mc in addedpacks + +2008.06.22 +Version 5.3.5 +Fix mklarch for building on non-Arch system: + - need to create package cache, otherwise inpacs complains. + - tweak pacman.conf configuration concerning 'Include =' lines. + - usb2bootiso needs bash (#!/bin/bash, not #!/bin/sh) + - xpack (and existing .xpk files) fix (bash, not sh, and -n option to tail) +Try to overcome problems with usb-stick creation when hal remounts device +after formatting, by adding umount command. + +2008.06.07 +Version 5.3.4 +Removed warnings about kconfig (as this is no longer included in Arch kernels. +Added check for mkisofs on host at beginning of buildlive (if building iso). +Added check for syslinux on target at beginning of buildlive (if not using +GRUB). +Minor profile tweaks. + +2008.05.15 +Version 5.3.2, adjusted initscripts approach so that it doesn't require a +custom initscripts package. Now rc.sysinit and rc.shutdown are replaced (in +buildlive) by larch versions which are compatible with the standard versions. +When larch-live is installed, the standard functions will be replaced by +larch functions. On installation using larchin larch-live will be removed +so the behaviour reverts to standard Arch behaviour, although the rc scripts +have been changed. But in any case the originals are saved so that they can +be restored on installation with larchin. + +Changed handling of pacman.conf slightly. When there is a pacman.conf in the +profile (base directory, not overlay), this will be copied to the working +directory and used by mklarch, even if there was already a version in the +working directory. The pacman.conf in the live system will be this version +if built using mklarch, otherwise the existing version. However an +'IgnorePkg' line is added for kernel26, aufs and initscripts. Packages +listed in the 'noupdate' file in the profile, will also be added. This +line will be removed on installation using larchin. + +2008.04.27 +Version 5.3.0, new initscripts approach, replacing functions in +/etc/rc.d/functions rather than replacing /etc/rc.sysinit and +/etc/rc.shutdown. At present this requires a custom initscripts package. + +2008.04.21 +Version 5.2.2, added usb2iso, a fairly primitive script to make an iso from +a larch usb-stick. It also works from a running larch system, but only on +systems with a lot of memory. + +2008.04.05 +version 5.2.1, slight reworking of overlay handling in profiles - now files +owned by root:root do not have to be in overlay.xpk, they can be held within +directory 'rootoverlay', and their ownership will be changed automatically. +Files to be copied to /.livesys at boot are now in larch/copy. +Added larchquit.py to larch-live - special larch quit/logout gui, allows +selecting session-save options and also autologin user before quitting desktop, +included it in xmini menu/panel. +Other tweaks to xmini profile. + +2008.02.27 +Incompatible changes. WARNING! +With version 5.2 the init system has changed, in particular a custom inittab +is now required, which means all old profiles are likely to fail (because of +the /etc/inittab in the overlay). + +2008.02.19 +added desktop stuff for documentation + +2008.02.18 +version 5.1.3, bugfixes and work on profiles +documentation updates + +2008.02.14 +Reorganization of directory layout, +new 'larchin' hard disk installer with gui. +larch version 5.1.0 +larch-live version 5.1.0 +larchin version 5.1.0 + +2008.01.13 +Adjustments for changes in pacman-3.1, version 5.0.8 + +2008.01.02 +Fixes for merging when file paths contain spaces (merge_overlay), version 5.0.7 + +2008.01.02 +larch-5 (with simplified union structure, no CD/DVD session save) available +for testing. + +Initial test release, version 5.0.6. diff --git a/build_tools/clarch/larch/docs/COPYING b/build_tools/clarch/larch/docs/COPYING new file mode 100644 index 0000000..d511905 --- /dev/null +++ b/build_tools/clarch/larch/docs/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/build_tools/clarch/larch/docs/LICENCE b/build_tools/clarch/larch/docs/LICENCE new file mode 100644 index 0000000..b0e9208 --- /dev/null +++ b/build_tools/clarch/larch/docs/LICENCE @@ -0,0 +1,16 @@ + + Licence: + + This software is released under the GNU GENERAL PUBLIC LICENSE. + See COPYING. + + Warranty: + + This software is distributed with NO WARRANTY, use it at your own risk. + + Author: + + This software was written by + + Michael Towers (gradgrind at online dot de) +
\ No newline at end of file diff --git a/build_tools/clarch/larch/docs/README b/build_tools/clarch/larch/docs/README new file mode 100644 index 0000000..f212c35 --- /dev/null +++ b/build_tools/clarch/larch/docs/README @@ -0,0 +1,37 @@ +larch - scripts for building a highly customizable Arch Linux live CD/DVD + - or USB-stick + - also suitable for installing Arch Linux to a hard disk + +Author: Michael Towers (gradgrind at online dot de) +Licence: GPL (see COPYING, LICENCE) + + +I got my initial inspiration from the "Linux Live scripts" by + +Tomas M. <http://www.linux-live.org> + +BUT the larch scripts now bear essentially no resemblance to those, +so don't blame Tomas! +Thanks are, nevertheless, due to him for his great work, which helped me +get started. + +The main documentation is in the share/docs subdirectory, please read it. + +The key components are: + + inpacs - Install a fresh Arch system (with customizable package + selection), to a convenient (possibly temporary) location. + + mklarch - Uses 'inpacs' to build an Arch installation in a convenient + directory, which it then makes into a live CD, adding + modifications (in an overlay) to suit it for use as a live + system and for customization. + + larchify - Build a larch live system from an existing Arch Linux + installation (including from one made by 'mklarch'). + +Logos are derived from the Arch Linux logos, and are released under a +Creative Commons Licence, see 'http://www.archlinux.org/art'. + +The larch project uses Arch Linux as its basis, but is not an official +Arch Linux ('http://www.archlinux.org') project. diff --git a/build_tools/clarch/larch/docs/ReleaseNotes b/build_tools/clarch/larch/docs/ReleaseNotes new file mode 100644 index 0000000..b1923d8 --- /dev/null +++ b/build_tools/clarch/larch/docs/ReleaseNotes @@ -0,0 +1,37 @@ +2008.01.02 +larch-5 (with simplified union structure, no CD/DVD session save, + extended USB-stick session save) + +Changes from larch-4: + +Split functionality of 'mklarch', so that rebuilds after a 'mklarch' run, +and other builds from existing Arch installations, are now handled by the +'larchify' script - 'larchify -h' for usage notes. 'mklarch' now only covers +initial builds including installation - 'mklarch -h' for usage notes. Note +that the options have changed!!! For instance, 'mklarch -p' now expects a +directory as argument and there is no option to copy an example profile to +the current directory. + +'pacin' replaced by 'inpacs' - 'inpacs -h' for usage notes. It is now +possible to fully customize pacman caches, and even pacman databases, +including the use of locally networked computers as source (using sshfs or +NFS). Thus a larch build can be made without an internet connection, if +all the packages are available locally on a suitably configured Arch +system. + +Completely new union/overlay structure. The overlay is now copied to the +writable union layer at boot, and can be copied back at shutdown. This +should speed up session-saving, especially through the use of lzo +compression rather than squashfs. An additional advantage is that no extra +memory is required for the reconstruction of the archive. + +When the overlay gets too large it can be merged into the secondary overlay, +a squashfs archive (like in previous larch versions). This takes somewhat +longer and requires memory for its construction, but subsequent simple +session saves (to the primary layer) will be faster because of the reduced +size. + +It should now also be possible to run 'larchify' on a running live system, +allowing a complete reconstruction of the system from within itself, +merging in updates - in principle even kernel updates should be manageable +using this method. diff --git a/build_tools/clarch/larch/docs/Splash_howto b/build_tools/clarch/larch/docs/Splash_howto new file mode 100644 index 0000000..32660bb --- /dev/null +++ b/build_tools/clarch/larch/docs/Splash_howto @@ -0,0 +1,35 @@ +Using vesamenu this is now much easier ... + +For the vesamenu, it is called a background image, rather than splash +image, because the menu appears on top of it. +All you need is a 640x480 image in png or jpg format (the default image +in larch is called bkgd.jpg)! + +======================================================================= + +But here are the old instructions, just in case ... (the utility programs +are in the 'syslinux' package): + +Splash screen for isolinux/syslinux +----------------------------------- + +This could be easier ... +Anyway, it needs to be in a particular format. 640 pixels wide and quite +a bit less than 480 pixels high (to leave space for the boot text). +Then it may not use more than 16 colours. You can reduce the colour +depth by setting indexed mode in the GIMP (image - mode). It may be +sensible to use only 14 or 15 colours (to leave something for the +text?) - but I didn't really investigate this further. I reduced +my image to 14 colours. +Then you can export it to a .ppm file, which serves as input to the +perl script ppmtolss16, (which comes from the syslinux tarball - +its inverse is lss16toppm, which is also in there): + +./ppmtolss16 < splash.ppm > splash.lss + +To test this, convert it back and take a look at the result: + +./lss16toppm < splash.lss > test.ppm + +Just replace the existing splash.lss file (in cd-root/isolinux) with your +version. diff --git a/build_tools/clarch/larch/docs/html/index.html b/build_tools/clarch/larch/docs/html/index.html new file mode 100644 index 0000000..8584186 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/index.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> + <title>larch introduction</title> + <meta content="gradgrind" name="author" /> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_features.html">Next: Features</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> – a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Introduction</h2> + +<p><em>larch</em> is a collection of scripts designed around the creation and +use of live CD/DVD/USB-stick versions of <em>Arch Linux</em>. +</p> + +<p>One design aim was easy customization, so that even relatively inexperienced +users could build personalized live CDs (etc.), containing whatever packages they +wanted and with their own personal configurations. The resulting medium should +also be usable for installation purposes, so that one has a customized +<em>Arch Linux</em> installation/rescue medium. As the content can be chosen +freely, a comfortable working environment is possible - in contrast to +the rather Spartan standard <em>Arch</em> installation CD. +</p> + +<p><em>larch</em> also offers a flexible approach to building your live media. +You can use 'profiles' to determine what gets installed, and how it is +configured. The advantage of this method is that all your specifications are +kept together in a folder which can be used to rebuild the same or a similar +system at a later date. Alternatively you can do a normal <em>Arch Linux</em> +installation (if there is such a thing!) and then make a live medium from this. +You can even 'livify' your existing installation (though it might be worth +tidying it up a bit first ...). +</p> + +<p><em>Squashfs</em> offers convenient compression of the data on the CD so that +up to about 2 GB of code can be included on a 700 MB CD. <em>aufs</em> (a +'unification' file system, originally based on <em>unionfs</em>) offers +the ability to write to all directories even though +the CDROM is read-only, which allows such fancy stuff as installation +of new software packages to the running live system. Using <em>aufs</em> +you could do, say, 'pacman -S fluxbox' and <em>fluxbox</em> would be +installed. The limit to the amount of overwriting is determined by the size of +the available memory. +</p> + +<p>All this would normally be gone when you reboot as the changes are +really only stored in memory. However, thanks to various technical wizardry, it +is also possible (on suitable media) to save any changes you make while running +the live system back to the medium on shutdown. +</p> + +<p>Hardware detection is provided by the same <em>udev</em> approach as is used +in a standard <em>Arch Linux</em> system. +</p> + +<p>The <em>larch</em> project comprises several components. The scripts for +building a larch live medium are in the <em>larch</em> package, which need not +itself be installed in the live system, though it may be useful. Scripts and +data for the live environment are provided in the <em>larch-live</em> package, +which must be installed in the live system. There is also an optional installer +(<em>larchin</em>, written in python and bash, with a <em>GTK</em> interface) which +can install the live system to hard disk, providing a convenient way to install a +ready-configured <em>Arch Linux</em> system. +</p> + +<p>I have tried to maintain the distribution-independence of the +<em>larch</em> scripts, so that they can be used on other <em>GNU/Linux</em> systems - +you shouldn't need an <em>Arch Linux</em> installation in order to build a <em>larch</em> +live medium, the dependencies (e.g. <em>bash</em>, <em>wget</em>, +<em>mkisofs</em> ) should be satisfied on pretty well any <em>GNU/Linux</em> system +(and a static version of <em>pacman</em> can be downloaded). In other words, +it should not be difficult to generate your own customized <em>larch</em> +CD on pretty well any <em>GNU/Linux</em> system. +But I must admit that this feature hasn't been tested much. +</p> + +<p>As with most stuff around <em>Arch Linux</em> +it's not really designed for beginners - you should know your +way around a <em>GNU/Linux</em> system (preferably <em>Arch</em>!), and have at least a +minimal idea of running command-line stuff and editing configuration +files. In any case, I hope that the +documentation will be clear enough to help anyone who wants to exploit +<em>larch</em> to the full (feedback is welcome!).</p> + +<p><b>Requirement:</b> +You need quite a lot of space to create an <em>Arch Linux</em> live CD system - to build a +700MB CD image you'll need up to about 4GB. That is because a complete <em>Arch Linux</em> +system is installed, then a compressed ('squashed') verion is made, and then +a CD image (iso). Building for a USB-stick requires slightly less space, as the +iso-image is not built. +</p> + +<br /><br /> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_features.html">Next: Features</a></td> + + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch1.jpg b/build_tools/clarch/larch/docs/html/larch1.jpg Binary files differnew file mode 100644 index 0000000..70e2f56 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch1.jpg diff --git a/build_tools/clarch/larch/docs/html/larch_docindex.html b/build_tools/clarch/larch/docs/html/larch_docindex.html new file mode 100644 index 0000000..0654d69 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_docindex.html @@ -0,0 +1,126 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> + <title>larch documentation</title> + <meta content="gradgrind" name="author" /> +</head> + +<body> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Table Of Contents</h2> + +<p>This documentation covers <em>larch</em> version 5.3 +</p> + +<ol> + <li><a href="larch_intro.html">Introduction</a><br /><br /></li> + + <li><a href="larch_features.html">Features</a><br /><br /></li> + + <li><a href="larch_quick.html">Quick Start</a><br /><br /></li> + + <li><a href="larch_overview.html"><em>larch</em> Overview</a> + <ul> + <li><a href="larch_overview.html#larch_installation">Installation + of the <em>larch</em> build system</a></li> + + <li><a href="larch_overview.html#larch_using">Using + the <em>larch</em> build system</a></li> + + <li><a href="larch_overview.html#running_mklarch">Quick <em>mklarch</em> overview</a></li> + + <li><a href="larch_overview.html#running_larchify">Quick <em>larchify</em> overview</a></li> + + <li><a href="larch_overview.html#Minimal_build_system_requirements">Minimal +build system requirements</a></li> + + <li><a href="larch_overview.html#pacman_conf">'pacman.conf' for building and live system use</a></li> + + <li><a href="larch_overview.html#Squashfs_and_Unionfs">squashfs and aufs</a></li> + + <li><a href="larch_overview.html#aufs">aufs as an alternative to unionfs</a></li> + + <li><a href="larch_overview.html#Partial_rebuilding">Partial rebuilding</a></li> + + <li><a href="larch_overview.html#Custom_packages">Custom packages</a></li> + + <li><a href="larch_overview.html#Generating_the_basepacks_list">Generating +the basepacks list</a></li> + + <li><a href="larch_overview.html#addedpacks">addedpacks</a></li> + + <li><a href="larch_overview.html#Installation">Installation +of the "pristine" system</a></li> + + <li><a href="larch_overview.html#existingSystem">Making a live CD from an + existing Arch installation</a></li> + </ul><br /> + </li> + + <li><a href="larch_profiles.html">Profiles</a> + <ul> + <li><a href="larch_profiles.html#xpack"><em>xpack</em> and non-root owned overlay files</a></li> + </ul><br /> + </li> + + <li><a href="larch_live_system.html">Structure of a <em>larch</em> live CD</a> + <ul> + <li><a href="larch_live_system.html#Squashfs_and_Unionfs">squashfs and aufs</a></li> + + <li><a href="larch_live_system.html#initramfs">initramfs and mkinitcpio</a></li> + + <li><a href="larch_live_system.html#rc_files">/etc/inittab, /etc/rc.sysinit and /etc/rc.shutdown</a></li> + </ul><br /> + </li> + + <li><a href="larch_fstab.html">/etc/fstab</a> + <ul> + <li><a href="larch_fstab.html#lvm">LVM</a></li> + </ul><br /> + </li> + + <li><a href="larch_sessionsave.html">Session saving</a> + <ul> + <li><a href="larch_sessionsave.html#overlays">Overlay archives, overlay.ovl and mods.sqf</a></li> + + <li><a href="larch_sessionsave.html#var_files">Special places in /var</a></li> + + <li><a href="larch_sessionsave.html#upd_packages">Updating packages</a></li> + + <li><a href="larch_sessionsave.html#de-Act">Activating and deactivating the session-saving feature</a></li> + + <li><a href="larch_sessionsave.html#custom">Customizing the behaviour using scripts</a></li> + </ul><br /> + + <li><a href="larch_ssh.html">ssh access</a> + <ul> + <li><a href="larch_ssh.html#ssh_x11">ssh and X11</a></li> + </ul><br /> + </li> + + <li><a href="larch_running.html">Running the live system</a> + <ul> + <li><a href="larch_running.html#bootparm">Boot parameters</a></li> + + <li><a href="larch_running.html#config">Configuration</a></li> + + <li><a href="larch_running.html#install">Installation to hard disk</a></li> + </ul><br /> + </li> + +</ol> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_features.html b/build_tools/clarch/larch/docs/html/larch_features.html new file mode 100644 index 0000000..23d1c35 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_features.html @@ -0,0 +1,137 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>larch features</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_intro.html">Previous: Introduction</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_quick.html">Next: Quick Start</a></td> + + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 383px; height: 321px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Features</h2> + +<ul> + + <li> + <p>Built from standard <em>Arch Linux</em> packages</p> + </li> + + <li> + <p>Only minimal changes made to enable functioning as live CD, the +system is essentially pure <em>Arch Linux</em></p> + </li> + + <li> + <p>Can also build live USB-sticks</p> + </li> + + <li> + <p>Can also build from existing <em>Arch</em> installation</p> + </li> + + <li> + <p>Can use standard <em>Arch</em> kernel ('kernel26'), no kernel build necessary</p> + </li> + + <li> + <p>Fully customizable package selection</p> + </li> + + <li> + <p>Can use isolinux or GRUB bootloader</p> + </li> + + <li> + <p>Automatic generation of /etc/fstab based on device detection; + can also detect LVM volumes (when configured to do so)</p> + </li> + + <li> + <p>Does not require an <em>Arch Linux</em> system to build it, any modern <em>GNU/Linux</em> system should suffice</p> + </li> + + <li> + <p>Can be used to install <em>Arch Linux</em> to hard disk - either the full live CD content +or using ftp to install any desired packages in their latest versions</p> + </li> + + <li> + <p>Uses latest udev-based hardware detection</p> + </li> + + <li> + <p>Based on squashfs, aufs, initramfs (using standard Arch mkinitcpio)</p> + </li> + + <li> + <p>Changes made during a session can be saved back to the boot medium + (assuming it is writable - USB-stick, hard-disk, etc.)</p> + </li> + + <li> + <p>Full graphical system possible, e.g. with KDE, OpenOffice, GIMP, ...</p> + </li> + + <li> + <p>Using ssh it's possible to run this CD/USB-stick on a system without +monitor/keyboard - remote installation and rescue is also possible</p> + </li> + + <li> + <p>Copy to RAM possible, using boot parameter ('c2r')</p> + </li> + + <li> + <p>Optional use of existing swap partition ('swap' boot parameter)</p> + </li> + + <li> + <p>Simple text configuration files</p> + </li> + + <li> + <p>Extensive documentation</p> + </li> + +</ul> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_intro.html">Previous: Introduction</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_quick.html">Next: Quick Start</a></td> + + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_fstab.html b/build_tools/clarch/larch/docs/html/larch_fstab.html new file mode 100644 index 0000000..8589ccd --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_fstab.html @@ -0,0 +1,87 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>/etc/fstab</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_live_system.html">Previous: Live CD structure</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_sessionsave.html">Next: Session saving</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>/etc/fstab and mount points</h2> + +<p>The file /etc/fstab determines mount points for the various devices and partitions +available in the system. This is of course different in every computer, so a live CD +has to be pretty flexible here. <em>larch</em> handles this by regenerating this file +each time it boots, basing the content on the devices it discovers in the present system. +</p> + +<p>Disk partitions are not mounted automatically by <em>larch</em>, as one of the main +purposes was to act as an installation CD - for partitioning and formatting the +partitions must be unmounted. But each detected disk partition and CDROM device should +get an entry in '/etc/fstab' and a corresponding mount point in '/mnt'. Thus they +can be mounted using 'mount /mnt/DEVICE' (or by using, say, KwikDisk in KDE). +</p> + +<p>It may however, under certain circumstances, be desirable to have a persistent +'/etc/fstab'. This can be achieved by placing "#KEEP" (without the quotation marks) +at the beginning of a line in '/etc/fstab'. This could be done when making the +original CD by putting the desired '/etc/fstab' file in the <em>overlay</em>, +or else - in the case of a rewritable boot medium (e.g. USB-stick) - by +editing '/etc/fstab' while running the live system and then performing a session +saving reboot. +A new '/etc/fstab' (and the associated mount points in '/mnt') can be generated +at any time while running <em>larch</em>, by executing '<strong>gen_fstab -l</strong>'. +This might be useful after repartitioning, for example. When the '-l' option is +omitted, no updates are made, but the proposed changes are saved to '/tmp/fstab' +and '/tmp/mnt'. +</p> + +<h4><a name="lvm"></a>LVM</h4> + +<p><em>larch</em> can also handle LVM volumes, including automatically +generating entries in '/etc/fstab' and mount points in '/mnt'. +This must however be enabled +in '/etc/rc.conf' (e.g. by putting the required entries in 'rcconfx' in the +<em>profile</em> used to build the <em>larch</em> system). USELVM="yes" must +be set and the module 'dm-mod' must be loaded (this is done +automatically when USELVM="yes" is set). The supplied 'mini2' and 'xmini' example +profiles contains this feature, and can thus be taken as an example. +</p> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_live_system.html">Previous: Live CD structure</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_sessionsave.html">Next: Session saving</a></td> + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_intro.html b/build_tools/clarch/larch/docs/html/larch_intro.html new file mode 100644 index 0000000..8584186 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_intro.html @@ -0,0 +1,128 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> + <title>larch introduction</title> + <meta content="gradgrind" name="author" /> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_features.html">Next: Features</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> – a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Introduction</h2> + +<p><em>larch</em> is a collection of scripts designed around the creation and +use of live CD/DVD/USB-stick versions of <em>Arch Linux</em>. +</p> + +<p>One design aim was easy customization, so that even relatively inexperienced +users could build personalized live CDs (etc.), containing whatever packages they +wanted and with their own personal configurations. The resulting medium should +also be usable for installation purposes, so that one has a customized +<em>Arch Linux</em> installation/rescue medium. As the content can be chosen +freely, a comfortable working environment is possible - in contrast to +the rather Spartan standard <em>Arch</em> installation CD. +</p> + +<p><em>larch</em> also offers a flexible approach to building your live media. +You can use 'profiles' to determine what gets installed, and how it is +configured. The advantage of this method is that all your specifications are +kept together in a folder which can be used to rebuild the same or a similar +system at a later date. Alternatively you can do a normal <em>Arch Linux</em> +installation (if there is such a thing!) and then make a live medium from this. +You can even 'livify' your existing installation (though it might be worth +tidying it up a bit first ...). +</p> + +<p><em>Squashfs</em> offers convenient compression of the data on the CD so that +up to about 2 GB of code can be included on a 700 MB CD. <em>aufs</em> (a +'unification' file system, originally based on <em>unionfs</em>) offers +the ability to write to all directories even though +the CDROM is read-only, which allows such fancy stuff as installation +of new software packages to the running live system. Using <em>aufs</em> +you could do, say, 'pacman -S fluxbox' and <em>fluxbox</em> would be +installed. The limit to the amount of overwriting is determined by the size of +the available memory. +</p> + +<p>All this would normally be gone when you reboot as the changes are +really only stored in memory. However, thanks to various technical wizardry, it +is also possible (on suitable media) to save any changes you make while running +the live system back to the medium on shutdown. +</p> + +<p>Hardware detection is provided by the same <em>udev</em> approach as is used +in a standard <em>Arch Linux</em> system. +</p> + +<p>The <em>larch</em> project comprises several components. The scripts for +building a larch live medium are in the <em>larch</em> package, which need not +itself be installed in the live system, though it may be useful. Scripts and +data for the live environment are provided in the <em>larch-live</em> package, +which must be installed in the live system. There is also an optional installer +(<em>larchin</em>, written in python and bash, with a <em>GTK</em> interface) which +can install the live system to hard disk, providing a convenient way to install a +ready-configured <em>Arch Linux</em> system. +</p> + +<p>I have tried to maintain the distribution-independence of the +<em>larch</em> scripts, so that they can be used on other <em>GNU/Linux</em> systems - +you shouldn't need an <em>Arch Linux</em> installation in order to build a <em>larch</em> +live medium, the dependencies (e.g. <em>bash</em>, <em>wget</em>, +<em>mkisofs</em> ) should be satisfied on pretty well any <em>GNU/Linux</em> system +(and a static version of <em>pacman</em> can be downloaded). In other words, +it should not be difficult to generate your own customized <em>larch</em> +CD on pretty well any <em>GNU/Linux</em> system. +But I must admit that this feature hasn't been tested much. +</p> + +<p>As with most stuff around <em>Arch Linux</em> +it's not really designed for beginners - you should know your +way around a <em>GNU/Linux</em> system (preferably <em>Arch</em>!), and have at least a +minimal idea of running command-line stuff and editing configuration +files. In any case, I hope that the +documentation will be clear enough to help anyone who wants to exploit +<em>larch</em> to the full (feedback is welcome!).</p> + +<p><b>Requirement:</b> +You need quite a lot of space to create an <em>Arch Linux</em> live CD system - to build a +700MB CD image you'll need up to about 4GB. That is because a complete <em>Arch Linux</em> +system is installed, then a compressed ('squashed') verion is made, and then +a CD image (iso). Building for a USB-stick requires slightly less space, as the +iso-image is not built. +</p> + +<br /><br /> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_features.html">Next: Features</a></td> + + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_live_system.html b/build_tools/clarch/larch/docs/html/larch_live_system.html new file mode 100644 index 0000000..5cd6f40 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_live_system.html @@ -0,0 +1,155 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>larch live system structure</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_profiles.html">Previous: Profiles</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_fstab.html">Next: /etc/fstab</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Structure of a <em>larch</em> live CD</h2> + +<p>The vast majority of the code that runs in a live CD/USB system is exactly +the same as in a normal system running from hard disk. +The main differences arise through the live CD/USB system being based on +a read-only root file-system, so various adjustments are necessary to +make the areas that must be writable appear to be so. I say 'appear to be' +because in general any changes will be lost when the system shuts down, +the actual changes being made only in a RAM-based filesystem (but see +<a href="larch_sessionsave.html">"Session saving"</a>). +</p> + +<h3><a name="Squashfs_and_Unionfs"></a>squashfs and aufs</h3> + +<p>In <em>larch</em>, as in many other live CD/USB systems, the ability to (apparently) +write to a read-only file-system is provided by <em>aufs</em> (originally +derived from <em>unionfs</em>). +The file-system is also compressed, using <em>squashfs</em>, so as to fit more data +onto the storage device (normally about 2GB of uncompressed code and data +can be squeezed onto a 700MB CDROM using this approach). A custom +<em>Arch Linux</em> installation (you can choose which packages are installed) is +compressed into a <em>squashfs</em> file-system in the file +<strong>system.sqf</strong>, which is placed in the root directory of the boot device. +</p> + +<p>For use in a live CD/USB system a few changes must be made to some files in the +installation. In <em>larch</em> this is (at first) not done directly, the installed +system is left in a 'clean' state. Instead of that, an additional <em>union</em> layer +is created, in the archive <strong>mods.sqf</strong>, +containing all the modified files (except those in /etc, which are placed in the +top, writable, <em>union</em> layer, which is saved in the <strong>overlay.ovl</strong> archive. +The user is free to include (pretty well) any customizations (s)he wants in these +overlay files. These files are also placed in the root directory of the boot device. +</p> + +<p>These system archives are combined when the live CD/USB system +boots. They are mounted as branches of a <em>union</em> file-system with +the overlay above the 'standard' system, so that files in the overlay have +priority over the original ones. The top layer of the <em>union</em> is a <em>tmpfs</em> +writable layer (thus, effectively, making the whole system writable), +into which the archive <strong>overlay.ovl</strong> is unpacked during booting. +As the changes are only stored in RAM, they will, however, be lost when the system shuts +down (unless using the <a href="larch_sessionsave.html">session saving</a> feature). +</p> + +<h3><a name="initramfs"></a><em>initramfs</em> and <em>mkinitcpio</em></h3> + +<p>It is, in general, not possible to boot directly into a live CD/USB system. +Some form of 'initrd' or 'initramfs' is required, in order to find the boot +device, get hold of the file-system and prepare it for running. +Many modern <em>GNU/Linux</em> systems use initrd/initramfs (the former being now deprecated) +as a matter of course, for loading the necessary kernel modules, and +<em>Arch Linux</em> is no exception, a modular initramfs system (<em>mkinitcpio</em>) +being the standard way to boot <em>Arch Linux</em>, and <em>larch</em> also takes +advantage of it, although some additions need to be made to boot live CD/USB systems. +</p> + +<h3><a name="rc_files"></a>/etc/inittab, /etc/rc.sysinit and /etc/rc.shutdown</h3> + +<p>The initial boot script and the shutdown script must be customized for use +in a larch live environment. There are numerous ways of achieving that and +<em>larch</em> has tried out several. In version 5.3.2 a method was introduced which +involves replacing the original /etc/rc.sysinit and /etc/rc.shutdown scripts +by modified versions which are fully equivalent to the official scripts but +split off certain parts into functions which can be overridden when used in a +<em>larch</em> live system. The 'larch-live' package provides the files +/etc/larch-sysinit and /etc/larch-shutdown which provide the new versions +of these functions for live use. +<p>The need to overwrite certain system files is a bit messy, and means that +the initscripts package should not be updated in the live system, but I +hope the official package will sometime itself contain suitable versions of the +'/etc/rc.sysinit' and '/etc/rc.shutdown' files which separate out the +relevant functions so that larch doesn't need to overwrite them. +</p> +<p>Although it is not strictly necessary (because the substituted files are +fully equivalent to the official ones), larch saves the originals as +'/etc/rc.sysinit.larchsave' and '/etc/rc.shutdown.larchsave', so that these +can be restored on installation by <em>larchin</em> (this might avoid later +confusion). +</p> + +<p>It is possible to use a customized version of '/etc/inittab', by +putting the new version in the <em>profile</em> (in 'rootoverlay') - for +example one could customize the handling of the first terminal, e.g. to +allow automatic login. +The original <em>inittab</em> is saved as '/etc/inittab.larchsave', +so that it can be restored if the system is installed using <em>larchin</em>. +</p> + +<p>One addition in the <em>larch</em> version of the initscripts is the +automatic generation of a new '/etc/fstab' (using the script +<strong>gen_fstab</strong>, which +bases the result on the devices which are detected in the system). Otherwise +it behaves much the same as the version in +a normal <em>Arch Linux</em> system. However, the remount of the root-filessystem and +file-system checks have been left out as they are not relevant in a live-CD +environment. No partitions are mounted and, by default, swap is not enabled. +The reason is primarily that for use as an installation CD, it is better not +to have any partitions mounted, because it is quite likely that the partitions +will be edited in preparation for the installation. Passing boot parameter +'swap' will enable swap if there is a suitable partition (or it can be done +manually using 'swapon -a'). +</p> + +<p>'/etc/rc.shutdown' is adapted by +adding code to deal with session-saving (writing changes back to the boot medium) +and to eject the live-CD. Unlike in the normal version, the hardware clock is not reset. +</p> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_profiles.html">Previous: Profiles</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_fstab.html">Next: /etc/fstab</a></td> + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_overview.html b/build_tools/clarch/larch/docs/html/larch_overview.html new file mode 100644 index 0000000..3bf38fb --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_overview.html @@ -0,0 +1,383 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>larch overview</title> + <meta content="gradgrind" name="author"> +</head> + +<body> +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_quick.html">Previous: Quick start</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_profiles.html">Next: Profiles</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Overview of the <em>larch</em> build system</h2> +<br /> + +<blockquote> +<h3>Warning</h3> + +<p><em>Before we get started I should point out that most of the scripts need to +be run by the 'root' user. That is quite normal for an installer, but it is somewhat +risky - a slight slip and all sorts of damage could be done. Ideally you would +have a machine specially set aside for this sort of thing, i.e. one without any +important data on it. <strong>You have been warned!</strong></em> +</p> +</blockquote> + +<h3><a name="larch_installation"></a>Installation of the <em>larch</em> build system</h3> + +<p>The <em>larch</em> package may be installed in the normal <em>Arch Linux</em> way using +<em>pacman</em>. This method will only work on an <em>Arch</em> system, of course. +</p> + +<p>Alternatively, <em>larch</em> may be used without installing it. +This should also work on non-<em>Arch Linux</em> systems. Download +<a href="ftp://ftp.berlios.de/pub/larch/larch5.3/i686/larch-setup"><strong>larch-setup</strong></a> +to an empty working directory and run it (it is a shell script). This will in +turn download and unpack the current larch package, setting up symlinks so that +the build scripts can be run from this working directory. +If you don't put this new directory on your 'PATH', you may well +need to add a path prefix when running it (e.g. './mklarch' if your current +directory is the one containing the script). +</p> + +<h3><a name="larch_using"></a>Using the <em>larch</em> build system</h3> + +<p>For building a live medium from a 'profile' you need, primarily, <strong>mklarch</strong>; +for building from an existing installation (including rebuilding after using +<strong>mklarch</strong>) <strong>larchify</strong>. <strong>mklarch</strong> +uses <strong>inpacs</strong> to do the actual installation of the packages, +and the functions for performing the live CD creation are in the file +(larch/)<strong>buildlive</strong>. +</p> + +<p>Unlike a normal installation, that used by larch need not be a separate partition, +it can be placed anywhere convenient. +The default installation directory ('/home/larchroot', variable 'INSTLDIR' in the scripts) +should normally be acceptable (the building work is done in the '.larch' sub-directory). +Note that lots of space is necessary in ${INSTLDIR}, nearly 4GB for a 700MB CD. +</p> + +<h3><a name="running_mklarch"></a>Quick <strong>mklarch</strong> overview</h3> + +<p>That first stage is very much like a normal <em>Arch</em> installation to a +partition - which is another possibility with the <strong>inpacs</strong> script. +A couple of small tweaks are made to this base installation to make it more +convenient for live CD/USB use: some glibc locales are generated (set by the file +locale.gen in the profile) and, if <em>openssh</em> is installed, the initial +ssh-keys are generated. +</p> + +<p>Before <strong>mklarch</strong> can be used a 'profile' for the live medium must +be built. This is a folder containing configuration files determining which packages +are installed, which glibc locales are installed, and generally which files should +be customized. Further details are given in <a href="larch_profiles.html">'Profiles'</a>. +</p> + +<p>A simple way to build an iso would then be: +<pre style="margin-left: 80px;">./mklarch -p myprofile</pre> +</p> + +<p>To build a live USB-stick using GRUB to boot and using the <em>pacman</em> +databases as they exist on the build host (rather than the default of +downloading the latest databases using 'pacman -Sy'): +<pre style="margin-left: 80px;">./mklarch -p myprofile -y /var/lib/pacman -ug</pre> +</p> + +<p>The build process can be stopped after the <em>Arch</em> system installation (before building +the 'squashed' live system) by passing the '-a' option to <strong>mklarch</strong>. +All the available options can be seen by running 'mklarch -h'. +</p> + +<p>The rest of the build process is handled by the functions in +<strong>buildlive</strong>, primarily <em>mklive</em>, +which puts all the various components together into a CD image at +'${INSTLDIR}/.larch/cd', then using the <em>build_iso</em> function +to create the iso or (using the <strong>usbboot</strong> script) to prepare +a bootable USB-stick. +</p> + +<p>If you set up your configuration +wrong (or if you or I made some other mistake ...), you might find +you have destroyed some important data and/or your system doesn't +work any more. But that's life - Share and Enjoy! +</p> + +<h3><a name="running_larchify"></a>Quick <em>larchify</em> overview</h3> + +<p><strong>larchify</strong> uses the functions in <strong>buildlive</strong> to +build a live medium from an existing <em>Arch Linux</em> installation. It can also be +used to rebuild a (posibly altered) live medium from the installation arising +from the use of <strong>mklarch</strong>. For example, after building an iso +using <strong>mklarch</strong>, you might want to build another with the same packages +but with a changed overlay - maybe an alteration to rc.conf. In that case you +could make the necessary changes to the profile and call: +<pre style="margin-left: 80px;">./larchify -rp myprofile</pre> +The '-r' option causes the old squashed image to be used, which can save a lot +time. To see all the options run './larchify -h'. +</p> + +<h3><a name="Minimal_build_system_requirements"></a>Minimal build system requirements</h3> + +<p>The <em>larch</em> scripts have been designed to work without heavy +demands on the build system. Although they have been developed under <em>Arch Linux</em>, +they should run on other <em>GNU/Linux</em> systems. The required software has been +kept to a minimum by means of a sort of bootstrapping - some of the build +functions are carried out on the newly installed <em>Arch</em> system using <em>chroot</em>. +For example, you do not need support for <em>squashfs</em> or <em>aufs</em> on +the build system. <em>bash</em>, <em>mkisofs</em> and <em>wget</em> +are assumed to be available (for building a USB-stick version with syslinux you +also need <em>mkfs.vfat</em> from the 'dosfstools' package). If you are not +running <em>Arch Linux</em>, the installation script +(<strong>larch-setup</strong>) will set up pacman using a special package +available from the larch repository (pacman-packed.tar.gz), which contains +in addition to the pacman binary the run-time libraries it needs. +</p> + +<h3><a name="pacman_conf"></a>'pacman.conf' for building and live system use</h3> + +<p>You also need an appropriate 'pacman.conf' file. On a non-<em>Arch</em> system, +unless a pacman.conf is already present in the working directory, this will be +created afresh and a dialog will be presented by <strong>larch-setup</strong> +to select a mirror. Because of potential overwriting (see below) this file +is also copied to pacman.conf.0 (also in the working directory). +</p> +<p>On an <em>Arch</em> system it is assumed that you have already configured your +mirrors appropriately, and the system '/etc/pacman.conf' can be taken. +</p> +<p>When there is a 'pacman.conf' in the profile (base directory, not overlay), +this will be copied to the working directory and used by <em>mklarch</em> +for performing the installation, even if +there was already a version in the working directory. The 'pacman.conf' in +the resulting live system will also be this version if built using +<em>mklarch</em> (i.e. taken from the resulting file in the working +directory). If <em>larchify</em> is used the existing '/etc/pacman.conf' +within the system to be larchified will be used. However, if the overlay in +the profile has its own '/etc/pacman.conf' this will (in both cases) be +used in preference. +</p> +<p>Additionally, an 'IgnorePkg' line is added to the live system's '/etc/pacman.conf', +for 'kernel26', 'aufs' and 'initscripts'. Packages listed in the 'noupdate' file +in the profile, will also be added. +This line will be removed on installation using <em>larchin</em>. +</p> + +<h3><a name="Squashfs_and_Unionfs"></a>squashfs and aufs</h3> + +<p>The newly installed system is made into a <em>squashed</em> file-system in the +file <strong>system.sqf</strong>. This is mounted as the lower layer of a <em>union</em> +(<em>aufs</em>) file-system. On top of that there is a writable +<em>tmpfs</em> so that the file-system as a whole appears writable. An 'overlay' +archive is copied into the writable layer. As this top layer is compressed using +<em>lsop</em>, this package must be installed in the target. +Of course only the <em>tmpfs</em> top layer can actually be written to, +and its contents disappear when the system reboots, so the writing is only +temporary. +</p> + +<p>There is also a second overlay archive, a squashed file system which forms +the middle layer of the union file-system, which increases the flexibillity of +the session saving facility. +</p> + +<p>In order to boot into a system constructed in that manner, you need an +<em>initramfs</em> which deals with mounting all the various bits in the right +way before entering the normal boot sequence. In <em>larch</em> the +<em>initramfs</em> is built using the standard <em>Arch</em> 'mkinitcpio' system, for +which special 'hooks' (essentially code plug-ins) have been developed to +manage the requirements of a <em>larch</em> live system. +</p> + +<h4><a name="aufs"></a>aufs as an alternative to unionfs</h4> +<p><em>larch</em> was initially designed around <em>unionfs</em>, but since then +<em>aufs</em> has been generally a more reliable alternative, and is now +available as a package in <em>Arch Linux</em>. In order to use <em>aufs</em> its +kernel module needs to be installed (which, if using <em>mklarch</em>, can be +achieved by placing package 'aufs' in <strong>addedpacks</strong>), the rest +will then be handled automatically. <strong>N.B.</strong> As <em>unionfs</em> +hasn't been tested for a long time (all development work is done using +<em>aufs</em>) and the current 'overlay merge' only works with <em>aufs</em>, +it is strongly recommended that <em>aufs</em> be used. +</p> + +<h3><a name="Partial_rebuilding"></a>Partial rebuilding</h3> + +<p>If you make some changes to a build which don't require a renewed +installation (the <em>Arch</em> installation in '${INSTLDIR}'), you can use the +<strong>larchify</strong> script to rebuild the system. Such changes might +be tweaks to the overlay, or 'rcconfx', for example (but note that the glibc +locales are in the installation so if you want to change these, you have to rerun the +whole installation, or handle that manually). If - as is likely - the squashed system +from the previous build is still there and is still valid, +this can be reused by passing the '-r' option (thus saving the time required to +squash the system). +</p> + +<p> If you only make changes to files in '${INSTLDIR}/.larch/cd', you can rebuild +the iso using the '-i' option to <strong>larchify</strong>. But be aware that +some of the files in the directories 'isolinux' (when using the +<em>isolinux</em> bootloader) and 'boot' (when using the <em>GRUB</em> bootloader) +are renewed from 'larch/cd-root' and the 'cd-root' directory in the profile. +</p> + +<p><em><strong>N.B.</strong> Even though the <em>Arch</em> installation is +in principle now redundant, you shouldn't delete it if you want to do a quick +rebuild using <strong>larchify</strong>, because this installation is used (via 'chroot') +for some of the build functions.</em> +</p> + +<h3><a name="Custom_packages"></a>Custom packages</h3> + +<p>It is possible to include your own 'custom' packages in the installation. +Maybe ones you have compiled yourself, e.g. from the AUR, or modified versions +(fixes or customizations) of standard packages. To do this you need to put your +packages in a directory and run <strong>gen-repo</strong> - which requires python - +on this directory (run it without arguments to get usage instructions). Then place +an entry for this new repository in your 'pacman.conf' (in the profile or else +in the working directory). +If your packages replace some in the existing repositories, your custom +repository needs to come before those repositories in 'pacman.conf'. +Any packages you want installed now just need to be +listed in <strong>addedpacks</strong>. +</p> + +<p>It is not necessary to build a custom kernel for <em>larch</em>, the +standard kernel ('kernel26') can be used. It includes <em>unionfs</em> +and <em>squashfs</em> modules, and is now included in the set of 'base' +packages. If <em>aufs</em> is desired (which is likely, as at the time of writing, +<em>unionfs</em> didn't work very well), this must be included in +<strong>addedpacks</strong>. +</p> + +<h3><a name="Generating_the_basepacks_list"></a>Generating +the <em>basepacks</em> list</h3> + +<p>In case the base package set changes, <strong>inpacs</strong> uses the list +provided by 'pacman -Sg base' by default. However, if there is a 'basepacks' +file in the profile this will be used to supply the list of base packages +(one package per line). +</p> + +<p><strong>inpacs</strong> can also be used separately for <em>Arch</em> installation. +To get a full listing of possible options run it without arguments (note that +it pays no attention to profiles, all options must be passed explicitly). +</p> + +<p>It is possible to filter out certain unwanted packages from the base set. +In most cases the default setting will be satisfactory, but you can change it by +placing a 'baseveto' file (one package per line) in the profile directory. +Be aware, however, that vetoed packages will be installed anyway if they are +required by some other installed package. +</p> + +<h3><a name="addedpacks"></a><em>addedpacks</em></h3> + +<p>This group of packages is the main place for defining your system. +Here you can enter all the applications you would like in your live CD/USB system +(and subsequently installed to a hard disk partition, if that was your intention). +Thanks to <i>pacman</i> you don't need to sort out dependencies, +these should all be included automatically. It is (still) possible to +squeeze (or rather 'squash') quite a respectable quantity of software +onto a CD - my first experiments included most of <i>KDE</i>, +<i>OpenOffice</i>, <i>K3b</i>, <i>GIMP</i>, and quite a lot +besides.</p> + +<h3><a name="Installation"></a>Installation of the initial system</h3> + +<p>The foundation of the <em>larch</em> live CD/USB system is an initial, +potentially unconfigured <em>Arch Linux</em> system <em>squashed</em> up in the file +'system.sqf'. The installation of this system is can be handled by <em>mklarch</em>, +which uses <em>inpacs</em>, which in turn uses <em>pacman</em> to +install all the constituent packages using +the '-r' option to install to the chosen location, which can be anywhere where +there is enough space.</p> + +<p>By default the package cache on the build host will be used, so that only +packages which have not already been downloaded will be fetched from the +chosen mirror. The '-c' option to <strong>mklarch</strong> allows another +cache location to be used. Note that this can also be on a remote machine, +mounted using <em>sshfs</em> or <em>NFS</em>. +</p> + +<h3><a name="existingSystem"></a>Making a live CD from an existing <em>Arch</em> +installation</h3> + +<p>As mentioned above, <strong>larchify</strong> can be used to make a live +medium from an existing <em>Arch</em> installation, using the mount point of the +installation as argument. The installation must already be mounted, including any +sub-mounts (e.g. /home on another partition). The main mount must be with +options 'exec,dev', because some of the building is done via a <em>chroot</em> +to the installation. +</p> + +<p>It can also 'livify' the currently running (<em>Arch</em> only!) system, by +passing '/' as argument. +</p> + +<p>All aspects of the larch building process connected with the installation +are in this case irrelevant, as it is assumed that the installation is already complete. +The handling of 'profiles' is also different as these are largely +concerned with the installation process. A profile may still be used, though, +maybe to customize the 'mkinitcpio.conf' used to build the live system's +<em>initramfs</em>, or to add extra content by means of the <strong>cd-root</strong> +folder, for example. +</p> + +<p>In order to support building a <em>larch</em> system, certain packages outside +the <em>Arch</em> base group must be installed in the system to be 'larchified': +<pre style="margin-left: 80px;"><em>squashfs-tools</em>, <em>lzop</em>, <em>larch-live</em>, +<em>aufs</em> (if - recommended - you want to use that instead of <em>unionfs</em>), +<em>syslinux</em> (if using isolinux or syslinux), +<em>cdrkit</em> (for building an iso), +<em>eject</em> (to eject a CD at shutdown). + +for the hard-disk installer - <em>larchin</em>, <em>python</em>, <em>pygtk</em>, +<em>parted</em>, <em>ntfsprogs</em>, +(optional, but recommended) <em>gparted</em>. + +for this documentation, and for the capability of doing complete +rebuilds - <em>larch</em> +</pre> +</p> + +<p>Note that some things in '/var' will not be included in the 'live' system. +Firstly, the standard <em>pacman</em> package cache, '/var/cache/pacman/pkg'. +Also the log files (in '/var/log') and '/var/tmp' (temporary files, like '/tmp') +are not saved. As some files in '/var/log' are required for certain aspects of +logging to function, these are recreated (as empty files) in the resulting +'system.sqf'. +</p> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_quick.html">Previous: Quick start</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_profiles.html">Next: Profiles</a></td> + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_profiles.html b/build_tools/clarch/larch/docs/html/larch_profiles.html new file mode 100644 index 0000000..68db618 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_profiles.html @@ -0,0 +1,167 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>larch profiles</title> + <meta content="gradgrind" name="author"> +</head> + +<body> +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_overview.html">Previous: Overview</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_live_system.html">Next: Live CD structure</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linu</em>x CD</h1> + + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Profiles</h2> + +<p>This feature of the <em>larch</em> scripts allows bundling +all the configuration information for a particular live CD 'design' into +a single directory. That includes the list of packages to be installed, locale +information and the particular tweaks and additions needed to customize the CD, +in particular a subdirectory containing the 'overlay' files - those files +which have been changed from their initial fresh state after installation +and those which have simply been added. +</p> + +<p>In order to allow more flexibility with the overlay, <em>larch</em> now +provides two mechanisms for providing overlay files. The simplest is by +means of the directory 'rootoverlay' - everything in this directory will be +copied to the live system overlay and its ownership will be changed to +'root:root'. In case it is desired to include files with other ownerships, +these must be packed up with the correct ownerships into the file 'overlay.xpk' +using the <em>xpack</em> packing utility (supplied with <em>larch</em>, see +below). This requires some care, but is a little safer than, say, a 'tar.gz' +archive because it has an option to pack so that only root can unpack the +archive. +In general however the 'rootoverlay' directory should be adequate, and +much of the tweaking may be done <em>in situ</em> (i.e. within a running +live USB system), using a utility - see +<a href="larch_sessionsave.html">'Session saving'</a> - to recreate +the compressed overlay file-system (<strong>overlay.ovl</strong>). +</p> + +<p>If you would like to have a look at a profile, look in the 'profiles' +directory in the distribution. Each of its subdirectories is a profile, the +subdirectory name is also the profile name. If you want to make your own +profile, it is probably easiest to start with one of the examples. Copy it to a +working directory and rename it appropriately. +</p> + +<p>After editing to your heart's content, you can build the corresponding live +CD system with the call: +<pre> + (path/to/)mklarch -p directory +</pre> +where 'directory' is your profile directory. +</p> + +<p>The important files within a profile are described below: +</p> +<ul> + <li><strong>addedpacks</strong> - a simple list of packages (just package + name as supplied to 'pacman -S', e.g. 'syslinux', not the file name), one per line, + comment lines start with '#'. + This is the primary place for configuring which packages are installed. + </li> + + <li><strong>locale.gen</strong> - <em>mklarch</em> prefixes this profile + file (if it is present) to the file '/etc/locale.gen' in the newly installed + system and runs 'locale-gen' (using <em>chroot</em>) to deal with glibc + locale generation. + So just put the locales you want in here. + </li> + + <li><strong>rcconfx</strong> - This is a list of modifications for '/etc/rc.conf'. + It contains those variable definitions which are different to the default + values. This is then merged with the original to produce a modified overlay file. + </li> + + <li><strong>rootoverlay</strong> - The files in this directory are effectively + copied on top of the original system - as an overlay. They (potentially) + form the bulk of the customization for the live system. + </li> + + <li><strong>overlay.xpk</strong> - As described above this is a self-extracting + archive of 'overlay files', which can be used as an alternative to 'rootoverlay' + for non-root owned files. + </li> + + <li><strong>mkinitcpio.conf</strong> - This file is optional. If it is present it will + replace the version in the 'lib/initcpio' folder of the + <em>larch-live</em> package to produce the initramfs + for the live CD. You should take that file as the starting point to ensure that + the necessary larch hooks are installed, but you are free to change other hooks + (e.g. use 'ide' instead of 'pata') or add modules. + </li> + + <li><strong>basepacks</strong> - This file is optional. If it is present it + supplies a list of packages (one package per line, as <em>addedpacks</em>) to be + used instead of the standard list of 'core/base' packages for the basis of the + installation done by <em>mklarch</em>, preventing the 'packages.txt' file from the + 'core' repository from being downloaded and used as source for the base package list. + </li> + + <li><strong>baseveto</strong> - This file is optional. It provides a list of + packages (one package per line) to be ignored in the base package list.</li> + + <li><strong>cd-root</strong> - This directory contains files to configure the bootloader. + Those for <em>isolinux</em> are in the directory 'isolinux', which is copied to the + root CD directory when the <em>isolinux</em> bootloader is chosen. Those for + <em>GRUB</em> are in the directory 'boot', which is copied to the + root CD directory when the <em>GRUB</em> bootloader is chosen. Here you can + configure things like boot menus and splash screens. + Anything in the 'cd-root' folder will be copied directly to the root of the live medium, so + if there is anything else you want on your medium, you can put it in here. + </li> +</ul> + +<h3><a name="xpack"></a><em>xpack</em> and non-root owned overlay files</h3> +To include non 'root:root' owned files in an overlay, create a directory +somewhere called 'overlay' and place all the desired files therein with the +correct paths, ownerships and permissions. Then run +<pre> + xpath -r overlay overlay.xpk +</pre> +(from within the directory containing 'overlay'). The resulting 'overlay.xpk' +file should then be placed in your profile directory. +If you want to unpack such an overlay archive, you need to be root, go to the +directory containing it and run +<pre> + ./overlay.xpk . +</pre> +(don't miss the final '.', the unpacker needs an existing +directory as parameter). +</p> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_overview.html">Previous: Overview</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_live_system.html">Next: Live CD structure</a></td> + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_quick.html b/build_tools/clarch/larch/docs/html/larch_quick.html new file mode 100644 index 0000000..4500f5d --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_quick.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>larch quick start</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_features.html">Previous: Features</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_overview.html">Next: Larch Overview</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Quick Start</h2> + +<br /><br /> + +<p>A quick run through of the steps necessary to build your own <em>larch</em> CD. +This should provide you with a working live CD, but to take full advantage of +the flexibility offered by the <em>larch</em> build system you will probably need +to consult the rest of the documentation.</p> + +<ul> + <li>At present there is only a repository for 'i686', + as I don't have a 64-bit machine (but testers are welcome to build their own + repository from svn - a simple script is provided). + </li> + <li>Download <a href="ftp://ftp.berlios.de/pub/larch/larch5.3/i686/larch-setup"><strong>larch-setup</strong></a> + to an empty working directory and run it (it is a shell script). This will in + turn download and unpack the current larch package, setting up symlinks so that + the build scripts can be run from this working directory.</li> + <li>Run './mklarch -h' to get a usage description. + </li> + <li>From now on you must be running as root, i.e. it's potentially dangerous stuff! + </li> + <li>You can then try building one of the example profiles, for example: + <pre>./mklarch -p larch/profiles/xmini</pre> + You can also adapt one of the example profiles to your own needs. + </li> + <li> If you chose a delivered profile, the build should just run, apart from + asking for confirmation a few times. + </li> + <li> For a custom build: + <ul> + <li> Copy an example profile (from larch/profiles) to your working directory, giving it + an appropriate name. + </li> + <li> Edit 'locale.gen' for your glibc locale needs. + </li> + <li> Edit 'rcconfx', which contains just the changes to the default + /etc/rc.conf. Especially the locale and console + keyboard setting may be interesting.</li> + <li> Editing the overlay (the set of files which are changed from the default + installation) might be a bit trickier, as permissions and ownerships must be + correct. Please read the relevant + <a href="larch_profiles.html">documentation</a> + before attempting this.</li> + <li> OPTIONAL: If you want ssh access to your live system, + see <a href="larch_ssh.html">'ssh access'</a></li> + </ul> + before running <em>mklarch</em>. + <li> Another possibility is to use <strong>larchify</strong> (run './larchify -h' + for a usage description) to 'livify' an existing <em>Arch Linux</em> installation, even + the currently running one. Certain packages must be installed, but then running + './larchify path/to/installation' should be + enough for a simple build. See <a href="larch_overview.html#existingSystem"> + 'Making a live CD from an existing <em>Arch</em> installation'</a> for more details.</li> + <li> After a while, the iso for the CD should be ready for burning.</li> + <li> Alternatively, you can put it on a USB-stick, by passing the '-u' option + to 'mklarch'.</li> + <li> Share and Enjoy!</li> +</ul> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_features.html">Previous: Features</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_overview.html">Next: Larch Overview</a></td> + + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_running.html b/build_tools/clarch/larch/docs/html/larch_running.html new file mode 100644 index 0000000..e0d28f3 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_running.html @@ -0,0 +1,169 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"> + <title>running larch</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_ssh.html">Previous: ssh access</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_.html">Next: ????</a></td> + + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> +– +a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Running a <em>larch</em> live-CD/USB system</h2> + +<p>Of course the details depend on what you have installed and how you have +configured it. For example, the 'mini2' example profile builds a console-only system, +the 'xmaxi' profile boots to xfce4. +</p> + +<p>One thing worth noting is that these supplied profiles automatically login +to the root account, which - potentially - allows all sorts of 'dangerous' actions, +like reformatting your disks or making a mess of your file-systems in other ways. +This is because one of the main <em>raisons d'ĂȘtre</em> for <em>larch</em> is its use +as an <em>Arch</em>-installation-and-rescue medium. For this, you need root access. +However, if you want to use the system in other ways, e.g. for text or image editing, +or for internet browsing or e-mail writing, it might be safer to do this as an +unprivileged user. Such a user is easily created with the 'adduser' command, or +in KDE with 'kuser' (or using the 'luser.py' script in the <em>larch</em> +'<em>luser</em>' package). If you have a writable boot medium, such changes can be +'remembered' by saving the session when you shut the system down (the possibility +will normally be offered automatically). +</p> + +<h4><a name="bootparm"></a>Boot parameters</h4> + +<p>As the <em>larch</em> build system is highly configurable, the available +boot parameters can also vary, but by default 'swap' and 'c2r' are provided. +'swap' indicates that an existing swap partition should be used (the default +is not to use it). 'c2r' means 'copy to RAM', i.e. the system data is copied +to main memory before the system is initialized. This allow the system to run +very fast and frees up the boot device (e.g. the boot CD can be ejected and the +drive used for another CD), but it does require a lot of memory (significantly +more than the size of the boot medium), and the boot process is rather slow +because so much data must be copied. Because of the high memory usage, I have +arranged it so that 'c2r' also implies 'swap'. With A USB-stick as boot medium, +the 'c2r' parameter should generally not really be needed, performance is normally +pretty good and it doesn't occupy the CD-drive (if an extra boot CD is needed, on +a machine that can't boot directly from USB, that can be removed after +booting even without 'c2r'). +</p> + +<h4><a name="config"></a>Configuration</h4> + +<p>The supplied profiles are just intended as starting points for your own +configurations, they are fairly primitive, in fact only a little more than a newly +installed <em>Arch</em> sytem. If you are running a profile with X11, you may find that you +need to configure it before it will run. Since <em>Xorg</em> version 7.3, it +is often possible to run without an <strong>/etc/X11/xorg.conf</strong>, but +it may be necessary to create and tweak the configuration file for your system. +You can try 'X -configure' or 'xorgconfig' to create a starting point which you can +then tweak. Start X with <em>startx</em>. +</p> + +<p>The 'xmini' and 'xmaxi' profiles use a slightly more elaborate login approach on +the first terminal, with a simple menu as well as automatic login. There is also +a logout gui for xfce, which together with the login script can +trigger session saving directly, bypassing the console prompt. +</p> + +<p>If you are stuck with the console, there is still hope. It's not as pretty or +newbie friendly as an X11 desktop, but still quite capable. I always like to have +<em>mc</em> available, it's a real godsend for non-geeks (you should also install +<em>lynx</em> so that HTML files can be displayed on the console - at a +pinch you can also surf with it, but it is painful). +</p> + +<p>If your console keyboard map is +wrong, try running <i>km</i> (I stole this from the +standard Arch install CD and modified it a bit to work in <em>larch</em>). +It also modifies '/etc/rc.conf', so the change can be retained for subsequent +runs by performing a 'session-save'. +</p> + +<p>If you have a DHCP server on your network, you might well find that +the network interface is configured automatically (assuming your <em>rc.conf</em> +is configured appropriately). On my prototype, I could just fire up <em>konqueror</em> +and the world was my oyster, as they say. If not, well I'm afraid it's +not so easy. Until someone comes up with something better, you'll have +to edit the appropriate configuration files (primarily '/etc/rc.conf') +- see the <em>Arch Linux</em> documentation for details - and then do +'/etc/rc.d/network start'. If you already have a running network +interface but want to change it, you may need to stop it running first, +using 'stop' instead of 'start', then make the changes, then start it. +I don't know if 'restart' would work (it stops then starts the network) +after a change to the configuration. +</p> + +<p>Of course the exact details of what you can do depends on what +software you installed, so I won't rabbit on endlessly about it here. +Nearly all configuration details should be just the same as in a normal, +hard-disk based installation. +</p> + +<h4><a name="install"></a>Installation to hard disk</h4> + +<p>The <em>larch</em> hard-disk installer <em>larchin</em> may be used to install +<em>Arch Linux</em> to hard disk (or similar). At the moment it is very fresh +and rather minimal, probably rather buggy, but I hope it will improve over time. +It is not intended as a complete solution for all aspects of <em>Arch</em> installation, +but I have tried to concentrate on those areas that are unique to the installation +process. In other words it does very little system configuration, because such +requirements can also exist in an already installed system, so I think this should +be covered by separate tools. +<em>larchin</em> deals with partitioning and formatting of hard drives, placing +<em>Arch Linux</em> (primarily a copy of the live system on which it is running) +on the newly formatted partitions, and installation of the GRUB bootloader. +It is so fresh that it hasn't yet got any documentation yet, but it's usage +should be very straightforward - just run 'larchin.py', as root). +</p> + +<p>As mentioned above the main approach to <em>Arch</em> installation covered by +<em>larchin</em> is to copy the contents of the live system to a hard drive. Those +(few) bits peculiar to the needs of a live system are removed and the result is a +completely normal <em>Arch Linux</em> installation. I should perhaps mention +the file 'larch0' in the '/.livesys' directory (copied there from the 'larch/copy' +directory on the boot medium). This script is run at the end of the installation +(if it exists) and allows custom installation actions to be performed. +The possibility of doing a completely fresh installation using ftp to +fetch the latest packages may be added at some point, but that is not yet certain. +</p> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + + <td><a href="larch_ssh.html">Previous: ssh access</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_.html">Next: ????</a></td> + + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_sessionsave.html b/build_tools/clarch/larch/docs/html/larch_sessionsave.html new file mode 100644 index 0000000..edca50c --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_sessionsave.html @@ -0,0 +1,162 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> + <title>larch session saving</title> + <meta content="gradgrind" name="author" /> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_fstab.html">Previous: /etc/fstab</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_ssh.html">Next: ssh access</a></td> + </tr> + </tbody> +</table> + +<br /> + +<h1><big>larch</big> – a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>Saving a session back to the boot device (or even somewhere else)</h2> + +<p>An easy way to create a customized live-USB-stick is to start from an +existing one, make whatever changes you like, and then save the result back to +the USB-stick. +</p> + +<h3><a name="overlays"></a>Overlay archives, <strong>overlay.ovl</strong> and +<strong>mods.sqf</strong></h3> + +<p>In <em>larch</em> the <em>overlay</em> file-system (in the +<em>compressed</em> file 'overlay.ovl') can be rebuilt +from the state of the live system when it shuts down. +This is handled primarily by the script <strong>/opt/larch-live/session-save/saveovl</strong>, which is +called from the customized shutdown function. +If the medium is writable and contains a file 'larch/save', the user is offered the possibility of +rewriting the overlay archive, thus saving the current state. +</p> + +<p>The main overlay archive (<strong>overlay.ovl</strong>) is unpacked into memory +at boot and repacked when saving the session at shutdown. When this archive grows +too large it will reduce the amount of available memory, perhaps to an unacceptable extent. +It will also lengthen boot and shutdown times. To counter this, it is possible to merge the +overlay archive into the middle <em>union</em> layer in <strong>mods.sqf</strong> (which is +normally not copied to memory), thus restoring the rapid load and save times +for <strong>overlay.ovl</strong>, and maximizing the available memory. I call this process +'overlay merging', and it is offered as a shutdown option. +It takes longer to execute than a normal session save, but from larch version 5.2 +a new <em>aufs</em> option allows the merging to be done quicker than it was +previously and without significant extra memory requirements. In this version +a separate <em>aufs</em> union of the two overlay layers is mounted in which +the whiteouts are visible. This union can then be squashed directly, without +requiring the new, merged overlay to be rebuilt in memory. As it is a feature +of <em>aufs</em>, overlay merging is no longer supported for <em>unionfs</em> +(note that <em>unionfs</em> is at present not actively supported in <em>larch</em> +anyway). +</p> + +<h3><a name="var_files"></a>Special places in /var</h3> + +<p>It was considered undesirable to include some things in the '/var' directory +in the session saves, primarily because of the space they occupy. Firstly, +the standard <em>pacman</em> package cache, '/var/cache/pacman/pkg' - if you +do want to save your cache, you should either handle this manually or set +up another location using 'CacheDir' in /etc/pacman.conf'. Also the log files +(in '/var/log') and '/var/tmp' (temporary files, like '/tmp') are not saved. +</p> + +<h3><a name="upd_packages"></a>Updating packages</h3> + +<p>It should be possible to include package addition and removal in the list +of customizations undertaken using this method, but there are some limitations. Apart from +size considerations (the top level overlay is unpacked into memory at boot), there is also +a limitation connected with the kernel. Essentially, the kernel and its modules may not +be updated. <strong>If you do this, you may well make a mess of your system</strong>. +In other words, be very careful with 'pacman -Su' - only upgrade selected packages. +</p> +<p>The reason for this is that the kernel is not contained within the +squashed file-system, but is held separately on the boot medium, while its modules +are contained in the squashed system and also in the initramfs. Updating these is not +impossible (if booting from a writable medium), but <em>pacman</em> cannot do it and +it is not straightforward (e.g. using a CD to boot to a USB-stick on a computer not +supporting USB boot would additionally need a new CD). A complete rebuild of the live +system might be a better approach. And using 'larchify' it should even be possible to +perform such a rebuild from within the running live system. +</p> + +<h3><a name="de-Act"></a>Activating and deactivating the session-saving feature</h3> + +<p>As mentioned above, for this feature to be available, there must be a file with +the name 'save' in the boot medium's 'larch' directory. +</p> + +<h3><a name="custom"></a>Customizing the behaviour using scripts</h3> + +<p>Some aspects of the session saving can be customized by writing scripts to +override the default behaviour. These scripts are (in general) kept on the boot +medium, in the 'larch' directory. As these are shell scripts and their use requires +some knowledge of the inner workings of the <em>larch</em> live system, it will +almost certainly be necessary to read the existing <em>larch</em> scripts where the +custom scripts are 'sourced' if you want to +write your own scripts to change the behaviour of the <em>larch</em> live system. +</p> +<ul> + <li><strong>session-save</strong> + <p>Used in <strong>/opt/larch-live/session-save/saveovl</strong>. This script can be + used to customize the creation of the new overlay archive, e.g. by + specifying a new location. The default is 'overlay.ovl' on the boot medium. + </p> + </li> + <li><strong>save-menu</strong> + <p>Used in <strong>/opt/larch-live/session-save/saveovl</strong>. This script can be + used to further customize the creation of the new overlay archive, e.g. by + providing an alternative session save menu. Note that if the + <strong>session-save</strong> script specified an alternative device path + for saving the overlay, this script will be sought in the 'larch' directory + on that path. + </p> + </li> + <li><strong>merge-adjust</strong> + <p>Used in <strong>/opt/larch-live/session-save/merge_overlay</strong>. This script can be + used to further customize aspects of the overlay merging process. Note that if the + <strong>session-save</strong> script specified an alternative device path + for saving the overlay, this script will be sought in the 'larch' directory + on that path. + </p> + </li> + <li><strong>boot-init</strong> + <p>In initramfs hook <strong>larch3</strong>. This script allows adjustment of + the overlay handling during the boot process, e.g. getting them from another + path. + Note that the shell environment here is that of the initramfs and thus + very limited. + </p> + </li> +</ul> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_fstab.html">Previous: /etc/fstab</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_ssh.html">Next: ssh access</a></td> + </tr> + </tbody> +</table> + +</body> +</html> diff --git a/build_tools/clarch/larch/docs/html/larch_ssh.html b/build_tools/clarch/larch/docs/html/larch_ssh.html new file mode 100644 index 0000000..f7db018 --- /dev/null +++ b/build_tools/clarch/larch/docs/html/larch_ssh.html @@ -0,0 +1,205 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + +<head> + <meta content="text/html;charset=UTF-8" http-equiv="Content-Type" /> + <title>larch ssh access</title> + <meta content="gradgrind" name="author"> +</head> + +<body> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_sessionsave.html">Previous: Session saving</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_running.html">Next: Running larch</a></td> + </tr> + </tbody> +</table> + +<br /> +<h1><big>larch</big> – a do-it-yourself live <em>Arch Linux</em> CD</h1> + +<img style="border: 0px solid ; width: 320px; height: 320px;" alt="" src="larch1.jpg" + name="graphics1" align="right" hspace="10" vspace="10" /> +<br /><br /> + +<h2>ssh access</h2> +<br /> + +<p>One feature I wanted in my live system was the ability to +access and control it remotely via <em>ssh</em>. <em>ssh</em> is +generally very useful, but here it also gives my installation CD a rare +advantage over most others - using it I can install <em>Arch Linux</em> +to a computer which has no keyboard or monitor. Insert the CD, boot up +the computer (assuming it is configured to boot from CD), and log in +via the network using another computer. Isn't <em>Linux</em> great! +</p> + +<p>Well, it doesn't quite work out of the box, though it could be +tweaked so that - in the right environment - it would. Firstly, there +must be a network connection which gets set up automatically - +the easiest is probably <em>DHCP</em> (so long as +you can then find the address of the live system), +but by tweaking <strong>rc.conf</strong> (via <strong>rcconfx</strong> +in the <em>profile</em> or by using the session saving feature) +a static address is also easy to set up. +Secondly you must provide the live system with your public key, so +that you are allowed access (using public key authentication), or else +set a password for the <em>larch</em> root user (probably easiest using the +session saving feature). +</p> + +<h4>id_rsa.pub & authorized_keys</h4> + +<p><strong>id_rsa.pub</strong> +is a public key, and it can be used to allow the user (on the remote machine) +whose key this is to <em>ssh</em> into the live system. +If you leave passwordless logins disabled (the +default), then so long as no root password is set, +the only way in (to the root account) is via public key authentication. +Of course, if you change the root password, anyone (who knows the +password) can log in via <em>ssh</em> +(if the <em>sshd</em> daemon is running). +</p> + +<p>To generate this key for your user (assuming you don't already +have one, in <strong>~/.ssh</strong>): +</p> + +<pre style="margin-left: 80px;">ssh-keygen -t rsa</pre> + +<p>Use the default destination file and empty passphrase +(normally you wouldn't do that, +but I think it is appropriate in this case). +</p> + +<p>In order to enable <em>ssh</em> to the root account on the live +system, the contents of this file (a single text line) must be placed in +the <em>larch</em> system's <strong>/root/.ssh/authorized_keys</strong> file. +This file will probably not yet +exist, so the 'id_rsa.pub' can be simply copied to it. +If doing this before building the live-CD, copy the file to this +position in the 'overlay' directory in the <em>profile</em>, being +careful to get ownerships (root:root) and permissions (644) correct. +To do this in a running <em>larch</em> system, copy the file to this location - +session saving will then preserve it. +</p> + +<p>If you don't need <em>sshd</em> on the live system, you can +remove it from the daemons in <strong>rc.conf</strong>.</p> +</p> + +<h4>/etc/hosts.allow</h4> + +<p> +This must be edited to allow <i>ssh</i> +access to the live system: +</p> + +<pre style="margin-left: 80px;"> +# To allow ssh in from anywhere +sshd: ALL +</pre> + +<p>If that is too radical for you, you might be able to restrict +it somewhat - that depends on your exact circumstances. For example: +</p> + +<pre style="margin-left: 80px;"> +# To allow ssh in from local net (example) +sshd: 192.168.1. +</pre> + +<h4>ssh host keys</h4> + +<p>The files +<strong>/etc/ssh/ssh_host_dsa_key</strong> +<strong>/etc/ssh/ssh_host_dsa_key.pub</strong>, +<strong>/etc/ssh/ssh_host_rsa_key</strong>, +<strong>/etc/ssh/ssh_host_rsa_key.pub</strong>, +<strong>/etc/ssh/ssh_host_key</strong>, +and +<strong>/etc/ssh/ssh_host_key.pub</strong> +are normally (in a hard-disk based system) generated on the first run of +<strong>/etc/rc.d/sshd</strong>, i.e. during the first boot after a new +installation. This only needs to be done once. However in a live-CD system +changes are generally lost when the system shuts down, so this would need +to be done at every boot, which takes a while, so I prefer to pregenerate them. +At present this is +done during the first phase of the live-CD build (the <em>Arch Linux</em> +installation phase). What this means is that all live-CDs generated from +this base will have the same ssh host keys. If security is important to +you, these should be regenerated, e.g. for the running <em>larch</em> system +as follows: +</p> + +<pre style="margin-left: 80px;"> +rm /etc/ssh/ssh_host_* +/etc/rc.d/sshd restart +</pre> + +<h3><a name="ssh_x11"></a><em>ssh</em> and <em>X11</em></h3> + +<p> +If you have set up 'X11 Forwarding' (see below), you can run X11 applications on the +live system from your remote system. This is very neat! Before <em>xorg</em> reached +version 7 there were complications due to the location of its <em>xauth</em> +program, but since that version this is at the <em>ssh</em> +default position, <strong>/usr/bin/xauth</strong>, so all should now be well. +</p> + +<p> +Bear in mind that this will only work if you use the -Y option to <em>ssh</em>, +or set up its configuration file properly. +</p> + +[ +<p style="margin-left: 40px;"> +If, for some reason you are not using Xorg7(+), you may need to set the <em>xauth</em> +path in <strong>/etc/ssh/sshd_config</strong> +and/or <strong>/etc/ssh/ssh_config</strong> (or set a <em>symlink</em> from <strong>/usr/bin/xauth</strong> to <strong>/usr/X11R6/bin/xauth</strong>): +</p> + +<pre style="margin-left: 80px;">XAuthLocation /usr/X11R6/bin/xauth</pre> +] + +<h4>/etc/ssh/sshd_config</h4> + +<p>This file is changed to allow X applications to run on the +live system but display on another: +</p> + +<pre style="margin-left: 80px;">X11Forwarding yes</pre> + +<p> +This will only work if you use the -Y option to <em>ssh</em> +on the system from which you log in, and on which +you want to display the X windows (e.g. 'ssh -Y +root@192.168.0.201'). Alternatively you can put the +following in <em>its</em> <strong>etc/ssh/ssh_config</strong>: +</p> + +<pre style="margin-left: 80px;"> +ForwardX11 yes +ForwardX11Trusted yes +</pre> + +<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><a href="larch_sessionsave.html">Previous: Session saving</a></td> + + <td><a href="larch_docindex.html">Table of Contents</a></td> + + <td><a href="larch_running.html">Next: Running larch</a></td> + </tr> + </tbody> +</table> + +</body> +</html> |