# hdw - linux INSTALL file this is a short introduction on how to install hdw-linux. you should have build your hdw distro already or at least have the hdw-linux sources installed to use the hdw-get script to install from precompiled binaries. it is supposed to work, at least for me. though this may hurt your baby, be warned. i mean it! there are two diffrent ways of how to setup your hdw-linux system. the first one assumes you have finished a build as explained in doc/BUILD. for the other way you need to have the binary tarballs accessible which you may have created after/during build procedure or on cd from someone else. please note that hdw-get is able to fetch them from a http/ftp server too. i keep trying to offer the binaries of the latest stable release on hackdaworld.dyndns.org, mirrors appreciated! finally some configuration issues are discussed and the system is prepared for reboot. for both ways you will need kernel 2.6 running to do the chroot later on! here we go ... 1. way - hdw-distro ready @ $hdw_build_dir ------------------------------------------ in case your hdw-build directory alreday has been mounted on a seperated partition you may skip the following and read on at chapter 'final steps'. otherwise copy over the hdw system to your target partition. please make sure unmount the hdw related mounts which the scripts may not have umounted. example: mke2fs mkdir -p /mnt/hdw-target mount /mnt/hdw-target (feel free to create more partitions like /usr, /var, /boot and so on) mke2fs mkdir -p /mnt/hdw-target/boot mount /mnt/hdw-target/boot umount $hdw_build_dir/dev/{shm,pts} umount $hdw_build_dir/{dev,sys,proc} umount $hdw_build_dir/usr/src/hdw-linux/{download,binaries} cp -a $hdw_build_dir/* /mnt/hdw-target 2. way - hdw-get ---------------- hdw-get is a minimal packet manager used to install/remove packages from your hdw distribution. please have a look at the hdw-get script, it is simple and thus more easy to get its functionality. two diffrent ways using hde-get are introduced now. the hdw-get script can be found in the hdw-linux source tree in the ./misc/hdw-tools directory. installing binaries explicitly pointing to them ----------------------------------------------- in that case you may just install one package after another. example: mke2fs mount /mnt/hdw-target (again feel free to create more partitions) for i in /point/to/binaries/*.tar.bz2; do hdw-get install /mnt/hdw-target $i done this is not a nice way since what you want is more control of the packages going to be installed. please try to use the next method. install binaries according to a distribution package list --------------------------------------------------------- in that case binaries should be located in bin_dir or net_addr of your hdw-get.conf file within the same directory structure as created by scripts/Create-Binary. wget is needed if you want to fetch the binaries via internet. please note that due to harddisk limitations binaries for only one arch/optimization and hdw version can be offered via internet. if you thnk this is bad and you could help out, please contact me! example: cat > /etc/hdw-get.conf << EOF net_addr="http://hackdaworld.dyndns.org/download" bin_addr="/usr/src/hdw-linux/binaries" # note that there dont exist binaries of all versions/archs hdw_version="0.3" hdw_arch="ia32" ; hdw_arch_opt="i686" EOF ./scripts/Helper -create_dist_file ./misc/hdw-tools/hdw-get dist-install /mnt/hdw-target \ ./distro/ you may edit the distribution file, hdw-get should actually warn you about runtime dependencies. please note that dependency checking is still in development, even for the stable releases, so be sure you know what you are doing. hint: (how i am using hdw ...) o build target all-dev, skip packages that wont build by touching a logfile o upload all the created binaries to a networked computer with apache installed o boot your other debian/suse/old-hdw systems, get the hdw-linux sources, create appropriate distro files and run hdw-get (or even use an automated method using pxe boot, see ./doc/FAI) final steps ----------- |--------------------------------------------------------------------------| | you may want/need to mount proc/sysfs somewhere in tis steps, simply do: | | mount /proc ; mount /sys (when you think its needed) | |--------------------------------------------------------------------------| - chroot to your new build system and compile a new kernel (you have to do this if you are not booting via nfsroot!) example: chroot /mnt/hdw-target /bin/bash \ PATH="/sbin:/bin:/usr/sbin:/usr/bin" --login cd /usr/src/linux make menuconfig (disable CONFIG_ROOT_NFS, if you are not booting via nfsroot!) make dep bzImage modules modules_install - yo may want to set a root password (default is 'hdw' iirc) example: passwd (type your password, yes, type it twice :) - leave the chroot (beside you are not installing from rescue disks or via FAI) and make the kernel bootable example: exit cp /mnt/hdw-target/usr/src/linux/arch/i386/boot/bzImage \ /boot/vmlinuz_hdw vi /etc/lilo.conf (add vmlinuz_hdw) lilo - create essential console and null nodes (!important!) example: mknod -m 0666 /mnt/hdw-target/dev/null c 1 3 mknod -m 0600 /mnt/hdw-target/dev/console c 5 1 [ WARNING : your system will not start up without these nodes ] - have a look at the config files in /mnt/hdw-target/etc/* and adjust to your needs. reboot then - good luck! ;) example: init 6 troubleshooting: ---------------- - visit: irc.hackdaworld.dyndns.org, #hackdaworld - visit: http://www.hackdaworld.dyndns.org/contents/mailing-list/ - visit: www.linuxfromscratch.org, www.linuxdoc.org, www.rocklinux.org ;) regards hackbard