SHARE
TWEET

kernel netbook 3.9.2 build deb updated

enriquelira May 18th, 2013 89 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
Top