From 1fecefbb87e4234e5567b9c26517e7fe344edb36 Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Sun, 18 Apr 2004 00:56:15 +0000 Subject: [PATCH] Benjamin Schieder: Add target LVP [2004030816545702784] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@2757 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- target/lvp/ChangeLog | 103 +++ target/lvp/TODO | 3 + target/lvp/XF86Config | 73 ++ target/lvp/build.sh | 124 +++ target/lvp/config.in | 103 +++ target/lvp/download.txt | 1 + target/lvp/etc_lvp_00-setup.sh | 11 + target/lvp/etc_lvp_encryption.sh | 47 ++ target/lvp/etc_lvp_hardware.sh | 23 + target/lvp/etc_lvp_xf86config.sh | 43 ++ target/lvp/etc_profile | 1 + target/lvp/kernel.conf | 708 ++++++++++++++++++ target/lvp/linuxrc | 47 ++ target/lvp/login-shell | 2 + target/lvp/parse-config | 26 + target/lvp/patches/etc_profile.patch | 13 + target/lvp/patches/linux24_quiet.patch | 11 + target/lvp/patches/sbin_hwscan.patch | 13 + target/lvp/patches/xfree86_hotfixes.patch | 96 +++ target/lvp/pkg_linux24-src.conf | 3 + target/lvp/pkg_linux24.conf | 3 + target/lvp/pkg_mplayer.conf | 39 + target/lvp/pkg_sysfiles.conf | 18 + target/lvp/pkg_xfree86.conf | 45 ++ target/lvp/preconfig.in | 24 + target/lvp/startlvp | 9 + target/lvp/x86/build.sh | 43 ++ target/lvp/x86/help0.txt | 21 + target/lvp/x86/isolinux.cfg | 16 + target/lvp/x86/release_skeleton/ChangeLog | 16 + target/lvp/x86/release_skeleton/README | 15 + target/lvp/x86/release_skeleton/config.sh | 39 + .../lvp/x86/release_skeleton/scripts/cleanup | 19 + .../release_skeleton/scripts/configuration | 24 + .../x86/release_skeleton/scripts/create-iso | 6 + .../x86/release_skeleton/scripts/create_lvp | 78 ++ .../release_skeleton/scripts/create_lvpxml | 79 ++ .../x86/release_skeleton/scripts/encrypted | 187 +++++ .../x86/release_skeleton/scripts/functions | 222 ++++++ target/lvp/x86/release_skeleton/scripts/plain | 86 +++ target/lvp/xinitrc | 8 + 41 files changed, 2448 insertions(+) create mode 100644 target/lvp/ChangeLog create mode 100644 target/lvp/TODO create mode 100644 target/lvp/XF86Config create mode 100644 target/lvp/build.sh create mode 100644 target/lvp/config.in create mode 100644 target/lvp/download.txt create mode 100644 target/lvp/etc_lvp_00-setup.sh create mode 100644 target/lvp/etc_lvp_encryption.sh create mode 100644 target/lvp/etc_lvp_hardware.sh create mode 100644 target/lvp/etc_lvp_xf86config.sh create mode 100644 target/lvp/etc_profile create mode 100644 target/lvp/kernel.conf create mode 100644 target/lvp/linuxrc create mode 100644 target/lvp/login-shell create mode 100644 target/lvp/parse-config create mode 100644 target/lvp/patches/etc_profile.patch create mode 100644 target/lvp/patches/linux24_quiet.patch create mode 100644 target/lvp/patches/sbin_hwscan.patch create mode 100644 target/lvp/patches/xfree86_hotfixes.patch create mode 100644 target/lvp/pkg_linux24-src.conf create mode 100644 target/lvp/pkg_linux24.conf create mode 100644 target/lvp/pkg_mplayer.conf create mode 100644 target/lvp/pkg_sysfiles.conf create mode 100644 target/lvp/pkg_xfree86.conf create mode 100644 target/lvp/preconfig.in create mode 100644 target/lvp/startlvp create mode 100644 target/lvp/x86/build.sh create mode 100644 target/lvp/x86/help0.txt create mode 100644 target/lvp/x86/isolinux.cfg create mode 100644 target/lvp/x86/release_skeleton/ChangeLog create mode 100644 target/lvp/x86/release_skeleton/README create mode 100644 target/lvp/x86/release_skeleton/config.sh create mode 100644 target/lvp/x86/release_skeleton/scripts/cleanup create mode 100644 target/lvp/x86/release_skeleton/scripts/configuration create mode 100644 target/lvp/x86/release_skeleton/scripts/create-iso create mode 100644 target/lvp/x86/release_skeleton/scripts/create_lvp create mode 100644 target/lvp/x86/release_skeleton/scripts/create_lvpxml create mode 100644 target/lvp/x86/release_skeleton/scripts/encrypted create mode 100644 target/lvp/x86/release_skeleton/scripts/functions create mode 100644 target/lvp/x86/release_skeleton/scripts/plain create mode 100644 target/lvp/xinitrc diff --git a/target/lvp/ChangeLog b/target/lvp/ChangeLog new file mode 100644 index 000000000..b479242d2 --- /dev/null +++ b/target/lvp/ChangeLog @@ -0,0 +1,103 @@ + +Mon Mar 8 11:28:08 CET 2004 Benjamin 'blindCoder' Schieder + + * overall: adapted lvp to be used as a pure ROCK Linux target + * buildsystem: adapted to create a releaseable, precompiled target + * buildsystem: implemented an easy-to-use user interface for releases + * updated to ROCK Linux 2.0.0-final + +Wed Jan 28 16:24:31 CET 2004 Benjamin Schieder + + * overall: further shrunk the livesystem to 25 MB by using upx + * lvpxml/encryption: make filesystem as large as possible (using whole disk) + to work around dozens of problems. + * lvpxml.sh: several new options + * mplayer: fix fonts to be displayed + +Mon Jan 26 19:07:30 CET 2004 Benjamin Schieder + + * overall: several small patches to make everything behavke (mostly X) + +Sat Jan 24 10:58:58 CET 2004 Benjamin Schieder + + * lvpxml/plain: try to hardlink files rather than copying + * lvpxml/encryption: make last pseudo-fs only as big as necessary + +Fri Jan 23 18:00:33 CET 2004 Benjamin Schieder + + * overall: shrunk livesystem to 38MB by using static linking and only copied necessary + files. + * parse-config: contains configuration for some packages to compile statically + * pkg_mplayer.conf: contains special configuration for mplayer + * glut: switched glut for freeglut for static linking + +Wed Jan 7 13:35:14 CET 2004 Benjamin Schieder + + * create_lvpxml: changed button-arrangement + * help0.txt: added version number + * plain: fixed some syntax-errors + * V0.2.3: released, dubbed "skipped lunch" + +Wed Jan 7 11:47:01 CET 2004 Benjamin Schieder + + * encryption.sh: fixed cipher detection + +Mon Jan 5 17:26:31 CET 2004 Benjamin Schieder + + * hwscan: commented line 324 (asort) to make it behave + +Mon Jan 5 12:57:28 CET 2004 Benjamin Schieder + + * X: use X -configure instead of home-made config + +Thu Dec 11 09:04:56 CET 2003 Benjamin Schieder + + * sysfiles: really fix the error messages + +Sun Dec 7 12:25:42 CET 2003 Benjamin Schieder + + * sysfiles: fixed bash error messages (F: command not found) + +Tue Dec 2 10:22:07 CET 2003 Benjamin Schieder + + * V0.2.2: released + +Sat Nov 29 12:19:50 CET 2003 Benjamin Schieder + + * various scripts: moved system scripts into /etc/lvp + * startup: added keymap= kernel argument to load a different keymap + * kernel: added quiet patch and parameter + * kernel: now using a specific configuration instead of ROCK default + * live: Use only necessary packages for the live-system, gzexe all executables + +Fri Nov 28 09:11:58 CET 2003 Benjamin Schieder + + * lvpxml.sh: rewritten from scratch, fixing several bugs and added -file + -files and -cfg parameters + +Thu Nov 27 18:57:21 CET 2003 Benjamin Schieder + * linuxrc: added a little X autoconfiguration for nv, mga, vmware, tdfx, vesa + +Sun Nov 23 10:18:55 CET 2003 Benjamin Schieder + + * encryption: encryption compatible to <2GB data + * V0.2.1: released + +Sat Nov 22 18:58:29 CET 2003 Benjamin Schieder + + * encryption: enabled encryption for more than 2GB-2Byte data + +Sun Nov 16 13:30:00 MEST 2003 Benjamin Schieder + + * V0.2: released + * packages: added package blindcoder/ciphers, added 99-crypto.patch to linux24, + updated util-linux to 2.12pre and added crypto.patch to util-linux + This is concatenated in the lvp.diff file + * build_lvp.sh: fixed several typos, one of them critical + * lvpxml.sh: added CryptoAPI support + * startlv2: added CryptoAPI support + * xinitrc: added CryptoAPI support + +Wed Oct 22 13:54:17 MEST 2003 Benjamin Schieder + + * V0.1: released diff --git a/target/lvp/TODO b/target/lvp/TODO new file mode 100644 index 000000000..c2a187851 --- /dev/null +++ b/target/lvp/TODO @@ -0,0 +1,3 @@ +- use initrd +- volume-control +- maybe directfb instead of XFree? diff --git a/target/lvp/XF86Config b/target/lvp/XF86Config new file mode 100644 index 000000000..5fb94d817 --- /dev/null +++ b/target/lvp/XF86Config @@ -0,0 +1,73 @@ +Section "Module" + Load "dbe" + Load "glx" + SubSection "extmod" + Option "omit xfree86-dga" + EndSubSection + Load "type1" + Load "speedo" +EndSection + +Section "Files" + RgbPath "/usr/X11R6/lib/X11/rgb" + FontPath "/usr/X11R6/lib/X11/fonts/local/" + misc/" + FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" + FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" + FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" + FontPath "/usr/X11R6/lib/X11/fonts/Type1/" + FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" + FontPath "/usr/X11R6/lib/X11/fonts/freefont/" + FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" + FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" +EndSection + +Section "ServerFlags" +EndSection + +Section "InputDevice" + Identifier "Keyboard1" + Driver "Keyboard" + Option "AutoRepeat" "500 30" + Option "XkbRules" "xfree86" + Option "XkbModel" "pc101" + Option "XkbLayout" "us" +EndSection + +Section "InputDevice" + Identifier "Mouse1" + Driver "mouse" + Option "Protocol" "Auto" + misc/psaux" +EndSection + +Section "Monitor" + Identifier "LVP Monitor" + HorizSync 31.5, 35.15, 35.5 + VertRefresh 40-150 +EndSection + +Section "Device" + Identifier "LVP Card" + Driver "LVPDEVICE" +EndSection + +Section "Screen" + Identifier "Screen 1" + Device "LVP Card" + Monitor "LVP Monitor" + DefaultDepth 16 + + Subsection "Display" + Depth 16 + Modes "1024x768" + ViewPort 0 0 + EndSubsection +EndSection + +Section "ServerLayout" + Identifier "Simple Layout" + Screen "Screen 1" + InputDevice "Mouse1" "CorePointer" + InputDevice "Keyboard1" "CoreKeyboard" +EndSection diff --git a/target/lvp/build.sh b/target/lvp/build.sh new file mode 100644 index 000000000..7ed3b2b2b --- /dev/null +++ b/target/lvp/build.sh @@ -0,0 +1,124 @@ + +lvp_ver="0.4.0" +releasedir="${base}/build/${ROCKCFG_ID}/lvp_${lvp_ver}_${ROCKCFG_X86_OPT}" + +pkgloop + +. scripts/parse-config +PATH="${base}/build/${ROCKCFG_ID}/${toolsdir}/diet-bin:${PATH}" + +echo_header "Creating LVP ..." + +echo_header "Checking for *.err files ..." +if [ `find "${base}/build/${ROCKCFG_ID}/root/var/adm/logs/" -name '*err' 2>/dev/null | wc -l` -gt 0 ] ; then + echo_status "Found some. This is bad :-(" +else + echo_status "None found. Good :-)" + + echo_status "(Re)creating releasedir" + rm -rf ${releasedir} + mkdir -p ${releasedir} + chmod 700 ${releasedir} + + if [ -f ${base}/target/${target}/${arch}/build.sh ]; then + echo_status "Executing ${arch} specific build instructions." + . ${base}/target/${target}/${arch}/build.sh + fi + + echo_status "Creating the live-system" + + kernelversion="`grep '\[V\]' ${base}/package/base/linux24/linux24.desc | cut -f2 -d' '`" + + echo_status "Creating directory structure" + cd ${releasedir}/livesystem + tar xfI ${base}/build/${ROCKCFG_ID}/pkgs/00-dirtree.tar.bz2 + cd usr/ + rm -rf X11 X11R6 + mkdir X11R6 + ln -sf X11R6 X11 + cd .. + + echo_status "Copying programs" + + for x in \ + bin/bash \ + bin/cat \ + bin/find \ + bin/gawk \ + bin/grep \ + bin/gzip \ + bin/ln \ + bin/loadkeys \ + bin/mount \ + bin/mv \ + bin/rm \ + bin/sed \ + bin/sh \ + bin/uname \ + etc/mplayer/mplayer.conf \ + lib/modules/${kernelversion}-rock/block \ + sbin/agetty \ + sbin/hwscan \ + usr/share/mplayer/font-arial-24-iso-8859-1 \ + usr/X11/bin/XFree86 \ + usr/X11/bin/X \ + usr/X11/bin/startx \ + usr/X11/bin/xauth \ + usr/X11/bin/xinit \ + usr/X11/bin/xterm \ + usr/X11/lib/X11/fonts/misc \ + usr/bin/lvp \ + usr/bin/mplayer \ + usr/bin/tail \ + usr/sbin/lspci \ + usr/share/kbd/keymaps ; do + + mkdir -p ${x%/*} + cp -ar ${base}/build/${ROCKCFG_ID}/root/${x} ${x} + chmod u-s,g-s ${x} + dynamic=`file ${x} | grep -c dynamic` + if [ "${dynamic}" != "0" ] ; then + echo_error "WARNING! ${x} is NOT linked statically!" + fi + done + + cd etc/ + ln -sf /proc/mounts mtab + cd .. + cd usr/share/mplayer + ln -sf font-arial-24-iso-8859-1 font + cd ../../.. + + echo_status "Copying linuxrc as init-replacement ..." + cp ${base}/target/${target}/linuxrc ${releasedir}/livesystem/linuxrc ; chmod +x ${releasedir}/livesystem/linuxrc + echo_status "Copying sbin/login-shell ..." + cp ${base}/target/${target}/login-shell ${releasedir}/livesystem/sbin/login-shell ; chmod +x ${releasedir}/livesystem/sbin/login-shell + echo_status "Copying startlvp script ..." + cp ${base}/target/${target}/startlvp ${releasedir}/livesystem/sbin/; chmod +x ${releasedir}/livesystem/sbin/startlvp + echo_status "Copying XF86Config ..." + mkdir -p ${releasedir}/livesystem/etc/X11 + cp ${base}/target/${target}/XF86Config ${releasedir}/livesystem/etc/X11/XF86Config + echo_status "Copying xinitrc ..." + mkdir -p ${releasedir}/livesystem/usr/X11R6/lib/X11/xinit + cp ${base}/target/${target}/xinitrc ${releasedir}/livesystem/usr/X11R6/lib/X11/xinit/xinitrc + echo_status "Copying etc scripts ..." + mkdir -p ${releasedir}/livesystem/etc/lvp + for x in ${base}/target/${target}/etc_* ; do + y=${x##*/} + cp ${x} ${releasedir}/livesystem/${y//_/\/} + done + echo_status "Copying kernel modules ..." + cd ${releasedir}/livesystem + tar xfI ${base}/build/${ROCKCFG_ID}/pkgs/linux24.tar.bz2 lib/ + cp ${base}/build/${ROCKCFG_ID}/root/sbin/insmod.static ${releasedir}/livesystem/sbin/insmod + for x in kallsyms ksyms lsmod modprobe rmmod ; do + ln -sf /sbin/insmod ${releasedir}/livesystem/sbin/${x} + done + + echo_status "Compressing binaries ... " + ${base}/build/${ROCKCFG_ID}/root/usr/bin/upx --best --crp-ms=999999 --nrv2d `find ${releasedir}/livesystem -type f | xargs file | grep "statically linked" | grep -v bin/bash | grep -v bin/mount | cut -f1 -d:` >/proc/$$/fd/1 2>/proc/$$/fd/2 /dev/null` + if [ -f "${keymap}" ] ; then + cd ${keymap%/*} + loadkeys ${keymap##*/} + fi + fi +done diff --git a/target/lvp/etc_lvp_encryption.sh b/target/lvp/etc_lvp_encryption.sh new file mode 100644 index 000000000..e8a1c44bc --- /dev/null +++ b/target/lvp/etc_lvp_encryption.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +if [ -e /lvp.data1 ] ; then + echo -n "Found " + for x in /lvp.data* ; do + echo -n "$x " + done + echo + echo "Starting crypto-subroutine" + + insmod /lib/modules/`uname -r`/block/loop.o >/dev/null 2>/dev/null + insmod /lib/modules/`uname -r`/block/loop_blowfish.o >/dev/null 2>/dev/null && blowfish=1 + insmod /lib/modules/`uname -r`/block/loop_twofish.o >/dev/null 2>/dev/null && twofish=1 + insmod /lib/modules/`uname -r`/block/loop_serpent.o >/dev/null 2>/dev/null && serpent=1 + echo "Please choose which encryption you want to use:" + [ "${blowfish}" == 1 ] && echo -e "\t1\tblowfish" + [ "${twofish}" == 1 ] && echo -e "\t2\ttwofish" + [ "${serpent}" == 1 ] && echo -e "\t3\tserpent" + echo + if [ "${blowfish}" != 1 -a "${twofish}" != 1 -a "${serpent}" != 1 ] ; then + echo "Couldn't find a usable cipher for encryption." >&2 + echo "Can't mount encrypted data." >&2 + echo "Sorry >_<" >&2 + echo >&2 + read -p "Press -- to shut down the system" + echo 'o' >/proc/sysrq-trigger + fi + unset thisenc + while [ -z "${thisenc}" ] ; do + echo -n "Please enter your choice: " + read rthisenc + [ "${rthisenc}" == "1" -a "${blowfish}" == "1" ] && thisenc="blowfish256" + [ "${rthisenc}" == "2" -a "${twofish}" == "1" ] && thisenc="twofish256" + [ "${rthisenc}" == "3" -a "${serpent}" == "1" ] && thisenc="serpent256" + done + echo "Using ${thisenc%256} encryption." + while [ ! -e /mnt1/lvp.xml ] ; do + umount /mnt* >/dev/null 2>&1 + read -p "Please enter passphrase: " -s passphrase + echo + for x in /lvp.data* ; do + echo "${passphrase}" | mount -o encryption=${thisenc} -p 0 ${x} /mnt${x#/lvp.data} 2>&1 + done + [ ! -e /mnt1/lvp.xml ] && echo "Wrong Passphrase!" + done +fi + diff --git a/target/lvp/etc_lvp_hardware.sh b/target/lvp/etc_lvp_hardware.sh new file mode 100644 index 000000000..57981980c --- /dev/null +++ b/target/lvp/etc_lvp_hardware.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo "Trying to autodetect hardware..." + +hwscan >/tmp/hardware + +if [ `grep -c '^# ' /tmp/hardware` -gt 0 ] ; then + echo 'Found the following:' + grep '^# ' /tmp/hardware | sed 's,^# ,- ,g' + echo 'Now trying to initialise them...' + . /tmp/hardware +fi + +if [ ! -e /dev/sound/dsp ] ; then + echo 'EEP! We have no sound!' + echo 'You can switch to another console with -- + -- to try' + echo 'and load a sound-module by hand.' + echo + echo 'Press -- when done to continue ...' + read +fi + +exit 0 diff --git a/target/lvp/etc_lvp_xf86config.sh b/target/lvp/etc_lvp_xf86config.sh new file mode 100644 index 000000000..6710a0d39 --- /dev/null +++ b/target/lvp/etc_lvp_xf86config.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +detect_card_old() { + echo "Trying to autodetect Graphics card" + echo -n "- nVidia ... " + if [ `lspci | grep -ic nvidia` -gt 0 ] ; then + echo "yes" + driver="nv" + return 0 + fi + echo -en "no\n- 3Dfx ... " + if [ `lspci | grep -ic 3Dfx` -gt 0 ] ; then + echo "yes" + driver="tdfx" + return 0 + fi + echo -en "no\n- Matrox ... " + if [ `lspci | grep -ic Matrox` -gt 0 ] ; then + echo "yes" + driver="mga" + return 0 + fi + echo -en "no\n- VMware ... " + if [ `lspci | grep -ic VMware` -gt 0 ] ; then + echo "yes" + driver="vmware" + return 0 + fi + echo -e "no\nUsing vesa-compatible." + driver="vesa" + return 0 +} + +if [ `grep -c oldxconfig /proc/cmdline` -eq 1 ] ; then + echo "Running old X-Config" + detect_card_old + cat /etc/X11/XF86Config | sed "s,LVPDEVICE,${driver},g" >/tmp/XF86Config +else + echo -n "Running integrated XFree86-Autoconfiguration ... " + HOME="/tmp" /usr/X11/bin/X -configure -logfile /dev/null >/dev/null 2>&1 + mv /tmp/XF86Config.new /tmp/XF86Config + echo "done" +fi diff --git a/target/lvp/etc_profile b/target/lvp/etc_profile new file mode 100644 index 000000000..d727f83bb --- /dev/null +++ b/target/lvp/etc_profile @@ -0,0 +1 @@ +export PATH="$PATH:/usr/X11/bin" diff --git a/target/lvp/kernel.conf b/target/lvp/kernel.conf new file mode 100644 index 000000000..228517b1d --- /dev/null +++ b/target/lvp/kernel.conf @@ -0,0 +1,708 @@ +# +# Automatically generated by make menuconfig: don't edit +# +CONFIG_X86=y +# CONFIG_SBUS is not set +CONFIG_UID16=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODVERSIONS=y +CONFIG_KMOD=y + +# +# Processor type and features +# +# CONFIG_M386 is not set +# CONFIG_M486 is not set +CONFIG_M586=y +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MELAN is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_XADD=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_X86_USE_STRING_486=y +CONFIG_X86_ALIGNMENT_16=y +CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_F00F_WORKS_OK is not set +# CONFIG_X86_MCE is not set +CONFIG_TOSHIBA=m +CONFIG_I8K=m +CONFIG_MICROCODE=m +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_NOHIGHMEM=y +# CONFIG_HIGHMEM4G is not set +# CONFIG_HIGHMEM64G is not set +# CONFIG_HIGHMEM is not set +CONFIG_MATH_EMULATION=y +CONFIG_MTRR=y +# CONFIG_SMP is not set +# CONFIG_X86_UP_APIC is not set +# CONFIG_X86_UP_IOAPIC is not set +# CONFIG_X86_TSC_DISABLE is not set +CONFIG_X86_TSC=y + +# +# General setup +# +CONFIG_NET=y +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_ISA=y +CONFIG_PCI_NAMES=y +# CONFIG_EISA is not set +# CONFIG_MCA is not set +CONFIG_HOTPLUG=y + +# +# PCMCIA/CardBus support +# +# CONFIG_PCMCIA is not set + +# +# PCI Hotplug Support +# +# CONFIG_HOTPLUG_PCI is not set +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set +# CONFIG_HOTPLUG_PCI_ACPI is not set +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +CONFIG_PM=y +# CONFIG_APM is not set + +# +# ACPI Support +# +CONFIG_ACPI=y +# CONFIG_ACPI_HT_ONLY is not set +CONFIG_ACPI_BOOT=y +CONFIG_ACPI_BUS=y +CONFIG_ACPI_INTERPRETER=y +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_PCI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_SYSTEM=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_RELAXED_AML is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play configuration +# +CONFIG_PNP=y +# CONFIG_ISAPNP is not set + +# +# Block devices +# +CONFIG_BLK_DEV_FD=y +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_CISS_SCSI_TAPE is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP_AES=y +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_STATS is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set +# CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_BLK_DEV_LVM is not set + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +# CONFIG_NETLINK_DEV is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +# CONFIG_INET is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set + +# +# Appletalk devices +# +# CONFIG_DEV_APPLETALK is not set +# CONFIG_DECNET is not set +# CONFIG_BRIDGE is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_LLC is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set +# CONFIG_PHONE_IXJ is not set +# CONFIG_PHONE_IXJ_PCMCIA is not set + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_IDEDISK_STROKE is not set +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_GENERIC is not set +CONFIG_IDEPCI_SHARE_IRQ=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_PCI_WIP is not set +CONFIG_BLK_DEV_ADMA100=m +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=m +# CONFIG_AMD74XX_OVERRIDE is not set +CONFIG_BLK_DEV_CMD64X=m +CONFIG_BLK_DEV_TRIFLEX=m +CONFIG_BLK_DEV_CY82C693=m +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_HPT34X=m +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_PIIX=y +CONFIG_BLK_DEV_NS87415=m +CONFIG_BLK_DEV_OPTI621=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +# CONFIG_PDC202XX_BURST is not set +CONFIG_BLK_DEV_PDC202XX_NEW=m +# CONFIG_PDC202XX_FORCE is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_SC1200=m +CONFIG_BLK_DEV_SVWKS=m +CONFIG_BLK_DEV_SIIMAGE=m +CONFIG_BLK_DEV_SIS5513=m +CONFIG_BLK_DEV_SLC90E66=m +CONFIG_BLK_DEV_TRM290=m +CONFIG_BLK_DEV_VIA82CXXX=m +# CONFIG_IDE_CHIPSETS is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_DMA_NONPCI is not set +CONFIG_BLK_DEV_PDC202XX=y +CONFIG_BLK_DEV_IDE_MODES=y +CONFIG_BLK_DEV_ATARAID=m +CONFIG_BLK_DEV_ATARAID_PDC=m +CONFIG_BLK_DEV_ATARAID_HPT=m +CONFIG_BLK_DEV_ATARAID_SII=m + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_BOOT is not set +# CONFIG_FUSION_ISENSE is not set +# CONFIG_FUSION_CTL is not set +# CONFIG_FUSION_LAN is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_PCI is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# +# Network device support +# +# CONFIG_NETDEVICES is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Old CD-ROM drivers (not SCSI, not IDE) +# +# CONFIG_CD_NO_IDESCSI is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=256 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +CONFIG_MOUSE=y +CONFIG_PSMOUSE=y +# CONFIG_82C710_MOUSE is not set +# CONFIG_PC110_PAD is not set +# CONFIG_MK712_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set +# CONFIG_QIC02_TAPE is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IPMI_PANIC_EVENT is not set +# CONFIG_IPMI_DEVICE_INTERFACE is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_IPMI_WATCHDOG is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_SCx200_GPIO is not set +# CONFIG_AMD_RNG is not set +# CONFIG_INTEL_RNG is not set +# CONFIG_AMD_PM768 is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +CONFIG_AGP=y +CONFIG_AGP_INTEL=y +CONFIG_AGP_I810=y +CONFIG_AGP_VIA=y +CONFIG_AGP_AMD=y +CONFIG_AGP_AMD_8151=y +CONFIG_AGP_SIS=y +CONFIG_AGP_ALI=y +CONFIG_AGP_SWORKS=y +CONFIG_AGP_NVIDIA=y +CONFIG_DRM=y +# CONFIG_DRM_OLD is not set +CONFIG_DRM_NEW=y +CONFIG_DRM_TDFX=y +CONFIG_DRM_R128=y +CONFIG_DRM_RADEON=y +CONFIG_DRM_I810=y +CONFIG_DRM_I810_XFREE_41=y +CONFIG_DRM_I830=y +CONFIG_DRM_MGA=y +CONFIG_DRM_SIS=y +# CONFIG_MWAVE is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_QFMT_V2 is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_REISERFS_SUIDDIR is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BEFS_DEBUG is not set +# CONFIG_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT3_FS_SUIDDIR is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set +# CONFIG_FAT_FS is not set +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +CONFIG_RAMFS=y +CONFIG_ISO9660_FS=y +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set +# CONFIG_JFS_FS is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS_RW is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +CONFIG_DEVFS_FS=y +CONFIG_DEVFS_MOUNT=y +# CONFIG_DEVFS_DEBUG is not set +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX4FS_RW is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_SUIDDIR is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UDF_RW is not set +# CONFIG_UFS_FS is not set +# CONFIG_UFS_FS_WRITE is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +# CONFIG_NFS_FS is not set +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_ROOT_NFS is not set +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_NFSD_TCP is not set +# CONFIG_SUNRPC is not set +# CONFIG_LOCKD is not set +# CONFIG_SMB_FS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_ZISOFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Console drivers +# +CONFIG_VGA_CONSOLE=y +CONFIG_VIDEO_SELECT=y +# CONFIG_MDA_CONSOLE is not set + +# +# Frame-buffer support +# +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 +CONFIG_FB_VGA16=y +CONFIG_FB_HGA=y +CONFIG_VIDEO_SELECT=y +# CONFIG_FB_MATROX is not set +CONFIG_FB_ATY=y +# CONFIG_FB_ATY_GX is not set +# CONFIG_FB_ATY_CT 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_VIRTUAL is not set +# CONFIG_FBCON_ADVANCED is not set +CONFIG_FBCON_MFB=y +CONFIG_FBCON_CFB8=y +CONFIG_FBCON_CFB16=y +CONFIG_FBCON_CFB24=y +CONFIG_FBCON_CFB32=y +CONFIG_FBCON_VGA_PLANES=y +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 + +# +# Sound +# +CONFIG_SOUND=y +CONFIG_SOUND_ALI5455=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_CMPCI=m +# CONFIG_SOUND_CMPCI_FM is not set +# CONFIG_SOUND_CMPCI_MIDI is not set +# CONFIG_SOUND_CMPCI_JOYSTICK is not set +# CONFIG_SOUND_CMPCI_CM8738 is not set +CONFIG_SOUND_EMU10K1=m +# CONFIG_MIDI_EMU10K1 is not set +CONFIG_SOUND_FUSION=m +CONFIG_SOUND_CS4281=m +CONFIG_SOUND_ES1370=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_ESSSOLO1=m +CONFIG_SOUND_MAESTRO=m +CONFIG_SOUND_MAESTRO3=m +CONFIG_SOUND_FORTE=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_RME96XX=m +CONFIG_SOUND_SONICVIBES=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +# CONFIG_MSNDCLAS_HAVE_BOOT is not set +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +# CONFIG_MSNDPIN_HAVE_BOOT is not set +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_VIA82CXXX=m +# CONFIG_MIDI_VIA82CXXX is not set +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_AD1816=m +CONFIG_SOUND_AD1889=m +CONFIG_SOUND_SGALAXY=m +CONFIG_SOUND_ADLIB=m +CONFIG_SOUND_ACI_MIXER=m +CONFIG_SOUND_CS4232=m +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_GUS=m +# CONFIG_SOUND_GUS16 is not set +# CONFIG_SOUND_GUSMAX is not set +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_NM256=m +CONFIG_SOUND_MAD16=m +# CONFIG_MAD16_OLDCARD is not set +CONFIG_SOUND_PAS=m +# CONFIG_PAS_JOYSTICK is not set +CONFIG_SOUND_PSS=m +# CONFIG_PSS_MIXER is not set +# CONFIG_PSS_HAVE_BOOT is not set +CONFIG_SOUND_SB=m +CONFIG_SOUND_AWE32_SYNTH=m +CONFIG_SOUND_KAHLUA=m +CONFIG_SOUND_WAVEFRONT=m +CONFIG_SOUND_MAUI=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_OPL3SA1=m +CONFIG_SOUND_OPL3SA2=m +CONFIG_SOUND_YMFPCI=m +# CONFIG_SOUND_YMFPCI_LEGACY is not set +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +# CONFIG_SC6600 is not set +# CONFIG_AEDSP16_SBPRO is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_MPU401 is not set +# CONFIG_SOUND_TVMIXER is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_IOVIRT is not set +CONFIG_MAGIC_SYSRQ=y +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_FRAME_POINTER is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +# CONFIG_CRYPTO_HMAC is not set +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_TEST is not set + +# +# Library routines +# +# CONFIG_CRC32 is not set +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m diff --git a/target/lvp/linuxrc b/target/lvp/linuxrc new file mode 100644 index 000000000..25bdd4456 --- /dev/null +++ b/target/lvp/linuxrc @@ -0,0 +1,47 @@ +#!/bin/bash + +mount -t proc none /proc +mount -t tmpfs none /tmp + +cd /dev ; rm -f fd +ln -sf /proc/kcore core +ln -sf /proc/self/fd fd +ln -sf fd/0 stdin +ln -sf fd/1 stdout +ln -sf fd/2 stderr +ln -sf misc/psaux mouse +cd / + +exec < /dev/console > /dev/console 2> /dev/console ; cd / +export PATH="/sbin:/bin:/usr/sbin:/usr/bin" + +cat << EOF + _ __ __ __ __ _ ______ +| | / /__ / /________ ____ ___ ___ / /_____ / /| | / / __ \\ +| | /| / / _ \/ / ___/ __ \/ __ \`__ \/ _ \ / __/ __ \ / / | | / / /_/ / +| |/ |/ / __/ / /__/ /_/ / / / / / / __/ / /_/ /_/ / / /__| |/ / ____/ +|__/|__/\___/_/\___/\____/_/ /_/ /_/\___/ \__/\____/ /_____/___/_/ + +A lot of fun wishes: +The LVP Team: + -Benjamin 'blindcoder' Schieder +EOF + +ttydevs="vc/2 vc/3" + +for x in $ttydevs ; do + ( ( while : ; do agetty -i 38400 $x -n -l /sbin/login-shell ; done ) & ) +done + +for x in /etc/lvp/*.sh ; do + if [ -f "$x" ] ; then + echo ; echo "Running $x ..." ; sh $x + echo "Setup script $x finished." + fi +done + +agetty -i 38400 vc/1 -n -l /sbin/startlvp & + +exec < /dev/null > /dev/null 2>&1 +while : ; do sleep 1 ; done + diff --git a/target/lvp/login-shell b/target/lvp/login-shell new file mode 100644 index 000000000..ae7c24cf2 --- /dev/null +++ b/target/lvp/login-shell @@ -0,0 +1,2 @@ +#!/bin/bash +cd ; exec /bin/bash --login diff --git a/target/lvp/parse-config b/target/lvp/parse-config new file mode 100644 index 000000000..88b63ca71 --- /dev/null +++ b/target/lvp/parse-config @@ -0,0 +1,26 @@ +static=0 + +for x in upx gzip sed kbd mplayer pciutils grep coreutils util-linux libgli lvp gawk bash findutils xfree86 ; do + [ "$pkg" == "$x" ] && static=1 +done + +if [ $static -eq 1 ] ; then + echo_status "Building this package statically for LVP" + var_append GCC_WRAPPER_APPEND " " "-static" +fi + +if [ "$pkg" == "modutils" ] ; then + echo_status "Building this package statically for LVP" + var_append confopt " " "--enable-combined" +fi + +for x in mplayer freeglut ; do + if [ "$pkg" == "$x" ] ; then + echo_status "Building this package statically for LVP" + var_append confopt " " "--enable-static" + fi +done + +install_init () { + echo_status "stub called: install_init $@" +} diff --git a/target/lvp/patches/etc_profile.patch b/target/lvp/patches/etc_profile.patch new file mode 100644 index 000000000..7cc58d36e --- /dev/null +++ b/target/lvp/patches/etc_profile.patch @@ -0,0 +1,13 @@ +each directory on a iso9660 filesystem contains a file called TRANS.TBL +we don't want to source that one + +--- profile 2003-10-21 16:26:28.000000000 +0200 ++++ profile 2004-01-28 17:16:38.000000000 +0100 +@@ -93,6 +93,7 @@ + # include local profiles + # + for x in /etc/profile.d/* /etc/conf/profile ; do ++ [ "${x##*/}" = "TRANS.TBL" ] && continue + [ -f $x ] && . $x + done + unset x diff --git a/target/lvp/patches/linux24_quiet.patch b/target/lvp/patches/linux24_quiet.patch new file mode 100644 index 000000000..b7393203e --- /dev/null +++ b/target/lvp/patches/linux24_quiet.patch @@ -0,0 +1,11 @@ +--- linux-2.4.21_orig/init/main.c 2003-07-25 16:13:42.000000000 +0200 ++++ linux-2.4.21/init/main.c 2003-07-25 16:16:30.000000000 +0200 +@@ -210,7 +210,7 @@ static int __init quiet_kernel(char *str + { + if (*str) + return 0; +- console_loglevel = 4; ++ console_loglevel = 3; + return 1; + } + diff --git a/target/lvp/patches/sbin_hwscan.patch b/target/lvp/patches/sbin_hwscan.patch new file mode 100644 index 000000000..4985b0e93 --- /dev/null +++ b/target/lvp/patches/sbin_hwscan.patch @@ -0,0 +1,13 @@ +something with asort is broken in gawk. It's not neccessary, so we just don't use it. + +--- hwscan 2003-09-30 09:09:18.000000000 +0200 ++++ hwscan 2004-01-28 17:16:38.000000000 +0100 +@@ -321,7 +321,7 @@ + get_isapnp_drivers(); + get_usb_drivers(); + +- asort(drivers); ++#asort(drivers); + for (i in drivers) { + id = drivers[i]; + if ( driver_mod[id] && ! skip[id] ) { diff --git a/target/lvp/patches/xfree86_hotfixes.patch b/target/lvp/patches/xfree86_hotfixes.patch new file mode 100644 index 000000000..123ed1cb8 --- /dev/null +++ b/target/lvp/patches/xfree86_hotfixes.patch @@ -0,0 +1,96 @@ +diff -pruN xc_orig/fonts/util/ucs2any.c xc/fonts/util/ucs2any.c +--- xc_orig/fonts/util/ucs2any.c 2003-09-21 12:54:14.000000000 +0200 ++++ xc/fonts/util/ucs2any.c 2004-01-16 19:49:18.000000000 +0100 +@@ -48,9 +48,6 @@ + #include + #include + #include +-#ifndef NEED_BASENAME +-#include +-#endif + #include + #include + #include +@@ -61,17 +58,6 @@ + /* global variable for argv[0] */ + const char *my_name = NULL; + +-#ifdef NEED_BASENAME +-static char * +-basename(char *pathname) +-{ +- char *ptr; +- +- ptr = strrchr(pathname, '/'); +- return ((ptr == NULL) ? pathname : &ptr[1]); +-} +-#endif +- + /* "CLASS" "z" string and memory manipulation */ + + static void * +diff -pruN xc_orig/programs/glxgears/Imakefile xc/programs/glxgears/Imakefile +--- xc_orig/programs/glxgears/Imakefile 2001-04-02 23:12:11.000000000 +0200 ++++ xc/programs/glxgears/Imakefile 2004-01-16 19:44:27.000000000 +0100 +@@ -2,7 +2,7 @@ XCOMM $XConsortium: Imakefile /main/7 19 + XCOMM $XFree86: xc/programs/glxgears/Imakefile,v 1.1 2001/04/02 21:12:11 dawes Exp $ + #include + DEPLIBS = $(DEPGLXLIB) $(DEPXLIB) +-LOCAL_LIBRARIES = $(GLXLIB) $(XLIB) ++LOCAL_LIBRARIES = $(GLXLIB) $(XLIB) -ldl -lXxf86vm + SYS_LIBRARIES = MathLibrary + + SimpleProgramTarget(glxgears) +diff -pruN xc_orig/programs/glxinfo/Imakefile xc/programs/glxinfo/Imakefile +--- xc_orig/programs/glxinfo/Imakefile 2002-11-22 23:56:03.000000000 +0100 ++++ xc/programs/glxinfo/Imakefile 2004-01-16 19:41:59.000000000 +0100 +@@ -5,13 +5,13 @@ XCOMM $XFree86: xc/programs/glxinfo/Imak + #if BuildGLULibrary + + DEPLIBS = $(DEPGLULIB) $(DEPGLXLIB) $(DEPXLIB) +-LOCAL_LIBRARIES = $(GLULIB) $(GLXLIB) $(XLIB) ++LOCAL_LIBRARIES = $(GLULIB) $(GLXLIB) $(XLIB) -ldl -lXxf86vm + DEFINES = -DDO_GLU + + #else + + DEPLIBS = $(DEPGLXLIB) $(DEPXLIB) +-LOCAL_LIBRARIES = $(GLXLIB) $(XLIB) ++LOCAL_LIBRARIES = $(GLXLIB) $(XLIB) -ldl -lXxf86vm + + #endif + +diff -pruN xc_orig/programs/xdm/Imakefile xc/programs/xdm/Imakefile +--- xc_orig/programs/xdm/Imakefile 2003-12-19 05:51:15.000000000 +0100 ++++ xc/programs/xdm/Imakefile 2004-01-16 18:50:57.000000000 +0100 +@@ -121,16 +121,7 @@ SYS_LIBRARIES1 = -lauth + SYS_LIBRARIES1 = -ls + #endif + +-#if HasLibCrypt +-#ifdef SpecialLibCrypt +-CRYPT_LIBRARIES = SpecialLibCrypt +-#else + CRYPT_LIBRARIES = -lcrypt +-#if defined(LynxOSArchitecture) +-CRYPT_DEFINES = -DHAS_CRYPT +-#endif +-#endif +-#endif + + #if HasBSD44Sockets + SOCK_DEFINES = -DBSD44SOCKETS +diff -pruN xc_orig/extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/mymath.h xc/extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/mymath.h +--- xc_orig/extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/mymath.h 2002-05-31 18:36:49.000000000 +0200 ++++ xc/extras/ogl-sample/main/gfx/lib/glu/libnurbs/internals/mymath.h 2004-01-26 10:04:10.000000000 +0100 +@@ -66,8 +66,8 @@ extern "C" float floorf(float); + #define NEEDCEILF + #endif + #elif defined(NEEDCEILF) +-extern "C" float ceilf(float); +-extern "C" float floorf(float); ++//extern "C" float ceilf(float); ++//extern "C" float floorf(float); + #endif + + #ifdef LIBRARYBUILD diff --git a/target/lvp/pkg_linux24-src.conf b/target/lvp/pkg_linux24-src.conf new file mode 100644 index 000000000..9e791b721 --- /dev/null +++ b/target/lvp/pkg_linux24-src.conf @@ -0,0 +1,3 @@ +[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf + +var_append patchfiles " " "${targetdir}/patches/linux24_quiet.patch" diff --git a/target/lvp/pkg_linux24.conf b/target/lvp/pkg_linux24.conf new file mode 100644 index 000000000..9e791b721 --- /dev/null +++ b/target/lvp/pkg_linux24.conf @@ -0,0 +1,3 @@ +[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf + +var_append patchfiles " " "${targetdir}/patches/linux24_quiet.patch" diff --git a/target/lvp/pkg_mplayer.conf b/target/lvp/pkg_mplayer.conf new file mode 100644 index 000000000..8dedf2e13 --- /dev/null +++ b/target/lvp/pkg_mplayer.conf @@ -0,0 +1,39 @@ +mplayer_postmake() { + mkdir -p $datadir/$pkg + echo "extracting the default font ..." + tar $taropt $archdir/font-arial-iso-8859-1.tar.bz2 -C $datadir/$pkg + rm -rf $datadir/$pkg/font + ln -sf font-arial-24-iso-8859-1 $datadir/$pkg/font + + echo "create a default configuration ..." + cat <<- 'EOT' > $sysconfdir/mplayer.conf + framedrop=yes + menu=yes + font=/usr/share/mplayer/font-arial-24-iso-8859-1/font.desc + EOT + cp -f etc/{input,menu,codecs}.conf $sysconfdir + echo "TAB menu up" >> $sysconfdir/input.conf + rm -f $sysconfdir/*.older + + echo "correcting permissions and ownership ..." + chown -R root.root $datadir/$pkg $docdir $sysconfdir + find $datadir/$pkg $docdir $sysconfdir -type d | xargs -r chmod 0755 + find $datadir/$pkg $docdir $sysconfdir -type f | xargs -r chmod 0644 +} + +var_append confopt " " "--enable-static" + +sysconfdir="$sysconfdir/mplayer" +var_append confopt " " "--prefix=$root/$prefix --confdir=$sysconfdir --enable-menu" +var_append confopt " " "--enable-linux-devfs --with-extraincdir=/usr/include/libpng" +var_append confopt " " "--enable-fbdev --enable-largefiles" + +if [ $arch = x86 ] ; then + var_append confopt " " "--with-win32libdir=$root/$prefix/lib/win32" +fi + +var_append confopt " " "--enable-runtime-cpudetection" + +var_append confopt " " "--disable-i18n" + +postmake=mplayer_postmake diff --git a/target/lvp/pkg_sysfiles.conf b/target/lvp/pkg_sysfiles.conf new file mode 100644 index 000000000..7aef7d7ad --- /dev/null +++ b/target/lvp/pkg_sysfiles.conf @@ -0,0 +1,18 @@ +[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf + +sysfiles_postmake_lvp () { + cd ${root}/etc + if patch -p0 --dry-run -i ${targetdir}/patches/etc_profile.patch >/dev/null 2>&1 ; then + patch -p0 -i ${targetdir}/patches/etc_profile.patch + else + echo "/etc/profile already patched" + fi + cd ${root}/sbin + if patch -p0 --dry-run -i ${targetdir}/patches/sbin_hwscan.patch >/dev/null 2>&1 ; then + patch -p0 -i ${targetdir}/patches/sbin_hwscan.patch + else + echo "/sbin/hwscan already patched" + fi +} + +postmake="sysfiles_postmake_lvp" diff --git a/target/lvp/pkg_xfree86.conf b/target/lvp/pkg_xfree86.conf new file mode 100644 index 000000000..8f6f29db3 --- /dev/null +++ b/target/lvp/pkg_xfree86.conf @@ -0,0 +1,45 @@ +[ -e $confdir/$pkg.conf ] && . $confdir/$pkg.conf + +var_append patchfiles " " "${targetdir}/patches/xfree86_hotfixes.patch" + +# configure the World for LVP +xf_config() { + echo "Configuring XFree ..." + if pkginstalled expat ; then + cat >> config/cf/host.def << EOT +/* Disable the internal expat library to use the system installed one */ +#define HasExpat YES +EOT + fi + + cat >> config/cf/host.def << EOT +/* Disable the internal zlib to use the system installed one */ +#define HasZlib YES + +/* Less warnings with recent gccs ... */ +#define DefaultCCOptions -ansi GccWarningOptions + +/* Make sure config files are allways installed ... */ +#define InstallXinitConfig YES +#define InstallXdmConfig YES +#define InstallFSConfig YES + +/* do not install duplicate crap in /etc/X11 */ +#define UseSeparateConfDir NO + +/* build statically */ +#define DoLoadableServer NO +#define ForceNormalLib YES + +EOT + + if [ $arch == "x86" ] ; then + echo "Enabling Matrox HALlib (since this is x86) ..." + cat >> config/cf/host.def << EOT + +/* Additinal TV/DVI support since this is x86 */ +#define HaveMatroxHal YES +EOT + fi +} + diff --git a/target/lvp/preconfig.in b/target/lvp/preconfig.in new file mode 100644 index 000000000..3bec1648e --- /dev/null +++ b/target/lvp/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/bootdisk/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 ` +`lvp LVP-LiveCD/DVD" diff --git a/target/lvp/startlvp b/target/lvp/startlvp new file mode 100644 index 000000000..3c4698b59 --- /dev/null +++ b/target/lvp/startlvp @@ -0,0 +1,9 @@ +#!/bin/bash --login + +exec < /dev/console > /dev/console 2> /dev/console ; cd / + +export HOME="/tmp" +/usr/X11/bin/startx -- -xf86config /tmp/XF86Config -logfile /tmp/X >/dev/null 2>&1 + +echo o >/proc/sysrq-trigger +echo "You can now turn off your computer" diff --git a/target/lvp/x86/build.sh b/target/lvp/x86/build.sh new file mode 100644 index 000000000..48c659ffc --- /dev/null +++ b/target/lvp/x86/build.sh @@ -0,0 +1,43 @@ + +echo_status "Copying release_skeleton files" +cd ${releasedir} +cp -r ${base}/target/${target}/${arch}/release_skeleton/* . + +unset opt_text +case "${ROCKCFG_X86_OPT}" in + generic) opt_text="for all x86 machines";; + i386) opt_text="for Intel 386";; + i486) opt_text="for Intel 486";; + via-c3) opt_text="for VIA CyrixIII/VIA-C3";; + via-c3-2) opt_text="for VIA-C3-2 Nemiah";; + pentium) opt_text="for Intel Pentium";; + pentium-mmx) opt_text="for Intel Pentium with MMX";; + pentiumpro) opt_text="for Intel Pentium-Pro";; + pentium2) opt_text="for Intel Pentium 2";; + pentium3) opt_text="for Intel Pentium 3";; + pentium4) opt_text="for Intel Pentium 4";; + k6) opt_text="for AMD K6";; + k6-2) opt_text="for AMD K6-2";; + k6-3) opt_text="for AMD K6-3";; + athlon) opt_text="for AMD Athlon";; + athlon-tbird) opt_text="for AMD Athlon Thunderbird";; + athlon4) opt_text="for AMD Athlon 4";; + athlon-xp) opt_text="for AMD Athlon XP";; + athlon-mp) opt_text="for AMD Athlon MP" ;; +esac + +sed -i -e "s,COMPILEDFOR,${opt_text},g" README + +find ${releasedir} -name .svn -exec rm -rf {} \; 2>/dev/null + +echo_status "Extracting isolinux boot loader." +mkdir -p isolinux +tar --use-compress-program=bzip2 \ + -xf ${base}/download/${target}/syslinux-2.02.tar.bz2 \ + syslinux-2.02/isolinux.bin -O > ${releasedir}/isolinux/isolinux.bin + +echo_status "Creating isolinux config file." +cp ${base}/target/${target}/x86/isolinux.cfg ${releasedir}/isolinux/ +cp ${base}/target/${target}/x86/help?.txt ${releasedir}/isolinux/ +cp ../root/boot/vmlinuz ${releasedir}/isolinux/ + diff --git a/target/lvp/x86/help0.txt b/target/lvp/x86/help0.txt new file mode 100644 index 000000000..6ff71f082 --- /dev/null +++ b/target/lvp/x86/help0.txt @@ -0,0 +1,21 @@ ++---------------------------------------------------------------------------+ +| __ _ ______ | +| / /| | / / __ \ | +| / / | | / / /_/ / | +| / /__| |/ / ____/ | +| /_____/___/_/ | +| [===================================================================] | +| V 0.4.0 "you will be assimilated" | +| | +| Kernel Images: | +| lvp Start LVP | +| | +| Options: | +| keymap= specify keymap to load (de, us, dvorak, ...) | +| oldxconfig Use old (LVP <= 0.2.2) X-Configuration | +| debug print kernel-messages | +| | +| | +| | +| | ++---------------------------------------------------------------------------+ diff --git a/target/lvp/x86/isolinux.cfg b/target/lvp/x86/isolinux.cfg new file mode 100644 index 000000000..2e50f8723 --- /dev/null +++ b/target/lvp/x86/isolinux.cfg @@ -0,0 +1,16 @@ + +DEFAULT lvp +TIMEOUT 600 +PROMPT 1 + +DISPLAY help0.txt + +LABEL lvp + kernel vmlinuz + APPEND root=/dev/cdroms/cdrom0 devfs=nocompat init=/linuxrc ro quiet +LABEL dvorak + kernel vmlinuz + APPEND root=/dev/cdroms/cdrom0 devfs=nocompat init=/linuxrc ro quiet keymap=dvorak +LABEL de + kernel vmlinuz + APPEND root=/dev/cdroms/cdrom0 devfs=nocompat init=/linuxrc ro quiet keymap=de-latin1-nodeadkeys diff --git a/target/lvp/x86/release_skeleton/ChangeLog b/target/lvp/x86/release_skeleton/ChangeLog new file mode 100644 index 000000000..a09a366b6 --- /dev/null +++ b/target/lvp/x86/release_skeleton/ChangeLog @@ -0,0 +1,16 @@ +binary_release 0.3.0-1 - binary_release 0.4.0 + +Benjamin Schieder: + * implement a userfriendly UI + +binary_release 0.3.0 - binary_release 0.3.0-1 + +Benjamin Schieder: + * fixed wrong substitution in encryption module + * fixed a bug that caused parameters to submodules + (like -source for encryption module) not to work + * changed default entropy-source for encryption to /dev/random + * error-handling for mutually exclusive -file and -files + * increased safety margin for DVDs from one to three MB + * removed non-working kernelparameter from isolinux helptext + * internal code cleanups diff --git a/target/lvp/x86/release_skeleton/README b/target/lvp/x86/release_skeleton/README new file mode 100644 index 000000000..d4c198237 --- /dev/null +++ b/target/lvp/x86/release_skeleton/README @@ -0,0 +1,15 @@ +Using binary release of LVP + +Using the binary release of LVP is a rather simple process: + +WARNING: You must be root to complete this process! + +Just start ./config.sh, make your settings, use options +c and i to create the iso and then burn this iso (named lvp.iso) +using your favorite cd/dvd writing software. + + +This binary was compiled COMPILEDFOR. + +Have a lot of fun, + blindy. diff --git a/target/lvp/x86/release_skeleton/config.sh b/target/lvp/x86/release_skeleton/config.sh new file mode 100644 index 000000000..b3a3f1cfd --- /dev/null +++ b/target/lvp/x86/release_skeleton/config.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +. scripts/functions + +[ -e .config ] && . .config + +quit=0 +while [ "${quit}" == "0" ] ; do + menu_init + . scripts/configuration + clear + display + read -p "Enter your choice> " choice + case "${choice}" in + q) + quit=1 + ;; + s) + save + ;; + l) + load + ;; + c) + save + scripts/create_lvp + ;; + x) + scripts/cleanup + ;; + i) + scripts/create-iso + ;; + *) + get ${choice} + ;; + esac +done + diff --git a/target/lvp/x86/release_skeleton/scripts/cleanup b/target/lvp/x86/release_skeleton/scripts/cleanup new file mode 100644 index 000000000..0768e01c6 --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/cleanup @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "Warning: This will delete all video files in the directory livesystem/" +read -p "Are you sure [yes/no] ? " sure +[ "$sure" != "yes" ] && exit + +for x in livesystem/* ; do + found=0 + for y in bin boot dev etc home lib linuxrc opt proc root sbin sys tmp usr var ; do + [ "${x#livesystem/}" == "$y" ] && found=1 + done + [ $found -eq 1 ]&& continue + echo -n "removing ${x#livesystem/} ... " + rm -rf livesystem/${x#livesystem/} + echo "done" +done + +echo "Cleanup finished" + diff --git a/target/lvp/x86/release_skeleton/scripts/configuration b/target/lvp/x86/release_skeleton/scripts/configuration new file mode 100644 index 000000000..3b0972d74 --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/configuration @@ -0,0 +1,24 @@ +multi LVP_TYPE plain "How to store data on the LVP" plain encrypted +if [ "${LVP_TYPE}" == "encrypted" ] ; then + multi LVP_ENTROPY_SOURCE random "What device to use for creating the pseudo-filesystems" random urandom zero + multi LVP_ENCRYPTION blowfish "What encryption-algorythm to use" blowfish twofish serpent +fi + +multi LVP_SIZE dvd "What medium you are using" cd dvd other +if [ "${LVP_SIZE}" == "other" ] ; then + text LVP_SIZE_OTHER 700 "Size your medium can hold in MB" +fi + +text LVP_MPLAYER_OPTS "" "Parameters to add to mplayer" + +text LVP_FILES "" "Files to put on this medium" + +comment "" +comment "s - Save Configuration" +comment "l - Load Configuration" +comment "---" +comment "c - Create LVP now" +comment "i - Create ISO now" +comment "x - Clean up" +comment "" +comment "q - Quit" diff --git a/target/lvp/x86/release_skeleton/scripts/create-iso b/target/lvp/x86/release_skeleton/scripts/create-iso new file mode 100644 index 000000000..97db7635a --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/create-iso @@ -0,0 +1,6 @@ +#!/bin/bash + +mkisofs -r -T -J -l -b isolinux/isolinux.bin -c isolinux/boot.catalog \ + -no-emul-boot -boot-load-size 4 -boot-info-table -o lvp.iso \ + -graft-points isolinux/=isolinux/ .=livesystem/ + diff --git a/target/lvp/x86/release_skeleton/scripts/create_lvp b/target/lvp/x86/release_skeleton/scripts/create_lvp new file mode 100644 index 000000000..5cfeed98a --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/create_lvp @@ -0,0 +1,78 @@ +#!/bin/bash + +. scripts/functions + +if [ ! -e .config ] ; then + echo "${bold}${red}No configuration found!${normal}" + echo "run ./config.sh first!" + exit 1 +fi + +. .config + +for x in create_lvpxml encrypted plain ; do + . scripts/${x} +done + +moviefiles="/tmp/lvp_moviefiles.$$" + +trap "rm -f ${moviefiles}" EXIT +trap "exit 1" INT + +case "${LVP_SIZE}" in + cd) + size=700 + ;; + dvd) + size=4486 + ;; + other) + size=${LVP_SIZE_OTHER} + ;; +esac + +if ! eval "type=\${type_${LVP_TYPE}}" ; then + echo "${bold}${red}Unknown type ${LVP_TYPE}${normal}" + exit 1 +fi + +mplayer_param=${LVP_MPLAYER_OPTS} + +eval "for x in ${LVP_FILES} ; do echo \${x} ; done" >${moviefiles} + +echo "Verifying existence of files ... " +error=0 +while read file ; do + if [ ! -f "${file}" ] ; then + echo "${file}: no such file or directory" + error=$(( ${error} + 1 )) + fi +done < ${moviefiles} + +if [ ${error} -gt 0 ] ; then + echo "Couldn't find ${error} file(s)." + confirm "Continue without those files" + [ ${?} -eq 1 ] && exit 1 +fi + +for module in twofish blowfish serpent ; do + eval "encryption_${module}=0" + modprobe loop_${module} >/dev/null 2>&1 && eval "encryption_${module}=1" +done + +encryption_available=0 +[ ${encryption_twofish} -eq 1 -o ${encryption_blowfish} -eq 1 -o ${encryption_serpent} -eq 1 ] && encryption_available=1 + +if [ ${encryption_available} -eq 0 ] ; then + echo "Sorry, you do not have loop-aes on your system. Please have a look at" + echo "http://loop-aes.sourceforge.net" + exit 1 +fi + +eval "avail=\${encryption_${LVP_ENCRYPTION}}" +if [ "${avail}" == "0" ] ; then + echo "Sorry, ${LVP_ENCRYPTION} is not available on your system." + exit 1 +fi + +eval "process_${LVP_TYPE}" diff --git a/target/lvp/x86/release_skeleton/scripts/create_lvpxml b/target/lvp/x86/release_skeleton/scripts/create_lvpxml new file mode 100644 index 000000000..4a806efba --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/create_lvpxml @@ -0,0 +1,79 @@ +#!/bin/bash + +usage_create_lvpxml() { + echo -n +} + +process_create_lvpxml() { + unset files + unset title + for x in `printenv | grep ^file_ | cut -f1 -d=` ; do + [ ! -z "${files}" ] && files="${files}\n" + files="${files}${x}" + [ -z "${title}" ] && eval "title=\${${x}}" + done + title=${title##*/} + title=${title%% -*} + + files=`echo -e ${files} | sort` + + rm -f ${lvpxml} + touch ${lvpxml} + + echo "Creating lvp.xml file" + read -p "Enter title of this LVP [${title}]: " tmp + [ ! -z "${tmp}" ] && title="${tmp}" + + cat > ${lvpxml} << EOF + + + + + ${title} + +EOF + + item=0 + for file in ${files} ; do + eval "file=\${${file}}" # dereference the variable to get the real file + button_text=${file%.*} + button_text=${button_text##*- } + read -p "Enter button text for ${file} [${button_text}]: " tmp + [ ! -z "${tmp}" ] && button_text=${tmp} + cat >> ${lvpxml} << EOF + + + /usr/bin/mplayer -fs -zoom ${mplayer_param} '${file}' + + ${button_text} + +EOF +# a little "special" for multi-language anime +#if [ "${file##*.}" == "ogm" ] ; then +#cat >> ${lvpxml} << EOF +# +# +#/usr/bin/mplayer -aid 2 -sid 3 -fs -zoom '${file}' +# +#jap +# +#EOF +#fi + item=$(( ${item} + 1 )) + done + echo "" >> ${lvpxml} + + echo "done creating lvp.xml file" + echo "Please check that the file is correct!" + + if [ ! -z ${DISPLAY} ] ; then + echo "Trying to show menu now on ${DISPLAY}" + lvp=`which lvp` + [ -z "${lvp}" ] && lvp="livesystem/usr/bin/lvp" + if ! test -x ${lvp} ; then + echo "Can't execute ${lvp}... this doesn't look good..." + else + ${lvp} ${lvpxml} + fi + fi +} diff --git a/target/lvp/x86/release_skeleton/scripts/encrypted b/target/lvp/x86/release_skeleton/scripts/encrypted new file mode 100644 index 000000000..81a553a49 --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/encrypted @@ -0,0 +1,187 @@ +#!/bin/bash + +type_encrypted="encrypted" +entrosource="${LVP_ENTROPY_SOURCE}" + +process_encrypted(){ + target="livesystem" + + echo -n "Checking necessary filesystem size ... " + filesize=0 + + while read file ; do + [ ! -f "${file}" ] && continue + thisfilesize=`ls -l "${file}" | sed 's,[ \t][ \t]*, ,g' | cut -f5 -d' '` + filesize=$(( ${filesize} + ${thisfilesize} )) + done < ${moviefiles} + + echo "${filesize} Byte (`human_readable ${filesize}`)" + + echo -n "Checking Livesystem size ... " + livesize=`du -sb ${target} --exclude=lvp.data? | cut -f1` + echo "`human_readable ${livesize}`" + filesize=$(( $filesize + $livesize )) + echo + echo "Total space needed: $(( ${filesize} / 1024 / 1024 )) MB" + + if [ $(( ${filesize} / 1024 / 1024 )) -gt $size ] ; then + echo + echo "This may be more than fits onto your medium." + echo "You specified ${size} MB to fit onto your medium." + echo "If you are sure that this is okay, please continue." + echo "If not, please truncate your filelist." + confirm "Continue" + [ ${?} -eq 1 ] && exit 1 + fi + + echo "Searching for free loopdevices ..." + + filesize=$(( ( ${size} * 1048576 ) - ${livesize} )) + needed_pseudofs=$(( (${filesize} / 2147481600) + 1 )) + needed_loopdevices=${needed_pseudofs} + for loopdevice in /dev/loop/* ; do + [ ${needed_loopdevices} -eq 0 ] && continue + if losetup ${loopdevice} ${moviefiles} 2>/dev/null ; then + # I reuse the ${moviefiles} tmpfile here since associating it + # with a loopdevice doesn't do any harm + echo "Using ${loopdevice}" + eval "loopdevice_${needed_loopdevices}=\"${loopdevice}\"" + losetup -d ${loopdevice} + needed_loopdevices=$(( ${needed_loopdevices} - 1 )) + fi + done + + echo "Okay, Now creating files that will hold the pseudo filesystems" + unset ddparam + [ `dd --help | grep -c stat` -eq 1 ] && ddparam="conv=stat" + + if [ -e livesystem/lvp.data1 ] ; then + for x in livesystem/lvp.data* ; do + if [ ${x##*lvp.data} -gt ${needed_pseudofs} ] ; then\ + echo "Found ${x##*/}, but we don't need it. Deleting it." + rm -f ${x} + fi + done + fi + + filesystem=0 + while [ ${filesystem} -lt ${needed_pseudofs} ] ; do + filesystem=$(( ${filesystem} + 1 )) + echo "Filesystem ${filesystem} of ${needed_pseudofs}" + file="livesystem/lvp.data${filesystem}" + + if [ ${filesystem} -lt ${needed_pseudofs} ] ; then + size=2147481600 + else + size=$(( ${filesize} - ( ${filesystem} - 1 ) * 2147481600 )) + size=$(( ( ${size} / 2048 ) * 2048 )) + fi + + if [ -f ${file} ] ; then + thisfilesize=`ls -l "${file}" | sed 's, *, ,g' | cut -f5 -d' '` + if [ ${thisfilesize} -eq ${size} ] ; then + echo "lvp.data${filesystem} already exists and has correct filesize. Using it." + else + echo "lvp.data${filesystem} already exists but has wrong filesize. Deleting it" + rm -f livesystem/lvp.data${filesystem} + fi + fi + [ -f livesystem/lvp.data${filesystem} ] && continue + dd if=/dev/${entrosource} of=livesystem/lvp.data${filesystem} \ + bs=2k count=$(( $size / 2048 )) ${ddparam} + done + + echo "Creating mountpoints" + rm -rf livesystem/mnt* + filesystem=1 + while [ ${filesystem} -le ${needed_pseudofs} ] ; do + mkdir -p livesystem/mnt${filesystem} + filesystem=$(( ${filesystem} + 1 )) + done + + echo "Using ${LVP_ENCRYPTION} encryption." + + echo "Now I need a passphrase for encrypting the filesystems." + passphrase="MEEP" + passphrase_confirm="MOOP" + while [ "${passphrase}" != "${passphrase_confirm}" ] ; do + read -p "Enter passphrase: " -s passphrase + echo + read -p "Confirm: " -s passphrase_confirm + echo + if [ "${passphrase:20}" = "" ] ; then + echo "The Passphrase must be at lest 20 characters!" + passphrase="MEEP" + passphrase_confirm="MOOP" + fi + if [ "${passphrase}" != "${passphrase_confirm}" ] ; then + echo "The passphrases do not match." + fi + done + + echo "Creating filesystems and mounting pseudo-filesystems" + lvpdata=1 + while [ ${lvpdata} -le ${needed_pseudofs} ] ; do + eval "lodev=\${loopdevice_${lvpdata}}" + file="livesystem/lvp.data${lvpdata}" + + echo "Setting up loopdevice ${lvpdata}" + echo "${passphrase}" | losetup -p 0 -e ${LVP_ENCRYPTION}256 ${lodev} ${file} + + echo "Creating Filesystem ${lvpdata}" + mkfs.ext2 -m 0 ${lodev} >/dev/null 2>&1 + + echo "Mounting Filesystem ${lvpdata}" + mount ${lodev} livesystem/mnt${lvpdata} + rm -rf livesystem/mnt${lvpdata}/* + + lvpdata=$(( ${lvpdata} + 1 )) + done + + continue=0 + while read file ; do + [ ! -f "${file}" ] && continue + [ ${continue} -eq 1 ] && continue + + unset target + thisfile=`ls -l "${file}" | sed 's, *, ,g' | cut -f5 -d' '` + for dir in livesystem/mnt? ; do + avail=`df -P ${dir} | grep / | sed 's, *, ,g' | cut -f4 -d' '` + avail=$(( ${avail} * 1024 )) + [ -z "${target}" -a ${avail} -gt ${thisfile} ] && target=${dir} + done + + if [ -z "${target}" ] ; then + echo "Not enough space available for ${file}. Skipping remaining files." >&2 + continue=1 + fi + [ ${continue} -eq 1 ] && continue + + echo "Copying ${file} to ${target}/${file##*/}" + if [ -z "${ddparam}" ] ; then + cp "${file}" "${target}/${file##*/}" + else + dd "if=${file}" "of=${target}/${file##*/}" bs=1k ${ddparam} + fi + + environment="`echo ${file} | tr '[. \-!]' '_'`" + eval "export file_${environment##*/}=\"${target#*livesystem}/${file##*/}\"" + done < ${moviefiles} + + lvpxml=livesystem/mnt1/lvp.xml + process_create_lvpxml + + lvpdata=${needed_pseudofs} + while [ ${lvpdata} -ge 1 ] ; do + echo "Umounting Filesystem ${lvpdata}" + umount livesystem/mnt${lvpdata} + + eval "lodev=\${loopdevice_${lvpdata}}" + echo "Shutting down loopdevice ${lodev}" + losetup -d ${lodev} + + lvpdata=$(( ${lvpdata} - 1 )) + done + + exit 0 +} diff --git a/target/lvp/x86/release_skeleton/scripts/functions b/target/lvp/x86/release_skeleton/scripts/functions new file mode 100644 index 000000000..c94e097a5 --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/functions @@ -0,0 +1,222 @@ +#!/bin/bash +bold="" +red="" +green="" +yellow="" +blue="" +normal="" + +# {{{ usage_functions +usage_functions(){ + echo -n +} +# }}} +# {{{ human readable +human_readable() { + size=${1} + if [ ${size} -gt 1024 ] ; then + if [ ${size} -gt $(( 1024*1024 )) ] ; then + size="$(( ${size} / ( 1024*1024 ) )) MB" + else + size="$(( ${size} / 1024 )) kB" + fi + else + size="${size} Byte" + fi + echo "${size}" +} +# }}} +# {{{ confirm +function confirm { + unset yesno + while [ "${yesno}" != "yes" -a "${yesno}" != "no" ] ; do + echo -n "${@} [yes|no] ? " + read yesno + done + [ "${yesno}" = "yes" ] && return 0 + return 1 +} +# }}} + +# {{{ menu_init +menu_init () { + block_level=0 + items=0 +} +# }}} +# {{{ block_start +block_start () { + block_level=$(( ${block_level} + 2 )) + echo "$@" +} +# }}} +# {{{ block_end +block_end () { + block_level=$(( ${block_level} - 2 )) +} +# }}} +# {{{ bool +bool () { +# bool LVPCFG_FOO 1 "This is Option FOO" + items=$(( ${items} + 1 )) + eval "type_${items}=\"bool\"" + eval "option_${items}=\"${1}\"" + eval "value=\${${1}}" + [ -z "${value}" ] && \ + eval "${1}=\"${2}\"" + eval "text_${items}=\"${3}\"" +} +# }}} +# {{{ multi +multi () { +# multi LVPCFG_FOO default "This is Multioption FOO" foo default bar + items=$(( ${items} + 1 )) + eval "type_${items}=\"multi\"" + eval "option_${items}=\"${1}\"" + eval "value=\${${1}}" + [ -z "${value}" ] && \ + eval "${1}=\"${2}\"" + eval "text_${items}=\"${3}\"" + shift; shift; shift + eval "values_${items}=\"\"" + while [ ! -z "${1}" ] ; do + eval "values_${items}=\"\${values_${items}} ${1}\"" + shift + done +} +# }}} +# {{{ text +text () { +# text LVPCFG_FOO "default text" "This is textoption FOO" + items=$(( ${items} + 1 )) + eval "type_${items}=\"text\"" + eval "option_${items}=\"${1}\"" + eval "value=\${${1}}" + [ -z "${value}" ] && \ + eval "${1}=\"${2}\"" + eval "text_${items}=\"${3}\"" +} +# }}} +# {{{ comment +comment (){ + items=$(( ${items} + 1 )) + eval "type_${items}=\"comment\"" + eval "text_${items}=\"${@}\"" +} +# }}} +# {{{ display +display () { + i=1 + while [ ${i} -le ${items} ] ; do + eval "type=\${type_${i}}" + case "${type}" in + bool) + eval "option=\${option_${i}}" + eval "value=\${${option}}" + desc="X" + [ "${value}" == "0" ] && desc=" " + eval "echo \"${i} - [${desc}] \${text_${i}}\"" + ;; + multi) + eval "option=\${option_${i}}" + eval "value=\${${option}}" + eval "echo \"${i} - (${value}) \${text_${i}}\"" + ;; + text) + eval "option=\${option_${i}}" + eval "value=\${${option}}" + dots="..." + [ "${value:0:17}" == "${value}" ] && dots="" + eval "echo \"${i} - (${value:0:17}${dots}) \${text_${i}}\"" + ;; + comment) + eval "echo \"\${text_${i}}\"" + ;; + *) + echo "${type} NOT IMPLEMENTED" + ;; + esac + i=$(( ${i} + 1 )) + done +} +# }}} +# {{{ save +save () { + i=1 + echo "# LVP Configuration" > .config + while [ ${i} -le ${items} ] ; do + eval "option=\${option_${i}}" + eval "value=\${${option}}" 2>/dev/null + eval "type=\${type_${i}}" + case "${type}" in + bool) + echo "${option}=${value}" >>.config + ;; + multi) + echo "${option}=\"${value}\"" >>.config + ;; + text) + echo "${option}=\"${value}\"" >>.config + ;; + esac + i=$(( ${i} + 1 )) + done +} +# }}} +# {{{ load +load () { + . .config +} +# }}} +# {{{ get +get () { +# get 3 + eval "option=\${option_${1}}" + if [ -z "${option}" ] ; then + echo "${bold}${red}No such option: ${1}${normal}" + sleep 1 + return + fi + eval "type=\${type_${1}}" + case "${type}" in + text) + eval "value=\${${option}}" + read -erp "Enter new value for ${option} [${value}]> " new + [ ! -z "${new}" ] && eval "${option}=\"${new}\"" + ;; + multi) + eval "value=\${${option}}" + eval "values=\${values_${1}}" + x=1 + for v in ${values} ; do + [ "${value}" == "${v}" ] && echo -n "${bold}" + echo "${x} - ${v}${normal}" + eval "nval_${1}_${x}=\"${v}\"" + x=$(( ${x} + 1 )) + done + read -ep "Enter new value by number> " new + [ -z "${new}" ] && return + eval "new=\${nval_${1}_${new}}" + if [ -z "${new}" ] ; then + echo "${bold}${red}No such option!${normal}" + sleep 1 + return + else + eval "${option}=\"${new}\"" + fi + ;; + bool) + eval "value=\${${option}}" + if [ "${value}" == "1" ] ; then + eval "${option}=0" + else + eval "${option}=1" + fi + ;; + *) + echo "${bold}${red}NOT IMPLEMENTED${normal}" + sleep 1 + ;; + esac +} +# }}} diff --git a/target/lvp/x86/release_skeleton/scripts/plain b/target/lvp/x86/release_skeleton/scripts/plain new file mode 100644 index 000000000..141c9cea6 --- /dev/null +++ b/target/lvp/x86/release_skeleton/scripts/plain @@ -0,0 +1,86 @@ +#!/bin/bash + +type_plain="plain" + +usage_plain(){ + cat >&2 </dev/null ; then + echo "ok" + else + echo "failed" + echo -n "Copying ${src} to ${trg} ... " + if cp "${src}" "${trg}" ; then + echo "ok" + else + echo "failed" + fi + fi +} + +process_plain(){ + target="livesystem" + + echo -n "Checking necessary filesystem size ... " + filesize=0 + + while read file ; do + [ ! -f "${file}" ] && continue + thisfilesize=`ls -l "${file}" | sed 's,[ \t][ \t]*, ,g' | cut -f5 -d' '` + filesize=$(( ${filesize} + ${thisfilesize} )) + done < ${moviefiles} + + echo "${filesize} Byte (`human_readable ${size}`)" + + echo -n "Checking Livesystem size ... " + livesize=`du -sb ${target} | cut -f1` + echo "`human_readable ${livesize}`" + filesize=$(( $filesize + $livesize )) + echo + echo "Total space needed: $(( ${filesize} / 1024 / 1024 )) MB" + + if [ $(( ${filesize} / 1024 / 1024 )) -gt $size ] ; then + echo + echo "This may be more than fits onto your medium." + echo "You specified ${size} MB to fit onto your medium." + echo "If you are sure that this is okay, please continue." + echo "If not, please truncate your filelist." + confirm "Continue" + [ ${?} -eq 1 ] && exit 1 + fi + + while read file ; do + [ ! -f "${file}" ] && continue + + if [ -f "${target}/${file##*/}" ] ; then + origfilesize=`ls -l "${file}" | sed 's,[ \t][ \t]*, ,g' | cut -f5 -d' '` + targfilesize=`ls -l "${target}/${file##*/}" | sed 's,[ \t][ \t]*, ,g' | cut -f5 -d' '` + + if [ ${origfilesize} -eq ${targfilesize} ] ; then + echo "${target}/${file##*/} already exists." + else + rm -f "${target}/${file##*/}" + lvp_copy "${file}" "${target}/${file##*/}" + fi + else + rm -f "${target}/${file##*/}" + lvp_copy "${file}" "${target}/${file##*/}" + fi + + environment="`echo ${file} | tr '[. \-!]' '_'`" + eval "export file_${environment##*/}=\"/${file##*/}\"" + done < ${moviefiles} + + lvpxml=livesystem/lvp.xml + process_create_lvpxml +} diff --git a/target/lvp/xinitrc b/target/lvp/xinitrc new file mode 100644 index 000000000..612cdc59d --- /dev/null +++ b/target/lvp/xinitrc @@ -0,0 +1,8 @@ +cd / +[ -e /lvp.xml ] && lvpxml="/lvp.xml" +[ -e /mnt1/lvp.xml ] && lvpxml="/mnt1/lvp.xml" +if [ -z "${lvpxml}" ] ; then + /usr/X11/bin/xterm -bg red -fg white +else + /usr/X11/bin/xterm -bg black -fg white -e lvp ${lvpxml} +fi