Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ###################################################################################
- # 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 en AUR de 'dieghen89'.
- USUARIO=$(echo ${HOME:6})
- 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 [ $? = 1 ]; then
- echo -e $RED"No se ha podido establecer una conexión a internet"$ENDCOLOR
- exit 0
- fi
- echo -e $YELLOW"Instalando dependencias..."$ENDCOLOR
- sudo apt-get install w3m build-essential gcc libncurses5-dev patch kernel-package
- if [ $? != 0 ]; then
- echo -e $RED"No se ha podido instalar las dependencias. Saliendo..."$ENDCOLOR
- exit 0
- fi
- URL=$(echo "https://aur.archlinux.org/packages/kernel-netbook")
- ULTIMA_VERSION_AUR=$(w3m -dump $URL | grep -m 1 -o "kernel-netbook [[:digit:].]*" | grep -o [[:digit:].]*)
- ########################DESCARGA DE LAS FUENTES DEL KERNEL##################################
- PRINCIPAL=3.x
- VERSION=3.9.6
- LINUX_VERSION=linux-$VERSION.tar.xz
- echo -e $YELLOW"Buscando $LINUX_VERSION en $HOME"$ENDCOLOR
- BUSQUEDA=$(find $HOME -name $LINUX_VERSION | grep -o linux-'[0123456789.]*'.tar.xz)
- DIR=$(find $HOME -name $LINUX_VERSION | grep linux-'[0123456789.]*'.tar.xz | sed "s/linux-[0123456789.]*.tar.xz//")
- if [ "$BUSQUEDA" = "$LINUX_VERSION" ]; then
- echo -e $YELLOW"El directorio donde se encontraron las fuentes es $DIR"$ENDCOLOR
- sleep 3
- cd $DIR
- MD5_REMOTO=$(echo c6f56a6a0fe602f2a814fd745c252c79)
- MD5_LOCAL=$(md5sum $LINUX_VERSION | awk '{ print $1 }')
- echo -e $YELLOW"Verificando sumas MD5..."$ENDCOLOR
- if [ "$MD5_REMOTO" = "$MD5_LOCAL" ]; then
- echo -e $YELLOW"Las sumas coinciden"$ENDCOLOR
- sleep 1
- else
- echo -e "el MD5 remoto es de $MD5_REMOTO"
- echo -e "el MD5 local es de $MD5_LOCAL"
- echo -e $YELLOW"El archivo está corrupto o no se ha terminado de descargar"$ENDCOLOR
- echo -e $YELLOW"Descargando..."$ENDCOLOR
- sleep 3
- wget -c ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/$LINUX_VERSION
- fi
- if [ $? = 1 ]; then
- 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
- echo -e $YELLOW"Hay una nueva versión del kernel de linux: $VERSION"
- rm -v linux*.tar.xz >/dev/null 2>&1
- echo -e $YELLOW"Descargando $LINUX_VERSION a la carpeta `pwd`..."$ENDCOLOR
- sleep 2
- wget -c ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/$LINUX_VERSION
- sleep 2
- fi
- ############################DESCARGAS DE ARCHIVOS FUENTE##############################
- URL=$(echo "https://aur.archlinux.org/packages/ke/kernel-netbook/kernel-netbook.tar.gz")
- echo -e $YELLOW"Descargando kernel-netbook.tar.gz de AUR"$ENDCOLOR
- wget -c $URL
- echo -e $YELLOW"Descomprimiendo kernel-netbook.tar.gz"$ENDCOLOR
- tar xvzf kernel-netbook.tar.gz
- MD5=$(echo e251d469950d91c314fea71756510c68)
- MD5_LOCAL=$(md5sum kernel-netbook.tar.gz | awk '{ print $1 }')
- echo -e $YELLOW"Verificando sumas MD5..."$ENDCOLOR
- if [ "$MD5" = "$MD5_LOCAL" ]; then
- echo -e $YELLOW"Las sumas coinciden"$ENDCOLOR
- sleep 1
- else
- echo -e $RED"El archivo kernel-netbook.tar.gz está corrupto "$ENDCOLOR
- exit 0
- fi
- rm kernel-netbook.tar.gz
- #####################################################################################
- echo -e $YELLOW"La versión del los paquetes ubicados en AUR es $ULTIMA_VERSION_AUR"$ENDCOLOR
- sleep 2
- cd $DIR
- LISTAR=$(ls *.tar.xz)
- VERSION_LISTADO=$(ls *.tar.xz | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')
- if [ $ULTIMA_VERSION_AUR = $VERSION_LISTADO ]; then
- sudo cp $DIR/$LISTAR /usr/src/$LISTAR
- cd /usr/src
- if [ -d /usr/src/$LINUX_VERSION ]; then
- echo -e $YELLOW"Limpiando directorio /usr/src/linux-$VERSION_LISTADO"$ENDCOLOR
- sudo rm -rf /usr/src/linux-$VERSION_LISTADO
- fi
- echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$VERSION_LISTADO..."$ENDCOLOR
- sleep 2
- tar -Jxf $LISTAR
- sudo rm $LISTAR
- sudo rm -rf linux
- sudo ln -s linux-$VERSION_LISTADO linux
- cd /usr/src/linux
- ################################################################################################
- # PARCHES #
- # ALGUNAS PARTES TOMADAS DEL PKGBUILD DE DIEGHEN89
- #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}.6
- 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="$DIR/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 "$DIR"kernel-netbook/linux-recent.patch linux-recent.patch
- cp "$DIR"kernel-netbook/license.patch license.patch
- cp "$DIR"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
- sleep 3
- # --> 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
- echo -e $RED"Hubo un error al aplicar los parches"$ENDCOLOR
- 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
- echo -e $RED"Hubo un error al compilar el controlador Broadcom"$ENDCOLOR
- exit
- fi
- rm -r src/wl
- mv src/wl_orig src/wl
- fi
- sudo make mrproper
- # FIN DE PARCHES #
- ################################################################################################
- if [ -f "$DIR"kernel-netbook/config ] ; then
- sudo cp $DIR/kernel-netbook/config /usr/src/linux/.config
- else
- echo -e $RED"No se ha encontrado el archivo de configuración del kernel config"$ENDCOLOR
- echo -e $RED"Saliendo..."$ENDCOLOR
- exit 0
- fi
- sleep 1
- if [ $GCONFIG = "y" ] ; then
- echo -e $YELLOW"Iniciando gconfig"$ENDCOLOR
- sudo make gconfig
- fi
- echo -e $YELLOW"Limpiando el kernel..."$ENDCOLOR
- sleep 1
- sudo make-kpkg clean
- if [ ! $? = 0 ]; then
- echo -e $YELLOW"Hubo un error al limpiar el kernel"$ENDCOLOR
- sleep 3
- exit 0
- fi
- if [ $LOCALMODCONFIG = "y" ] ; then
- echo -e $YELLOW"Se están incluyendo los módulos que estén corriendo en este momento"$ENDCOLOR
- sleep 3
- echo -e $YELLOW"Por favor conecte los periféricos necesarios"$ENDCOLOR
- 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
- exit 0
- fi
- sleep 3
- echo -e $YELLOW"Se construyó existosamente el kernel-netbook"$ENDCOLOR
- #notify-send "kernel-netbook-$ULTIMA_VERSION_AUR" "Se construyó existosamente el kernel-netbook"
- cd ..
- FILENAME=$(ls linux-image-$ULTIMA_VERSION_AUR-netbook_"$ULTIMA_VERSION_AUR"_i386.deb)
- if [ ! $? = 0 ]; then
- echo -e $RED"linux-image-$ULTIMA_VERSION_AUR-netbook_"$ULTIMA_VERSION_AUR"_i386.deb no encontrado, saliendo..."$ENDCOLOR
- exit 0
- fi
- FILENAME=$(ls linux-headers-$ULTIMA_VERSION_AUR-netbook_"$ULTIMA_VERSION_AUR"_i386.deb)
- if [ ! $? = 0 ]; then
- echo -e $RED"linux-headers-$ULTIMA_VERSION_AUR-netbook_"$ULTIMA_VERSION_AUR"_i386.deb no encontrado, saliendo..."$ENDCOLOR
- exit 0
- fi
- 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
- sudo mv /usr/src/linux*.deb $DIR
- echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
- sudo chown $USUARIO "$DIR"linux*.deb
- cd $DIR
- sleep 1
- #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE LINUX-IMAGE####################
- mkdir linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- dpkg -x linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386.deb linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- dpkg -e linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386.deb linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386/DEBIAN
- cd linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386/DEBIAN
- sed '17,26d' control > $$.tmp && mv $$.tmp control
- 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
- dpkg -b linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- if [ $? = 1 ]; then
- echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-image"$ENDCOLOR
- sleep 3
- fi
- #######################CAMBIO DE LA DESCRIPCIÓN DEL PAQUETE LINUX-HEADERS####################
- mkdir linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- dpkg -x linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386.deb linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- dpkg -e linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386.deb linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386/DEBIAN
- cd linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386/DEBIAN
- sed '16,21d' control > $$.tmp && mv $$.tmp control
- 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
- dpkg -b linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- if [ $? = 1 ]; then
- echo -e $YELLOW"Hubo un error al cambiar la descripción del paquete linux-headers"$ENDCOLOR
- sleep 3
- fi
- ##########################################################################################################
- echo -e $YELLOW"Eliminando archivos innecesarios.."$ENDCOLOR
- sudo rm -rf linux-image-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- sudo rm -rf linux-headers-"$ULTIMA_VERSION_AUR"-netbook_"$ULTIMA_VERSION_AUR"_i386
- sudo rm control *.tmp
- if [ -d /usr/src/$LINUX_VERSION ]; then
- echo -e $YELLOW"Limpiando directorio /usr/src/linux-$VERSION_LISTADO"$ENDCOLOR
- sudo rm -rf /usr/src/linux-$VERSION_LISTADO
- fi
- if [ $INSTALL = "y" ] ; then
- echo -e $YELLOW"Instalando linux-image y linux_headers..."$ENDCOLOR
- 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
- fi
- echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
- sudo chown -R $USUARIO "$DIR"kernel-netbook
- sudo chgrp -R $USUARIO "$DIR"kernel-netbook
- echo -e $YELLOW"Subiendo linux-image y linux-headers a 4shared..."$ENDCOLOR
- cadaver --rcfile=$HOME/.4shared-kernel
- sudo rm -rf /usr/src/linux-$VERSION_LISTADO
- 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