Advertisement
enriquelira

kernel netbook 3.9.6 build deb

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