From c78afd40e7abd52f363c763421f35a07e90bdc10 Mon Sep 17 00:00:00 2001
From: Andreas Loibl <andreas@andreas-loibl.de>
Date: Fri, 4 Mar 2011 04:06:32 +0100
Subject: added gfxoverlay build script

---
 .gitignore          |  1 +
 build_gfxoverlay.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+)
 create mode 100755 build_gfxoverlay.sh

diff --git a/.gitignore b/.gitignore
index 396f14c..e14197f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@
 /config/chroot
 /config/common
 /config/source
+/overlay*
 
diff --git a/build_gfxoverlay.sh b/build_gfxoverlay.sh
new file mode 100755
index 0000000..050c8ac
--- /dev/null
+++ b/build_gfxoverlay.sh
@@ -0,0 +1,83 @@
+#!/bin/bash
+if ((UID)); then
+  echo "Error: You must be root to run this script"
+  exit 2
+fi
+case "$1" in
+nvidia|fglrx) drv=$1;;
+*)
+  echo "Usage: $(basename "$0") <nvidia|fglrx> <version>"
+  exit 3
+  ;;
+esac
+case "$2" in
+?*) ver="$2";;
+*)
+  echo "Usage: $(basename "$0") <nvidia|fglrx> <version>"
+  exit 3
+  ;;
+esac
+if [ ! -x chroot/bin/bash ]; then
+  echo "Error: something is wrong with \"chroot/\" - maybe you are in the wrong directory or haven't built it yet?"
+  exit 4
+fi
+bit="$(file chroot/bin/true | grep -q 'ELF 64-bit' && echo 64 || echo 32)"
+if [ -d "overlay$bit-$drv-$ver" -a -z "$OVERWRITE" ]; then
+  echo "Error: overlay \"overlay$bit-$drv-$ver\" already exists."
+  exit 5
+fi
+mkdir -p overlay root
+umount root/proc root/sys root/dev root &>/dev/null
+rm -rf overlay/* overlay/.??*
+mount -t aufs -o br:overlay:chroot/ none root/
+if [ -d cache ]; then
+  mkdir -p overlay/usr/src
+  for i in cache/NVIDIA-Linux* cache/ati-driver-installer*
+  do
+    [ -f $i ] && ln $i overlay/usr/src/
+  done
+fi
+cd root/
+mount --bind /proc proc/
+mount --bind /sys sys/
+mount --bind /dev dev/
+cp /etc/resolv.conf etc/resolv.conf 
+cat <<"eof" > usr/sbin/update-initramfs
+#!/bin/sh
+echo "update-initramfs is disabled for overlay-build"
+exit 0
+eof
+cat <<"eof" > overlay.sh
+#!/bin/sh
+
+export LC_ALL=C LANG= DISPLAY=
+
+uname()
+{
+case $1 in
+-m)
+   file /bin/true | grep -q 'ELF 64-bit' && echo x86_64 || echo x86
+   ;;
+-r)
+   basename /lib/modules/*
+   ;;
+esac
+}
+
+eof
+cat usr/local/bin/install-$drv-debian.sh >> overlay.sh
+sed -i '/exit 3/d' overlay.sh
+chmod +x overlay.sh
+chroot . /overlay.sh -v $ver -z
+cd ..
+umount root/proc root/sys root/dev root &>/dev/null
+rm -rf root
+if [ -d cache ]; then
+  mv -f overlay/usr/src/NVIDIA-Linux* cache/ 2>/dev/null
+  mv -f overlay/usr/src/ati-driver-installer* cache/ 2>/dev/null
+fi
+cd overlay
+rm -rf usr/sbin/update-initramfs etc/resolv.conf usr/src/NVIDIA-Linux* usr/src/ati-driver-installer* overlay.sh tmp var/log .??*
+cd ..
+mv overlay "overlay$bit-$drv-$ver"
+
-- 
cgit v1.0