viewing paste kernel_netbook_upd_script | Bash

Posted on the | Last edited on
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
#!/bin/bash
###################################################################################
# This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
# http://creativecommons.org/licenses/by-nc/3.0/deed.es_ES
# Created by Paulo Lira Gutierrez ([email protected])
# Updated by lighta ([email protected])
# Permission is granted to copy, distribute and / or modify this program always
# And you cite the author and source of http://kernel-netbook.blogspot.com
# And under the terms of the GNU General Public License, Version 3 or any
# Later version published by the Free Software Foundation.
 
# Usage:
# If you want to perform the step of downloading the Github repository, you need to download the config file settings located at:
# Https://github.com/dieghen89/kernel-netbook/blob/master/config and copy in a new folder called kernel-netbook inside the folder.
# In addition, shall have downloaded the source code of the kernel version will commpilar (in a folder called Programs within the folder), must match the version of the configuration file.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
 
if [ $USER != root ]; then
  echo -e $RED"Error: need to be root, Quitting...."$ENDCOLOR
  exit 0
fi
echo -e $YELLOW"Test Internet Connection..."$ENDCOLOR
ping www.google.com -c 3 >/dev/null 2>&1
if [ $? = 0 ]; then
   echo -e $YELLOW"Connection established"$ENDCOLOR
else
   echo -e $RED"Connection test couldn't succed, please verify configuration (trying to reach google.com)"$ENDCOLOR
   exit
fi
 
#downloading/install pkg requirement
echo -e "Checking dependancy"
sudo apt-get install git w3m zenity build-essential gcc libncurses5-dev
#cheking deb file and install it if not
LATEST_DEB=3.9.2
DEB_INST=$(dpkg -l | grep linux-headers-${LATEST_DEB}-netbook)
if [[ -z "$DEB_INST" ]]; then   
    FILENAME=linux-headers-${LATEST_DEB}-netbook_${LATEST_DEB}_i386.deb
    echo -e "Attempt installing $FILENAME"
    if [ ! -e $FILENAME ]; then wget http://downloads.sourceforge.net/project/kernelnetbook/${LATEST_DEB}/$FILENAME; fi
    sudo dpkg -i $FILENAME
fi
DEB_INST2=$(dpkg -l | grep linux-image-${LATEST_DEB}-netbook)
if [[ -z "$DEB_INST2" ]]; then
    FILENAME=linux-image-${LATEST_DEB}-netbook_${LATEST_DEB}_i386.deb
    echo -e "Atempt installing $FILENAME"
    if [ ! -e $FILENAME ]; then wget http://downloads.sourceforge.net/project/kernelnetbook/${LATEST_DEB}/$FILENAME; fi
    sudo dpkg -i $FILENAME
fi
 
echo -e $YELLOW"Updating kernel-netbook directory"$ENDCOLOR
if [ -d $HOME/kernel-netbook ]; then
    cd ~/kernel-netbook
    git pull https://github.com/dieghen89/kernel-netbook.git
else
    echo -e $YELLOW"\tDebug, Creating dir kernel-netbook"$ENDCOLOR  
    git clone https://github.com/dieghen89/kernel-netbook.git $HOME/kernel-netbook
    cd $HOME/kernel-netbook
fi
sleep 5
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
echo -e $YELLOW"Configuration version of archive kernel-netbook/config is $VERSION_CONFIG"$ENDCOLOR
sleep 4
 
if [ ! -d $HOME/Programas ]; then
    echo -e $YELLOW"\tDebug, Creating dir $HOME/Programas"$ENDCOLOR
    mkdir $HOME/Programas; 
fi
 
VERSION=${LATEST_DEB}
#not supported yet
#VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | head -1 |tail -1 | awk '{ print $11 }')
#VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')
LINUX_HEADER=linux-headers-${LATEST_DEB}-netbook
 
cd /usr/src/
if [ ! -e $LINUX_HEADER ]; then
    echo -e $RED"Kernel Headers files: $LINUX_HEADER not found, exiting..."$ENDCOLOR
    exit 0
fi
echo -e $YELLOW"Creating symlink for linux-$VERSION_LISTADO..."$ENDCOLOR
sudo rm -rf linux
sudo ln -s $LINUX_HEADER linux
sleep 2
cd /usr/src/linux
 
################################################################################################
# PATCHES #
# TAKEN FROM SOME PARTS OF DIEGUEN89 PKGBUILD
#https://github.com/dieghen89/kernel-netbook/blob/master/PKGBUILD
TUX_ON_ICE="n"
BROADCOM_WL="n"
UKSM="y"
LOCALMODCONFIG="n"
GCONFIG="n"
INSTALL="n"
 
### HOW-TO:
#
## >> Details for: TUX_ON_ICE
# Set it to "No" you you do not want the Tux On Ice support
#
## >> Details for: BROADCOM_WL
# September is to "and" if you need the iw module for your wireless card
#
#
# P. S. this supports the graysky's PKGBUILD modprobe_db package
#
#
## >> Details for: UKSM
# Set it to "and" to enable the testing uKSM patch, you more info here:
# Http://kerneldedup.org
#
## >> The previous BFQ_IO_SCHEDULER is useless, read the wiki page in google code
#
##########
DIR_FUENTE=/usr/src/linux
_basekernel=3.9
pkgver=${_basekernel}.2
pkgrel=1
 
#Broadcom-wl:
broadcom_ver=5.100.82.112
broadcom="hybrid-portsrc_x86_32-v${broadcom_ver//./_}"
#BFS: - http://users.on.net/~ckolivas/kernel/ -
_ckpatchversion=1
_ckpatchname="patch-${_basekernel}-ck${_ckpatchversion}"
#BFQ: - http://algo.ing.unimo.it/people/paolo/disk_sched/ -
_bfqpath="http://www.algogroup.unimo.it/people/paolo/disk_sched/patches/3.9.0-v6r1"
#TuxOnIce:
_toipatch="$HOME/kernel-netbook/toi-3.9.patch"
 
#uKSM:
_uksm="http://kerneldedup.org/download/uksm/0.1.2.2"
_uksm_name="uksm-0.1.2.2-for-v3.9.ge.1"
 
FILENAME=${_ckpatchname}.bz2
if [ ! -e $FILENAME ]; then
    echo -e $YELLOW "Downloading patch BFS ..." $ENDCOLOR
    wget http://ck.kolivas.org/patches/3.0/3.9/${_basekernel}-ck${_ckpatchversion}/$FILENAME; 
fi
FILENAME=${_uksm_name}.patch
if [ ! -e $FILENAME ]; then
    echo -e $YELLOW"Downloading patch uKSM ..."$ENDCOLOR
    wget ${_uksm}/$FILENAME;
fi
 
FILENAME="0001-block-cgroups-kconfig-build-bits-for-BFQ-v6r1-3.9.patch"
if [ ! -e $FILENAME ]; then
    echo -e $YELLOW"Downloading patch BFQ 1..."$ENDCOLOR
    wget ${_bfqpath}/$FILENAME; 
fi
FILENAME="0002-block-introduce-the-BFQ-v6r1-I-O-sched-for-3.9.patch"
if [ ! -e $FILENAME ]; then
    echo -e $YELLOW"Downloading patch BFQ 2..."$ENDCOLOR
    wget ${_bfqpath}/$FILENAME; 
fi
FILENAME="0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v6r1-for-3.9.0.patch"
if [ ! -e $FILENAME ]; then 
    echo -e $YELLOW"Downloading patch BFQ 3..."$ENDCOLOR
    wget ${_bfqpath}/$FILENAME; 
fi
FILENAME=${broadcom}.tar.gz
if [ ! -e $FILENAME ]; then
    echo -e $YELLOW"Downloading patch Broadcom ..."$ENDCOLOR
    wget http://www.broadcom.com/docs/linux_sta/$FILENAME; 
fi
 
cp $_toipatch $DIR_FUENTE
cp $HOME/kernel-netbook/linux-recent.patch linux-recent.patch
cp $HOME/kernel-netbook/license.patch license.patch
cp $HOME/kernel-netbook/user-ioctl.patch user-ioctl.patch
 
echo -e $YELLOW"Depending on your configuration, apply patches BFS, BFQ, uKSM and TuxOnIce"$ENDCOLOR
  # --> BFS
  #Adjust localversion
bzip2 -d patch-${_basekernel}-ck1.bz2
sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
patch -Np1 -i $DIR_FUENTE/patch-${_basekernel}-ck1
exit
if [ $? = 0 ]; then
    if [ $TUX_ON_ICE = "y" ] ; then
        # --> TOI
        patch -Np1 -i ${_toipatch}
        if [ $? = 0 ]; then
            # --> BFQ
            for patch in $(ls $DIR_FUENTE/000*BFQ*.patch) ; do
                patch -Np1 -i $patch
            done
            if [ $? = 0 ]; then
                # --> uKSM
                if [ $UKSM = "y" ] ; then
                    patch -Np1 -i $DIR_FUENTE/${_uksm_name}.patch
                fi
            fi
        fi
    fi
else
    zenity --error --text="There was an error in applying patches"
    exit
fi
 
##Section: Broadcom-wl
if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compiling module Broadcom" 
    cp -ar src/wl src/wl_orig
    patch -p1 -N -i linux-recent.patch
    patch -p1 -N -i license.patch
    patch -p1 -N -i user-ioctl.patch
    make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
    install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
    rm -r src/wl
    mv src/wl_orig src/wl
fi
 
sleep 3
echo -e $YELLOW"If there is an error, press Ctrl+C"$ENDCOLOR
sleep 7
echo -e $YELLOW"Cleaning the source directory tree ..."$ENDCOLOR
sudo make mrproper   
# END PATCH #
################################################################################################
echo-e $ YELLOW "Copying file as kernel-netbook/config like. config" $ ENDCOLOR
sudo cp $HOME/kernel-netbook/config /usr/src/linux/.config
sleep 6
if [ $GCONFIG = "y" ] ; then
    echo -e $YELLOW"Starting gconfig"$ENDCOLOR
    sudo make gconfig
fi
echo -e $YELLOW"Cleaning the kernel ..."$ENDCOLOR
sleep 3
sudo make-kpkg clean
sleep 3
if [ $LOCALMODCONFIG = "y" ] ; then
    echo -e $YELLOW"That They are including modules are running at this time"$ENDCOLOR
    sleep 3
    zenity --warning --text="Please connect the necessary peripherals"
    sleep 10
    sudo make localmodconfig
    echo -e $YELLOW"You can unplug peripherals Have Been added to The Necessary modules to the configuration file"$ENDCOLOR
    sleep 3
fi
echo -e $YELLOW"Make sure the file is added. config"$ENDCOLOR
cat /usr/src/linux/.config | grep CONFIG_MATOM
sleep 3
echo -e $YELLOW"Compiling the kernel ..."$ENDCOLOR
rm ~/Programas/linux*.deb
sudo make-kpkg -j2 --initrd linux_headers linux_image
sleep 3
echo -e $YELLOW"Plays a beep"$ENDCOLOR
play /usr/share/sounds/Sentinella/Bip-bip.ogg
echo -e $YELLOW"Moving files. Programs deb"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
sleep 5
#######################CHANGE PACKAGE DESCRIPTION LINUX-IMAGE####################
cd $HOME/Programas
echo -e $YELLOW"Changing owner ..."$ENDCOLOR
sudo chown paulo $HOME/Programas/linux*.deb
mkdir linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
dpkg -x linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
dpkg -e linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
cd linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
sed '17,26d' control > $$.tmp && mv $$.tmp control
sleep 2
sed "12a Homepage: code.google.com/p/kernel-netbook" control > $$.tmp && mv $$.tmp control 
echo -e " Static kernel for netbooks with Intel Atom N270/N280/N450/N550/N570 such as eeepc with the add-on of external firmware (broadcom-wl) and patchset (BFS + TOI + BFQ optional) - Only Intel GPU - Give more power to your netbook!.\n ." >> control
echo -e $YELLOW"Building file modified package linux-image control"$ENDCOLOR
cd $HOME/Programas
fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
 
#######################CHANGE PACKAGE DESCRIPTION LINUX-HEADERS####################
mkdir linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
dpkg -x linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
dpkg -e linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
cd linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
sed '16,21d' control > $$.tmp && mv $$.tmp control
sleep 2
sed "12a Homepage: code.google.com/p/kernel-netbook" control > $$.tmp && mv $$.tmp control 
echo -e " Static kernel for netbooks with Intel Atom N270/N280/N450/N550/N570 such as eeepc with the add-on of external firmware (broadcom-wl) and patchset (BFS + TOI + BFQ optional) - Only Intel GPU - Give more power to your netbook!.\n ." >> control
echo -e $YELLOW"Building modified package control file linux-headers"$ENDCOLOR
cd $HOME/Programas
fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
echo -e $YELLOW"Removing unnecessary files .."$ENDCOLOR
sudo rm -rf linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sudo rm -rf linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sudo rm control *.tmp
##########################################################################################################
if [ $INSTALL = "y" ] ; then
    echo -e $YELLOW"Installing linux-image and linux_headers ..."$ENDCOLOR
    sudo dpkg -i linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb
fi
echo -e $YELLOW"Going up linux-image and linux-headers at 4shared ..."$ENDCOLOR
cadaver --rcfile=$HOME/.4shared-kernel
sleep 5
sudo rm -rf /usr/src/linux-$VERSION_LISTADO
sleep 3
Viewed 2374 times, submitted by lighta.