summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/distro/foonas.conf42
-rw-r--r--conf/machine/fic-gta01.conf2
-rw-r--r--conf/machine/n2100.conf28
-rw-r--r--packages/altboot/altboot_0.0.0.bb6
-rw-r--r--packages/altboot/files/altboot.func64
-rw-r--r--packages/altboot/files/fic-gta01/.mtn2git_empty0
-rw-r--r--packages/altboot/files/fic-gta01/altboot-2.6.cfg41
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/.mtn2git_empty0
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/00-Default14
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/15-bootSD32
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/Advanced/.mtn2git_empty0
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/Advanced/30-bootUSB-Stick47
-rw-r--r--packages/altboot/files/fic-gta01/altboot-menu/Advanced/40-bootNFS110
-rw-r--r--packages/altboot/files/init.altboot158
-rw-r--r--packages/dnsmasq/dnsmasq_2.38.bb1
-rw-r--r--packages/gtk+/gtk+-2.10.10/.mtn2git_empty0
-rw-r--r--packages/gtk+/gtk+-2.10.10/automake-lossage.patch24
-rw-r--r--packages/gtk+/gtk+-2.10.10/disable-print.patch50
-rw-r--r--packages/gtk+/gtk+-2.10.10/disable-tooltips.patch11
-rw-r--r--packages/gtk+/gtk+-2.10.10/gnome-bug-341177.patch217
-rw-r--r--packages/gtk+/gtk+-2.10.10/gtk+-handhelds.patch149
-rw-r--r--packages/gtk+/gtk+-2.10.10/gtklabel-resize-patch10
-rw-r--r--packages/gtk+/gtk+-2.10.10/hardcoded_libtool.patch29
-rw-r--r--packages/gtk+/gtk+-2.10.10/integer-pixops.patch348
-rw-r--r--packages/gtk+/gtk+-2.10.10/menu-deactivate.patch51
-rw-r--r--packages/gtk+/gtk+-2.10.10/migration.patch611
-rw-r--r--packages/gtk+/gtk+-2.10.10/no-demos.patch10
-rw-r--r--packages/gtk+/gtk+-2.10.10/no-xwc.patch151
-rw-r--r--packages/gtk+/gtk+-2.10.10/plana-pixops.patch569
-rw-r--r--packages/gtk+/gtk+-2.10.10/run-iconcache.patch19
-rw-r--r--packages/gtk+/gtk+-2.10.10/scroll-timings.patch11
-rw-r--r--packages/gtk+/gtk+-2.10.10/single-click.patch56
-rw-r--r--packages/gtk+/gtk+-2.10.10/small-gtkfilesel.patch267
-rw-r--r--packages/gtk+/gtk+-2.10.10/spinbutton.patch130
-rw-r--r--packages/gtk+/gtk+-2.10.10/xsettings.patch16
-rw-r--r--packages/gtk+/gtk+_2.10.10.bb28
-rw-r--r--packages/gtk+/gtk-fpu.inc6
-rw-r--r--packages/images/foonas-image.bb39
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.20/defconfig11
-rw-r--r--packages/linux/ixp4xx-kernel_2.6.20.bb2
-rw-r--r--packages/linux/linux/n2100/.mtn2git_empty0
-rw-r--r--packages/linux/linux/n2100/defconfig1843
-rw-r--r--packages/linux/linux/n2100/n2100-r8169-parity.patch39
-rw-r--r--packages/linux/linux/n2100/rtc-rs5c372-n2100.patch13
-rw-r--r--packages/linux/linux_2.6.20.bb5
-rw-r--r--packages/meta/foonas-packages.bb22
-rw-r--r--packages/meta/slugos-packages.bb5
-rw-r--r--packages/openocd/openocd-native_svn.bb1
-rw-r--r--packages/openocd/openocd_svn.bb4
49 files changed, 5224 insertions, 68 deletions
diff --git a/conf/distro/foonas.conf b/conf/distro/foonas.conf
index dc0a1a9cae..bd2a0e4e5e 100644
--- a/conf/distro/foonas.conf
+++ b/conf/distro/foonas.conf
@@ -27,6 +27,33 @@ IMAGE_FSTYPES = "jffs2"
#
# binutils and compilers
#
+
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-foonas-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+#PREFERRED_PROVIDER_virtual/armeb-foonas-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+#PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/powerpc-foonas-linux-libc-for-gcc = "glibc-intermediate"
+#PREFERRED_PROVIDER_virtual/mipsel-foonas-linux-libc-for-gcc = "glibc-intermediate"
+#PREFERRED_PROVIDER_virtual/sparc-foonas-linux-libc-for-gcc = "glibc-intermediate"
+
+TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb']]}"
+
+#mess with compiler flags to use -Os instead of -O2
+#Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
+# perl has some problems, see http://bugs.openembedded.org/show_bug.cgi?id=1616
+# [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
+FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
+FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
+
+BUILD_OPTIMIZATION = "-Os"
+BUILD_OPTIMIZATION_pn-perl = "-O1"
+BUILD_OPTIMIZATION_sparc = "-O2"
+
+CXXFLAGS += "-fvisibility-inlines-hidden"
+
PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
@@ -43,23 +70,28 @@ PREFERRED_PROVIDER_virtual/libintl = "glibc"
PREFERRED_PROVIDER_virtual/db = "db"
PREFERRED_PROVIDER_virtual/db-native = "db-native"
-PREFERRED_VERSION_binutils = "2.16"
-PREFERRED_VERSION_binutils-cross = "2.16"
+PREFERRED_VERSION_binutils = "2.17.50.0.12"
+PREFERRED_VERSION_binutils-cross = "2.17.50.0.12"
PREFERRED_VERSION_gcc = "4.1.1"
PREFERRED_VERSION_gcc-cross = "4.1.1"
+PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.1"
PREFERRED_VERSION_gcc-cross-initial = "4.1.1"
PREFERRED_VERSION_glibc = "2.5"
PREFERRED_VERSION_glibc-intermediate = "2.5"
-PREFERRED_VERSION_glibc-initial = "2.3.2"
-GLIBC_ADDONS = "nptl"
+PREFERRED_VERSION_glibc-initial = "2.5"
GLIBC_EXTRA_OECONF = "--with-tls"
+PREFERRED_VERSION_glib-2.0 = "2.12.10"
+PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
+GLIBC_ADDONS ?= "ports,nptl,libidn"
+
+
#
# Target OS
#
-USE_NLS ?= "no"
+
TARGET_OS = "linux"
HOTPLUG = "udev"
require conf/distro/include/sane-srcdates.inc
diff --git a/conf/machine/fic-gta01.conf b/conf/machine/fic-gta01.conf
index 5450c1ebd3..9bb24874a9 100644
--- a/conf/machine/fic-gta01.conf
+++ b/conf/machine/fic-gta01.conf
@@ -19,6 +19,8 @@ MACHINE_EXTRA_RRECOMMENDS = "\
kernel-module-gta01-pm-gps \
kernel-module-gta01-pm-gsm \
kernel-module-gta01kbd \
+ kernel-module-s3cmci \
+ kernel-module-ext2 \
alsa-state"
MACHINE_TASK_PROVIDER = "task-base"
diff --git a/conf/machine/n2100.conf b/conf/machine/n2100.conf
new file mode 100644
index 0000000000..aac4688c3a
--- /dev/null
+++ b/conf/machine/n2100.conf
@@ -0,0 +1,28 @@
+TARGET_ARCH = "arm"
+TARGET_OS = "linux"
+TARGET_FPU = "soft"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
+
+# terminal specs - console, but no other ports
+SERIAL_CONSOLE="115200 console"
+USE_VT="0"
+
+MODUTILS=26
+MACHINE_FEATURES= "kernel26 usbhost"
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+PREFERRED_VERSION_linux = "2.6.20"
+
+# Do we need any kernel modules?
+#N2100_KERNEL = ""
+
+# We want udev support in the image
+udevdir = "/dev"
+N2100_SUPPORT ?= "cpio uboot-utils udev"
+BOOTSTRAP_EXTRA_RDEPENDS = "udev mdadm"
+EXTRA_IMAGECMD_jffs2 += " --little-endian"
+
+# Hardware stuff used in image generation
+ERASEBLOCK_SIZE = "0x20000"
+JFFS2_ROOTFS_SIZE = "0xC80000"
+KERNEL_IMAGE_SIZE = "0x280000"
+require conf/machine/include/tune-xscale.conf
diff --git a/packages/altboot/altboot_0.0.0.bb b/packages/altboot/altboot_0.0.0.bb
index 0df86ad794..31aaeb3e7a 100644
--- a/packages/altboot/altboot_0.0.0.bb
+++ b/packages/altboot/altboot_0.0.0.bb
@@ -18,6 +18,10 @@ RRECOMMENDS_${PN}_append_c7x0 = " kexec-tools"
RDEPENDS_${PN} = "${PN}-conf"
+# Currently the OM image for the Neo is lacking a few basic things...
+RDEPENDS_${PN}_fic-gta01 = "${PN}-conf kernel-module-ext2 kernel-module-loop kernel-module-s3cmci "
+
+
######################################################################################
PR = "r51"
@@ -26,7 +30,7 @@ PR = "r51"
PACKAGES = "${PN}-conf ${PN}-doc ${PN}"
-PACKAGE_ARCH_${PN} = "all"
+#PACKAGE_ARCH_${PN} = "all"
PACKAGE_ARCH_${PN}-doc = "all"
PACKAGE_ARCH_${PN}-conf = "${MACHINE}"
diff --git a/packages/altboot/files/altboot.func b/packages/altboot/files/altboot.func
index 75808090ba..e990a06862 100644
--- a/packages/altboot/files/altboot.func
+++ b/packages/altboot/files/altboot.func
@@ -165,6 +165,11 @@ pivot_image() {
mkdir -p /media/image || die "mkdir -p /media/image failed"
+ LOOP_MODULE="$(find /lib/modules/`uname -r`/ -name "loop.ko")"
+ test -n "$LOOP_MODULE" && ( insmod "$LOOP_MODULE" ; sleep 3 )
+
+ ! test -e /dev/loop0 && mknod /dev/loop0 b 7 0
+
losetup /dev/loop0 $1/$IMAGE_PATH/$IMAGE_NAME || die "losetup /dev/loop0 $1/$IMAGE_PATH/$IMAGE_NAME failed!"
check_fs /dev/loop0 $IMAGE_TYPE
@@ -451,6 +456,9 @@ check_fs() {
fi
;;
esac
+
+# debug_echo "check_fs() FSCK / FSTYPE: [$FSCK] / [$FSTYPE]"
+
if [ "$FSCK" = "" ]; then
echo "Could not find fsck for $FSTYPE!"
else
@@ -476,9 +484,9 @@ init_rootfs(){
}
mount_sd(){
- if mount | grep -q "/media/card"
+ if mount | grep -q "$SD_MOUNTPOINT"
then
- echo "Note: /media/card is already mounted"
+ echo "Note: $SD_MOUNTPOINT is already mounted"
else
# We can't trust that the SD device file is there when running kernel 2.6 w/ udev
# and starting udev at this point may not be the best idea...
@@ -494,20 +502,54 @@ mount_sd(){
# Kernel 2.6 has the SD driver compiled into the kernel
if test -n "$SD_KERNEL_MODULE"
then
- echo -n "Loading SD kernel module..."
- /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed"
+ echo "Loading SD kernel module..."
+ if ( echo "$SD_KERNEL_MODULE" | grep -q "^/" )
+ then
+ echo -e "\t- Using full path for SD module"
+ SD_PATTERN="`basename "$SD_KERNEL_MODULE" | sed "s/\.ko//;s/\.o//"`"
+
+ if ( lsmod | grep -q "^$SD_PATTERN" )
+ then
+ echo -e "\t- Already loaded..."
+ else
+ echo -e "\t- Loading..."
+ /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed"
+ fi
+
+ else
+ echo -e "\t- Searching [$SD_KERNEL_MODULE]"
+ SD_KERNEL_MODULE="$(find /lib/modules/`uname -r`/ -name "$SD_KERNEL_MODULE")"
+ echo -e "\t- Assuming module is [$SD_KERNEL_MODULE]"
+
+ SD_PATTERN="`basename "$SD_KERNEL_MODULE" | sed "s/\.ko//;s/\.o//"`"
+
+ if ( lsmod | grep -q "^$SD_PATTERN" )
+ then
+ echo -e "\t- Already loaded..."
+ else
+ echo -e "\t- Loading..."
+ /sbin/insmod $SD_KERNEL_MODULE >/dev/null 2>&1 && echo ok || die "insmod failed"
+ fi
+ fi
fi
- check_fs "$SD_DEVICE"
-
- echo -n "Mounting $SD_MOUNTPOINT..." >"$OUT_TTY"
+ sleep 3
- if test "$1" = ingore_errors
+ check_fs "$SD_DEVICE"
+
+ if ! mount | grep -q "$SD_MOUNTPOINT"
then
- /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 && echo ok >"$OUT_TTY" || echo "Could not mount SD card"
+ echo -n "Mounting $SD_MOUNTPOINT..." >"$OUT_TTY"
+
+ if test "$1" = ingore_errors
+ then
+ /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 || echo "Could not mount SD card"
+ else
+ /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 || die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT failed"
+ fi
else
- /bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT >/dev/null 2>&1 && echo ok >"$OUT_TTY"|| die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT failed"
- fi
+ echo "NOTE: Some sort of auto-mounting is going on..."
+ fi
fi
echo ""
diff --git a/packages/altboot/files/fic-gta01/.mtn2git_empty b/packages/altboot/files/fic-gta01/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/.mtn2git_empty
diff --git a/packages/altboot/files/fic-gta01/altboot-2.6.cfg b/packages/altboot/files/fic-gta01/altboot-2.6.cfg
new file mode 100644
index 0000000000..2ad9406083
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-2.6.cfg
@@ -0,0 +1,41 @@
+#
+# Altboot machine configuration for: Akita / Kernel 2.6
+#
+
+# Handled by /sbin/init.altboot
+# Allow booting images from SD or CF instead of booting
+# the ROM.
+ENABLE_ALTBOOT="yes"
+TIMEOUT="4"
+REAL_INIT="/sbin/init.sysvinit"
+SH_SHELL="/bin/sh"
+
+ENABLE_SOUND="yes"
+
+IMAGE_PATH="boot-images"
+IMAGE_TYPE="ext2"
+FSCK_IMAGES="yes"
+ENABLE_IMAGECONF="no"
+
+SD_DEVICE="/dev/mmcblk0p1"
+SD_KERNEL_MODULE="s3cmci.ko"
+
+USB_HOST_AVAILABLE="yes"
+USB_STORAGE_MODULES="ohci_hcd usb_storage sd_mod"
+USB_STORAGE_PARTITION="/dev/sda1"
+USB_STORAGE_WAIT="4"
+
+USB_NETWORKING_AVAILABLE="yes"
+USB_NW_MODULES="usbcore pxa27x_udc ohci-hcd g_ether"
+USB_NW_DEVICE="usb0"
+
+KEXEC_KERNEL_DIR="/boot"
+KEXEC_BIN="/usr/sbin/kexec"
+
+INIT_RUNLEVEL="5"
+NO_GUI_RL="2"
+MASTER_PASSWORD=""
+ASK_PW_ON_BOOT="no"
+
+SD_MOUNTPOINT="/media/card"
+CF_MOUNTPOINT="/media/cf"
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/.mtn2git_empty b/packages/altboot/files/fic-gta01/altboot-menu/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/.mtn2git_empty
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/00-Default b/packages/altboot/files/fic-gta01/altboot-menu/00-Default
new file mode 100644
index 0000000000..9d29fdae2a
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/00-Default
@@ -0,0 +1,14 @@
+# !/bin/sh
+M_TITLE="Normal Boot"
+
+
+run_module() {
+ exec $REAL_INIT "$INIT_RUNLEVEL"
+ exit 0
+}
+
+case "$1" in
+title) echo "$M_TITLE";;
+run) run_module;;
+esac
+
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/15-bootSD b/packages/altboot/files/fic-gta01/altboot-menu/15-bootSD
new file mode 100644
index 0000000000..3cf49deea5
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/15-bootSD
@@ -0,0 +1,32 @@
+# !/bin/sh
+#
+# Copyright Matthias Hentges (c) 2005
+#
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL)
+
+
+M_TITLE="Boot SD card"
+
+test "$DISABLE_SD_BOOT" = yes && exit 0
+
+# This function is activated by init.altboot by calling this script with the "run" option
+run_module() {
+
+ test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+
+ # Mount /proc, etc
+ init_rootfs
+
+ mount_sd
+
+ # Check for a real fs and loop-images.
+ check_target "$SD_MOUNTPOINT" >/dev/tty0
+
+}
+
+
+case "$1" in
+title) echo "$M_TITLE";;
+run) run_module "$2";;
+esac
+
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/Advanced/.mtn2git_empty b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/.mtn2git_empty
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/Advanced/30-bootUSB-Stick b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/30-bootUSB-Stick
new file mode 100644
index 0000000000..b573e7a10c
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/30-bootUSB-Stick
@@ -0,0 +1,47 @@
+# !/bin/sh
+#
+# Copyright Matthias Hentges (c) 2005
+#
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the GPL)
+
+
+M_TITLE="Boot USB Storage"
+
+test "$USB_HOST_AVAILABLE" = "yes" || exit 0
+
+# This function is activated by init.altboot by calling this script with the "run" option
+run_module() {
+
+ test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+
+ # Mount /proc, etc
+ init_rootfs
+
+ echo "Starting USB..."
+
+ for module in $USB_STORAGE_MODULES
+ do
+ echo -en "\t - $module: "
+ modprobe "$module" >/dev/null 2>&1 && echo ok || die "Failed to modprobe [$module]"
+ done
+
+ echo -n "Mounting $USB_STORAGE_PARTITION..." >/dev/tty0
+
+ mkdir -p /media/usb-storage >/dev/null 2>&1
+
+ sleep "$USB_STORAGE_WAIT"
+
+ /bin/mount -t auto -o defaults,noatime $USB_STORAGE_PARTITION /media/usb-storage >/dev/null 2>&1 && echo ok >/dev/tty0|| die "/bin/mount -t auto -o defaults,noatime $SD_DEVICE $SD_MOUNTPOINT failed"
+
+ echo ""
+
+ # Check for a real fs and loop-images.
+ check_target "/media/usb-storage" >/dev/tty0
+}
+
+
+case "$1" in
+title) echo "$M_TITLE";;
+run) run_module "$2";;
+esac
+
diff --git a/packages/altboot/files/fic-gta01/altboot-menu/Advanced/40-bootNFS b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/40-bootNFS
new file mode 100644
index 0000000000..4f5c195be2
--- /dev/null
+++ b/packages/altboot/files/fic-gta01/altboot-menu/Advanced/40-bootNFS
@@ -0,0 +1,110 @@
+#! /bin/sh
+#
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: GPL (see http://www.gnu.org/licenses/gpl.txt for a copy of the license)
+#
+# Filename: 40-bootNFS
+# Date: 14-Apr-06
+
+
+M_TITLE="Boot from NFS"
+
+test "$DISABLE_NFS_BOOT" = yes && exit 0
+
+# This function is activated by init.altboot by calling this script with the "run" option
+run_module() {
+
+ test -e /etc/altboot.func && . /etc/altboot.func || die "ERROR: /etc/altboot.func not found. Check your installation!"
+
+ # Mount /proc, etc
+ init_rootfs
+
+ nfs_host="`cat /etc/fstab | grep -v ^# | grep nfs | awk '{print $1}'|sed -n "s/\(.*\)\:\(.*\)/\1/p" `"
+ nfs_mounts="`cat /etc/fstab | grep -v ^# | grep nfs | awk '{print $1}'`"
+ nfs_mountpoints="`cat /etc/fstab | grep -v ^# | grep nfs | awk '{print $2}'`"
+
+ start_networking "$nfs_host"
+
+ if test -z "$nfs_host"
+ then
+ mdie "${C_RED}No configured NFS drives found in /etc/fstab$C_RESET"
+
+ fi
+
+
+ if test "` echo "$nfs_mountpoints" |wc -l | tr -d " "`" -gt 1
+ then
+ echo -e "Please select your NFS root:\n"
+
+ cnt=1
+ for nfs_mount in $nfs_mountpoints
+ do
+ echo -e "\t[$cnt] $nfs_mount"
+ let cnt=$cnt+1
+ done
+
+ echo ""
+
+ while test -z "$selection"
+ do
+ stty echo
+ echo -n "Boot NFS root: "
+
+ if test "$AUTOBOOT" != "yes"
+ then
+ read junk < /dev/tty1
+ else
+ if test -e /etc/.altboot-bootNFS-source.last
+ then
+ junk="`cat /etc/.altboot-bootNFS-source.last`"
+ test -z "$junk" && read junk < /dev/tty1 || echo "$junk (autoboot)"
+ else
+ read junk < /dev/tty1
+ fi
+ fi
+
+
+ cnt=1
+ for nfs_mount in $nfs_mounts
+ do
+ if test "$junk" = "$cnt"
+ then
+ selection="$nfs_mount"
+ echo "$junk" > /etc/.altboot-bootNFS-source.last
+ fi
+ let cnt=$cnt+1
+ done
+
+ done
+ else
+ test -z "$nfs_mounts" && die "No NFS mounts configured in /etc/fstab!"
+ selection="$nfs_mounts"
+ fi
+
+ mkdir -p /media/nfsroot || mdie "mkdir -p /media/nfsroot failed!"
+
+ echo -n "Mounting NFS root..."
+
+ if ( mount | grep -q "/media/nfsroot" )
+ then
+ echo "/media/nfsroot already used, tying to umount..."
+ umount /media/image
+ losetup -d /dev/loop0
+ umount /media/nfsroot || die "umount failed!"
+ fi
+
+ mount -t nfs "$selection" /media/nfsroot && echo ok || mdie "mount -t nfs "$selection" /media/nfsroot failed!"
+
+ # Use configured resolv.conf in the pivoted rootfs
+ #echo -n "Copying resolv.conf..."
+ #cp /etc/resolv.conf /media/nfsroot/etc && echo ok || echo "FAILED"
+
+ check_target "/media/nfsroot" bootNFS
+
+}
+
+case "$1" in
+title) echo "$M_TITLE";;
+run) run_module "$2";;
+esac
+
diff --git a/packages/altboot/files/init.altboot b/packages/altboot/files/init.altboot
index 033fb2124f..5eb6122a2a 100644
--- a/packages/altboot/files/init.altboot
+++ b/packages/altboot/files/init.altboot
@@ -208,7 +208,7 @@ get_kbd_ints(){
if test -z "$KBD_INT"
then
# find out how the keyboard is called
- for kbd in Spitzkbd corgikbd locomokbd tosakbd
+ for kbd in Spitzkbd corgikbd locomokbd tosakbd "Neo1973 AUX button"
do
if ( cat /proc/interrupts | grep -q "$kbd" )
then
@@ -242,7 +242,11 @@ run_timer() {
#debug_echo "run_timer() old:`echo $key_ints | md5sum`"
stty -echo <"$OUT_TTY" >"$OUT_TTY" 2>&1
- echo -en "\n\nPlease press any key to launch altboot." > "$OUT_TTY"
+
+ case "$KBD_INT" in
+ Neo1973*) echo -en "\n\nPlease press [AUX] to launch altboot." > "$OUT_TTY" ;;
+ *) echo -en "\n\nPlease press any key to launch altboot." > "$OUT_TTY" ;;
+ esac
test -z "$TIMEOUT" && TIMEOUT="3"
@@ -337,41 +341,60 @@ launch_selection() {
wait_for_input() {
- while true
- do
+
+ # Neo has only two buttons: AUX and PWR.
+ # Only AUX is easily readable from userspace, so are touchscreen taps
+ if test "$KBD_INT" = "Neo1973 AUX button"
+ then
+ ints_old="`cat /proc/interrupts | grep "$KBD_INT" | awk '{print $2}'`"
+ ts_ints_old="`cat /proc/interrupts |grep action| tail -1 | awk '{print $2}'`"
+ echo "Please press [AUX] to set a menu number" <"$OUT_TTY" > "$OUT_TTY" 2>&1
+ echo -e "Press the touchscreen to start\n"
- # Do _not_ change the next few lines!
- #
- # This is required to work around an annoying busybox bug.
- # Every key you press while this script runs will be
- # picked up by the next "read $junk".
- # So the next read would pick up the "any" key the user pressed
- # above to launch the altboot menu.
-
-
- # Bash throws an ugly error on kill
- if ! (readlink /bin/sh | grep -q bash)
- then
- # This filters an "<ENTER>" from the user as "any key"
- ( while :; do read x< "$OUT_TTY" 2>&1; done; ) > /dev/null 2>&1 &
- sleep 1; kill $! >/dev/null 2>&1
- fi
-
- echo -n "Please choose one of the above [$last_selection]: " <"$OUT_TTY" > "$OUT_TTY" 2>&1
- stty echo <"$OUT_TTY" >"$OUT_TTY" 2>&1
- read junk< "$OUT_TTY" 2>&1
+ x="$last_selection" ; hold_events=0
- # This filters other chars the user may have used
+ echo -n "Your Choice: [$x / $cnt]"
- junk="`echo "$junk" | sed "s/[a-zA-Z]//g"`"
-
- if test "$junk" -lt "$cnt" -o "$junk" -eq "$cnt"
- then
- if test ! -z "$junk"
+ while true
+ do
+
+ ts_ints_now="`cat /proc/interrupts |grep action| tail -1 | awk '{print $2}'`"
+
+ if test "$ts_ints_now" = "$ts_ints_old"
then
- parse_module_flags "$junk"
-
+ ints_now="`cat /proc/interrupts | grep "$KBD_INT" | awk '{print $2}'`"
+
+ if test "$ints_now" -gt "$ints_old"
+ then
+ # Only react on every second interupt as both PRESS and RELEASE generate
+ # one.
+ if test -n "$tmp"
+ then
+ #debug_echo "wait_for_input(): PRESS/RELEASE EVENT [$ints_now <-> $ints_old]"
+
+ MAX_ENTRIES="$cnt"
+
+ test "$x" = "$cnt" && x=1 || let x=$x+1
+
+ #\r : go to beginning of the current line
+ #\033[K : completely clear the current line
+ echo -en "\r\033[KYour Choice: [$x / $cnt]"
+
+
+ tmp=""
+ else
+ tmp=blahh
+ fi
+ fi
+
+ ints_old="$ints_now"
+ else
+# debug_echo "wait_for_input(): TOUCHSCREEN EVENT [$ts_ints_now <-> $ts_ints_old]"
+ ts_ints_old="$ts_ints_now"
+
+ parse_module_flags "$x"
+
if test "$REMEMBER_LAST_SELECTION" != no