viewing paste kernel netbook build | Bash

Posted on the
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 301 302 303 304 305 306 307 308 309 310
#!/bin/bash
###################################################################################
# This work is licensed under a Creative Commons Reconocimiento-NoComercial 3.0 Unported License.
# http://creativecommons.org/licenses/by-nc/3.0/deed.es_ES
# Creado por Paulo Lira Gutiérrez ([email protected])
# Actualizado por lighta ([email protected])
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://kernel-netbook.blogspot.com
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
 
# Este script construye paquetes .deb del kernel netbook, con ayuda del repositorio de 'dieghen89'.
#Uso:
#Si no desea realizar el paso de descargar el repositorio de Github, deberá de descargarse la configuración del archivo config situado en:
# https://github.com/dieghen89/kernel-netbook/blob/master/config y copiarlo en una nueva carpeta llamada kernel-netbook dentro de la carpeta personal.
#Además, deberá de descargarse el código fuente de la versión del kernel a construir (en una carpeta llamada Programas dentro de la carpeta personal), debe de coincidir con la versión del archivo de configuración (.config).
 
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
if [ $USER != root ]; then
  echo -e $RED"Error: debes ser root"
  echo -e $YELLOW"Saliendo..."$ENDCOLOR
  exit 0
fi
echo -e $YELLOW"Comprobando conexión a Internet..."$ENDCOLOR
ping www.google.com -c 3 >/dev/null 2>&1
if [ $? = 0 ]; then
echo -e $YELLOW"Si hay conexión a internet"$ENDCOLOR
else
echo -e $RED"No se ha podido establecer una conexión a internet"$ENDCOLOR
exit
fi
echo -e $YELLOW"Actualizando repositorio de kernel-netbook"$ENDCOLOR
if [ -d $HOME/kernel-netbook ]; then
    cd ~/kernel-netbook
    git pull https://github.com/dieghen89/kernel-netbook.git
else
    echo -e $YELLOW"\tDebug, Creando directorio 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"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
sleep 4
if [ ! -d $HOME/Programas ]; then
    echo -e $YELLOW"\tDebug, Creando directorio Programas"$ENDCOLOR
    mkdir $HOME/Programas; 
# En esta carpeta deberán existir las fuentes del kernel que se quieren construir.
fi
cd ~/Programas
#VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | head -2 |tail -1 | awk '{ print $11 }')
VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | grep 'The latest stable '[0123456789.]*'' | head -1 | awk '{ print $11 }')
LINUX_VERSION_TAR=linux-$VERSION.tar.bz2
LINUX_VERSION=linux-$VERSION
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')
LISTAR=$(ls *.tar.bz2)
if [ $VERSION_CONFIG = $VERSION_LISTADO ]; then
echo -e $YELLOW"Instalando dependencias..."$ENDCOLOR
sudo apt-get install git w3m zenity build-essential gcc libncurses5-dev
sleep 3
sudo cp ~/Programas/$LISTAR /usr/src/$LISTAR
cd /usr/src
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
if [ $? = 0 ]; then
echo -e "Se encontraron las fuentes del kernel"
else
echo -e $RED"No se encotraron las fuentes del kernel"$ENDCOLOR
exit
fi
sleep 1
echo -e $YELLOW"Limpiando directorio /usr/src/linux-$VERSION_LISTADO"$ENDCOLOR
sudo rm -rf /usr/src/linux-$VERSION_LISTADO
echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$VERSION_LISTADO..."$ENDCOLOR
sleep 2
sudo tar -xjvf $LISTAR
echo -e $YELLOW"Borrando archivo $LISTAR..."$ENDCOLOR
sudo rm $LISTAR
sleep 2
echo -e $YELLOW"Creando enlace simbólico hacia carpeta linux-$VERSION_LISTADO..."$ENDCOLOR
sudo rm -rf linux
sudo ln -s linux-$VERSION_LISTADO linux
sleep 2
cd /usr/src/linux
 
################################################################################################
#                                         PARCHES                                              #
# ALGUNAS PARTES TOMADAS DEL PKGBUILD DE DIEGUEN89
#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 "n" you you don't want the Tux On Ice support
#
## >> Details for: BROADCOM_WL
#       Set is to "y" if you need the iw module for your wireless card
#
#
#       P.S. this pkgbuild supports the graysky's modprobe_db package
#
#
## >> Details for: UKSM
#       Set it to "y" to enable the testing uKSM patch, 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:
#New official patch
#_toipatch="tuxonice-for-linux-3.8.0-2013-02-24.patch"
_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"
 
echo -e $YELLOW"Descargando parche BFS..."$ENDCOLOR
wget http://ck.kolivas.org/patches/3.0/3.9/${_basekernel}-ck${_ckpatchversion}/${_ckpatchname}.bz2
echo -e $YELLOW"Descargando parche uKSM..."$ENDCOLOR
wget ${_uksm}/${_uksm_name}.patch
echo -e $YELLOW"Descargando parche BFQ..."$ENDCOLOR
wget "${_bfqpath}/0001-block-cgroups-kconfig-build-bits-for-BFQ-v6r1-3.9.patch"
wget "${_bfqpath}/0002-block-introduce-the-BFQ-v6r1-I-O-sched-for-3.9.patch"
wget "${_bfqpath}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v6r1-for-3.9.0.patch"
echo -e $YELLOW"Descargando parche Broadcom..."$ENDCOLOR
wget http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz
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"Según su configuración,se aplicarán los parches BFS, BFQ, uKSM y TuxOnIce"$ENDCOLOR
  # --> BFS
  #Adjust localversion
  bzip2 -d patch-3.9-ck1.bz2
  sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
  patch -Np1 -i $DIR_FUENTE/patch-3.9-ck1
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="Hubo un error al aplicar los parches"
    exit
fi
##Section: Broadcom-wl
  if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compilando módulo 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
 
echo -e $YELLOW"Limpiando el árbol del directorio fuente..."$ENDCOLOR
sudo make mrproper   
#                                      FIN DE PARCHES                                          #
################################################################################################
echo -e $YELLOW"Copiando fichero kernel-netbook/config como .config"$ENDCOLOR
sudo cp $HOME/kernel-netbook/config /usr/src/linux/.config
sleep 6
if [ $GCONFIG = "y" ] ; then
echo -e $YELLOW"Iniciando gconfig"$ENDCOLOR
sudo make gconfig
fi
echo -e $YELLOW"Limpiando el kernel..."$ENDCOLOR
sleep 3
sudo make-kpkg clean
if [ ! $? = 0 ]; then
echo -e $RED"Hubo un error al limpiar el kernel"$ENDCOLOR
zenity --error --text="Hubo un error al limpiar el kernel"
exit
fi
 
sleep 3
if [ $LOCALMODCONFIG = "y" ] ; then
echo -e $YELLOW"Se están incluyendo los módulos que estén corriendo en este momento"$ENDCOLOR
sleep 3
zenity --warning --text="Por favor conecte los periféricos necesarios"
sleep 10
sudo make localmodconfig
echo -e $YELLOW"Ahora puede desconectar los periféricos, se han añadido los módulos necesarios al archivo de configuración"$ENDCOLOR
sleep 3
fi
echo -e $YELLOW"Asegúrese que se haya añadido el archivo .config"$ENDCOLOR
cat /usr/src/linux/.config | grep CONFIG_MATOM
sleep 3
echo -e $YELLOW"Copiando fichero .config a Ubuntu One"$ENDCOLOR
sudo cp /usr/src/linux/.config $HOME/"Ubuntu One"/kernel-netbook/kernel-netbook-$VERSION_LISTADO
echo -e $YELLOW"Compilando el kernel..."$ENDCOLOR
rm ~/Programas/linux*.deb
sudo make-kpkg -j2 --initrd linux_headers linux_image
 
if [ ! $? = 0 ]; then
echo -e $RED"Hubo un error al construir el kernel, saliendo..."$ENDCOLOR
zenity --error --text="Hubo un error al construir el kernel"
exit 0
fi
 
sleep 3
zenity --info --title="kernel-netbook-$VERSION_LISTADO" --text="Se construyó existosamente el kernel-netbook"
 
FILENAME=$(ls linux-image-$VERSION-netbook_${VERSION}_i386.deb)
if [ ! -e $FILENAME ]; then
    echo -e $RED"linux-image-$VERSION-netbook_${VERSION}_i386.deb no encontrado, saliendo..."$ENDCOLOR
    exit 0
fi
 
 
FILENAME=$(ls linux-headers-$VERSION-netbook_${VERSION}_i386.deb)
if [ ! -e $FILENAME ]; then
    echo -e $RED"linux-headers-$VERSION-netbook_${VERSION}_i386.deb no encontrado, saliendo..."$ENDCOLOR
    exit 0
fi
echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
USUARIO=$(echo ${HOME:6})
sudo chown $USUARIO $HOME/Programas/linux*.deb
echo -e $YELLOW"Moviendo archivos .deb a Programas"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
cd $HOME/Programas
sleep 5
#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES LINUX-IMAGE####################
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"Construyendo paquete modificado del archivo de control de linux-image"$ENDCOLOR
cd $HOME/Programas
fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
 
#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES 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"Construyendo paquete modificado del archivo de control de linux-headers"$ENDCOLOR
cd $HOME/Programas
fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
##########################################################################################################
echo -e $YELLOW"Eliminando archivos innecesarios.."$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"Instalando linux-image y 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"Subiendo linux-image y linux-headers a 4shared..."$ENDCOLOR
cadaver --rcfile=$HOME/.4shared-kernel
sleep 5
sudo rm -rf /usr/src/linux-$VERSION_LISTADO
sleep 3
else
echo -e $RED"Las versiones difieren..."$ENDCOLOR
sleep 5
echo -e $YELLOW"Saliendo..."$ENDCOLOR
exit 0
fi
Viewed 1664 times, submitted by enriquelira948.