Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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 (enriquelira948@gmail.com)
- # Actualizado por lighta (lightaisme@gmail.com)
- # 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'.
- 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"Instalando dependencias..."$ENDCOLOR
- sudo apt-get install git w3m zenity build-essential gcc libncurses5-dev gxmessage fakeroot
- ######################################################ACTUALIZACIÓN DEL REPOSITORIO##############################################
- 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
- VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
- #####################################DESCARGA DE LAS FUENTES DEL KERNEL####################################################################
- PRINCIPAL=3.x
- #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 }')
- echo -e $YELLOW"La ultima version en kernel.org es la $VERSION"$ENDCOLOR
- sleep 5
- LINUX_VERSION_TAR=linux-$VERSION_CONFIG.tar.bz2
- echo -e $YELLOW"Buscando $LINUX_VERSION_TAR en la carpeta personal "$ENDCOLOR
- BUSQUEDA=$(find $HOME -name $LINUX_VERSION_TAR | grep -o linux-'[0123456789.]*'.tar.bz2)
- DIR=$(find $HOME -name $LINUX_VERSION_TAR | grep linux-'[0123456789.]*'.tar.bz2 | sed "s/linux-[0123456789.]*.tar.bz2//")
- if [ "$BUSQUEDA" = "$LINUX_VERSION_TAR" ]; then
- echo -e $YELLOW"El directorio donde se encontraron las fuentes es $DIR"$ENDCOLOR
- sleep 5
- cd $DIR
- echo -e $YELLOW"Listando archivos .tar.bz2 en $DIR..."$ENDCOLOR
- ls $LINUX_VERSION_TAR
- if [ $? = 0 ]; then
- echo -e "Se encontraron las fuentes del kernel"
- else
- echo -e $RED"No se encontraron las fuentes del kernel"$ENDCOLOR
- exit
- fi
- else
- echo -e $YELLOW"No se encontraron las fuentes, necesita descargalas"$ENDCOLOR
- sleep 2
- gxmessage -center -geometry 600×400 -title “linux-$VERSION_CONFIG” -buttons Si:1,No:2 -default Si -wrap “Versión del kernel de linux: $VERSION. ¿Desea descargarla?”
- case $? in
- 1)
- rm linux*.tar.bz2 >/dev/null 2>&1
- DISPLAY=:0.0 notify-send -i $HOME/.icons/linux.xpm "Versión del kernel: $VERSION_CONFIG" "Descargando desde kernel.org..."
- echo -e $YELLOW"Descargando desde kernel.org a la carpeta `pwd`..."$ENDCOLOR
- sleep 10
- wget -c ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION_CONFIG}.tar.bz2
- #DISPLAY=:0.0 notify-send -i $HOME/.icons/kernel-check.xpm "Version del kernel de linux $VERSION_CONFIG" "Descargado con éxito"
- sleep 5
- ;;
- 2) ;;
- esac
- fi
- ###########################################FIN DE DESCARGA DE LAS FUENTES DEL KERNEL#######################################################
- DIR=$(find $HOME -name $LINUX_VERSION_TAR | grep linux-'[0123456789.]*'.tar.bz2 | sed "s/linux-[0123456789.]*.tar.bz2//")
- echo -e $YELLOW"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
- sleep 4
- cd $DIR
- LINUX_VERSION=linux-$VERSION_CONFIG
- LISTAR=$(ls *.tar.bz2)
- VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')
- if [ $VERSION_CONFIG = $VERSION_LISTADO ]; then
- sleep 3
- sudo cp $DIR/$LISTAR /usr/src/$LISTAR
- cd /usr/src
- 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
- echo -e $YELLOW"Descargando parche bc_wl_complete_patch..."$ENDCOLOR
- wget http://mm-businessconsult.com/wp-content/uploads/2012/05/bc_wl_complete_patch.zip
- 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
- ## Hasta el momento se me ha hecho imposible compilarlo sin que existan errores
- if [ "${BROADCOM_WL}" == "y" ] ; then
- echo -e $YELLOW"Compilando módulo Broadcom"$ENDCOLOR
- tar xzvf ${broadcom}.tar.gz
- unzip bc_wl_complete_patch.zip
- cp -ar src/wl src/wl_orig
- patch src/wl/sys/wl_linux.c < bc_wl_complete_patch.patch
- patch -p1 -N -i linux-recent.patch
- patch -p1 -N -i license.patch
- patch -p1 -N -i user-ioctl.patch
- make
- if [ $? != 0 ]; then
- zenity --error --text="Hubo un error al compilar el controlador Broadcom"
- exit
- fi
- 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 "$DIR"linux*.deb >/dev/null 2>&1
- 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
- echo -e $YELLOW"Se construyó existosamente el kernel-netbook"$ENDCOLOR
- notify-send "kernel-netbook-$VERSION_CONFIG" "Se construyó existosamente el kernel-netbook"
- cd ..
- FILENAME=$(ls linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb)
- if [ ! $? = 0 ]; then
- echo -e $RED"linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb no encontrado, saliendo..."$ENDCOLOR
- exit 0
- fi
- FILENAME=$(ls linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb)
- if [ ! $? = 0 ]; then
- echo -e $RED"linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb no encontrado, saliendo..."$ENDCOLOR
- exit 0
- fi
- echo -e $YELLOW"Moviendo archivos linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb y linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb a $DIR"$ENDCOLOR
- sudo mv /usr/src/linux*.deb $DIR
- echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
- USUARIO=$(echo ${HOME:6})
- sudo chown $USUARIO "$DIR"linux*.deb
- cd $DIR
- sleep 5
- #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE 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 $DIR
- fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
- if [ $? = 1 ]; then
- echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-image"$ENDCOLOR
- fi
- sleep 3
- #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE 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 $DIR
- fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
- sleep 3
- if [ $? = 1 ]; then
- echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-headers"$ENDCOLOR
- fi
- ##########################################################################################################
- 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"Cambiando propietario..."$ENDCOLOR
- USUARIO=$(echo ${HOME:6})
- sudo chown $USUARIO $DIR
- sudo chown -R $USUARIO $HOME/kernel-netbook
- sudo chgrp -R $USUARIO $HOME/kernel-netbook
- 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"Hubo un error: No se encontraron las fuentes O Las versiones difieren, O existe más de un archivo de fuentes"$ENDCOLOR
- sleep 5
- echo -e $YELLOW"Saliendo..."$ENDCOLOR
- exit 0
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement