Browse Source

fake:


			
			
				rocklinux
			
			
		
fake 22 years ago
parent
commit
086eaa0c8d
20 changed files with 2371 additions and 0 deletions
  1. +38
    -0
      target/livecd/build.sh
  2. +85
    -0
      target/livecd/build_stage1.sh
  3. +71
    -0
      target/livecd/build_stage2.sh
  4. +50
    -0
      target/livecd/config.in
  5. +197
    -0
      target/livecd/default.pkgmap
  6. +235
    -0
      target/livecd/default.pkgsel
  7. +1
    -0
      target/livecd/download.txt
  8. +573
    -0
      target/livecd/fixedfiles/XF86Config
  9. +84
    -0
      target/livecd/fixedfiles/inittab
  10. +3
    -0
      target/livecd/fixedfiles/login-shell
  11. +253
    -0
      target/livecd/fixedfiles/system
  12. +128
    -0
      target/livecd/kernel.conf
  13. +23
    -0
      target/livecd/kernel.conf.sh
  14. +533
    -0
      target/livecd/linuxrc.c
  15. +5
    -0
      target/livecd/pkg_gawk.conf
  16. +6
    -0
      target/livecd/pkg_modutils.conf
  17. +24
    -0
      target/livecd/preconfig.in
  18. +28
    -0
      target/livecd/x86/build.sh
  19. +17
    -0
      target/livecd/x86/help0.txt
  20. +17
    -0
      target/livecd/x86/isolinux.cfg

+ 38
- 0
target/livecd/build.sh

@ -0,0 +1,38 @@
disksdir="$build_rock/livecd"
if [ -z "`which create_compressed_fs`" ] ; then
echo "Please make sure create_compressed_fs is installed! Rock Package: fake/cloop"
exit 1;
fi ;
if [ -z "`which mkisofs`" ] ; then
echo "Please make mkisofs is installed! Rock Package: base/cdrtools"
exit 1;
fi;
pkgloop
rm -rf $disksdir; mkdir -p $disksdir; chmod 700 $disksdir
. scripts/parse-config
. $base/target/$target/build_stage2.sh
. $base/target/$target/build_stage1.sh
if [ -f $base/target/$target/$arch/build.sh ]; then
. $base/target/$target/$arch/build.sh
fi
echo_header "Creating ISO filesystem description."
cd $disksdir; rm -rf isofs; mkdir -p isofs
echo_status "Creating livecd/isofs directory.."
ln 2nd_stage.img.z isofs/
ln *.img initrd.gz isofs/ 2>/dev/null || true
echo_status "Creating isofs.txt file .."
echo "DISK1 build/${ROCKCFG_ID}/ROCK/livecd/isofs/ `
`${ROCKCFG_SHORTID}/" > ../isofs_generic.txt
cat ../isofs_*.txt > ../isofs.txt

+ 85
- 0
target/livecd/build_stage1.sh

@ -0,0 +1,85 @@
echo_header "Creating initrd data:"
rm -rf $disksdir/initrd
mkdir -p $disksdir/initrd/{dev,proc,tmp,bin-static,mnt/cdrom,ramdisk,etc,ROCK}
cd $disksdir/initrd; ln -s bin-static sbin-static; ln -s . usr
#
echo_status "Create linuxrc binary."
diet $CC $base/target/$target/linuxrc.c -Wall \
-DSTAGE_2_IMAGE="\"${ROCKCFG_SHORTID}/2nd_stage.img.z\"" \
-o linuxrc
#
echo_status "Copy various helper applications."
cp ../2nd_stage/bin/{tar,gzip} bin-static/
cp ../2nd_stage/sbin/hwscan bin-static/
cp ../2nd_stage/usr/bin/gawk bin-static/
for x in modprobe.static modprobe.static.old \
insmod.static insmod.static.old
do
if [ -f ../2nd_stage/sbin/${x/.static/} ]; then
rm -f bin-static/${x/.static/}
cp -a ../2nd_stage/sbin/${x/.static/} bin-static/
fi
if [ -f ../2nd_stage/sbin/$x ]; then
rm -f bin-static/$x bin-static/${x/.static/}
cp -a ../2nd_stage/sbin/$x bin-static/
ln -sf $x bin-static/${x/.static/}
fi
done
#
echo_status "Copy scsi and network kernel modules."
for x in ../2nd_stage/lib/modules/*/kernel/drivers/net/*.{ko,o} ../2nd_stage/lib/modules/*/misc/cloop.{ko,o} ; do
# this test is needed in case there are only .o or only .ko files
if [ -f $x ]; then
xx=${x#../2nd_stage/}
mkdir -p $( dirname $xx ) ; cp $x $xx
strip --strip-debug $xx
fi
done
#
for x in ../2nd_stage/lib/modules/*/modules.{dep,pcimap,isapnpmap} ; do
cp $x ${x#../2nd_stage/} || echo "not found: $x" ;
done
#
for x in lib/modules/*/kernel/drivers/net lib/modules/*/misc; do
ln -s ${x#lib/modules/} lib/modules/
done
rm -f lib/modules/[0-9]*/kernel/drivers/net/{dummy,ppp*}.{o,ko}
#
echo_status "Adding kiss shell for expert use of the initrd image."
cp $build_root/bin/kiss bin-static/
cd ..
echo_header "Creating initrd filesystem image: "
ramdisk_size=4096
echo_status "Creating temporary files."
tmpdir=initrd_$$.dir; mkdir -p $disksdir/$tmpdir; cd $disksdir
dd if=/dev/zero of=initrd.img bs=1024 count=$ramdisk_size &> /dev/null
tmpdev=""
for x in /dev/loop/* ; do
if losetup $x initrd.img 2> /dev/null ; then
tmpdev=$x ; break
fi
done
if [ -z "$tmpdev" ] ; then
echo_error "No free loopback device found!"
rm -f $tmpfile ; rmdir $tmpdir; exit 1
fi
echo_status "Using loopback device $tmpdev."
#
echo_status "Writing initrd image file."
mke2fs -m 0 -N 180 -q $tmpdev &> /dev/null
mount -t ext2 $tmpdev $tmpdir
rmdir $tmpdir/lost+found/
cp -a initrd/* $tmpdir
umount $tmpdir
#
echo_status "Compressing initrd image file."
gzip -9 initrd.img
mv initrd{.img,}.gz
#
echo_status "Removing temporary files."
losetup -d $tmpdev
rm -rf $tmpdir

+ 71
- 0
target/livecd/build_stage2.sh

@ -0,0 +1,71 @@
set -e
taropt="--use-compress-program=bzip2 -xf"
echo_header "Creating 2nd stage filesystem:"
mkdir -p $disksdir/2nd_stage
cd $disksdir/2nd_stage
mkdir -p mnt/source mnt/target ramdisk
. $base/target/$target/default.pkgmap
if [ -f ../../pkgs/bize.tar.bz2 -a ! -f ../../pkgs/mine.tar.bz2 ] ; then
packager=bize
else
packager=mine
fi
package_map="+$ROCKCFG_DEFAULT_KERNEL +$packager $package_map"
echo_status "Extracting the packages archives."
for x in $( ls ../../pkgs/*.tar.bz2 | tr . / | cut -f8 -d/ )
do
if echo "" $package_map "" | grep -q " +$x "
then
echo_status "\`- Extracting $x.tar.bz2 ..."
tar --use-compress-program=bzip2 -xpf ../../pkgs/$x.tar.bz2
elif ! echo "" $package_map "" | grep -q " -$x "
then
echo_error "\`- Not found in \$package_map: $x"
echo_error " ... fix target/$target/build.sh"
fi
done
#
echo_status "Saving boot/* - we do not need this on the 2nd stage ..."
rm -rf ../boot ; mkdir ../boot
mv boot/* ../boot/
#
echo_status "Remove the stuff we do not need ..."
rm -rf home usr/{doc,man,info}
rm -rf var/adm/* var/adm var/mail
rm -rf usr/{include,src} usr/*-linux-gnu {,usr/}lib/*.{a,la,o} opt/*/lib/*.{a,la,o}
#for x in usr/lib/*/; do rm -rf ${x%/}; done
#
echo_status "Installing some terminfo databases ..."
tar $taropt ../../pkgs/ncurses.tar.bz2 \
usr/share/terminfo/x/xterm usr/share/terminfo/a/ansi \
usr/share/terminfo/n/nxterm usr/share/terminfo/l/linux \
usr/share/terminfo/v/vt200 usr/share/terminfo/v/vt220 \
usr/share/terminfo/v/vt100 usr/share/terminfo/s/screen
#
echo_status "Installing some keymaps ..."
tar $taropt ../../pkgs/kbd.tar.bz2 \
usr/share/kbd/keymaps/amiga usr/share/kbd/keymaps/i386/qwerty \
usr/share/kbd/keymaps/atari usr/share/kbd/keymaps/i386/qwertz \
usr/share/kbd/keymaps/sun
find usr/share/kbd -name '*dvo*' -o -name '*az*' -o -name '*fgG*' | \
xargs rm -rf
#
echo_status "Installing pci.ids ..."
tar $taropt ../../pkgs/pciutils.tar.bz2 \
usr/share/pci.ids
echo_status "replacing some vital files for live useage ..."
cp -f $base/target/$target/fixedfiles/inittab etc/inittab
cp -f $base/target/$target/fixedfiles/login-shell sbin/login-shell
cp -f $base/target/$target/fixedfiles/system etc/rc.d/init.d/system
cp -f $base/target/$target/fixedfiles/XF86Config etc/X11/XF86Config
#
### DOC ### create_compressed_fs and mkisofs need to be in path !!! ### DOC ###
echo_status "Creating 2nd_stage.img.z image... (this takes some time)... "
cd .. ; ( mkisofs -R -l 2nd_stage | create_compressed_fs - 65536 > 2nd_stage.img.z ) > /dev/null 2>&1

+ 50
- 0
target/livecd/config.in

@ -0,0 +1,50 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/target/bootdisk/config.in
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
. target/livecd/default.pkgsel
ROCKCFG_LIVECD_USEKISS=1
ROCKCFGSET_CREATE_TARBZ2=1
ROCKCFGSET_CREATE_GEM=0
ROCKCFGSET_PKGFILE_VER=0
ROCKCFGSET_DIETLIBC=1
ROCKCFGSET_DIETLIBC_DYN=0
ROCKCFGSET_DIETLIBC_ALL=0
ROCKCFGSET_DIETLIBC_modutils=1
ROCKCFGSET_DIETLIBC_module_init_tools=1
ROCKCFGSET_DIETLIBC_kiss=1
ROCKCFGSET_DIETLIBC_gawk=1
ROCKCFGSET_PKG_TERMCAP_USEIT=1
ROCKCFGSET_PKG_GCC2_NO_CHILL=1
ROCKCFGSET_PKG_GCC3_NO_JAVA=1
ROCKCFGSET_PKG_GCC33_NO_JAVA=1
ROCKCFGSET_PKG_BASH_PROGCOMP=0
ROCKCFGSET_DO_REBUILD_STAGE=0
ROCKCFGSET_CREATE_DOCS=0
ROCKCFGSET_OPTSIZE=1
ROCKCFGSET_LIMITCXX=0

+ 197
- 0
target/livecd/default.pkgmap

@ -0,0 +1,197 @@
package_map='
+00-dirtree
+aterm
-bind
-bin86
+bize
+devfsd
+dhcp
+dialog
+dump
-autoconf
-automake
+bash
+bc
-binutils
-bison
+bonnie++
+bzip2
+cracklib
-cron
+cloop
+cpio
+cpuburn
+cpuid
+curl
-diffutils
+disktype
-dietlibc
+e2fsprogs
+ed
+eject
+expat
+file
+coreutils
+findutils
-flex
+fbset
+gawk
+gcc3
-gettext
+genromfs
+glibc23
+grep
-groff
+grub
+gzip
+hdparm
+iproute2
+iptables
+intel-rng
+jfsutils
+kbd
+kiss
+less
+lilo
-libtool
+libjpeg
+libpng
+libpcap
+libtiff
+libungif
-linux24
-linux26
-linux24-header
-linux26-header
-linux24-src
-linux26-src
+lrzsz
-m4
-make
-man
-man-pages
+madm
+memtest86
-mine
+minicom
+microcode_ctl
+mktemp
+mkdosfs
+modutils
+module-init-tools
+ncompress
+ncurses
+netkit-base
+net-tools
+nfs-utils
+ntfsprogs
+netkit-telnet
+netkit-ftp
+netkit-tftpA
+nvi
+openssh
+openssl
-patch
+parted
+popt
+perl5
+procinfo
+procps
+portmap
+psmisc
+pciutils
+raidtools
+reiserfsprogs
+rsync
+rockplug
+screen
+sed
+setserial
+shadow
+sysfiles
+sysklogd
+sysvinit
+tar
+tcpdump
-termcap
-texinfo
+time
+unzip
+util-linux
-uml_utilities
+vim
+vlock
+wget
+wireless-tools
+xfree86
+x86info
+zip
-zlib
+zsh
-rock-doc
-rock-src
+kdelibs
+arts
+glib
+gtkdoc
+openjade
+docbookx
+pkgconfig
+audiofile
+alsa
+alsa-driver
+fam
+freetype
+libart_lgpl23
+libxml2
+libxml
+libxslt
+mad
-bison
+esound
+tcp_wrappers
+ogg-vorbis
+pcre
+qt
+libmng
+python
+paragui
+libsdl
+libsdl_mixer
+libsdl_image
-nasm
+readline
+bdb33
+bdb41
+bdb42
+gdbm
+gmp
+tcltk
+ruby
+swig
+guile
+numpy
+kdebase
+openmotif
+kdeaddons
+kdeadmin
+kdeartwork
+kdebindings
+kdeedu
+kdegames
+kdegraphics
+kdemultimedia
+kdenetwork
+kdepim
+kdesdk
+kdetoys
+kdeutils
+koffice
+koffice-i18n
+kde-i18n-de
+k3b
+cdrtools
+attr
+acl
-syslinux
'

+ 235
- 0
target/livecd/default.pkgsel

@ -0,0 +1,235 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/misc/pkgsel/minimal+xfree.in
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
#
# TITLE: XFree86 + KDE minimum (almost)
pkgfilter sed '
# Add strictly required packages
/ 00-dirtree / { p; d; };
/ aterm / { p; d; };
/ bind / { p; d; };
/ bin86 / { p; d; };
/ bize / { p; d; };
/ cpuburn / { p; d; };
/ cpuid / { p; d; };
/ devfsd / { p; d; };
/ dhcp / { p; d; };
/ dialog / { p; d; };
/ dump / { p; d; };
/ dietlibc / { p; d; };
/ autoconf / { p; d; };
/ automake / { p; d; };
/ bash / { p; d; };
/ bc / { p; d; };
/ binutils / { p; d; };
/ bison / { p; d; };
/ bonnie++ / { p; d; };
/ bzip2 / { p; d; };
/ cracklib/ { p; d; };
/ cron / { p; d; };
/ cloop / { p; d; };
/ cpio / { p; d; };
/ curl / { p; d; };
/ diffutils / { p; d; };
/ disktype / { p; d; };
/ e2fsprogs / { p; d; };
/ ed / { p; d; };
/ eject / { p; d; };
/ expat / { p; d; };
/ file / { p; d; };
/ fbset / { p; d; };
/ coreutils / { p; d; };
/ findutils / { p; d; };
/ flex / { p; d; };
/ gawk / { p; d; };
/ gcc3 / { p; d; };
/ gettext / { p; d; };
/ genromfs / { p; d; };
/ glibc23 / { p; d; };
/ grep / { p; d; };
/ groff / { p; d; };
/ grub / { p; d; };
/ gzip / { p; d; };
/ hdparm / { p; d; };
/ intel-rng / { p; d; };
/ iproute2 / { p; d; };
/ iptables / { p; d; };
/ jfsutils / { p; d; };
/ kbd / { p; d; };
/ kiss / { p; d; };
/ less / { p; d; };
/ lilo / { p; d; };
/ libtool / { p; d; };
/ libjpeg / { p; d; };
/ libpng / { p; d; };
/ libpcap / { p; d; };
/ libtiff / { p; d; };
/ libungif / { p; d; };
/ linux24 / { p; d; };
/ linux26 / { p; d; };
/ linux.*-header / { p; d; };
/ linux.*-src / { p; d; };
/ lrzsz / { p; d; };
/ m4 / { p; d; };
/ make / { p; d; };
/ man / { p; d; };
/ man-pages / { p; d; };
/ madm / { p; d; };
/ memtest86 / { p; d; };
/ mine / { p; d; };
/ minicom / { p; d; };
/ microcode_ctl / { p; d; };
/ module-init-tools / { p; d; };
/ mktemp / { p; d; };
/ modutils / { p; d; };
/ ncompress / { p; d; };
/ ncurses / { p; d; };
/ netkit-base / { p; d; };
/ net-tools/ { p; d; };
/ nfs-utils / { p; d; };
/ ntfsprogs / { p; d; };
/ netkit-telnet / { p; d; };
/ netkit-ftp / { p; d; };
/ netkit-tftp / { p; d; };
/ nvi / { p; d; };
/ openssh / { p; d; };
/ openssl / { p; d; };
/ patch / { p; d; };
/ parted / { p; d; };
/ popt / { p; d; };
/ perl5 / { p; d; };
/ procinfo / { p; d; };
/ procps / { p; d; };
/ portmap / { p; d; };
/ psmisc / { p; d; };
/ pciutils / { p; d; };
/ raidtools / { p; d; };
/ reiserfsprogs / { p; d; };
/ rsync / { p; d; };
/ rockplug / { p; d; };
/ screen / { p; d; };
/ syslinux / { p; d; };
/ sed / { p; d; };
/ setserial / { p; d; };
/ shadow / { p; d; };
/ sysfiles / { p; d; };
/ sysklogd / { p; d; };
/ sysvinit / { p; d; };
/ tar / { p; d; };
/ tcpdump / { p; d; };
/ texinfo / { p; d; };
/ time / { p; d; };
/ unzip / { p; d; };
/ util-linux / { p; d; };
/ vim / { p; d; };
/ vlock / { p; d; };
/ wget / { p; d; };
/ wireless-tools / { p; d; };
/ xfree86 / { p; d; };
/ x86info / { p; d; };
/ zip / { p; d; };
/ zlib / { p; d; };
/ zsh/ { p; d; };
/ rock-doc / { p; d; };
/ rock-src/ { p; d; };
# Some architecture-specifc-packages with missing deps
/ macosd / { s/^X /O / ; p; d; };
# Add architecture-specific-packages
/ alpha / { p; d; };
/ mips / { p; d; };
/ powerpc / { p; d; };
/ sparc / { p; d; };
/ x86 / { p; d; };
# kde-stuff
/ kdelibs / { p; d; };
/ arts / { p; d; };
/ glib / { p; d; };
/ gtkdoc / { p; d; };
/ openjade / { p; d; };
/ docbookx / { p; d; };
/ pkgconfig / { p; d; };
/ audiofile / { p; d; };
/ alsa / { p; d; };
/ alsa-driver / { p; d; };
/ fam / { p; d; };
/ freetype / { p; d; };
/ libart_lgpl23 / { p; d; };
/ libxml2 / { p; d; };
/ libxml / { p; d; };
/ libxslt / { p; d; };
/ mad / { p; d; };
/ mkdosfs / { p; d; };
/ bison / { p; d; };
/ esound / { p; d; };
/ tcp_wrappers / { p; d; };
/ ogg-vorbis / { p; d; };
/ pcre / { p; d; };
/ qt / { p; d; };
/ libmng / { p; d; };
/ python / { p; d; };
/ paragui / { p; d; };
/ libsdl / { p; d; };
/ libsdl_mixer / { p; d; };
/ libsdl_image / { p; d; };
/ nasm / { p; d; };
/ readline / { p; d; };
/ bdb33 / { p; d; };
/ bdb41 / { p; d; };
/ bdb42 / { p; d; };
/ gdbm / { p; d; };
/ gmp / { p; d; };
/ tcltk / { p; d; };
/ ruby / { p; d; };
/ swig / { p; d; };
/ guile / { p; d; };
/ numpy / { p; d; };
/ kdebase / { p; d; };
/ openmotif / { p; d; };
/ kdeaddons / { p; d; };
/ kdeadmin / { p; d; };
/ kdeartwork / { p; d; };
/ kdebindings / { p; d; };
/ kdeedu / { p; d; };
/ kdegames / { p; d; };
/ kdegraphics / { p; d; };
/ kdemultimedia / { p; d; };
/ kdenetwork / { p; d; };
/ kdepim / { p; d; };
/ kdesdk / { p; d; };
/ kdetoys / { p; d; };
/ kdeutils / { p; d; };
/ koffice / { p; d; };
/ koffice-i18n / { p; d; };
/ kde-i18n-de / { p; d; };
/ k3b / { p; d; };
/ cdrtools / { p; d; };
/ attr / { p; d; };
/ acl / { p; d; };
# Disabling the rest of packages
/.*/ { s/^X /O / ; p; d; };'

+ 1
- 0
target/livecd/download.txt

@ -0,0 +1 @@
4279863212 syslinux-2.08.tar.bz2 http://www.kernel.org/pub/linux/utils/boot/syslinux/

+ 573
- 0
target/livecd/fixedfiles/XF86Config

@ -0,0 +1,573 @@
# File generated by xf86config.
# and additional hand edited by Rene Rebe - ROCK Linux Project
#
# YOU MUST ONLY ADD A CARD SECTION AND MODIFY SOME MONITOR SETTINGS
# TO GET A WORKING X CONFIGURATION.
#
#
# Copyright (c) 1999 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************
# **********************************************************************
# Module section -- this section is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#
Section "Module"
Load "dbe" # DBE (double buffer extension)
Load "ddc" # Display Data Channel extension
# This loads the miscellaneous extensions module
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
Option "omit XFree86-VidModeExtension" # disable mode-switching-supoprt
EndSubSection
# This loads the Type1 and FreeType font modules
Load "type1"
Load "freetype"
# Load "glx" # GLX extension (OpenGL visuals)
# Load "dri" # Direct Rendering Interface extension (OpenGL)
# Load "v4l" # Video 4 Linux extension (provides a xv adapter)
EndSection
# this enabled normal users to use DRI - the Direct Rendering Extension.
# it is also possible to use a group to control access.
#
Section "DRI"
Mode 0666
EndSection
# **********************************************************************
# Files section. This allows default font and rgb paths to be set
# **********************************************************************
Section "Files"
# The location of the RGB database. Note, this is the name of the
# file minus the extension (like ".txt" or ".db"). There is normally
# no need to change the default.
RgbPath "/usr/X11R6/lib/X11/rgb"
# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
#
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/PEX/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/"
FontPath "/usr/X11R6/lib/X11/fonts/encodings/"
FontPath "/usr/X11R6/lib/X11/fonts/freefont/"
FontPath "/usr/X11R6/lib/X11/fonts/latin2/"
FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/sharefont"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType"
FontPath "/usr/share/ghostscript/fonts/"
# The module search path. The default path is shown here.
# ModulePath "/usr/X11R6/lib/modules"
EndSection
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging
# Option "NoTrapSignals"
# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.
# Option "DontZap"
# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences. This allows clients to receive these key events.
# Option "Dont Zoom"
# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.
# Option "DisableVidModeExtension"
# Uncomment this to enable the use of a non-local xvidtune client.
# Option "AllowNonLocalXvidtune"
# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.
# Option "DisableModInDev"
# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).
# Option "AllowNonLocalModInDev"
EndSection
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.
# Option "Protocol" "Xqueue"
Option "AutoRepeat" "250 30"
# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
# Option "Xleds" "1 2 3"
# Option "LeftAlt" "Meta"
# Option "RightAlt" "ModeShift"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults). For example, for a non-U.S.
# keyboard, you will probably want to use:
# Option "XkbModel" "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
# Option "XkbModel" "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
# Option "XkbLayout" "de"
# or:
# Option "XkbLayout" "de"
# Option "XkbVariant" "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
# Option "XkbOptions" "ctrl:swapcaps"
# These are the default XKB settings for XFree86
# Option "XkbRules" "xfree86"
# Option "XkbModel" "pc101"
# Option "XkbLayout" "us"
# Option "XkbVariant" ""
# Option "XkbOptions" ""
# Option "XkbDisable"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
# Option "XkbLayout" "de" # german keyboard layout
# Option "XkbVariant" "nodeadkeys" # normally not wanted
EndSection
# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************
# auto-detected mouse
Section "InputDevice"
# Identifier and driver
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mice"
#Option "Emulate3Buttons" "true" # for a two button touch-pad
EndSection
# for a normal ps2 mouse:
Section "InputDevice"
#
# Identifier and driver
#
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "Auto"
Option "Device" "/dev/misc/psaux"
# #Option "Emulate3Buttons" "true" # for a two button touch-pad
EndSection
# for a normal serial mouse
#Section "InputDevice"
#
# Identifier "Mouse1"
# Driver "mouse"
# Option "Protocol" "Microsoft"
# Option "Device" "/dev/tts/0"
#
# #Option "Emulate3Buttons" "true" # for a two button touch-pad
#EndSection
# for a usb Logitech wheel mouse
#Section "InputDevice"
#
# Identifier "Mouse1"
# Driver "mouse"
# Option "Protocol" "IMPS/2"
# Option "Device" "/dev/input/mouse0"
# Option "Buttons" "5"
# Option "ZaxisMapping" "4 5"
#
#EndSection
# **********************************************************************
# Other input device sections
# this is optional and is required only if you
# are using extended input devices. This is for example only. Refer
# to the XF86Config man page for a description of the options.
# **********************************************************************
#
# Section "InputDevice"
# Identifier "Mouse2"
# Driver "mouse"
# Option "Protocol" "MouseMan"
# Option "Device" "/dev/mouse2"
# EndSection
#
# Section "InputDevice"
# Identifier "Spaceball"
# Driver "magellan"
# Option "Device" "/dev/cua0"
# EndSection
#
# Section "InputDevice"
# Identifier "Spaceball2"
# Driver "spaceorb"
# Option "Device" "/dev/cua0"
# EndSection
#
# Section "InputDevice"
# Identifier "Touchscreen0"
# Driver "microtouch"
# Option "Device" "/dev/ttyS0"
# Option "MinX" "1412"
# Option "MaxX" "15184"
# Option "MinY" "15372"
# Option "MaxY" "1230"
# Option "ScreenNumber" "0"
# Option "ReportingMode" "Scaled"
# Option "ButtonNumber" "1"
# Option "SendCoreEvents"
# EndSection
#
# Section "InputDevice"
# Identifier "Touchscreen1"
# Driver "elo2300"
# Option "Device" "/dev/ttyS0"
# Option "MinX" "231"
# Option "MaxX" "3868"
# Option "MinY" "3858"
# Option "MaxY" "272"
# Option "ScreenNumber" "0"
# Option "ReportingMode" "Scaled"
# Option "ButtonThreshold" "17"
# Option "ButtonNumber" "1"
# Option "SendCoreEvents"
# EndSection
# Section "InputDevice"
# Identifier "Tablet1"
# Driver "summa"
# Option "Device" "/dev/ttyS0"
# Option "MinX" "231"
# Option "MaxX" "3868"
# Option "MinY" "3858"
# Option "MaxY" "272"
# Option "ScreenNumber" "0"
# Option "ReportingMode" "Scaled"
# Option "ButtonThreshold" "17"
# Option "ButtonNumber" "1"
# Option "SendCoreEvents"
# Option "BaudRate" "19200"
# Option "DataBits" "8"
# Option "StopBits" "1"
# Option "Parity" "Odd"
# Option "FlowControl" "Xoff"
# Option "VTime" "10"
# Option "VMin" "1"
# EndSection
# **********************************************************************
# Monitor section
# **********************************************************************
# Any number of monitor sections may be present
Section "Monitor"
Identifier "Monitor1"
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS !!
# normally uncomment this lines
# HorizSync 24.0 - 80.0
# VertRefresh 50-100
# overwrite the screen dimensions (in mm) e.g. to get another virtual dpi
# value
# DisplaySize 345 260
# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# HorizSync 30-64 # multisync
# HorizSync 31.5, 35.2 # multiple fixed sync frequencies
# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies
# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# VertRefresh 50-100
# some mode examples 1,2 selfmade - 3 from fbset
# (only needed for low-level tricks, exotic Laptops or other LCD's)
#
# Mode "1152x900"
# DotClock 120
# HTimings 1152 1200 1312 1528
# VTimings 900 910 946 985
# EndMode
# Mode "1152x900-2"
# DotClock 100
# HTimings 1152 1200 1312 1528
# VTimings 900 910 946 985
# EndMode
# Mode "1152x864"
# DotClock 105.810
# HTimings 1152 1184 1312 1504
# VTimings 864 868 872 902
# Flags "-HSync" "-VSync"
# EndMode
# for framebuffer devices you might want to simply add
# the 'fbset -x' output here.
EndSection
# **********************************************************************
# Graphics device section
# **********************************************************************
# Any number of graphics device sections may be present
Section "Device"
Identifier "Card1"
# Use this for framebuffer devices - should work on most systems.
Driver "fbdev"
Option "fbdev" "/dev/fb/0"
# Driver "vga" # mga, ati, nv, sis, vesa ...
# # Option "BackingStore"
# # Some driver accept an UseFBDev option (e.g. radeon) to switch the
# # mode via the Linux framebuffer layer. Needed e.g. as workaround for
# # iBooks.
# # Option "UseFBDev"
# # The BuID is only required for multi-monitor configs or some fbdev drivers
# # BusID "PCI:1:5:0"
# # Screen 0 # Screen of a dual-head mga card
# # Option "NoHal" # do not use the binary-only Matrox HAL library
# # Option "AGPMode2x"
EndSection
# Matrox Millenium 4xx, Ati or NVidia second-head
#Section "Device"
# Identifier "Card2"
# Driver "mga" # or other dual-able cards like ati, nv
# # Option "BackingStore"
# BusID "PCI:1:5:0"
# Screen 1
#
# # Option "NoHal" # do not use the binary-only Matrox HAL library
# # Option "AGPMode2x"
# # Option "Tv" "yes"
# # Option "TVStandard" "PAL"
# # Option "CableType" "SCART_COMPOSITE"
#EndSection
# **********************************************************************
# Screen sections
# **********************************************************************
# Any number of screen sections may be present. Each describes
# the configuration of a single screen. A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "Monitor1"
DefaultDepth 16
Subsection "Display"
Depth 4
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x400"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
#Section "Screen"
# Identifier "Screen2"
# Device "Card2"
# Monitor "Monitor1"
# DefaultDepth 16
#
# Subsection "Display"
# Depth 16
# Modes "1024x768" "800x600" "640x480"
# ViewPort 0 0
# EndSubsection
#EndSection
#Section "Screen"
# Identifier "ScreenTV"
# Device "CardTV"
# Monitor "Monitor1"
# DefaultDepth 16
#
# Subsection "Display"
# Depth 16
# Modes "640x480"
# ViewPort 0 0
# EndSubsection
#EndSection
# **********************************************************************
# ServerLayout sections.
# **********************************************************************
# Any number of ServerLayout sections may be present. Each describes
# the way multiple screens are organised. A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option. In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.
Section "ServerLayout"
# The Identifier line must be present
Identifier "Simple Layout"
# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens. The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen. In this example, screen 2 is located to the
# right of screen 1.
Screen "Screen1" #LeftOf "Screen2"
#Screen "Screen2"
#Screen "ScreenTV"
# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used. Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".
InputDevice "Mouse1" "CorePointer"
InputDevice "Mouse2" "SendCoreEvents"
InputDevice "Keyboard1" "CoreKeyboard"
# It is possible to specify secondary input devices which might not
# be pressend on X startup. Nice for laptops with temporary external
# mices ;-)!
# InputDevice "Mouse2" "SendCoreEvents"
# InputDevice "Tablet1"
EndSection

+ 84
- 0
target/livecd/fixedfiles/inittab

@ -0,0 +1,84 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/target/livecd/fixedfiles/inittab
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
#
# See "man 5 inittab" for details.
#
# The default runlevel.
id:2:initdefault:
# /etc/rc.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevels 0 and 6 are halt and reboot.
# Runlevels 1-5 are multi-user.
# Runlevel S is single user.
l0:0:wait:/etc/rc.d/rc
l1:1:wait:/etc/rc.d/rc
l2:2:wait:/etc/rc.d/rc
l3:3:wait:/etc/rc.d/rc
l4:4:wait:/etc/rc.d/rc
l5:5:wait:/etc/rc.d/rc
l6:6:wait:/etc/rc.d/rc
ls:S:wait:/etc/rc.d/rc
~~:S:wait:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -r now
# /sbin/agetty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Maintenace Console on /dev/console
#
#1:12345:respawn:/sbin/agetty -L -i -I '\012\015\012Maintenance Console:\012' 9600 console linux
#
# Virtual Consoles 1-6
#
# to enable the SAK blocking feature add the options "-t 10 -s /etc/sakmsg"
#
# to clear the screen on ANSI terminals add the option "-I '\033[H\033[J'"
#
# there are 3 Issue files:
# /etc/issue ........ Simple login screen for consoles or terminals
# /etc/issue.ansi ... Login screen for ANSI consoles or terminals
# /etc/issue.net .... Login message for network connections
#
1:12345:respawn:/sbin/agetty -L -i -I '\012\015\012Maintenance Console:\012' -l /sbin/login-shell -n 38400 vc/1 linux
2:12345:respawn:/sbin/agetty -f /etc/issue.ansi -l /sbin/login-shell -n 38400 vc/2 linux
3:12345:respawn:/sbin/agetty -f /etc/issue.ansi -l /sbin/login-shell -n 38400 vc/3 linux
4:12345:respawn:/sbin/agetty -f /etc/issue.ansi -l /sbin/login-shell -n 38400 vc/4 linux
5:12345:respawn:/sbin/agetty -f /etc/issue.ansi -l /sbin/login-shell -n 38400 vc/5 linux
6:12345:respawn:/sbin/agetty -f /etc/issue.ansi -l /sbin/login-shell -n 38400 vc/6 linux
#
# A X display manager (multiplexer)
#
X:5:respawn:/usr/X11/bin/startxdm

+ 3
- 0
target/livecd/fixedfiles/login-shell

@ -0,0 +1,3 @@
#!/bin/sh
echo "root and rocker's password is 'rock'"
exec su - rocker -c "/bin/bash --login"

+ 253
- 0
target/livecd/fixedfiles/system

@ -0,0 +1,253 @@
#!/bin/sh
#
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/package/base/sysfiles/system.init
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
#
# Desc: System bootup and shutdown
# Runlevel: 01 rcX rc1 rc2 rc3 rc4 rc5
#
title() {
local x w="$( stty size 2>/dev/null </dev/tty | cut -d" " -f2 )"
[ -z "$w" ] && w="$( stty size </dev/console | cut -d" " -f2 )"
for (( x=1; x<w; x++ )) do echo -n .; done
echo -e "\e[222G\e[3D v \r\e[36m$* \e[0m"
error=0
}
status() {
if [ $error -eq 0 ]
then
echo -e "\e[1A\e[222G\e[4D\e[32m :-)\e[0m"
else
echo -e "\e[1A\e[222G\e[4D\a\e[1;31m :-(\e[0m"
fi
}
case "$1" in
start)
title "Runnind depmod ..."
/sbin/depmod -a || error=$?
status
title "Mounting /sys, /dev/shm and /dev/pts."
mount -n /sys 2> /dev/null
mount -n /dev/shm || error=$?
mount -n /dev/pts 2> /dev/null
if [ -f /etc/conf/hardware ] ; then
. /etc/conf/hardware
fi
status
title "Configuring the /dev filesystem ..."
sh /etc/conf/devfs || error=$?
status
title "Configuring hardware by activating rockplug."
echo "/sbin/rockplug" > /proc/sys/kernel/hotplug
for file in /etc/rockplug/*.init ; do
[ -f $file ] && $file start
done
status
title "Loading kernel modules and configuring the kernel."
sh /etc/conf/kernel || error=$?
[ -f /etc/conf/clock ] && . /etc/conf/clock
if [ "$clock_tz" = localtime ] ; then
status
title "Setting kernel clock to local time."
hwclock --hctosys --localtime || error=$?
fi
if [ "$clock_rtc" ] ; then
status
title "Setting enhanced real time clock precision to $clock_rtc."
if [ -w /proc/sys/dev/rtc/max-user-freq ] ; then
echo $clock_rtc > /proc/sys/dev/rtc/max-user-freq || error=$?
else
echo "No /proc/sys/dev/rtc/max-user-freq found."
fi
fi
status
title "Setting hostname to $(cat /etc/HOSTNAME)."
hostname "$(cat /etc/HOSTNAME)" || error=$?
status
title "Refresh utmp, delete lock and tmp files and other stuff."
find /var/lock /var/run /tmp -mindepth 1 -print0 2> /dev/null | xargs --null rm -rf
rm -f /etc/nologin /nologin /fastboot ; touch /var/run/utmp
chmod 664 /var/run/utmp ; chown root:tty /var/run/utmp
status
title "Writing /var/log/boot.msg."
klogd -f /var/log/boot.msg -o ; dmesg -n 3
status
title "Setting keyboard keymappings."
if [ -L /etc/default.keymap ] ; then
mapfile=$(ls -l /etc/default.keymap | sed 's,.* -> ,,')
loadkeys $mapfile || error=$?
elif [ -f /etc/default.keymap ] ; then
loadkeys /etc/default.keymap || error=$?
else
echo "No /etc/default.keymap found."
fi
status
title "Setting keyboard repeat rate and delay time."
kbd_rate=30; kbd_delay=250
[ -f /etc/conf/kbd ] && . /etc/conf/kbd
/usr/bin/kbdrate -r $kbd_rate -d $kbd_delay < /dev/console || error=$?
status
title "Setting console screen font."
if [ -L /etc/default.vcfont ] ; then
fontfile=$(ls -l /etc/default.vcfont | sed 's,.* -> ,,')
setfont $fontfile || error=$?
elif [ -f /etc/default.vcfont ] ; then
setfont /etc/default.vcfont || error=$?
else
echo "No /etc/default.vcfont found."
fi
status
title "Setting console terminal type and blank interval."
con_term=linux; con_blank=0
[ -f /etc/conf/console ] && . /etc/conf/console
/usr/bin/setterm -term $con_term -blank $con_blank > /dev/console || error=$?
status
title "Setting up loopback networking."
ip link set lo up || error=$?
ip addr add 127.0.0.1/8 dev lo || error=$?
ip route add 127/8 dev lo || error=$?
status
title "Setting overflow UID and GID kernel parameters."
sysctl -w kernel.overflowuid=$(id -u nobody) > /dev/null || error=$?
sysctl -w kernel.overflowgid=$(id -g nobody) > /dev/null || error=$?
status
title "Reading /etc/sysctl.conf file."
sysctl -p || error=$?
status
title "Initializing kernel random number generator."
if [ -e /var/state/random-seed ] ; then
cat /var/state/random-seed >/dev/urandom || error=$?
fi
status
title "Running ldconfig."
/sbin/ldconfig >/dev/null 2>&1 || error=$?
status
title "Setting mixer devices Master and PCM to 65%."
/usr/bin/amixer sset PCM 20 >/dev/null 2>&1 || error=$?
/usr/bin/amixer sset PCM unmute >/dev/null 2>&1 || error=$?
/usr/bin/amixer sset Master 20 >/dev/null 2>&1 || error=$?
/usr/bin/amixer sset Master unmute >/dev/null 2>&1 || error=$?
status
;;
stop)
title "Saving /var/log/init.msg and /var/log/boot.msg."
touch /var/log/init.msg /var/log/boot.msg || error=$?
mv /var/log/init.msg /var/log/init.old || error=$?
mv /var/log/boot.msg /var/log/boot.old || error=$?
status
title "Writing a wtmp record."
if [ "$RUNLEVEL" = 0 ] ; then halt -w || error=$?
else reboot -w || error=$? ; fi
status
title "Saving kernel random seed."
dd if=/dev/urandom of=/var/state/random-seed count=1 2> /dev/null
status
title "Sending all processes a SIGTERM (15)."
killall5 -15 || error=$? ; sleep 5
status
title "Sending all processes a 2nd SIGTERM (15)."
killall5 -15 || error=$? ; sleep 5
status
title "Sending all processes a SIGKILL (9)."
killall5 -9 || error=$? ; sleep 5
status
title "Turning off swap devices."
swapoff -a || error=$?
sync ; sleep 1
status
title "Remounting sync/ro and umount filesystems."
cut -d' ' -f-3 /etc/mtab /proc/mounts | sort -k2 -u -r | \
while read dev dir fs ; do
[ "$dir" = "/" ] && continue
[ "$dir" = "/dev" ] && continue
[ "$dir" = "/dev/shm" ] && continue
[ "$dir" = "/proc" ] && continue
[ "$dir" = "/sys" ] && continue
[ "$dir" = "/tmp" ] && continue
echo "Umounting $dev on $dir ($fs)."
mount -o remount,sync $dir
mount -o remount,ro $dir
umount $dir
done
status
title "Unmounting remaining file systems."
grep -E -v '^none (/|[a-z]+:) ' /proc/mounts > /etc/mtab
sync ; sleep 1 ; sync
umount -vnra -t nodevfs,proc,sysfs,shm
mount -vn -o remount,sync /
mount -vn -o remount,ro /
sleep 1 ; sync ; sleep 1
status
command=""
[ "$RUNLEVEL" = 0 ] && command=halt
[ "$RUNLEVEL" = 6 ] && command=reboot
if [ -n "$command" ] ; then
echo "Going to $command the system ..."
$command -d -f -i -p
while true ; do sleep 1 ; done
fi
;;
restart)
$0 stop; $0 start
;;
*)
echo "Usage: $0 { start | stop }"
exit 1 ;;
esac
exit 0

+ 128
- 0
target/livecd/kernel.conf

@ -0,0 +1,128 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/target/bootdisk/kernel.conf
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
# the useful magic rq
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# will use alsa
CONFIG_SOUND=m
# Console drivers
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
# all fbs in-kernel
CONFIG_FB=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FB_RIVA=y
CONFIG_FB_CLGEN=y
CONFIG_FB_PM2=y
# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
# CONFIG_FB_PM2_PCI is not set
CONFIG_FB_PM3=y
CONFIG_FB_CYBER2000=y
CONFIG_FB_VESA=y
#eek! this ovverides all others! evil!
CONFIG_FB_VGA16=n
CONFIG_FB_HGA=y
CONFIG_VIDEO_SELECT=y
CONFIG_FB_MATROX=y
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G450=y
CONFIG_FB_MATROX_G100=y
# CONFIG_FB_MATROX_I2C is not set
# CONFIG_FB_MATROX_MAVEN is not set
# CONFIG_FB_MATROX_PROC is not set
# CONFIG_FB_MATROX_MULTIHEAD is not set
CONFIG_FB_ATY=y
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_CT=y
# CONFIG_FB_ATY_GENERIC_LCD is not set
CONFIG_FB_RADEON=y
CONFIG_FB_ATY128=y
CONFIG_FB_INTEL=y
CONFIG_FB_SIS=y
CONFIG_FB_SIS_300=y
CONFIG_FB_SIS_315=y
CONFIG_FB_NEOMAGIC=y
CONFIG_FB_3DFX=y
CONFIG_FB_VOODOO1=y
CONFIG_FB_TRIDENT=y
CONFIG_FB_IT8181=y
# CONFIG_FB_VIRTUAL is not set
CONFIG_FBCON_ADVANCED=y
CONFIG_FBCON_MFB=y
# CONFIG_FBCON_CFB2 is not set
CONFIG_FBCON_CFB4=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=y
CONFIG_FBCON_CFB24=y
CONFIG_FBCON_CFB32=y
# CONFIG_FBCON_AFB is not set
# CONFIG_FBCON_ILBM is not set
# CONFIG_FBCON_IPLAN2P2 is not set
# CONFIG_FBCON_IPLAN2P4 is not set
# CONFIG_FBCON_IPLAN2P8 is not set
CONFIG_FBCON_MAC=m
CONFIG_FBCON_VGA_PLANES=y
# CONFIG_FBCON_VGA is not set
CONFIG_FBCON_HGA=y
# CONFIG_FBCON_FONTWIDTH8_ONLY is not set
# CONFIG_FBCON_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# agp already needed for some vga cards
CONFIG_AGP=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_I810=y
CONFIG_AGP_VIA=y
CONFIG_AGP_AMD=y
CONFIG_AGP_AMD_K8=y
CONFIG_AGP_SIS=y
CONFIG_AGP_ALI=y
CONFIG_AGP_SWORKS=y
CONFIG_AGP_NVIDIA=y
CONFIG_AGP_ATI=y
# drm
CONFIG_DRM=m
CONFIG_DRM_NEW=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_GAMMA=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_I810=m
CONFIG_DRM_I810_XFREE_41=m
CONFIG_DRM_I830=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
# FireWire support
CONFIG_IEEE1394=y
CONFIG_IEEE1394_OHCI1394=y
# needed for fw cdrom boot
CONFIG_IEEE1394_SBP2=y
CONFIG_IEEE1394_ETH1394=m

+ 23
- 0
target/livecd/kernel.conf.sh

@ -0,0 +1,23 @@
# here we disable settings we'll most probably not need on the bootdisk
echo "bootdisk target -> disabling some settings ..."
sed -e "s/CONFIG_SOUND_\(.*\)=./# CONFIG_SOUND_\1 is not set/" \
-e "s/CONFIG_VIDEO\(.*\)=./# CONFIG_VIDEO\1 is not set/" \
-e "s/CONFIG_PHONE\(.*\)=./# CONFIG_PHONE\1 is not set/" \
-e "s/CONFIG_RADIO\(.*\)=./# CONFIG_RADIO\1 is not set/" \
-e "s/CONFIG_HAMRADIO\(.*\)=./# CONFIG_HAMRADIO\1 is not set/" \
-e "s/CONFIG_ATM\(.*\)=./# CONFIG_ATM\1 is not set/" \
-e "s/CONFIG_SMP\(.*\)=./# CONFIG_SMP\1 is not set/" \
-e "s/CONFIG_PCI_NAMES\(.*\)=./# CONFIG_PCI_NAMES\1 is not set/" \
-e "s/CONFIG_INPUT_JOYDEV\(.*\)=./# CONFIG_INPUT_JOYDEV\1 is not set/" \
-e "s/CONFIG_ACPI\(.*\)=./# CONFIG_ACPI\1 is not set/" \
-e "s/CONFIG_GAMEPORT\(.*\)=./# CONFIG_GAMEPORT\1 is not set/" \
-e "s/CONFIG_IP_NF\(.*\)=./CONFIG_IP_NF\1=m/" \
-e "s/# CONFIG_EMBEDDED is not set/CONFIG_EMBEDDED=y/" \
-e "s/CONFIG_KALLSYMS=./# CONFIG_KALLSYMS is not set/" \
-e "s/CONFIG_IOSCHED_AS=./# CONFIG_IOSCHED_AS is not set/" \
$1 > .config.boot
mv .config.boot $1

+ 533
- 0
target/livecd/linuxrc.c

@ -0,0 +1,533 @@
/*
* --- ROCK-COPYRIGHT-NOTE-BEGIN ---
*
* This copyright note is auto-generated by ./scripts/Create-CopyPatch.
* Please add additional copyright information _after_ the line containing
* the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
* the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
*
* ROCK Linux: rock-src/target/livecd/linuxrc.c
* ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
*
* 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. A copy of the GNU General Public
* License can be found at Documentation/COPYING.
*
* Many people helped and are helping developing ROCK Linux. Please
* have a look at http://www.rocklinux.org/ and the Documentation/TEAM
* file for details.
*
* --- ROCK-COPYRIGHT-NOTE-END ---
*
* linuxrc.c is Copyright (C) 2003, 2004 Cliford Wolf and Rene Rebe
*
*/
#include <sys/mount.h>
#include <sys/swap.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <sys/klog.h>
#include <sys/utsname.h>
#include <dirent.h>
#include <fcntl.h>
#include <errno.h>
#include <stdarg.h>
#ifndef MS_MOVE
# define MS_MOVE 8192
#endif
#ifndef STAGE_2_IMAGE
# define STAGE_2_IMAGE "2nd_stage.img.z"
#endif
char mod_loader[50];
char mod_dir[255];
char mod_suffix[3];
int mod_suffix_len=0;
void mod_load_info(char *mod_loader, char *mod_dir, char *mod_suffix) {
struct utsname uts_name;
if(uname(&uts_name) < 0) {
perror("unable to perform uname syscall correctly");
return;
} else if(strcmp(uts_name.sysname, "Linux") != 0) {
printf("Your operating system is not supported ?!\n");
return;
}
strcpy(mod_loader, "/bin-static/insmod");
strcpy(mod_dir, "/lib/modules/");
strcat(mod_dir, uts_name.release);
/* kernel module suffix for <= 2.4 is .o, .ko if above */
if(uts_name.release[2] > '4') {
strcpy(mod_suffix, ".ko");
} else {
strcpy(mod_suffix, ".o");
}
return;
}
void doboot()
{
if ( access("/sbin/init", R_OK) ) { perror("Can't find /sbin/init"); }
else {
execlp("/sbin/init","/sbin/init");
}
}
int trymount (const char* source, const char* target)
{
return mount(source, target, "iso9660", MS_RDONLY, NULL) &&
mount(source, target, "ext3", MS_RDONLY, NULL) &&
mount(source, target, "ext2", MS_RDONLY, NULL) &&
mount(source, target, "minix", MS_RDONLY, NULL) &&
mount(source, target, "vfat", MS_RDONLY, NULL);
}
void trywait(pid)
{
if (pid < 0) perror("fork");
else waitpid(pid, NULL, 0);
}
#define tryexeclp(file, arg, ...) ( { \
int pid; \
\
if ( (pid = fork()) == 0 ) { \
execlp(file, arg, __VA_ARGS__); \
perror(file); \
exit(1); \
} \
\
trywait(pid); \
} )
/* check wether a file is a directory */
int is_dir(const struct dirent *entry) {
struct stat tmpstat;
lstat(entry->d_name, &tmpstat);
return S_ISDIR(tmpstat.st_mode);
}
/* this is used in the module loading system for sorting dirs before files */
int dirs_first_sort(const struct dirent **a, const struct dirent **b) {
if(is_dir(*a)) {
if(is_dir(*b)) return 0;
else return 1;
} else if(is_dir(*b)) {
return -1;
} else return 0;
}
/* this is used in the rm -r implementation */
int no_dot_dirs_filter(const struct dirent *entry) {
if( is_dir(entry) && (!strcmp(entry->d_name,".") || !strcmp(entry->d_name,"..")) ) return 0;
else return 1;
}
/* my own rm -r implementation - :P */
int rm_recursive(char* directory) {
struct dirent **namelist;
char oldcwd[256];
int n, ret=0;
getcwd(oldcwd, 256);
if(chdir(directory)) {
perror("chdir");
exit(1);
}
n = scandir(".", &namelist, no_dot_dirs_filter, dirs_first_sort);
if (n < 0) {
perror("scandir"); ret = -1;
}
while(n--) {
if(is_dir(namelist[n])){
if(rmdir(namelist[n]->d_name) != 0) {
rm_recursive(namelist[n]->d_name);
}
} else {
if(unlink(namelist[n]->d_name) != 0) {
perror("unable to remove file"); fflush(stdout);
ret = -1;
}
}
free(namelist[n]);
}
free(namelist);
chdir(oldcwd);
if(rmdir(directory) != 0) {
perror("could not delete just-left meant-to-be-empty directory");
ret = -1;
}
return ret;
}
/* symlink most files in /etc */
int make_etc_symlinks() {
struct dirent **namelist;
char source[256], target[256], oldcwd[100];
int n, ret=0;
getcwd(oldcwd, 100);
chdir("/ROCK/etc");
n = scandir(".", &namelist, no_dot_dirs_filter, NULL);
if (n < 0) {
perror("scandir"); ret = -1;
}
while(n--) {
snprintf(source, 256, "/ROCK/etc/%s",namelist[n]->d_name);
snprintf(target, 256, "/etc/%s",namelist[n]->d_name);
if (symlink(source, target) != 0) {
printf("error in symlinking %s -> %s\n",source,target);
ret = -1;
}
free(namelist[n]);
}
free(namelist);
chdir(oldcwd);
return ret;
}
int getdevice(char* devstr, int devlen)
{
char devicebase[20] = "/dev/cdroms/cdrom%d";
char *devn[10];
char devicefile[100];
char filename[100];
int tmp_nr, nr=0;
for (tmp_nr = 0; tmp_nr < 10; ++tmp_nr) {
snprintf(devicefile, 100, devicebase, tmp_nr);
if ( access (devicefile, R_OK) ) break;
devn[nr++] = strdup (devicefile);
}
if (!nr) {
printf("could not find a suitable cdrom device!\n");
return -1;
}
devn[nr] = NULL;
snprintf(filename,100,"/mnt/cdrom/%s",STAGE_2_IMAGE);
for (nr=0; devn[nr]; nr++) {
if(trymount(devn[nr],"/mnt/cdrom") == 0) {
if( access(filename, R_OK) ) continue;
strncpy(devstr, devn[nr], devlen);
return 0;
}
}
printf("unable to find a device containing %s!\n", STAGE_2_IMAGE);
return -1;
}
int prepare_root() {
int ret = 0;
/* we need to set umask to 00 so we can set 777 perms */
umask(00);
/* simple symlinking */
if(symlink("/ROCK/bin","/bin") != 0) { perror("/bin symlink FAILED"); ret=-1; }
if(symlink("/ROCK/sbin","/sbin") != 0) { perror("/sbin symlink FAILED"); ret=-1; }
if(symlink("/ROCK/boot","/boot") != 0) { perror("/boot symlink FAILED"); ret=-1; }
if(symlink("/ROCK/opt","/opt") != 0) { perror("/opt symlink FAILED"); ret=-1; }
/* if /tmp isn't empty, this is gonna blow... */
if(rmdir("/tmp") != 0) { perror("unable to remove old /tmp"); ret=-1; }
if(mkdir("/ramdisk/tmp", 0777) != 0) { perror("unable to create /ramdisk/tmp"); ret=-1; }
if(symlink("/ramdisk/tmp", "/tmp") != 0) { perror("/tmp symlink FAILED"); ret=-1; }
if(mkdir("/ramdisk/home", 0755) != 0) { perror("unable to create /ramdisk/home"); ret=-1; }
if(symlink("/ramdisk/home", "/home") != 0) { perror("/home symlink FAILED"); ret=-1; }
/* usr is just a symlink to / , that's why it works */
if(unlink("/usr") != 0) { perror("unable to remove old /usr"); ret=-1; }
if(symlink("/ROCK/usr","/usr") != 0) { perror("/usr symlink FAILED"); ret=-1; }
if(mkdir("/ramdisk/var", 0755) != 0) { perror("unable to create /ramdisk/var"); ret=-1; }
if(symlink("/ramdisk/var", "/var") != 0) { perror("/var symlink FAILED"); ret=-1; }
if(rm_recursive("/lib") != 0) { printf("removal of /lib FAILED\n"); ret=-1; }
if(symlink("/ROCK/lib", "/lib") != 0) { perror("/lib symlink FAILED"); ret=-1; }
if(unlink("/sbin-static") != 0) { perror("error removing /sbin-static"); ret=-1; }
if(rm_recursive("/bin-static") != 0) { printf("removal of /bin-static FAILED\n"); ret=-1; }
fflush(stdout);
/* the /etc directory is a bit special */
if(make_etc_symlinks() != 0) { printf("error while symlinking individual files in /etc!\n"); ret=-1; }
/* remove some files that either need to be writable or need to be replaced */
if(unlink("/etc/mtab") != 0) { perror("unable to remove /etc/mtab!"); ret=-1; }
if(unlink("/etc/passwd") != 0) { perror("unable to remove /etc/passwd!"); ret=-1; }
if(unlink("/etc/group") != 0) { perror("unable to remove /etc/group!"); ret=-1; }
if(unlink("/etc/shadow") != 0) { perror("unable to remove /etc/shadow!"); ret=-1; }
if(unlink("/etc/X11") != 0) { perror("unable to remove /etc/X11 symlink!"); ret=-1; }
if(mkdir("/etc/X11",0755) != 0) { perror("unable to create /etc/X11!"); ret=-1; }
if(mkdir("/etc/X11/xkb",0755) != 0) { perror("unable to create /etc/X11/xkb!"); ret=-1; }
/* etc/mtab must not contain a duplicate rootfs entry*/
umask(022);
FILE* orig = fopen("/proc/mounts","r");
FILE* mod = fopen("/etc/mtab","w");
char buf[256];
while(fgets(buf, 256, orig) != NULL) {
if(memcmp(buf,"rootfs",6) == 0) continue;
else fputs(buf, mod);
}
fclose(orig); fclose(mod); buf[1]=0;
/* add rocker to /etc/passwd and change root's home to /home/root */
orig = fopen("/ROCK/etc/passwd","r");
mod = fopen("/etc/passwd","w");
while(fgets(buf, 256, orig) != NULL) {
if(memcmp(buf,"root",4) != 0) fputs(buf, mod);
else fputs("root:x:0:0:root:/home/root:/bin/bash\n",mod);
}
fputs("rocker:x:1000:100:ROCK Live CD User:/home/rocker:/bin/bash\n",mod);
fclose(orig); fclose(mod); buf[1]=0;
/* add rocker to /etc/shadow */
umask(066);
orig = fopen("/ROCK/etc/shadow","r");
mod = fopen("/etc/shadow","w");
while(fgets(buf, 256, orig) != NULL) {
if(memcmp(buf,"root",4) != 0) fputs(buf, mod);
else fputs("root:$1$1YssESn0$Y9LvBGGXpsZhjNKZ0x8OM/:12548::::::\n",mod);
}
fputs("rocker:$1$//TuI8QD$kTxVesUbGLNKuxILuK2UN/:12548:0:99999:7:::\n",mod);
fclose(orig); fclose(mod); buf[1]=0;
/* add rocker to group 'sound' */
int fnd = 0;
umask(022);
orig = fopen("/ROCK/etc/group","r");
mod = fopen("/etc/group","w");
while(fgets(buf, 256, orig) != NULL) {
if(memcmp(buf,"sound",5) != 0) fputs(buf, mod);
else {
fputs("sound:x:17:rocker\n",mod);
fnd = 1;
}
}
if(!fnd) fputs("sound:x:17:rocker\n",mod);
fclose(orig); fclose(mod); buf[1]=0;
/* copy over XF86Config */
orig = fopen("/ROCK/etc/X11/XF86Config","r");
mod = fopen("/etc/X11/XF86Config","w");
while(fgets(buf, 256, orig) != NULL) fputs(buf, mod);
fclose(orig); fclose(mod); buf[1]=0;
/* copy over resolv.conf */
unlink("/etc/resolv.conf");
orig = fopen("/ROCK/etc/resolv.conf","r");
mod = fopen("/etc/resolv.conf","w");
while(fgets(buf, 256, orig) != NULL) fputs(buf, mod);
fclose(orig); fclose(mod); buf[1]=0;
/* change modules.conf to place it's modules.dep in /etc */
unlink("/etc/modules.conf");
orig = fopen("/ROCK/etc/modules.conf","r");
mod = fopen("/etc/modules.conf","w");
while(fgets(buf, 256, orig) != NULL) fputs(buf, mod);
fputs("depfile=/etc/modules.dep\n",mod);
fputs("generic_stringfile=/etc/modules.generic_string\n",mod);
fputs("pcimapfile=/etc/modules.pcimap\n",mod);
fputs("isapnpmapfile=/etc/modules.isapnpmap\n",mod);
fputs("usbmapfile=/etc/modules.usbmap\n",mod);
fputs("parportmapfile=/etc/modules.parportmap\n",mod);
fputs("ieee1394mapfile=/etc/modules.ieee1394map\n",mod);
fputs("pnpbiosmapfile=/etc/modules.pnpbiosmap\n",mod);
fclose(orig); fclose(mod); buf[1]=0;
umask(00);
/* we need to fix some things in /dev */
if(chdir("/dev") != 0) { perror("could not chdir to /dev!"); ret=-1; }
unlink("fd"); /*no problem if this fails*/
if(symlink("/proc/kcore","core") != 0) { perror("could not symlink /proc/kcore to /dev/core"); ret=-1; }
if(symlink("/proc/self/fd","fd") != 0) { perror("could not symlink /proc/self/fd to /dev/fd"); ret=-1; }
if(symlink("fd/0","stdin") != 0) { perror("could not symlink /dev/fd/0 to /dev/stdin"); ret=-1; }
if(symlink("fd/1","stdout") != 0) { perror("could not symlink /dev/fd/1 to /dev/stdout"); ret=-1; }
if(symlink("fd/2","stderr") != 0) { perror("could not symlink /dev/fd/2 to /dev/stderr"); ret=-1; }
if(chdir("/") != 0) { perror("could not chdir to /!"); ret=-1; }
/* create needed directories in /var */
if(mkdir("/var/run",0755) != 0 ) { perror("could not create /var/run"); ret=-1; }
if(mkdir("/var/lock",0755) != 0 ) { perror("could not create /var/lock"); ret=-1; }
if(mkdir("/var/tmp",0777) != 0 ) { perror("could not create /var/tmp"); ret=-1; }
if(mkdir("/var/log",0755) != 0 ) { perror("could not create /var/log"); ret=-1; }
if(mkdir("/var/lib",0755) != 0 ) { perror("could not create /var/lib"); ret=-1; }
if(mkdir("/var/lib/xkb",0755) != 0 ) { perror("could not create /var/lib/xkb"); ret=-1; }
if(symlink("/var/lib/xkb","/etc/X11/xkb/compiled")!=0) { perror("could not symlink /var/lib/xkb to /etc/X11/xkb/compiled"); ret=-1; }
if(mkdir("/var/rockplug",0755) != 0 ) { perror("could not create /var/rockplug"); ret=-1; }
if(mkdir("/var/rockplug/ieee1394",0755) != 0 ) { perror("could not create /var/rockplug/ieee1394"); ret=-1; }
if(mkdir("/var/rockplug/isapnp",0755) != 0 ) { perror("could not create /var/rockplug/isapnp"); ret=-1; }
if(mkdir("/var/rockplug/net",0755) != 0 ) { perror("could not create /var/rockplug/net"); ret=-1; }
if(mkdir("/var/rockplug/pci",0755) != 0 ) { perror("could not create /var/rockplug/pci"); ret=-1; }
if(mkdir("/var/rockplug/scsi",0755) != 0 ) { perror("could not create /var/rockplug/scsi"); ret=-1; }
if(mkdir("/var/rockplug/usb",0755) != 0 ) { perror("could not create /var/rockplug/usb"); ret=-1; }
/* add rocker's home, change owner */
if(mkdir("/home/rocker",0755) != 0 ) { perror("could not create /home/rocker"); ret=-1; }
if(chown("/home/rocker",1000,100) != 0) { perror("could not chown /home/rocker to rocker:users"); ret=-1; }
/* root's home */
if(mkdir("/home/root",0700) != 0 ) { perror("could not create /home/root"); ret=-1; }
umask(022);
return ret;
}
void load_ramdisk_file() {
char text[120], devicefile[100];
char filename[100];
int pid;
strcpy(filename, STAGE_2_IMAGE);
if (getdevice(devicefile, 100) < 0)
return;
snprintf(text, 120, "file=/mnt/cdrom/%s", filename);
if ( (pid = fork()) == 0 ) {
printf("loading cloop...");
execlp(mod_loader, mod_loader, "/lib/modules/misc/cloop.o", text);
perror("can't insmod cloop from");
exit(1);
}
trywait(pid);
if( access("/dev/cloop/0", R_OK) )
{ perror("can't access /dev/cloop/0, check if cloop insmod was succesfull!"); return; }
if( mount("/dev/cloop/0", "/ROCK", "iso9660", MS_RDONLY, NULL) )
{ perror("Can't mount /dev/cloop/0 on /ROCK!"); return; }
if ( mount("none", "/ramdisk", "tmpfs", 0, NULL) )
{ perror("Can't mount /ramdisk"); return; }
/* create symlinks for needed directories, create special files */
if(prepare_root() == 0) doboot();
return;
}
void autoload_modules()
{
char line[200], cmd[200], module[200];
int fd[2], rc;
FILE *f;
int pid;
if (pipe(fd) <0)
{ perror("Can't create pipe"); return; }
if ( (pid = fork()) == 0 ) {
dup2(fd[1],1); close(fd[0]); close(fd[1]);
execlp("gawk", "gawk", "-f", "/bin-static/hwscan", NULL);
printf("Can't start >>hwscan<< program with gawk!\n");
exit(1);
}
close(fd[1]);
f = fdopen(fd[0], "r");
while ( fgets(line, 200, f) != NULL ) {
if ( sscanf(line, "%s %s", cmd, module) < 2 ) continue;
if ( !strcmp(cmd, "modprobe") || !strcmp(cmd, "insmod") ) {
printf("%s %s\n", cmd, module);
if ( (rc = fork()) == 0 ) {
execlp(cmd, cmd, module, NULL);
perror("Cant run modprobe/insmod");
exit(1);
}
trywait(rc);
}
}
fclose(f);
trywait(pid);
}
void exec_sh()
{
int rc;
printf ("Quit the shell to return to the stage 1 loader!\n");
if ( (rc = fork()) == 0 ) {
execl("/bin-static/kiss", "kiss", "-E", NULL);
perror("kiss");
_exit(1);
}
trywait(rc);
}
int main()
{
if ( mount("none", "/dev", "devfs", 0, NULL) && errno != EBUSY )
perror("Can't mount /dev");
if ( mount("none", "/proc", "proc", 0, NULL) && errno != EBUSY )
perror("Can't mount /proc");
/* Only print important stuff to console */
klogctl(8, NULL, 3);
mod_load_info(mod_loader, mod_dir, mod_suffix);
mod_suffix_len = strlen(mod_suffix);
autoload_modules();
printf("\n\
============================================\n\
=== ROCK Linux 1st stage boot system ===\n\
============================================\n\
\n\
The ROCK Linux live CD system boots up in two stages. You are now in\n\
the first of this two stages and if everything goes right you will not\n\
spend much time here. I will just try to load some drivers (if needed)\n\
so the 2nd stage boot system can be loaded.\n");
load_ramdisk_file();
sleep(1);
printf("\n\nYou are still here. that means i couldn't complete the automatic boot of\n");
printf("stage2. Please refer to the errors reported above, you will now be dumped into a");
printf("minimalistic static shell so you can have a look at what went wrong...\n");
if(access("/bin/kiss",R_OK) == 0) execl("/bin/kiss", "/bin/kiss", NULL);
if(access("/bin-static/kiss",R_OK) == 0) execl("/bin-static/kiss", "/bin-static/kiss", NULL);
printf("\nCan't start a shell!!\n\nPlease send a bug report with your configuration to fake@rocklinux.org\n\n");
return 0;
}

+ 5
- 0
target/livecd/pkg_gawk.conf

@ -0,0 +1,5 @@
[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf
var_append confopt " " " --disable-nls"

+ 6
- 0
target/livecd/pkg_modutils.conf

@ -0,0 +1,6 @@
[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf
var_append confopt " " "--disable-combined --enable-combined-rmmod \
--enable-combined-modprobe"

+ 24
- 0
target/livecd/preconfig.in

@ -0,0 +1,24 @@
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/target/livecd/preconfig.in
# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf
#
# 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. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
#
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
CFGTEMP_TARGETLIST="$CFGTEMP_TARGETLIST `
`livecd Live_CD-ROM_system"

+ 28
- 0
target/livecd/x86/build.sh

@ -0,0 +1,28 @@
syslinux_ver="`sed -n 's,.*syslinux-\(.*\).tar.*,\1,p' \
$base/target/livecd/download.txt`"
cd $disksdir
echo_header "Creating isolinux setup:"
#
echo_status "Extracting isolinux boot loader."
mkdir -p isolinux
tar --use-compress-program=bzip2 \
-xf $base/download/livecd/syslinux-$syslinux_ver.tar.bz2 \
syslinux-$syslinux_ver/isolinux.bin -O > isolinux/isolinux.bin
#
echo_status "Creating isolinux config file."
cp $base/target/$target/x86/isolinux.cfg isolinux/
cp $base/target/$target/x86/help?.txt isolinux/
#
echo_status "Copy images to isolinux directory."
cp boot/memtest86.bin isolinux/memtest86
cp initrd.gz boot/vmlinuz isolinux/
#
cat > ../isofs_arch.txt <<- EOT
BOOT -b isolinux/isolinux.bin -c isolinux/boot.catalog
BOOTx -no-emul-boot -boot-load-size 4 -boot-info-table
DISK1 build/${ROCKCFG_ID}/ROCK/livecd/isolinux/ isolinux/
EOT

+ 17
- 0
target/livecd/x86/help0.txt

@ -0,0 +1,17 @@
____ ___ ___ _ __ _
| _ \ / _ \ / __| |/ / | | _ _ __ _ _ _ _
| . _/| | | | | | '_/ | | |_| '_ \| | | | \/ |
| |\ \| |_| | |__| . \ | |__| | | | | `_' |> <
|_| \_\ ___/ \___|_|\_\ |____|_|_| |_|\___/|_/\_|
[============> http://www.rocklinux.org/ <============]
| L I V E CD |
+-------------+
Actions:
--------
<ENTER> Start live cd system
ramdisk options <Enter> Start live cd system with the given options
linux options <Enter> Boot the linux kernel with the given options
memtest86 <Enter> Boot the memtest86 mini-os

+ 17
- 0
target/livecd/x86/isolinux.cfg

@ -0,0 +1,17 @@
DEFAULT ramdisk
TIMEOUT 600
PROMPT 1
DISPLAY help0.txt
LABEL ramdisk
kernel vmlinuz
APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc video=vesa:ywrap,mtrr vga=0x317 rw
LABEL linux
kernel vmlinuz
LABEL memtest86
kernel memtest86

Loading…
Cancel
Save