- various cleanups

- have mingetty listen on tty2 (but this still fails because of missing /dev/log
- get rid of /init on the targetdrive, solely use /sbin/init (and even that has to go one day)
- use dietlibc statically linked e2fsprogs for the installer. More to come :)

svn path=/nixu/trunk/; revision=3734
This commit is contained in:
Armijn Hemel 2005-08-28 00:51:34 +00:00
parent fff45e114e
commit de289092b2
6 changed files with 26 additions and 43 deletions

View file

@ -34,7 +34,7 @@ for i in $boot $halt $login $env; do
-e "s^@gnugrep\@^$gnugrep^g" \ -e "s^@gnugrep\@^$gnugrep^g" \
-e "s^@gzip\@^$gzip^g" \ -e "s^@gzip\@^$gzip^g" \
-e "s^@gcc\@^$gcc^g" \ -e "s^@gcc\@^$gcc^g" \
-e "s^@mingetty\@^$mingetty^g" \ -e "s^@mingettyWrapper\@^$mingettyWrapper^g" \
-e "s^@module_init_tools\@^$module_init_tools^g" \ -e "s^@module_init_tools\@^$module_init_tools^g" \
-e "s^@grub\@^$grubWrapper^g" \ -e "s^@grub\@^$grubWrapper^g" \
-e "s^@udev\@^$udev^g" \ -e "s^@udev\@^$udev^g" \

View file

@ -1,7 +1,7 @@
{ stdenv, kernel, bash, coreutils, findutilsWrapper, utillinux, sysvinit, e2fsprogs { stdenv, kernel, bash, coreutils, findutilsWrapper, utillinux, sysvinit, e2fsprogs
, nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh , nettools, nix, subversion, gcc, wget, which, vim, less, screen, openssh
, binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep , binutils, strace, shadowutils, iputils, gnumake, curl, gnused, gnugrep
, gnutar, gzip, mingetty, grubWrapper, parted, module_init_tools, hotplug , gnutar, gzip, mingettyWrapper, grubWrapper, parted, module_init_tools, hotplug
, udev, dhcpWrapper, man, nano}: , udev, dhcpWrapper, man, nano}:
derivation { derivation {
@ -15,6 +15,6 @@ derivation {
inherit stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit inherit stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit
e2fsprogs nettools nix subversion gcc wget which vim less screen e2fsprogs nettools nix subversion gcc wget which vim less screen
openssh binutils strace shadowutils iputils gnumake curl gnused openssh binutils strace shadowutils iputils gnumake curl gnused
gnutar gnugrep gzip mingetty grubWrapper parted module_init_tools gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools
udev dhcpWrapper man nano; udev dhcpWrapper man nano;
} }

View file

@ -1 +1 @@
export PATH=@nix@/bin:@bash@/bin:@coreutils@/bin:@findutilsWrapper@/bin:@utillinux@/bin:@utillinux@/sbin:@sysvinit@/bin:@sysvinit@/sbin:@e2fsprogs@/bin:@e2fsprogs@/sbin:@nettools@/bin:@nettools@/sbin:@gcc@/bin:@subversion@/bin:@which@/bin:@wget@/bin:@vim@/bin:@less@/bin:@screen@/bin:@openssh@/bin:@binutils@/bin:@strace@/bin:@shadowutils@/bin:@shadowutils@/sbin:@iputils@/bin:@gnumake@/bin:@curl@/bin:@gnused@/bin:@gnutar@/bin:@gnugrep@/bin:@gzip@/bin:@mingetty@/sbin:@grub@/bin:@grub@/sbin:@module_init_tools@/sbin:@dhcpWrapper@/sbin:@man@/bin:@nano@/bin export PATH=@nix@/bin:@bash@/bin:@coreutils@/bin:@findutilsWrapper@/bin:@utillinux@/bin:@utillinux@/sbin:@sysvinit@/bin:@sysvinit@/sbin:@e2fsprogs@/bin:@e2fsprogs@/sbin:@nettools@/bin:@nettools@/sbin:@gcc@/bin:@subversion@/bin:@which@/bin:@wget@/bin:@vim@/bin:@less@/bin:@screen@/bin:@openssh@/bin:@binutils@/bin:@strace@/bin:@shadowutils@/bin:@shadowutils@/sbin:@iputils@/bin:@gnumake@/bin:@curl@/bin:@gnused@/bin:@gnutar@/bin:@gnugrep@/bin:@gzip@/bin:@mingettyWrapper@/sbin:@grub@/bin:@grub@/sbin:@module_init_tools@/sbin:@dhcpWrapper@/sbin:@man@/bin:@nano@/bin

View file

@ -2,6 +2,11 @@
export PATH=@bash@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin export PATH=@bash@/bin:@coreutils@/bin:@findutils@/bin:@utillinux@/bin:@utillinux@/sbin:@e2fsprogs@/sbin:@grub@/sbin:@sysvinitPath@/sbin:@gnugrep@/bin:@which@/bin:@gnutar@/bin
##
## In the beginning we want to have a minimalistic environment, built with
## klibc.
##
kernel=@kernel@ kernel=@kernel@
storePaths=/mystorepaths storePaths=/mystorepaths
@ -10,6 +15,7 @@ sysvinitPath=@sysvinitPath@
bootPath=@bootPath@ bootPath=@bootPath@
modutils=@modutils@ modutils=@modutils@
hotplug=@hotplug@ hotplug=@hotplug@
mingetty=@mingetty@
echo mounting special filesystems echo mounting special filesystems
@ -176,22 +182,13 @@ mknod -m 0600 $root/dev/tty0 c 4 0
mknod -m 0600 $root/dev/tty1 c 4 1 mknod -m 0600 $root/dev/tty1 c 4 1
mknod -m 0444 $root/dev/urandom c 1 9 mknod -m 0444 $root/dev/urandom c 1 9
#touch_file /etc/passwd
#touch_file /etc/shadow
#touch_file /etc/group
rm -f $root/etc/mtab rm -f $root/etc/mtab
#ln -s /proc/mounts $root/etc/mtab #ln -s /proc/mounts $root/etc/mtab
#cat /proc/mounts
## Probe for CD device which contains our CD here and mount /nix and ## Probe for CD device which contains our CD here and mount /nix and
## /nixpkgs from it inside the ramdisk. Anaconda uses kudzu for this. ## /nixpkgs from it inside the ramdisk. Anaconda uses kudzu for this.
## Find out how Knoppix and SUSE do this... ## Find out how Knoppix and SUSE do this...
#devices=$(grep -r cdrom hd* | cut -d '/' -f 1 | sort | uniq)
#echo devices ${devices}
DEVICES="/dev/hd?" DEVICES="/dev/hd?"
for i in ${DEVICES} for i in ${DEVICES}
@ -205,12 +202,13 @@ then
echo "Accessing NixOS CDROM at $i" echo "Accessing NixOS CDROM at $i"
break break
fi fi
#umount /cdrom
fi fi
done done
echo switch to /nix and /nixpkgs from CD echo switch to /nix and /nixpkgs from CD
## starting here it's OK to have full blown glibc
ln -s /cdrom/nixpkgs /nixpkgs ln -s /cdrom/nixpkgs /nixpkgs
mount --bind /cdrom/nix /nix mount --bind /cdrom/nix /nix
@ -222,7 +220,6 @@ export NIX_CONF_DIR=$root/nix/etc
NIX_CMD_PATH=@NIX_CMD_PATH@/bin NIX_CMD_PATH=@NIX_CMD_PATH@/bin
echo initialising Nix DB... echo initialising Nix DB...
#/nix/bin/nix-store --init
$NIX_CMD_PATH/nix-store --init $NIX_CMD_PATH/nix-store --init
echo verifying Nix DB... echo verifying Nix DB...
@ -258,10 +255,6 @@ cp /cdrom/mystorepaths $root/tmp
echo copying store echo copying store
#(while read storepaths; do
#cp -fa $storepaths $root/nix/store
#done) < /cdrom/mystorepaths
#cp -fva /nix/store/* $root/nix/store #cp -fva /nix/store/* $root/nix/store
tar cf - /nix/store | tar --directory=$root -xvf - tar cf - /nix/store | tar --directory=$root -xvf -
@ -269,23 +262,10 @@ echo registering valid paths...
$NIX_CMD_PATH/nix-store --register-validity < $root/tmp/mystorepaths $NIX_CMD_PATH/nix-store --register-validity < $root/tmp/mystorepaths
#(while read storepath; do
# echo PATH $storepath
# if ! $NIX_CMD_PATH/nix-store --isvalid $storepath 2> /dev/null; then
# (unset NIX_ROOT; $NIX_CMD_PATH/nix-store --dump $storepath) | $NIX_CMD_PATH/nix-store --restore $storepath
# $NIX_CMD_PATH/nix-store --validpath $storepath
# fi
#done) < /tmp/mystorepaths
#echo registering successors...
#(while read line; do
# echo SUCC $line
# $NIX_CMD_PATH/nix-store --successor $line
#done) < /tmp/mysuccessors
echo setting init symlink... echo setting init symlink...
rm -f $root/init rm -f $root/init
ln -s $sysvinitPath/sbin/init $root/init #ln -s $sysvinitPath/sbin/init $root/init
ln -s @sysvinitPath@/sbin/init $root/sbin/init
ln -s @bash@/bin/sh $root/bin/sh ln -s @bash@/bin/sh $root/bin/sh
ln -s @bash@/bin/bash $root/bin/bash ln -s @bash@/bin/bash $root/bin/bash
@ -295,6 +275,7 @@ echo "id:2:initdefault:" >> $root/etc/inittab
echo "si::bootwait:$bootPath/bin/boot.sh" >> $root/etc/inittab echo "si::bootwait:$bootPath/bin/boot.sh" >> $root/etc/inittab
echo "ht:06:wait:$bootPath/bin/halt.sh" >> $root/etc/inittab echo "ht:06:wait:$bootPath/bin/halt.sh" >> $root/etc/inittab
echo "1:2345:respawn:$bootPath/bin/login.sh /dev/tty1" >> $root/etc/inittab echo "1:2345:respawn:$bootPath/bin/login.sh /dev/tty1" >> $root/etc/inittab
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 "2:2345:respawn:$bootPath/bin/login.sh /dev/ttys/1" >> $root/etc/inittab
echo setting up networking information... echo setting up networking information...
@ -338,7 +319,6 @@ chmod 644 $root/lib/modules/$version/modules.*
### Do funky stuff with grub here. ### Do funky stuff with grub here.
### ###
ln -s @sysvinitPath@/sbin/init $root/sbin/init
ln -s @hotplug@/sbin/hotplug $root/sbin/hotplug ln -s @hotplug@/sbin/hotplug $root/sbin/hotplug
ln -s @hotplug@/etc/hotplug $root/etc/hotplug ln -s @hotplug@/etc/hotplug $root/etc/hotplug
ln -s @hotplug@/etc/hotplug.d $root/etc/hotplug.d ln -s @hotplug@/etc/hotplug.d $root/etc/hotplug.d

View file

@ -78,7 +78,7 @@ done
utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -))) utilLinux=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).utillinux' | $NIX_CMD_PATH/nix-instantiate -)))
coreUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutils' | $NIX_CMD_PATH/nix-instantiate -))) coreUtils=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).coreutils' | $NIX_CMD_PATH/nix-instantiate -)))
e2fsProgs=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).e2fsprogs' | $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_tools' | $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 -))) 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 -))) #gnuSed=$($NIX_CMD_PATH/nix-store -qR $(nix-store -r $(echo '(import ./pkgs.nix).gnused' | $NIX_CMD_PATH/nix-instantiate -)))
@ -91,9 +91,10 @@ bash=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).bash' | $NIX_CMD_P
coreutils=$($NIX_CMD_PATH/nix-store -q $(echo '(import ./pkgs.nix).coreutils' | $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 -)) 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 -)) 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).e2fsprogs' | $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_tools' | $NIX_CMD_PATH/nix-instantiate -))
grub=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).grubWrapper' | $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 -)) hotplug=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).hotplug' | $NIX_CMD_PATH/nix-instantiate -))
udev=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).udev' | $NIX_CMD_PATH/nix-instantiate -)) udev=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).udev' | $NIX_CMD_PATH/nix-instantiate -))
dhcp=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).dhcpWrapper' | $NIX_CMD_PATH/nix-instantiate -)) dhcp=$($NIX_CMD_PATH/nix-store -r $(echo '(import ./pkgs.nix).dhcpWrapper' | $NIX_CMD_PATH/nix-instantiate -))
@ -178,6 +179,7 @@ sed -e "s^@sysvinitPath\@^$sysvinitPath^g" \
-e "s^@gnugrep\@^$gnugrep^g" \ -e "s^@gnugrep\@^$gnugrep^g" \
-e "s^@which\@^$which^g" \ -e "s^@which\@^$which^g" \
-e "s^@gnutar\@^$gnutar^g" \ -e "s^@gnutar\@^$gnutar^g" \
-e "s^@mingetty\@^$mingettyWrapper^g" \
< $fill_disk > $fill_disk.tmp < $fill_disk > $fill_disk.tmp
mv $fill_disk.tmp $fill_disk mv $fill_disk.tmp $fill_disk

View file

@ -1,19 +1,20 @@
rec { rec {
inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix) inherit (import /nixpkgs/trunk/pkgs/system/i686-linux.nix)
stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit e2fsprogs stdenv kernel bash coreutils findutilsWrapper utillinux sysvinit
e2fsprogsDiet e2fsprogs
nettools nix subversion gcc wget which vim less screen openssh binutils nettools nix subversion gcc wget which vim less screen openssh binutils
strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip strace shadowutils iputils gnumake curl gnused gnutar gnugrep gzip
mingetty grubWrapper syslinux parted module_init_tools hotplug udev mingettyWrapper grubWrapper syslinux parted module_init_tools hotplug udev
dhcpWrapper man nano; dhcpWrapper man nano;
boot = (import ./boot) {inherit stdenv kernel bash coreutils findutilsWrapper boot = (import ./boot) {inherit stdenv kernel bash coreutils findutilsWrapper
utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim utillinux sysvinit e2fsprogs nettools nix subversion gcc wget which vim
less screen openssh binutils strace shadowutils iputils gnumake curl less screen openssh binutils strace shadowutils iputils gnumake curl
gnused gnutar gnugrep gzip mingetty grubWrapper parted module_init_tools gnused gnutar gnugrep gzip mingettyWrapper grubWrapper parted module_init_tools
hotplug udev dhcpWrapper man nano;}; hotplug udev dhcpWrapper man nano;};
init = (import ./init) {inherit stdenv bash coreutils utillinux e2fsprogs init = (import ./init) {inherit stdenv bash coreutils utillinux e2fsprogsDiet
nix shadowutils mingetty grubWrapper parted module_init_tools hotplug nix shadowutils mingettyWrapper grubWrapper parted module_init_tools hotplug
dhcpWrapper man nano;}; dhcpWrapper man nano;};
everything = [boot sysvinit kernel]; everything = [boot sysvinit kernel];