diff --git a/boot/builder.sh b/boot/builder.sh index bef4682093d..bf747933083 100755 --- a/boot/builder.sh +++ b/boot/builder.sh @@ -9,9 +9,11 @@ for i in $boot $halt $login $env; do dst=$out/bin/$(basename $i | cut -c34-) sed \ -e "s^@bash\@^$bash^g" \ + -e "s^@bashStatic\@^$bashStatic^g" \ -e "s^@coreutils\@^$coreutils^g" \ -e "s^@findutilsWrapper\@^$findutilsWrapper^g" \ -e "s^@utillinux\@^$utillinux^g" \ + -e "s^@utillinuxStatic\@^$utillinuxStatic^g" \ -e "s^@sysvinit\@^$sysvinit^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@nettools\@^$nettools^g" \ diff --git a/boot/default.nix b/boot/default.nix index 17957c934a7..12d80e54419 100644 --- a/boot/default.nix +++ b/boot/default.nix @@ -1,4 +1,4 @@ -{ stdenv, kernel, bash, coreutils, findutilsWrapper, utillinux, sysvinit, e2fsprogs +{ stdenv, kernel, bash, bashStatic, coreutils, findutilsWrapper, utillinux, utillinuxStatic, sysvinit, e2fsprogs , nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh , binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep , gnutar, gzip, mingettyWrapper, grubWrapper, parted, module_init_tools, hotplug @@ -12,7 +12,7 @@ derivation { halt = ./halt.sh; login = ./login.sh; env = ./env.sh; - inherit stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit + inherit stdenv kernel bash bashStatic coreutils findutilsWrapper utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim less screen openssh binutils strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools diff --git a/fill-disk.sh b/fill-disk.sh index d3206a7e7fe..3240b2b57d4 100755 --- a/fill-disk.sh +++ b/fill-disk.sh @@ -1,6 +1,6 @@ #! @bash@/bin/sh -e -export PATH=@bash@/bin:@coreutilsdiet@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin:@eject@/bin +export PATH=@bash@/bin:@coreutilsdiet@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@utilLinux@/bin:@utilLinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin:@eject@/bin:@kudzu@/sbin ## ## In the beginning we want to have a minimalistic environment, built with @@ -194,6 +194,7 @@ mknod -m 0444 $root/dev/urandom c 1 9 rm -f $root/etc/mtab ln -s /proc/mounts $root/etc/mtab + ## Probe for CD device which contains our CD here and mount /nix and ## /nixpkgs from it inside the ramdisk. Anaconda uses kudzu for this. ## Find out how Knoppix and SUSE do this... @@ -221,6 +222,9 @@ echo switch to /nix and /nixpkgs from CD ln -s /cdrom/nixpkgs /nixpkgs mount --bind /cdrom/nix /nix +echo probing for hardware... + +kudzu export NIX_DATA_DIR=$root/nix/share export NIX_LOG_DIR=$root/nix/log/nix @@ -228,6 +232,10 @@ export NIX_STATE_DIR=$root/nix/var/nix export NIX_CONF_DIR=$root/nix/etc NIX_CMD_PATH=@nix@/bin +echo bringing up networking... + +nic=`kudzu -p | grep eth | sort | uniq | cut -d ' ' -f 2` + echo initialising Nix DB... $NIX_CMD_PATH/nix-store --init @@ -290,13 +298,15 @@ echo "#2:2345:respawn:$mingetty/sbin/mingetty tty2" >> $root/etc/inittab #echo "2:2345:respawn:$bootPath/bin/login.sh /dev/ttys/1" >> $root/etc/inittab echo setting up networking information... + make_dir 00755 /etc/networking -echo 192.168.150.1 > $root/etc/networking/local-ip -echo 192.168.150.3 > $root/etc/networking/gateway-ip #cp /etc/resolv.conf $root/etc rm -f $root/etc/hosts echo "127.0.0.1 localhost" >> $root/etc/hosts -#echo "192.168.150.1 uml" >> $root/etc/hosts + +echo storing hardware information... + +kudzu -p > $root/etc/sysconfig/hwconf echo setting up initial account information... diff --git a/make-disk.sh b/make-disk.sh index 831c2eed7a3..eda0f9cbd41 100755 --- a/make-disk.sh +++ b/make-disk.sh @@ -53,10 +53,10 @@ do tar -cf - $i | tar --directory=$archivesDir -xf - done -utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -))) +utilLinux=$(nix-store -r $(echo '(import ./pkgs.nix).utillinuxStatic' | $NIX_CMD_PATH/nix-instantiate -)) coreUtilsDiet=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -))) e2fsProgs=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -))) -modUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).module_init_tools' | $NIX_CMD_PATH/nix-instantiate -))) +modUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX_CMD_PATH/nix-instantiate -))) Grub=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -))) #gnuSed=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnused' | $NIX_CMD_PATH/nix-instantiate -))) #gnuGrep=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnugrep' | $NIX_CMD_PATH/nix-instantiate -))) @@ -64,13 +64,14 @@ Kernel=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix). SysVinit=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).sysvinit' | $NIX_CMD_PATH/nix-instantiate -))) BootPath=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).boot' | $NIX_CMD_PATH/nix-instantiate -))) -bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -)) +#bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -)) +bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bashStatic' | $NIX_CMD_PATH/nix-instantiate -)) coreutilsdiet=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutilsDiet' | $NIX_CMD_PATH/nix-instantiate -)) coreutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutils' | $NIX_CMD_PATH/nix-instantiate -)) findutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).findutilsWrapper' | $NIX_CMD_PATH/nix-instantiate -)) utillinux=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -)) e2fsprogs=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).e2fsprogsDiet' | $NIX_CMD_PATH/nix-instantiate -)) -modutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).module_init_tools' | $NIX_CMD_PATH/nix-instantiate -)) +modutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).module_init_toolsStatic' | $NIX_CMD_PATH/nix-instantiate -)) grub=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $NIX_CMD_PATH/nix-instantiate -)) mingettyWrapper=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).mingettyWrapper' | $NIX_CMD_PATH/nix-instantiate -)) hotplug=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).hotplug' | $NIX_CMD_PATH/nix-instantiate -)) @@ -82,22 +83,23 @@ which=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).which' | $NIX_CMD gnutar=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).gnutar' | $NIX_CMD_PATH/nix-instantiate -)) eject=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).eject' | $NIX_CMD_PATH/nix-instantiate -)) sysklogd=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).sysklogd' | $NIX_CMD_PATH/nix-instantiate -)) +kudzu=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).kudzu' | $NIX_CMD_PATH/nix-instantiate -)) #(while read storepath; do #cp -fa --parents ${storepath} ${archivesDir} #done) < $storePaths -echo utillinux $utilLinux +#echo utillinux $utilLinux -for i in $utilLinux; do - echo i $i - deps=( $($NIX_CMD_PATH/nix-store -q --references $i) ) - echo length ${#deps[@]} - if test "${#deps[@]}" = 0 - then - echo zarro - fi -done +#for i in $utilLinux; do +# echo i $i +# deps=( $($NIX_CMD_PATH/nix-store -q --references $i) ) +# echo length ${#deps[@]} +# if test "${#deps[@]}" = 0 +# then +# echo zarro +# fi +#done echo creating directories for bootimage @@ -106,6 +108,7 @@ mkdir ${initdir}/bin mkdir ${initdir}/cdrom mkdir ${initdir}/dev mkdir ${initdir}/etc +mkdir ${initdir}/etc/sysconfig mkdir ${initdir}/installimage mkdir ${initdir}/modules mkdir ${initdir}/proc @@ -138,7 +141,7 @@ cp -fa ${nixpkgs} ${archivesDir} #cp -fvau --parents ${nano} ${archivesDir} #cp -fvau --parents ${gnutar} ${archivesDir} -bashdeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_PATH/nix-instantiate -))) +bashdeps=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).bashStatic' | $NIX_CMD_PATH/nix-instantiate -))) echo copying scripts @@ -155,6 +158,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \ -e "s^@findutils\@^$findutils^g" \ -e "s^@coreutilsdiet\@^$coreutilsdiet^g" \ -e "s^@coreutils\@^$coreutils^g" \ + -e "s^@utilLinux\@^$utilLinux^g" \ -e "s^@utillinux\@^$utillinux^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@modutils\@^$modutils^g" \ @@ -163,7 +167,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \ -e "s^@hotplug\@^$hotplug^g" \ -e "s^@gnugrep\@^$gnugrep^g" \ -e "s^@which\@^$which^g" \ - -e "s^@eject\@^$eject^g" \ + -e "s^@kudzu\@^$kudzu^g" \ -e "s^@sysklogd\@^$sysklogd^g" \ -e "s^@gnutar\@^$gnutar^g" \ -e "s^@mingetty\@^$mingettyWrapper^g" \ @@ -177,7 +181,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \ -e "s^@findutils\@^$findutils^g" \ -e "s^@coreutilsdiet\@^$coreutilsdiet^g" \ -e "s^@coreutils\@^$coreutils^g" \ - -e "s^@utillinux\@^$utillinux^g" \ + -e "s^@utillinux\@^$utilLinux^g" \ -e "s^@e2fsprogs\@^$e2fsprogs^g" \ -e "s^@modutils\@^$modutils^g" \ -e "s^@grub\@^$grub^g" \ @@ -203,6 +207,10 @@ echo copying kernel # of the kernel here. cp -L $kernel/vmlinuz ${archivesDir}/isolinux +echo linking kernel modules + +ln -s $kernel/lib $archivesDir/lib + echo creating ramdisk rm -f ${initrd} @@ -210,16 +218,24 @@ rm -f ${initrd} cp ${archivesDir}/scripts/fill-disk.sh ${initdir}/ cp ${archivesDir}/scripts/ramdisk-login.sh ${initdir}/ cp ${archivesDir}/scripts/init.sh ${initdir}/init -ln -s ${bash}/bin/bash ${initdir}/bin/sh +#ln -s ${bash}/bin/bash ${initdir}/bin/sh +cp ${bash}/bin/bash ${initdir}/bin/sh chmod u+x ${initdir}/init chmod u+x ${initdir}/fill-disk.sh chmod u+x ${initdir}/ramdisk-login.sh -cp -fau --parents ${bashdeps} ${initdir} +#cp -fau --parents ${bashdeps} ${initdir} +#cp -fau --parents ${utilLinux} ${initdir} +#cp -fau --parents ${coreUtilsDiet} ${initdir} +#cp -fau --parents ${e2fsProgs} ${initdir} +#cp -fau --parents ${modUtils} ${initdir} +#cp -fau --parents ${hotplug} ${initdir} +cp -fau --parents ${bash} ${initdir} cp -fau --parents ${utilLinux} ${initdir} -cp -fau --parents ${coreUtilsDiet} ${initdir} -cp -fau --parents ${e2fsProgs} ${initdir} -cp -fau --parents ${modUtils} ${initdir} +cp -fau --parents ${coreutilsdiet} ${initdir} +cp -fau --parents ${e2fsprogs} ${initdir} +cp -fau --parents ${modutils} ${initdir} cp -fau --parents ${hotplug} ${initdir} +#cp -fau --parents ${kudzu} ${initdir} #cp -fau --parents ${eject} ${initdir} touch ${archivesDir}/NIXOS @@ -243,4 +259,4 @@ mkisofs -rJ -o ${bootiso} -b isolinux/isolinux.bin -c isolinux/boot.cat \ echo cleaning up chmod -f -R +w ${archivesDir}/* -rm -rf ${archivesDir}/* +#rm -rf ${archivesDir}/* diff --git a/pkgs.nix b/pkgs.nix index a995404f335..e1a4288c156 100644 --- a/pkgs.nix +++ b/pkgs.nix @@ -1,21 +1,21 @@ rec { inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix) - stdenv kernel bash coreutils coreutilsDiet findutilsWrapper utillinux sysvinit + stdenv kernel bash bashStatic coreutils coreutilsDiet findutilsWrapper utillinux utillinuxStatic sysvinit e2fsprogsDiet e2fsprogs nettools nix subversion gcc wget which vim less screen openssh binutils strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip - mingettyWrapper grubWrapper syslinux parted module_init_tools hotplug udev - dhcpWrapper man nano eject sysklogd; + mingettyWrapper grubWrapper syslinux parted module_init_tools module_init_toolsStatic hotplug udev + dhcpWrapper man nano eject sysklogd kudzu; - boot = (import ./boot) {inherit stdenv kernel bash coreutils findutilsWrapper - utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim + boot = (import ./boot) {inherit stdenv kernel bash bashStatic coreutils findutilsWrapper + utillinux utillinuxStatic sysvinit e2fsprogs nettools nix subversion gcc wget which vim less screen openssh binutils strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools hotplug udev dhcpWrapper man nano;}; - init = (import ./init) {inherit stdenv bash coreutilsDiet utillinux e2fsprogsDiet + init = (import ./init) {inherit stdenv bash bashStatic coreutilsDiet utillinux e2fsprogsDiet nix shadowutils mingettyWrapper grubWrapper parted module_init_tools hotplug dhcpWrapper man nano eject;}; - everything = [boot sysvinit kernel sysklogd]; + everything = [boot sysvinit kernel sysklogd kudzu]; }