Advertisement
enriquelira

kernel netbook 3.9.2 build deb updated

May 18th, 2013
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 15.59 KB | None | 0 0
  1. #!/bin/bash
  2. ###################################################################################
  3. # This work is licensed under a Creative Commons Reconocimiento-NoComercial 3.0 Unported License.
  4. # http://creativecommons.org/licenses/by-nc/3.0/deed.es_ES
  5. # Creado por Paulo Lira Gutiérrez (enriquelira948@gmail.com)
  6. # Actualizado por lighta (lightaisme@gmail.com)
  7. # Se concede permiso para copiar, distribuir y/o modificar este programa siempre
  8. # y cuando se cite al autor y la fuente de http://kernel-netbook.blogspot.com
  9. # y según los términos de la GNU General Public License, Versión 3 o cualquiera
  10. # posterior publicada por la Free Software Foundation.
  11.  
  12. # Este script construye paquetes .deb del kernel netbook, con ayuda del repositorio de 'dieghen89'.
  13. YELLOW="\033[1;33m"
  14. ENDCOLOR="\033[0m"
  15. RED="\033[0;31m"
  16. if [ $USER != root ]; then
  17.   echo -e $RED"Error: debes ser root"
  18.   echo -e $YELLOW"Saliendo..."$ENDCOLOR
  19.   exit 0
  20. fi
  21. echo -e $YELLOW"Comprobando conexión a Internet..."$ENDCOLOR
  22. ping www.google.com -c 3 >/dev/null 2>&1
  23. if [ $? = 0 ]; then
  24.     echo -e $YELLOW"Si hay conexión a internet"$ENDCOLOR
  25.     else
  26.     echo -e $RED"No se ha podido establecer una conexión a internet"$ENDCOLOR
  27.     exit
  28. fi
  29. echo -e $YELLOW"Instalando dependencias..."$ENDCOLOR
  30. sudo apt-get install git w3m zenity build-essential gcc libncurses5-dev gxmessage fakeroot
  31. ######################################################ACTUALIZACIÓN DEL REPOSITORIO##############################################
  32. echo -e $YELLOW"Actualizando repositorio de kernel-netbook"$ENDCOLOR
  33. if [ -d $HOME/kernel-netbook ]; then
  34.     cd ~/kernel-netbook
  35.     git pull https://github.com/dieghen89/kernel-netbook.git
  36. else
  37.         echo -e $YELLOW"\tDebug, Creando directorio kernel-netbook"$ENDCOLOR   
  38.     git clone https://github.com/dieghen89/kernel-netbook.git $HOME/kernel-netbook
  39.     cd $HOME/kernel-netbook
  40. fi
  41. VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
  42. #####################################DESCARGA DE LAS FUENTES DEL KERNEL####################################################################
  43. PRINCIPAL=3.x
  44. #VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | head -2 |tail -1 | awk '{ print $11 }')
  45. VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | grep 'The latest stable '[0123456789.]*'' | head -1 | awk '{ print $11 }')
  46. echo -e $YELLOW"La ultima version en kernel.org es la  $VERSION"$ENDCOLOR
  47. sleep 5
  48. LINUX_VERSION_TAR=linux-$VERSION_CONFIG.tar.bz2
  49. echo -e $YELLOW"Buscando $LINUX_VERSION_TAR en la carpeta personal "$ENDCOLOR
  50. BUSQUEDA=$(find $HOME -name $LINUX_VERSION_TAR | grep -o linux-'[0123456789.]*'.tar.bz2)
  51. DIR=$(find $HOME -name $LINUX_VERSION_TAR | grep  linux-'[0123456789.]*'.tar.bz2 | sed "s/linux-[0123456789.]*.tar.bz2//")
  52. if [ "$BUSQUEDA" = "$LINUX_VERSION_TAR" ]; then
  53.     echo -e $YELLOW"El directorio donde se encontraron las fuentes es $DIR"$ENDCOLOR
  54.     sleep 5
  55.     cd $DIR
  56.     echo -e $YELLOW"Listando archivos .tar.bz2 en $DIR..."$ENDCOLOR
  57.     ls $LINUX_VERSION_TAR
  58.         if [  $? = 0 ]; then
  59.             echo -e "Se encontraron las fuentes del kernel"
  60.             else
  61.             echo -e $RED"No se encontraron las fuentes del kernel"$ENDCOLOR
  62.             exit
  63.         fi
  64.     else
  65.     echo -e $YELLOW"No se encontraron las fuentes, necesita descargalas"$ENDCOLOR
  66.     sleep 2
  67.     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?”
  68.     case $? in
  69.     1) 
  70.     rm  linux*.tar.bz2 >/dev/null 2>&1 
  71.     DISPLAY=:0.0 notify-send -i $HOME/.icons/linux.xpm "Versión del kernel: $VERSION_CONFIG" "Descargando desde kernel.org..."
  72.     echo -e $YELLOW"Descargando desde kernel.org a la carpeta `pwd`..."$ENDCOLOR
  73.     sleep 10
  74.    
  75.     wget -c ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION_CONFIG}.tar.bz2
  76.     #DISPLAY=:0.0 notify-send -i $HOME/.icons/kernel-check.xpm "Version del kernel de linux $VERSION_CONFIG" "Descargado con éxito"
  77.     sleep 5
  78.     ;;
  79.     2)  ;;
  80.     esac
  81. fi
  82.  
  83. ###########################################FIN DE DESCARGA DE LAS FUENTES DEL KERNEL#######################################################
  84. DIR=$(find $HOME -name $LINUX_VERSION_TAR | grep  linux-'[0123456789.]*'.tar.bz2 | sed "s/linux-[0123456789.]*.tar.bz2//")
  85. echo -e $YELLOW"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
  86. sleep 4
  87. cd $DIR
  88. LINUX_VERSION=linux-$VERSION_CONFIG
  89. LISTAR=$(ls *.tar.bz2)
  90. VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')
  91. if [ $VERSION_CONFIG = $VERSION_LISTADO ]; then
  92.     sleep 3
  93.     sudo cp $DIR/$LISTAR /usr/src/$LISTAR
  94.     cd /usr/src
  95.     sleep 1
  96.     echo -e $YELLOW"Limpiando directorio /usr/src/linux-$VERSION_LISTADO"$ENDCOLOR
  97.     sudo rm -rf /usr/src/linux-$VERSION_LISTADO
  98.     echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$VERSION_LISTADO..."$ENDCOLOR
  99.     sleep 2
  100.     sudo tar -xjvf $LISTAR
  101.     echo -e $YELLOW"Borrando archivo $LISTAR..."$ENDCOLOR
  102.     sudo rm $LISTAR
  103.     sleep 2
  104.     echo -e $YELLOW"Creando enlace simbólico hacia carpeta linux-$VERSION_LISTADO..."$ENDCOLOR
  105.     sudo rm -rf linux
  106.     sudo ln -s linux-$VERSION_LISTADO linux
  107.     sleep 2
  108.     cd /usr/src/linux
  109. ################################################################################################
  110. #                                         PARCHES                                              #
  111. # ALGUNAS PARTES TOMADAS DEL PKGBUILD DE DIEGUEN89
  112. #https://github.com/dieghen89/kernel-netbook/blob/master/PKGBUILD
  113.     TUX_ON_ICE="n"
  114.     BROADCOM_WL="n"
  115.     UKSM="y"
  116.     LOCALMODCONFIG="n"
  117.     GCONFIG="n"
  118.     INSTALL="n"
  119.  
  120. ### HOW-TO:
  121. #
  122. ## >> Details for: TUX_ON_ICE
  123. #       Set it to "n" you you don't want the Tux On Ice support
  124. #
  125. ## >> Details for: BROADCOM_WL
  126. #       Set is to "y" if you need the iw module for your wireless card
  127. #
  128. #
  129. #       P.S. this pkgbuild supports the graysky's modprobe_db package
  130. #
  131. #
  132. ## >> Details for: UKSM
  133. #       Set it to "y" to enable the testing uKSM patch, more info here:
  134. #       http://kerneldedup.org
  135. #
  136. ## >> The previous BFQ_IO_SCHEDULER is useless, read the wiki page in google code
  137. #
  138. ##########
  139.     DIR_FUENTE=/usr/src/linux
  140.     _basekernel=3.9
  141.     pkgver=${_basekernel}.2
  142.     pkgrel=1
  143.  
  144.     #Broadcom-wl:
  145.     broadcom_ver=5.100.82.112
  146.     broadcom="hybrid-portsrc_x86_32-v${broadcom_ver//./_}"
  147.     #BFS: - http://users.on.net/~ckolivas/kernel/ -
  148.     _ckpatchversion=1
  149.     _ckpatchname="patch-${_basekernel}-ck${_ckpatchversion}"
  150.     #BFQ: - http://algo.ing.unimo.it/people/paolo/disk_sched/ -
  151.     _bfqpath="http://www.algogroup.unimo.it/people/paolo/disk_sched/patches/3.9.0-v6r1"
  152.     #TuxOnIce:
  153.     #New official patch
  154.     #_toipatch="tuxonice-for-linux-3.8.0-2013-02-24.patch"
  155.     _toipatch="$HOME/kernel-netbook/toi-3.9.patch"
  156.  
  157.     #uKSM:
  158.     _uksm="http://kerneldedup.org/download/uksm/0.1.2.2"
  159.     _uksm_name="uksm-0.1.2.2-for-v3.9.ge.1"
  160.  
  161.     echo -e $YELLOW"Descargando parche BFS..."$ENDCOLOR
  162.     wget http://ck.kolivas.org/patches/3.0/3.9/${_basekernel}-ck${_ckpatchversion}/${_ckpatchname}.bz2
  163.     echo -e $YELLOW"Descargando parche uKSM..."$ENDCOLOR
  164.     wget ${_uksm}/${_uksm_name}.patch
  165.     echo -e $YELLOW"Descargando parche BFQ..."$ENDCOLOR
  166.     wget "${_bfqpath}/0001-block-cgroups-kconfig-build-bits-for-BFQ-v6r1-3.9.patch"
  167.     wget "${_bfqpath}/0002-block-introduce-the-BFQ-v6r1-I-O-sched-for-3.9.patch"
  168.     wget "${_bfqpath}/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v6r1-for-3.9.0.patch"
  169.     echo -e $YELLOW"Descargando parche Broadcom..."$ENDCOLOR
  170.     wget http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz
  171.     echo -e $YELLOW"Descargando parche bc_wl_complete_patch..."$ENDCOLOR
  172.     wget http://mm-businessconsult.com/wp-content/uploads/2012/05/bc_wl_complete_patch.zip
  173.     cp $_toipatch $DIR_FUENTE
  174.     cp $HOME/kernel-netbook/linux-recent.patch linux-recent.patch
  175.     cp $HOME/kernel-netbook/license.patch license.patch
  176.     cp $HOME/kernel-netbook/user-ioctl.patch user-ioctl.patch
  177.  
  178.     echo -e $YELLOW"Según su configuración,se aplicarán los parches BFS, BFQ, uKSM y TuxOnIce"$ENDCOLOR
  179.     # --> BFS
  180.     #Adjust localversion
  181.     bzip2 -d patch-3.9-ck1.bz2
  182.     sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
  183.     patch -Np1 -i $DIR_FUENTE/patch-3.9-ck1
  184.         if [ $? = 0 ]; then
  185.             if [ $TUX_ON_ICE = "y" ] ; then
  186.                 # --> TOI
  187.                 patch -Np1 -i ${_toipatch}
  188.                     if [ $? = 0 ]; then
  189.                         # --> BFQ
  190.                         for patch in $(ls $DIR_FUENTE/000*BFQ*.patch) ; do
  191.                         patch -Np1 -i $patch
  192.                         done
  193.                             if [ $? = 0 ]; then
  194.                                 # --> uKSM
  195.                                 if [ $UKSM = "y" ] ; then
  196.                                 patch -Np1 -i $DIR_FUENTE/${_uksm_name}.patch
  197.                                 fi
  198.                             fi
  199.                     fi
  200.             fi
  201.         else
  202.         zenity --error --text="Hubo un error al aplicar los parches"
  203.         exit
  204.         fi
  205.     ##Section: Broadcom-wl
  206.     ## Hasta el momento se me ha hecho imposible compilarlo sin que existan errores
  207.     if [ "${BROADCOM_WL}" == "y" ] ; then
  208.         echo -e $YELLOW"Compilando módulo Broadcom"$ENDCOLOR
  209.         tar xzvf ${broadcom}.tar.gz
  210.         unzip bc_wl_complete_patch.zip
  211.         cp -ar src/wl src/wl_orig
  212.         patch src/wl/sys/wl_linux.c < bc_wl_complete_patch.patch           
  213.             patch -p1 -N -i linux-recent.patch
  214.             patch -p1 -N -i license.patch
  215.             patch -p1 -N -i user-ioctl.patch
  216.             make
  217.         if [  $? != 0 ]; then
  218.             zenity --error --text="Hubo un error al compilar el controlador Broadcom"
  219.             exit
  220.         fi
  221.             rm -r src/wl
  222.             mv src/wl_orig src/wl
  223.     fi
  224.  
  225.     echo -e $YELLOW"Limpiando el árbol del directorio fuente..."$ENDCOLOR
  226.     sudo make mrproper   
  227. #                                      FIN DE PARCHES                                          #
  228. ################################################################################################
  229.     echo -e $YELLOW"Copiando fichero kernel-netbook/config como .config"$ENDCOLOR
  230.     sudo cp $HOME/kernel-netbook/config /usr/src/linux/.config
  231.     sleep 6
  232.     if [ $GCONFIG = "y" ] ; then
  233.         echo -e $YELLOW"Iniciando gconfig"$ENDCOLOR
  234.         sudo make gconfig
  235.     fi
  236.     echo -e $YELLOW"Limpiando el kernel..."$ENDCOLOR
  237.     sleep 3
  238.     sudo make-kpkg clean
  239.     if [ ! $? = 0 ]; then
  240.         echo -e $RED"Hubo un error al limpiar el kernel"$ENDCOLOR
  241.         zenity --error --text="Hubo un error al limpiar el kernel"
  242.         exit
  243.     fi
  244.  
  245.     sleep 3
  246.     if [ $LOCALMODCONFIG = "y" ] ; then
  247.         echo -e $YELLOW"Se están incluyendo los módulos que estén corriendo en este momento"$ENDCOLOR
  248.         sleep 3
  249.         zenity --warning --text="Por favor conecte los periféricos necesarios"
  250.         sleep 10
  251.         sudo make localmodconfig
  252.         echo -e $YELLOW"Ahora puede desconectar los periféricos, se han añadido los módulos necesarios al archivo de configuración"$ENDCOLOR
  253.         sleep 3
  254.     fi
  255.     echo -e $YELLOW"Asegúrese que se haya añadido el archivo .config"$ENDCOLOR
  256.     cat /usr/src/linux/.config | grep CONFIG_MATOM
  257.     sleep 3
  258.     echo -e $YELLOW"Copiando fichero .config a Ubuntu One"$ENDCOLOR
  259.     sudo cp /usr/src/linux/.config $HOME/"Ubuntu One"/kernel-netbook/kernel-netbook-$VERSION_LISTADO
  260.     echo -e $YELLOW"Compilando el kernel..."$ENDCOLOR
  261.     rm "$DIR"linux*.deb >/dev/null 2>&1
  262.     sudo make-kpkg -j2 --initrd linux_headers linux_image
  263.  
  264.     if [ ! $? = 0 ]; then
  265.         echo -e $RED"Hubo un error al construir el kernel, saliendo..."$ENDCOLOR
  266.         zenity --error --text="Hubo un error al construir el kernel"
  267.         exit 0
  268.     fi
  269.     sleep 3
  270.     echo -e $YELLOW"Se construyó existosamente el kernel-netbook"$ENDCOLOR
  271.     notify-send "kernel-netbook-$VERSION_CONFIG" "Se construyó existosamente el kernel-netbook"
  272.     cd ..
  273.     FILENAME=$(ls linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb)
  274.     if [ ! $? = 0 ]; then
  275.         echo -e $RED"linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb no encontrado, saliendo..."$ENDCOLOR
  276.         exit 0
  277.     fi
  278.     FILENAME=$(ls linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb)
  279.     if [ ! $? = 0 ]; then
  280.         echo -e $RED"linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb no encontrado, saliendo..."$ENDCOLOR
  281.         exit 0
  282.     fi 
  283.    
  284.     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
  285.     sudo mv /usr/src/linux*.deb $DIR
  286.     echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
  287.     USUARIO=$(echo ${HOME:6})
  288.     sudo chown $USUARIO "$DIR"linux*.deb   
  289.     cd $DIR
  290.     sleep 5
  291. #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE LINUX-IMAGE####################
  292.     mkdir linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  293.     dpkg -x linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  294.     dpkg -e linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
  295.     cd linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
  296.     sed '17,26d' control > $$.tmp && mv $$.tmp control
  297.     sleep 2
  298.     sed "12a Homepage: code.google.com/p/kernel-netbook" control > $$.tmp && mv $$.tmp control
  299.     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
  300.     echo -e $YELLOW"Construyendo paquete modificado del archivo de control de linux-image"$ENDCOLOR
  301.     cd $DIR
  302.     fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  303.     if [ $? = 1 ]; then
  304.         echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-image"$ENDCOLOR
  305.     fi
  306.     sleep 3
  307. #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE LINUX-HEADERS####################
  308.     mkdir linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  309.     dpkg -x linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  310.     dpkg -e linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
  311.     cd linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386/DEBIAN
  312.     sed '16,21d' control > $$.tmp && mv $$.tmp control
  313.     sleep 2
  314.     sed "12a Homepage: code.google.com/p/kernel-netbook" control > $$.tmp && mv $$.tmp control
  315.     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
  316.     echo -e $YELLOW"Construyendo paquete modificado del archivo de control de linux-headers"$ENDCOLOR
  317.     cd $DIR
  318.     fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  319.     sleep 3
  320.     if [ $? = 1 ]; then
  321.         echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-headers"$ENDCOLOR
  322.     fi
  323. ##########################################################################################################
  324.     echo -e $YELLOW"Eliminando archivos innecesarios.."$ENDCOLOR
  325.     sudo rm -rf linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  326.     sudo rm -rf linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
  327.     sudo rm control *.tmp
  328.         if [ $INSTALL = "y" ] ; then
  329.             echo -e $YELLOW"Instalando linux-image y linux_headers..."$ENDCOLOR
  330.             sudo dpkg -i linux-image-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb linux-headers-$VERSION_CONFIG-netbook_"$VERSION_CONFIG"_i386.deb
  331.         fi
  332.     echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
  333.     USUARIO=$(echo ${HOME:6})
  334.     sudo chown $USUARIO $DIR
  335.     sudo chown -R $USUARIO $HOME/kernel-netbook
  336.     sudo chgrp -R $USUARIO $HOME/kernel-netbook
  337.     echo -e $YELLOW"Subiendo linux-image y linux-headers a 4shared..."$ENDCOLOR
  338.     cadaver --rcfile=$HOME/.4shared-kernel
  339.     sleep 5
  340.     sudo rm -rf /usr/src/linux-$VERSION_LISTADO
  341.     sleep 3
  342.     else
  343.     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
  344.     sleep 5
  345.     echo -e $YELLOW"Saliendo..."$ENDCOLOR
  346.     exit 0
  347. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement