#!/bin/sh # Built on TCL v4.4 # Required extensions: # toolchain64 # compiletc # bison # diffutils # file # findutils # flex # gawk # gcc # gcc_libs # binutils # mpc # mpfr # gmp # grep # m4 # make # patch # pkg-config # glib2 # libffi # popt # sed # e2fsprogs_base-dev # eglibs_base-dev # fltk_base-dev # freetype_base-dev # gcc_base-dev # imlib2_base-dev # jpeg_base-dev # libpng_base-dev # linux-3.0.1_api_headers # util-linux_base-dev # zlib_base-dev # squashfs-tools-4.x # advcomp # tar # Xlibs # Xorg-7.6-dev # Xorg-7.6-3d # Xorg-7.6 # pixman # fontconfig # expat2 # Xorg-7.6-bin # Xorg-7.6-lib # Xorg-fonts # xf86-video-all # xf86-video-apm # xf86-video-ark # xf86-video-ast # xf86-video-ati # firmware-radeon # xf86-video-chips # xf86-video-cirrus # xf86-video-geode # xf86-video-glint # xf86-video-i128 # xf86-video-i740 # xf86-video-intel # xf86-video-mach64 # xf86-video-mga # xf86-video-neomagic # xf86-video-newport # xf86-video-nv # xf86-video-openchrome # xf86-video-r128 # xf86-video-rendition # xf86-video-s3 # xf86-video-s3virge # xf86-video-savage # xf86-video-siliconmotion # xf86-video-sis # xf86-video-sisusb # xf86-video-tdfx # xf86-video-tga # xf86-video-trident # xf86-video-tseng # xf86-video-v4l # xf86-video-vmware # xf86-video-voodoo # xf86-video-xgi # xf86-video-xgixp # graphics-KERNEL # i2c-KERNEL # bash # ncurses # ncurses-common # gcc.bart # binutils getTime.sh installExtension() { if [ ! -e /usr/local/tce.installed/$1 ]; then echo "Installing "$1" ..." if [ -e /etc/sysconfig/tcedir/optional/$1.tcz ]; then tce-load -i $1 else tce-load -wi $1 fi [ ! -e /usr/local/tce.installed/$1 ] && echo "Error: Extension "$1" not installed! Aborting" && exit fi } createExtension() { mksquashfs $1 $1.tcz -noappend [ ! -e $1.tcz ] && echo "Error: "$1".tcz not created! Aborting" && exit } unpackSrc() { #unpack source if [ -e $1.tar.bz2 ]; then tar -jxf $1.tar.bz2 elif [ -e $1.tb2 ]; then tar -jxf $1.tb2 elif [ -e $1.tbz ]; then tar -jxf $1.tbz elif [ -e $1.tar.gz ]; then tar -zxf $1.tar.gz elif [ -e $1.tgz ]; then tar -zxf $1.tgz elif [ -e $1.tar.xz ]; then tar -Jxf $1.tar.xz elif [ -e $1.txz ]; then tar -Jxf $1.txz elif [ -e $1.tar.lzma ]; then tar -xf $1.tar.lzma --lzma elif [ -e $1.tlz ]; then tar -xf $1.tlz --lzma else echo "Source "$1" not found! Aborting" && exit fi } # Install these extensions automagically export EXTS="toolchain64 compiletc squashfs-tools-4.x advcomp Xlibs Xorg-7.6-dev Xorg-7.6-3d bash automake binutils" export TCEDIR=`readlink /etc/sysconfig/tcedir` export CFLAGS="-Os -pipe" export CXXFLAGS=$CFLAGS" -fno-exceptions -fno-rtti" export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig export KERN=`uname -r` export EXTNAME="nvidia-glx" export MODNAME="nvidia-module-"$KERN export MODPATH="usr/local/lib/modules/"$KERN"/kernel/drivers/video" export NVVER="280.13" export VER="-$NVVER" export DESTDIR=$PWD/$EXTNAME # switch the commented line to get 64 bit module # must be in a 64 bit user environment to compile the 64 bit module # only the module is different between the 32 bit and 64 bit versions in tinycore export PKG32="NVIDIA-Linux-x86"$VER export PKGNAME="NVIDIA-Linux-x86_64"$VER for f in $EXTS; do installExtension $f done export ARCH=x86_64 export CROSS_COMPILE=x86_64-unknown-linux-gnu- export CC=x86_64-unknown-linux-gnu- export HOSTCC=$CC export LDFLAGS="-Wl,-rpath,/usr/local/x64/x86_64-unknown-linux-gnu/lib -Wl,-rpath,/usr/local/x64/lib -Wl,-rpath-link,/usr/local/x64/x86_64-unknown-linux-gnu/lib -Wl,-rpath-link,/usr/local/x64/lib" export LD=x86_64-unknown-linux-gnu- export HOSTLD=$LD export PATH=/usr/local/x64/bin:$PATH # build 64 bit modules # from Arslan S's module-prepare.sh script echo "Preparing modules" set -e LINUX_SOURCE=linux-${KERN%%-*}-patched.txz MIRROR=http://http://distro.ibiblio.org/tinycorelinux/4.x/x86/release/src/kernel CONFIG=config-$KERN LINUX_DIR=linux-${KERN%%-*} if [ ! -f "$LINUX_SOURCE" ]; then wget ${MIRROR}/${LINUX_SOURCE} fi if [ ! -f "$CONFIG" ]; then wget ${MIRROR}/${CONFIG} fi [ -d "$LINUX_DIR" ] && sudo rm -rf $LINUX_DIR tar -xf $LINUX_SOURCE cd $LINUX_DIR cp ../${CONFIG} .config make ARCH=$ARCH CROSS_COMPILE=$CC oldconfig make ARCH=$ARCH CROSS_COMPILE=$CC modules_prepare cd .. sudo ln -s $PWD/$LINUX_DIR /lib/modules/$KERN/build sudo rm -rf /usr/local/bin/cc /usr/local/bin/ld sudo ln -s /usr/local/x64/bin/x86_64-unknown-linux-gnu-gcc /usr/local/bin/cc sudo ln -s /usr/local/x64/bin/x86_64-unknown-linux-gnu-ld /usr/local/bin/ld sudo sh $PKGNAME.run -x sudo sh $PKG32.run -x sudo cp -a $PKG32/nvidia-* $PKGNAME cd $PKGNAME sudo ./nvidia-installer -a -e -q -n --no-cc-version-check --no-runlevel-check --no-rpms -b --no-x-check --no-distro-scripts --x-prefix=/usr/local --x-module-path=/usr/local/lib/X11/modules --x-library-path=/usr/local/lib --opengl-prefix=/usr/local --opengl-libdir=lib --utility-prefix=/usr/local --utility-libdir=lib --documentation-prefix=/usr/local --kernel-install-path=/$MODPATH echo "Building Extension" mkdir -p $MODNAME/$MODPATH $DESTDIR/usr/local/bin $DESTDIR-dev/usr/local/bin $DESTDIR-dev/usr/local/lib $DESTDIR-doc/usr/local/share cd $MODNAME sudo cp -a ../$PKGNAME/kernel/nvidia.ko $MODPATH gzip -2 $MODPATH/nvidia.ko advzip -z4 $MODPATH/nvidia.ko.gz sudo chown -R root:root usr/local/lib/modules cd .. createExtension $MODNAME #sudo rm -rf $LINUX_DIR $PKGNAME $MODNAME # Create extension support files and test installExtension "submitqc4" submitqc4