# Setup Variables export nam=`who | cut -d' ' -f1 | sort | uniq` export arch=`/bin/uname -m` export lin=`lsb_release -cs` export proc=`grep --count processor /proc/cpuinfo` export cp1=1 export cp2=2 export cp4=4 export cp6=6 export deb=wheezy export ub=trusty export mt=rebecca export x86=i686 export x64=x86_64 export a=linux-image-xenomai.x86-686-pae export g=linux-headers-xenomai.x86-686-pae export b=linux-image-3.4-9-rtai-686-pae export h=linux-headers-3.4-9-rtai-686-pae export d=rtai-modules-3.4-9-rtai-686-pae export c=linux-image-rt-686-pae export i=linux-headers-rt-686-pae export x='' export xh='' export r='' export rh='' export rd='' export rt='' export rth='' export q1='' export q2='' export q3='' # Check arch & set kernel/arch if [ "$arch" = "$x64" ];then clear echo " " echo " " echo " " echo " Your system is loaded with 64 BIT operating system " echo " " echo " System must be setup with 32 BIT operating system" echo " " echo " This will only work with 32 BIT operating systems" echo " " echo " Ubuntu 14.04.1 LTS codename: Trusty, 32Bit" echo " Debian 7.8 codename: Wheezy, 32Bit" echo " Linux Mint 17.1, codename: Rebecca, 32Bit" echo " " echo " Press ENTER to EXIT" echo -n " " read var_name exit else echo " " fi if [ "$arch" = "$x86" ];then x=$a && r=$b && rt=$c && xh=$g && rh=$h && rth=$i && rd=$d else echo " " fi # Promote user for options clear echo " " echo " " echo " " echo -n "Do you want to install Xenomai Kernel (y/n)? " stty raw -echo answer=$( while ! head -c 1 | grep -i '[ny]' ;do true ;done ) stty sane if echo "$answer" | grep -iq "^y" ;then q1=true else q1=false fi clear echo " " echo " " echo " " echo " " echo " " echo " " echo -n "Do you want to install Rtai Kernel (y/n)? " stty raw -echo answer=$( while ! head -c 1 | grep -i '[ny]' ;do true ;done ) stty sane if echo "$answer" | grep -iq "^y" ;then q2=true else q2=false fi clear echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo -n "Do you want to install Rt-preempt Kernel (y/n)? " stty raw -echo answer=$( while ! head -c 1 | grep -i '[ny]' ;do true ;done ) stty sane if echo "$answer" | grep -iq "^y" ;then q3=true else q3=false fi if [ $q1 = false ] && [ $q2 = false ] && [ $q3 = false ]; then clear echo " " echo " " echo " " echo " You must answered yes for at lest one of the Kernel choices " echo " " echo " Start over buy envoking in Terminal" echo " sudo ./SySsetup.sh" echo " " echo " Press ENTER to start over" echo -n " " read var_name exit else echo " " fi clear echo " " echo " " echo " " echo " If you answered something wrong and want to start over " echo " Press n for no now" echo " Then start over buy envoking in Terminal" echo " sudo ./SySsetup.sh" echo " " echo " " echo " If you press y for yes there is no turning back" echo " If your answer is yes do not stop script file" echo " You could make your system unbootable if stopped" echo " " echo -n " Are you sure you want to continue (y/n)? " stty raw -echo answer=$( while ! head -c 1 | grep -i '[ny]' ;do true ;done ) stty sane if echo "$answer" | grep -iq "^y" ;then echo " " else exit fi sudo locale-gen --purge --no-archive sudo update-initramfs -u -t # Setup sources clear echo " " echo " " echo " " echo " " echo " " echo "----->Setting up Sources" sh -c \ "echo 'deb http://deb.dovetail-automata.com wheezy main' > \ /etc/apt/sources.list.d/machinekit.list" sudo apt-get -y --force-yes update sudo apt-get -y --force-yes install dovetail-automata-keyring sudo apt-get -y --force-yes update if [ "$lin" = "$ub" ];then sudo echo "# Added for Linuxcnc" | sudo tee -a /etc/apt/sources.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AC93F7A sudo echo "deb http://us.archive.ubuntu.com/ubuntu precise main universe" | sudo tee -a /etc/apt/sources.list sudo echo "deb-src http://us.archive.ubuntu.com/ubuntu precise main universe" | sudo tee -a /etc/apt/sources.list sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key 8f374fef sudo echo "deb http://linuxcnc.org/ precise base 2.6" | sudo tee -a /etc/apt/sources.list wget -q -O- https://ftp-master.debian.org/keys/archive-key-7.0.asc | sudo apt-key add - sudo echo "deb http://ftp.at.debian.org/debian-backports/ squeeze-backports main" | sudo tee -a /etc/apt/sources.list sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer else echo " " fi if [ "$lin" = "$mt" ];then sudo echo "# Added for Linuxcnc" | sudo tee -a /etc/apt/sources.list sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AC93F7A sudo echo "deb http://us.archive.ubuntu.com/ubuntu precise main universe" | sudo tee -a /etc/apt/sources.list sudo echo "deb-src http://us.archive.ubuntu.com/ubuntu precise main universe" | sudo tee -a /etc/apt/sources.list sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key 8f374fef sudo echo "deb http://linuxcnc.org/ precise base 2.6" | sudo tee -a /etc/apt/sources.list wget -q -O- https://ftp-master.debian.org/keys/archive-key-7.0.asc | sudo apt-key add - sudo echo "deb http://ftp.at.debian.org/debian-backports/ squeeze-backports main" | sudo tee -a /etc/apt/sources.list sudo add-apt-repository -y ppa:danielrichter2007/grub-customizer else echo " " fi if [ "$lin" = "$deb" ];then sudo echo "# Added for Linuxcnc" | sudo tee -a /etc/apt/sources.list sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-key 8f374fef sudo echo "deb http://linuxcnc.org/ precise base 2.6" | sudo tee -a /etc/apt/sources.list sudo echo "deb http://ftp.us.debian.org/debian wheezy-backports main" | sudo tee -a /etc/apt/sources.list wget -q -O- https://ftp-master.debian.org/keys/archive-key-7.0.asc | sudo apt-key add - sudo echo "deb http://ftp.at.debian.org/debian-backports/ squeeze-backports main" | sudo tee -a /etc/apt/sources.list echo " " fi sudo apt-get -y --yes update if [ $? -eq 0 ]; then echo "----->Setting up Sources complete" else echo "----->Setting up Sources failed" exit fi sudo apt-get -y --yes update if [ $? -eq 0 ]; then echo "----->Setting up Sources complete" else echo "----->Setting up Sources failed" exit fi # Setup Menu Items clear echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo "----->Setup Menu Items" mkdir /home/$nam/.local/share/desktop-directories sudo chown $nam: /home/$nam/.local/share/desktop-directories cd /home/$nam/local_share_desktop-directories sed -i -e "s/jeta/$nam/g" *.directory cp -a *.directory /home/$nam/.local/share/desktop-directories sudo chown $nam: /home/$nam/.local/share/desktop-directories/*.directory sudo chmod +x /home/$nam/.local/share/desktop-directories/*.directory cd ~ mkdir /home/$nam/.config/menus mkdir /home/$nam/.config/menus/applications-merged sudo chown $nam: /home/$nam/.config/menus/applications-merged cd /home/$nam/config_menus_applications-merged sed -i -e "s/jeta/$nam/g" *.menu cp -a *.menu /home/$nam/.config/menus/applications-merged sudo chown $nam: /home/$nam/.config/menus/applications-merged/*.menu sudo chmod +x /home/$nam/.config/menus/applications-merged/*.menu mkdir /home/$nam/.local mkdir /home/$nam/.local/share mkdir /home/$nam/.local/share/applications sudo chown $nam: /home/$nam/.local cd ~ if [ $? -eq 0 ]; then echo "----->Setup Menu Items Complete" else echo "----->Setup Menu Items Failed" exit fi # Downloading & install essentials clear echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo "----->Downloading & Installing Essentials" wget http://ftp.us.debian.org/debian/pool/main/b/boost1.49/libboost-python1.49.0_1.49.0-3.2_i386.deb sudo gdebi -n libboost-python1.49.0_1.49.0-3.2_i386.deb sudo apt-get -y --yes install git dpkg-dev git-core gitk git-gui build-essential gdebi-core graphviz tclx groff blt bwidget freeglut3 libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprint2.2-data libgnomeprintui2.2-common libmodbus5 libtcl8.5 libtk-img libtk8.5 libtk8.6 python-gst0.10 python-gtkglext1 python-imaging-tk python-numpy python-opengl python-pil.imagetk python-tk python-xlib tcl8.5 tclreadline tclx8.4 tk tk8.5 tk8.6 hostmot2-firmware-all inkscape sudo apt-get -y --yes update if [ $q1 = true ];then sudo apt-get -y --yes install libxenomai-dev else echo " " fi if [ "$lin" = "$deb" ];then wget https://launchpadlibrarian.net/128929069/grub-customizer_3.0.4-0ubuntu1~ppa1o_i386.deb sudo gdebi -n grub-customizer_3.0.4-0ubuntu1~ppa1o_i386.deb else echo " " fi if [ "$lin" = "$ub" ];then sudo apt-get -y --yes install grub-customizer else echo " " fi if [ "$lin" = "$mt" ];then sudo apt-get -y --yes install grub-customizer else echo " " fi wget http://launchpadlibrarian.net/99012672/mesa-common-dev_8.0.2-0ubuntu3_i386.deb sudo gdebi -n mesa-common-dev_8.0.2-0ubuntu3_i386.deb sudo apt-get -y --yes install libosmesa6 sudo apt-get -y --yes install libgl1-mesa-swx11 sudo apt-get -y --yes install libgl1-mesa-swx11-dev echo "Moving Files" sudo mv /home/$nam/Inkscape_ext/*.* /usr/share/inkscape/extensions rm -rf /home/$nam/Inkscape_ext if [ "$lin" = "$deb" ];then mv /home/$nam/reference.en.pdf /home/$nam/Documents else echo " " fi if [ "$lin" = "$mt" ];then mv /home/$nam/english_17.1.pdf /home/$nam/Documents else echo " " fi if [ "$lin" = "$ub" ];then mv /home/$nam/ubuntupocketguide-v1-1.pdf /home/$nam/Documents else echo " " fi rm -rf /home/$nam/english_17.1.pdf rm -rf /home/$nam/reference.en.pdf rm -rf /home/$nam/ubuntupocketguide-v1-1.pdf mv /home/$nam/TLCL-13.07.pdf /home/$nam/Documents sed -i -e "s/jeta/$nam/g" /home/$nam/Linuxcnc-Configuration-Selector.sh sed -i -e "s/jeta/$nam/g" /home/$nam/latency-test-run-in-place.sh sed -i -e "s/jeta/$nam/g" /home/$nam/stepconf.sh sed -i -e "s/jeta/$nam/g" /home/$nam/pncconf.sh sed -i -e "s/jeta/$nam/g" /home/$nam/latency-histogram.sh cd /home/$nam/menu/ sed -i -e "s/jeta/$nam/g" *.desktop sudo chmod +x /home/$nam/menu/*.desktop mv /home/$nam/menu/linuxcnc-latency.desktop /home/$nam/.local/share/applications/ mv /home/$nam/menu/Linuxcnc-Configuration-Selector.desktop /home/$nam/.local/share/applications/ mv /home/$nam/menu/linuxcnc-latency-histogram.desktop /home/$nam/.local/share/applications/ mv /home/$nam/menu/linuxcnc-PncconfConfig-Wizard.desktop /home/$nam/.local/share/applications/ mv /home/$nam/menu/linuxcnc-StepConfig-Wizard.desktop /home/$nam/.local/share/applications/ mkdir /home/$nam/.linuxcnc_sc sudo chown $nam: /home/$nam/.linuxcnc_sc mv /home/$nam/menu /home/$nam/.linuxcnc_sc/ mv /home/$nam/Linuxcnc-Configuration-Selector.sh /home/$nam/.linuxcnc_sc/ mv /home/$nam/latency-test-run-in-place.sh /home/$nam/.linuxcnc_sc/ mv /home/$nam/latency-histogram.sh /home/$nam/.linuxcnc_sc/ mv /home/$nam/pncconf.sh /home/$nam/.linuxcnc_sc/ mv /home/$nam/stepconf.sh /home/$nam/.linuxcnc_sc/ if [ $? -eq 0 ]; then echo "----->Moving Files Complete" else echo "----->Moving Files Failed" exit fi # Update Grub for Latency clear echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo " " echo "------>Updating Grub for Lantency" if [ "$lin" = "$deb" ] && [ "$proc" = "$cp1" ];then sudo sed -i -e 's/"quiet"/"quiet splash lapic noxsave acpi_osi= idle=poll clocksource=acpi_pm"/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$deb" ] && [ "$proc" = "$cp2" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/"quiet"/"quiet splash lapic noxsave acpi_osi= isolcpus=1 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm"/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$deb" ] && [ "$proc" = "$cp4" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/"quiet"/"quiet splash lapic noxsave acpi_osi= isolcpus=2,3 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm"/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$deb" ] && [ "$proc" = "$cp6" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/"quiet"/"quiet splash lapic noxsave acpi_osi= isolcpus=3,4,5 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm"/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$ub" ] && [ "$proc" = "$cp1" ];then sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$ub" ] && [ "$proc" = "$cp2" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=1 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$ub" ] && [ "$proc" = "$cp4" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=2,3 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$ub" ] &&[ "$proc" = "$cp6" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=3,4,5 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$mt" ] && [ "$proc" = "$cp1" ];then sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$mt" ] && [ "$proc" = "$cp2" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=1 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$mt" ] && [ "$proc" = "$cp4" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=2,3 acpi_irq_nobalance noirqbalance idle=poll vmalloc=32MB clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ "$lin" = "$mt" ] &&[ "$proc" = "$cp6" ];then sudo apt-get -y --yes remove irqbalance sudo sed -i -e 's/splash/splash lapic noxsave acpi_osi= isolcpus=3,4,5 acpi_irq_nobalance noirqbalance idle=poll clocksource=acpi_pm/' /etc/default/grub sudo update-grub else echo " " fi if [ $? -eq 0 ]; then echo "----->Grub Update Complete" else echo "----->Grub Update Failed" exit fi echo "----->Downloading & installing Kernels & Kernel Headers" if [ "$lin" = "$deb" ] && [ $q1 = true ]; then sudo apt-get -y --yes install $x $xh sudo adduser $nam xenomai else echo " " fi if [ "$lin" = "$deb" ] && [ $q2 = true ]; then sudo apt-get -y --yes install $r $rd sudo apt-get -y --yes install $rh sudo echo " * - memlock 20480" | sudo tee -a /etc/security/limits.conf else echo " " fi if [ "$lin" = "$deb" ] && [ $q3 = true ]; then sudo apt-get -y --yes install $rt $rth else echo " " fi if [ "$lin" = "$ub" ] && [ $q1 = true ]; then sudo apt-get -y --yes install firmware-linux-free- $x $xh sudo adduser $nam xenomai else echo " " fi if [ "$lin" = "$ub" ] && [ $q2 = true ]; then sudo apt-get -y --yes install $r $rd sudo apt-get -y --yes install $rh sudo echo " * - memlock 20480" | sudo tee -a /etc/security/limits.conf else echo " " fi if [ "$lin" = "$ub" ] && [ $q3 = true ]; then sudo apt-get -y --yes install firmware-linux-free- $rt $rth else echo " " fi if [ "$lin" = "$mt" ] && [ $q1 = true ]; then sudo apt-get -y --yes install $x $xh sudo adduser $nam xenomai else echo " " fi if [ "$lin" = "$mt" ] && [ $q2 = true ]; then sudo apt-get -y --yes install $r $rd sudo apt-get -y --yes install $rh sudo echo " * - memlock 20480" | sudo tee -a /etc/security/limits.conf else echo " " fi if [ "$lin" = "$mt" ] && [ $q3 = true ]; then sudo apt-get -y --yes install $rt $rth else echo " " fi if [ $? -eq 0 ]; then echo "----->Downloading & installing kernels & Kernel Headers Complete" else echo "----->Downloading & installing kernels & Kernel Headers Failed" exit fi clear echo " Press [ENTER] ,...:" echo " Then copy the following then paste into Terminal" echo " " echo " cd ~;git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc_source" echo " " echo " Then press ENTER again" echo " " echo " " echo "The above will download Linuxcnc master development version" echo "to directory linuxcnc_source when it has finished close Terminal" echo " Refer to readme to choose default boot kernel" echo " Using Grub Coustomizer" echo " " echo " " echo " " echo " " echo " " echo -n " " read var_name # Cleanup cd ~ rm -rf /home/$nam/local_share_desktop-directories && rm -rf /home/$nam/config_menus_applications-merged && rm -rf /home/$nam/grub-customizer_3.0.4-0ubuntu1~ppa1o_i386.deb && rm -rf libboost-python1.49.0_1.49.0-3.2_i386.deb && rm -rf mesa-common-dev_8.0.2-0ubuntu3_i386.deb && rm -rf /home/$nam/SySsetup.sh exit