sábado, 18 de mayo de 2013

Compilar kernel netbook 3.9.2 en paquetes deb


He actualizado el script y ahora muchas de las acciones se realizan automáticamente, como la descarga de las fuentes del kernel y la comprobación de errores en cada paso de la ejecución del script. Aquí lo pego:
#!/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'.
#Uso:
#Si no desea realizar el paso de descargar el repositorio de Github, deberá de descargarse la configuración del archivo config situado en:
# https://github.com/dieghen89/kernel-netbook/blob/master/config y copiarlo en una nueva carpeta llamada kernel-netbook dentro de la carpeta personal.
#Además, deberá de descargarse el código fuente de la versión del kernel a construir (en una carpeta llamada $DIR dentro de la carpeta personal), debe de coincidir con la versión del archivo de configuración (.config).

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
 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
   if [ "${BROADCOM_WL}" == "y" ] ; then
      zenity --info --text="Compilando módulo Broadcom" 
      cp -ar src/wl src/wl_orig
      patch -p1 -N -i linux-recent.patch
      patch -p1 -N -i license.patch
      patch -p1 -N -i user-ioctl.patch
      make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
      install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
      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
 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

Descarga: kernel.sh

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

martes, 14 de mayo de 2013

Compilar kernel netbook 3.9.2 a la manera debian


Algunos cambios son:

  • Ahora se detecta si existen errores al momento de parchar el kernel, y si es que existen, sale inmediatamente.
Debajo se encuentran los binarios (linux-headers y linux image)

#!/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)
# 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.

#Uso:
#Si no desea realizar el paso de descargar el repositorio de Github, deberá de descargarse la configuración del archivo config situado en:
# https://github.com/dieghen89/kernel-netbook/blob/master/config y copiarlo en una nueva carpeta llamada kernel-netbook dentro de la carpeta personal.
#Además, deberá de haberse descargado el código fuente de la versión del kernel que se va a commpilar (en una carpeta llamada Programas dentro de la carpeta personal), debe de coincidir con la versión del archivo de configuración.
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"Actualizando repositorio de kernel-netbook"$ENDCOLOR
cd ~/kernel-netbook
git pull https://github.com/dieghen89/kernel-netbook.git
sleep 5
VERSION_CONFIG=$(cat /home/paulo/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
echo -e $YELLOW"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
sleep 4

cd ~/Programas
LISTAR=$(ls *.tar.bz2)
VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | head -1 |tail -1 | awk '{ print $11 }')
LINUX_VERSION_TAR=linux-$VERSION.tar.bz2
LINUX_VERSION=linux-$VERSION
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')

if [ $VERSION_CONFIG = $VERSION_LISTADO ]; then
echo -e $YELLOW"Instalando dependencias necesarias para la compilación..."$ENDCOLOR
sudo apt-get install build-essential gcc libncurses5-dev
sleep 3
sudo cp ~/Programas/$LISTAR /usr/src/$LISTAR
cd /usr/src
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
if [ $? = 0 ]; then
echo -e "Se encontraron las fuentes del kernel"
else
echo -e $RED"No se encotraron las fuentes del kernel"$ENDCOLOR
exit
fi
sleep 1
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
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
  if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compilando módulo Broadcom" 
    cp -ar src/wl src/wl_orig
    patch -p1 -N -i linux-recent.patch
    patch -p1 -N -i license.patch
    patch -p1 -N -i user-ioctl.patch
    make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
    install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
    rm -r src/wl
    mv src/wl_orig src/wl
  fi


sleep 3
echo -e $YELLOW"Si existe algún error, presione Ctrl+C"$ENDCOLOR
sleep 7
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
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 ~/Programas/linux*.deb
sudo make-kpkg -j2 --initrd linux_headers linux_image
sleep 3
echo -e $YELLOW"Reproduce un pitido"$ENDCOLOR
play /usr/share/sounds/Sentinella/Bip-bip.ogg
echo -e $YELLOW"Moviendo archivos .deb a Programas"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
sleep 5
#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES LINUX-IMAGE####################
cd $HOME/Programas
echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
sudo chown paulo $HOME/Programas/linux*.deb
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 $HOME/Programas
fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3

#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES 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 $HOME/Programas
fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
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"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 $YELLOW"Las versiones difieren..."$ENDCOLOR
sleep 2
echo -e $YELLOW"Saliendo..."$ENDCOLOR
exit 0
fi



Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

domingo, 31 de marzo de 2013

compilar kernel netbook 3.8.5 a la manera debian

#!/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)
# 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.

#Uso:
#Si no desea realizar el paso de descargar el repositorio de Github, deberá de descargarse la configuración del archivo config situado en:
# https://github.com/dieghen89/kernel-netbook/blob/master/config y copiarlo en una nueva carpeta llamada kernel-netbook dentro de la carpeta personal.
#Además, deberá de haberse descargado el código fuente de la versión del kernel que se va a commpilar (en una carpeta llamada Programas dentro de la carpeta personal), debe de coincidir con la versión del archivo de configuración.
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"Actualizando repositorio de kernel-netbook"$ENDCOLOR
cd ~/kernel-netbook
git pull https://github.com/dieghen89/kernel-netbook.git
sleep 5
VERSION_CONFIG=$(cat /home/paulo/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
echo -e $YELLOW"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
sleep 4

cd ~/Programas
LISTAR=$(ls *.tar.bz2)
VERSION=$(curl -s http://kernel.org/kdist/finger_banner | head -2 |tail -1 | awk '{ print $11 }')
LINUX_VERSION_TAR=linux-$VERSION.tar.bz2
LINUX_VERSION=linux-$VERSION
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')

gxmessage -center -geometry 600×400 -title “kernel-netbook” -buttons Si:1″,No:2″ -default “Si” -wrap “La versión del archivo de configuración del kernel-netbook es la $VERSION_CONFIG y la versión del kernel es la $VERSION_LISTADO, ¿Desea continuar?”

case $? in

1) echo -e $YELLOW"Instalando dependencias necesarias para la compilación..."$ENDCOLOR
sudo apt-get install build-essential gcc libncurses5-dev
sleep 3
sudo cp ~/Programas/$LISTAR /usr/src/$LISTAR
cd /usr/src
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
sleep 3
sudo rm -rf /usr/src/linux-$VERSION_LISTADO
echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$VERSION_LISTADO..."$ENDCOLOR
sleep 3
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 PKBUILD DE DIEGUEN89
#https://github.com/dieghen89/kernel-netbook/blob/master/PKGBUILD
TUX_ON_ICE="y"
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.8
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.8.0-v6"
#TuxOnIce:
#New official patch
#_toipatch="tuxonice-for-linux-3.8.0-2013-02-24.patch"
_toipatch="$HOME/kernel-netbook/toi-3.8.patch"

#uKSM:
_uksm="http://kerneldedup.org/download/uksm/0.1.2.2"
_uksm_name="uksm-0.1.2.2-for-v3.8.ge.3"

echo -e $YELLOW"Descargando parche BFS..."$ENDCOLOR
wget http://ck.kolivas.org/patches/3.0/3.8/${_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-v6-3.8.patch"
wget "${_bfqpath}/0002-block-introduce-the-BFQ-v6-I-O-sched-for-3.8.patch"
echo -e $YELLOW"Descargando parche Broadcom..."$ENDCOLOR
wget http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz
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

zenity --info --text="Según su configuración,se aplicarán los parches BFS, BFQ, uKSM y TuxOnIce"
  # --> BFS
  zenity --info --text="Parchando fuente con parche BFS"
  #Adjust localversion
  bzip2 -d patch-3.8-ck1.bz2
  sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
  patch -Np1 -i $DIR_FUENTE/patch-3.8-ck1
  
  # --> TOI

  if [ $TUX_ON_ICE = "y" ] ; then
   zenity --info --text="Parchando fuente con parche TuxOnIce"
    patch -Np1 -i ${_toipatch}
  fi

  # --> BFQ
    zenity --info --text="Parchando fuente con parche BFQ"
  for patch in $(ls $DIR_FUENTE/000*BFQ*.patch) ; do
    patch -Np1 -i $patch
  done

 # --> uKSM
  if [ $UKSM = "y" ] ; then
    zenity --info --text="Parchando fuente con parche uKSM"
    patch -Np1 -i $DIR_FUENTE/${_uksm_name}.patch
  fi


##Section: Broadcom-wl
  if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compilando módulo Broadcom" 
    cp -ar src/wl src/wl_orig
    patch -p1 -N -i linux-recent.patch
    patch -p1 -N -i license.patch
    patch -p1 -N -i user-ioctl.patch
    make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
    install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
    rm -r src/wl
    mv src/wl_orig src/wl
  fi


zenity --warning --text="Asegúrese de que los parches se hallan aplicado con éxito"
sleep 3
echo -e $YELLOW"Si no presione Ctrl+C"$ENDCOLOR
sleep 7
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
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 ~/Programas/linux*.deb
sudo make-kpkg -j2 --initrd linux_headers linux_image
sleep 3
echo -e $YELLOW"Reproduce un pitido"$ENDCOLOR
play /usr/share/sounds/Sentinella/Bip-bip.ogg
echo -e $YELLOW"Moviendo archivos .deb a Programas"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
sleep 5
#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES LINUX-IMAGE####################
cd $HOME/Programas
echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
sudo chown paulo $HOME/Programas/linux*.deb
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 $HOME/Programas
fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3

#######################CAMBIO DE LA DESCRIPCIÓN DE LOS PAQUETES 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 $HOME/Programas
fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
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"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
echo -e $YELLOW"Se desactiva una entrada al inicio para checar la version del kernel-netbook"$ENDCOLOR
sed -i 's/X-GNOME-Autostart-enabled=true/X-GNOME-Autostart-enabled=false/g' $HOME/.config/autostart/checa_avisa_kernel.sh.desktop
echo -e $YELLOW"Saliendo..."$ENDCOLOR
sleep 10;;


2) CANCELAR=$(zenity --warning --text="Se ha cancelado");;

esac

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.
Descargar script: kernel.sh
Página del proyecto: kernel-netbook

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

domingo, 24 de marzo de 2013

Consulta del periódico completo San Luis Hoy

#!/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)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
echo -e $YELLOW"Script para la descarga del pdf del periódico San Luis Hoy"$ENDCOLOR
function estado_red()
{
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
sleep 3
killall pdf.sh
fi
}
estado_red
cd $HOME/Descargas
mkdir SLH  > /dev/null 2>&1
cd SLH
rm SLH* wget-log > /dev/null 2>&1
function slh()
{
CONTADOR=0
MAX=9
while [ $CONTADOR -lt $MAX ]; do
let CONTADOR=CONTADOR+1 
echo -e $YELLOW"Descargando página $CONTADOR"$ENDCOLOR

wget --retry-connrefused http://www.sanluishoy.com.mx/Pdfs/`date +%Y``date +%m``date +%d`/SLH`date +%d`0$CONTADOR.pdf
done
CONTADOR=9
MAX=32
while [ $CONTADOR -lt $MAX ]; do
let CONTADOR=CONTADOR+1 
echo -e $YELLOW"Descargando página $CONTADOR"$ENDCOLOR
wget --retry-connrefused http://www.sanluishoy.com.mx/Pdfs/`date +%Y``date +%m``date +%d`/SLH`date +%d`$CONTADOR.pdf
done
TAMANO=$(du -sh --exclude=salida.pdf)
DISPLAY=:0.0 notify-send --icon=/home/paulo/.icons/slh.xpm "Se descargaron $TAMANO"
sleep 1

CANTIDAD=$(find -type f | wc -l)
ARCHIVOS=$(expr $CANTIDAD - 1)
echo -e $YELLOW"Son $ARCHIVOS archivos"$ENDCOLOR

if [ "$ARCHIVOS" = 32 ]; then
echo -e $YELLOW"Uniendo pdfs..."$ENDCOLOR
pdftk SLH*.pdf cat output salida.pdf
echo -e $YELLOW"Abriendo..."$ENDCOLOR
DISPLAY=:0.0 evince salida.pdf
else
zenity --error --text="Hubo un error en la descarga del periódico\n Son $ARCHIVOS archivos" --display=:0.0
sleep 1
fi
echo -e $YELLOW"Saliendo..."$ENDCOLOR
sleep 2
rm SLH*
}
FECHA_ARCHIVO=$(ls -l | awk '{ print $7 }' | tail -1)
FECHA_HOY=$(echo `date +%-d`)
if [ $FECHA_ARCHIVO = $FECHA_HOY ]; then
echo -e $YELLOW"Ya se ha descargado el periodico de este dia"$ENDCOLOR
sleep 3
else
zenity --question --text="¿Desea descargar el periódico San Luis Hoy?" --display=:0.0 
case $? in
0) 
  slh;;
1) cancelar;;
-1) error;;
esac
fi

Este script es capaz de descargar cada página del periódico San Luis Hoy www.sanluishoy.com.mx , comprueba que se hayan descargado correctamente, une cada página en un sólo archivo pdf (gracias a pdftk) y lo visualiza con ayuda de Evince (lector de pdf's)

Descarga: pdf.sh
Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

viernes, 22 de marzo de 2013

Consultar el pronóstico del clima desde la terminal

#!/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)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx/  
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
# Busque en la web http://www.meteored.mx su ubicación y copie como argumento de este script la url obtenida. Por ejemplo: http://www.meteored.mx/clima_San+Luis+Potosi-America+Norte-Mexico-San+Luis+Potosi-MMSP-1-22382.html
# En caso de que no exista su ID (código de 4 letras mayúsculas) en la url de meteored.mx, busque en la web http://weather.noaa.gov/weather/MX_cc.html su ubicación para obtener su ID. 
echo $1
URL_CLIMA=("w3m -dump $1")
ID=$(echo $1 | grep -o '[A-Z]*' | tail -1)
echo -e $YELLOW"`$URL_CLIMA | head -1`"$ENDCOLOR
ACTUALIZACION=$(weather -i $ID -m | head -2 | tail -1 | awk '{ print $3,$4,$5,$6,$7,$8 }')
echo -e $YELLOW"Ültima actualización: $ACTUALIZACION"$ENDCOLOR
TEMPERATURA=$(weather -i MMSP -m | head -3 | tail -1 | grep -o '[0123456789.]*')
echo -e $YELLOW"`weather -i $ID -m ` "$ENDCOLOR
sleep 3
function hoy()
{
DIA_ACTUAL=$($URL_CLIMA | head -54 | tail -42 | head -1 | awk '{ print $2 }')
echo -e $YELLOW"Información general del clima de hoy $DIA_ACTUAL"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_HOY=$($URL_CLIMA | head -54 | tail -42 | head -6 | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura máxima de hoy es de "$TEMP_MAX_HOY"C"$ENDCOLOR
sleep 2
TEMP_MIN_HOY=$($URL_CLIMA | head -54 | tail -42 | head -6 | sed -n 4p | awk '{ print $3 }')
echo -e $YELLOW"La temperatura mínima de hoy es de "$TEMP_MIN_HOY"C"$ENDCOLOR
sleep 3
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de hoy es de $PRECIPITACION"$ENDCOLOR
sleep 3
notify-send "`$URL_CLIMA | head -1`" "Temperatura máxima: $TEMP_MAX_HOY C \n Temperatura mínima: $TEMP_MIN_HOY \n La temperatura actual es de $TEMPERATURA°C"
}
hoy
function manana()
{
MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | head -1)
echo -e $YELLOW"Información general del clima de mañana $MANANA"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $1 }')
echo -e $YELLOW"La temperatura máxima de mañana $MANANA es de "$TEMP_MAX_MANANA"C"$ENDCOLOR
sleep 2
TEMP_MIN_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura mínima de mañana $MANANA es de "$TEMP_MIN_MANANA"C"$ENDCOLOR
sleep 3 
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -12 | tail -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de mañana es de $PRECIPITACION"$ENDCOLOR
sleep 3
}
manana
function pasado_manana()
{
PASADO_MANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | head -1)
echo -e $YELLOW"Información general del clima de pasado mañana $PASADO_MANANA"$ENDCOLOR
$URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }'
sleep 3
TEMP_MAX_PMANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $1 }')
echo -e $YELLOW"La temperatura máxima de pasado mañana $PASADO_MANANA es de "$TEMP_MAX_PMANANA"C"$ENDCOLOR
sleep 2
TEMP_MIN_PMANANA=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | awk '{ print $2,$3 }' | sed -n 4p | awk '{ print $2 }')
echo -e $YELLOW"La temperatura mínima de pasado mañana $PASADO_MANANA es de "$TEMP_MIN_PMANANA"C"$ENDCOLOR
sleep 3 
PRECIPITACION=$($URL_CLIMA | head -54 | tail -42 | head -18 | tail -6 | tail -1 | awk '{ print $2,$3 }')
echo -e $YELLOW"La precipitación de pasado mañana $PASADO_MANANA es de $PRECIPITACION"$ENDCOLOR
sleep 3
}
pasado_manana


El script consulta dos fuentes de datos: la página de http://www.meteored.mx   y la de http://weather.noaa.gov/weather/MX_cc.html    para suministrar datos al programa
Se le debe de pasar como argumento del script la url de meteored.mx si no no funcionará
Ejemplo:
./clima.sh   http://www.meteored.mx/clima_San+Luis+Potosi-America+Norte-Mexico-San+Luis+Potosi-MMSP-1-22382.html

Descarga: clima.sh


Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

lunes, 11 de marzo de 2013

Compilar kernel netbook 3.8 a la manera debian

#!/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)
# 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.
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"Actualizando repositorio de kernel-netbook"$ENDCOLOR
cd ~/kernel-netbook
git pull https://github.com/dieghen89/kernel-netbook.git
sleep 5
VERSION_CONFIG=$(cat /home/paulo/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
echo -e $YELLOW"La versión del archivo de configuración kernel-netbook/config es la $VERSION_CONFIG"$ENDCOLOR
sleep 4

cd ~/Programas
LISTAR=$(ls *.tar.bz2)
VERSION=$(curl -s http://kernel.org/kdist/finger_banner | head -2 |tail -1 | awk '{ print $11 }')
LINUX_VERSION_TAR=linux-$VERSION.tar.bz2
LINUX_VERSION=linux-$VERSION
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')

gxmessage -center -geometry 600×400 -title “kernel-netbook” -buttons Si:1″,No:2″ -default “Si” -wrap “La versión del archivo de configuración del kernel-netbook es la $VERSION_CONFIG y la versión del kernel es la $VERSION_LISTADO, ¿Desea continuar?”

case $? in

1) echo -e $YELLOW"Instalando dependencias necesarias para la compilación..."$ENDCOLOR
sudo apt-get install build-essential gcc libncurses5-dev
sleep 3
sudo cp ~/Programas/$LISTAR /usr/src/$LISTAR
cd /usr/src
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
sleep 3
sudo rm -rf /usr/src/linux-$VERSION_LISTADO
echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$VERSION_LISTADO..."$ENDCOLOR
sleep 3
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 PKBUILD DE DIEGUEN89
#https://github.com/dieghen89/kernel-netbook/blob/master/PKGBUILD
TUX_ON_ICE="n"
BROADCOM_WL="n"
UKSM="n" #Not ready for 3.8
LOCALMODCONFIG="n"
GCONFIG="n"
INSTALL="y"

### 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.8
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.8.0-v6"
#TuxOnIce:
#New official patch
#_toipatch="tuxonice-for-linux-3.8.0-2013-02-24.patch"
_toipatch="$HOME/kernel-netbook/toi-3.7.patch"

#uKSM:
_uksm="http://kerneldedup.org/download/uksm/0.1.2.2"
_uksm_name="uksm-0.1.2.2-for-v3.7.ge.1"

echo -e $YELLOW"Descargando parche BFS..."$ENDCOLOR
wget http://ck.kolivas.org/patches/3.0/3.8/${_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-v6-3.8.patch"
wget "${_bfqpath}/0002-block-introduce-the-BFQ-v6-I-O-sched-for-3.8.patch"
echo -e $YELLOW"Descargando parche Broadcom..."$ENDCOLOR
wget http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz
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

zenity --info --text="Según su configuración,se aplicarán los parches BFS, BFQ, uKSM y TuxOnIce"
  # --> BFS
  zenity --info --text="Parchando fuente con parche BFS"
  #Adjust localversion
  bzip2 -d patch-3.8-ck1.bz2
  sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
  patch -Np1 -i $DIR_FUENTE/patch-3.8-ck1
  
  # --> TOI

  if [ $TUX_ON_ICE = "y" ] ; then
   zenity --info --text="Parchando fuente con parche TuxOnIce"
    patch -Np1 -i ${_toipatch}
  fi

  # --> BFQ
    zenity --info --text="Parchando fuente con parche BFQ"
  for patch in $(ls $DIR_FUENTE/000*BFQ*.patch) ; do
    patch -Np1 -i $patch
  done

 # --> uKSM
  if [ $UKSM = "y" ] ; then
    zenity --info --text="Parchando fuente con parche uKSM"
    patch -Np1 -i $DIR_FUENTE/${_uksm_name}.patch
  fi


##Section: Broadcom-wl
  if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compilando módulo Broadcom" 
    cp -ar src/wl src/wl_orig
    patch -p1 -N -i linux-recent.patch
    patch -p1 -N -i license.patch
    patch -p1 -N -i user-ioctl.patch
    make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
    install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
    rm -r src/wl
    mv src/wl_orig src/wl
  fi


zenity --warning --text="Asegúrese de que los parches se hallan aplicado con éxito"
sleep 3
echo -e $YELLOW"Si no presione Ctrl+C"$ENDCOLOR
sleep 7
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
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 ~/Programas/linux*.deb
sudo make-kpkg -j2 --initrd linux_headers linux_image
sleep 3
echo -e $YELLOW"Reproduce un pitido"$ENDCOLOR
play /usr/share/sounds/Sentinella/Bip-bip.ogg
echo -e $YELLOW"Moviendo archivos .deb a Programas"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
sleep 5
#######################CAMBIO DE LA DESCRIPCIÓN DE LAS PAQUETES LINUX-IMAGE####################
cd $HOME/Programas
echo -e $YELLOW"Cambiando propietario..."$ENDCOLOR
sudo chown paulo $HOME/Programas/linux*.deb
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 $HOME/Programas
fakeroot dpkg -b linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3

#######################CAMBIO DE LA DESCRIPCIÓN DE LAS PAQUETES 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 $HOME/Programas
fakeroot dpkg -b linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sleep 3
echo -e $YELLOW"Eliminando carpetas innecesarias.."$ENDCOLOR
sudo rm -rf linux-image-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
sudo rm -rf linux-headers-"$VERSION_CONFIG"-netbook_"$VERSION_CONFIG"_i386
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"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
echo -e $YELLOW"Se desactiva una entrada al inicio para checar la version del kernel-netbook"$ENDCOLOR
sed -i 's/X-GNOME-Autostart-enabled=true/X-GNOME-Autostart-enabled=false/g' $HOME/.config/autostart/checa_avisa_kernel.sh.desktop
echo -e $YELLOW"Saliendo..."$ENDCOLOR
sleep 10;;


2) CANCELAR=$(zenity --warning --text="Se ha cancelado");;

esac

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

miércoles, 16 de enero de 2013

Cambiar esquema de colores de Ubuntu

Este script cambia el color del fondo del texto seleccionado, el color del texto seleccionado y el color del texto. Hay mas información aqui. Hace uso de zenity y dconf-tools que se instalan con:
sudo apt-get install zenity dconf-tools

#!/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)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx/  
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.

echo -e $YELLOW"Script para cambiar el esquema de colores de Ubuntu"$ENDCOLOR
zenity --info --text="Si desea restablecerlos a los valores preterminados, sólo dé cancelar a cada ventana de selección de color"
COLOR_PRIMER_PLANO=$(zenity --title="Seleccione el color de primer plano" --color-selection)
COLOR_FONDO=$(zenity --title="Seleccione el color para el FONDO" --color-selection)
COLOR_FONDO_TEXTO_SELECCION=$(zenity --title="Seleccione el color de FONDO del texto SELECCIONADO" --color-selection)
COLOR_TEXTO_SELECCIONADO=$(zenity --title="Seleccione el color deL TEXTO SELECCIONADO" --color-selection)
COLOR_BASE=$(zenity --title="Seleccione el color BASE" --color-selection)
COLOR_TEXTO=$(zenity --title="Seleccione el color del TEXTO en cajas de texto" --color-selection)
gsettings set org.gnome.desktop.interface gtk-color-scheme "fg_color:$COLOR_PRIMER_PLANO;bg_color:$COLOR_FONDO;selected_bg_color:$COLOR_FONDO_TEXTO_SELECCION;selected_fg_color:$COLOR_TEXTO_SELECCIONADO;base_color:$COLOR_BASE;text_color:$COLOR_TEXTO"

Descarga:  cambiar_color.sh
Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

domingo, 6 de enero de 2013

Fondo de pantalla dinámico


Este script no es de mi autoria, esta es la fuente original de ubuntu life https://ubuntulife.wordpress.com/2008/06/13/script-para-cambiar-el-wallpaper-de-manera-automatica-en-gnome yo solo actualice unas cuantas lineas para que funcionara con ubuntu 12.04, pueden poner el script en los programas que se ejecutan al inicio, asi cada vez que inicien sesión. aparecerá un nuevo fondo de pantalla. Tiene que cambiar la carpeta de donde se sacan las imágenes (en mi caso usé "usr/share/backgrounds/fondos")


#!/bin/bash
# almacenamos en una variable la carpeta donde residen las imagenes. en mi caso /home/jose, cambia este valor
# por el que quieras usar en tu caso.
picsfolder=/usr/share/backgrounds/fondos
# Nos movemos al directorio donde estan las imagenes
cd $picsfolder
# Creamos un array con todos los ficheros de ese directorio que tengan extension .jpg
# Un array es un concepto de programacion, podriamos considerarlo como una lista de valores a los que podemos acceder
# por un indice que es su posicion en esa lista. Por ejemplo, podriamos tener un array llamado “dias” que almacenara los
# siguientes valores: lunes, martes, miercoles, jueves y viernes. dias = [ lunes, martes, miercoles, jueves, viernes]. Con
# ese array podriamos referenciar a un elemento del mismo a partir de su posicion. Ejemplo: dias[0] es lunes, dias[2] es
# miercoles.
# En este ejemplo lo que hacemos es crear un array con los nombres de todos los ficheros .jpg del directorio
files=( *.jpg )
# Recuperamos el numero de ficheros, N almacenara el numero de elementos del array
N=${#files[@]}
# Seleccionamos “aleatoriamente” un valor de esos N ficheros
((N=RANDOM%N))
# Con ese valor aleatorio (indice del array) accedemos al array y recuperamos el nombre del fichero
randomfile=${files[$N]}
# Y una vez recuperado el nombre de ese fichero llamamos a gconftool para fijar ese fichero como fondo de escritorio
gsettings set org.gnome.desktop.background picture-uri file:///$picsfolder/$randomfile
# cambiamos tambien las propiedades de la imagen que se muestra

#posibles valores “none”, “wallpaper” (mosaico), “centered”, “scaled”, “stretched”

Descarga: wallpaper.sh
Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

domingo, 28 de octubre de 2012

compilar kernel netbook a la manera debian

Hola, escribo este script que funciona junto con el de ultima_version_kernel.sh 
Este funciona con github; clona el repositorio de dieguen89 (este aloja el archivo necesario para compilar un kernel optimizado para netbooks), Compara que la version descargada del codigo fuente y del archivo config sean iguales, en tal caso, empieza a compilar el codigo fuente del kernel. He consultado con el autor del repositorio (Diego F) y ahora sé que las construcciones que compilo les faltan los parches correspondientes: BFS, BFQ, uKSM y TuxOnIce, no he agregado el parche para tarjetas Broadcom por el desconocimiento sobre el cómo hacerlo, (este usa zenity para mostrar mensajes y tambíen xmessage. 

ACTUALIZACIÓN 15/12/12: Estuve haciendo pruebas con los diferentes parches y, al correr un kernel que tenga el parche TuxOnIce, y al suspender la computadora, ésta se congela. Por eso he quitado el soporte para ese parche, pero pueden habilitarlo modificando el script de abajo, en la linea 58 donde dice: TUX_ON_ICE="n" lo pueden cambiar por: TUX_ON_ICE="y" Así habilitarán el parche y el kernel se compilará con este. Este script compila la versión del núcleo linux-3.7.
Este script funciona descargando del repositorio, los archivos necesarios (aquí yo me basé en PKBUILD y config). Estos archivos se encuentran en mi carpeta personal, sólo hay que instalar git:
sudo apt-get install git
y luego hay que clonarlo con:
git clone https://github.com/dieghen89/kernel-netbook.git 

#!/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)
# 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.
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

cd ~/Programas
_linux=3.7
LISTAR=$(ls *.tar.bz2)
VERSION=$(curl -s http://kernel.org/kdist/finger_banner | head -1 |tail -1 | awk '{ print $11 }')
LINUX_VERSION_TAR=linux-$VERSION.tar.bz2
LINUX_VERSION=linux-$VERSION
VERSION_CONFIG=$(cat $HOME/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
VERSION_LISTADO=$(ls *.tar.bz2 | grep -o '[0123456789.]*'| head -1 | sed 's/.$//g')

gxmessage -center -geometry 600×400 -title “kernel-netbook” -buttons Si:1″,No:2″ -default “Si” -wrap “La versión del archivo de configuración del kernel-netbook es la $VERSION_CONFIG y la versión del kernel es la $VERSION_LISTADO, ¿Desea continuar?”

case $? in

1)	echo -e $YELLOW"Instalando dependencias necesarias para la compilación..."$ENDCOLOR
sudo apt-get install build-essential gcc libncurses5-dev
sleep 3
sudo cp ~/Programas/$LISTAR /usr/src/$LISTAR
cd /usr/src
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
sleep 3
sudo rm -rf linux-$VERSION_CONFIG
echo -e $YELLOW"Descomprimiendo el código fuente en /usr/src/linux-$_linux..."$ENDCOLOR
sleep 3
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-$_linux..."$ENDCOLOR
sudo rm -rf linux
sudo ln -s linux-$_linux linux
sleep 2
cd /usr/src/linux
echo -e $YELLOW"Borrando archivos innecesarios..."$ENDCOLOR
sudo rm patch-*-ck1* toi*.patch 000*BFQ*.patch *.patch hybrid-portsrc*.tar.gz
################################################################################################
#                                         PARCHES                                              #
# ALGUNAS PARTES TOMADAS DEL PKBUILD DE DIEGUEN89
#https://github.com/dieghen89/kernel-netbook/blob/master/PKGBUILD
TUX_ON_ICE="n"
BROADCOM_WL="n"
UKSM="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
#
##########

zenity --info --text="Según su configuración,se aplicarán los parches BFS, BFQ, uKSM y TuxOnIce"
DIR_FUENTE=/usr/src/linux
_basekernel=3.7
pkgver=${_basekernel}
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://algo.ing.unimo.it/people/paolo/disk_sched/patches/3.7.0-v5r1"
#TuxOnIce:
_toipatch="$HOME/kernel-netbook/toi-3.7.patch"

#uKSM:
_uksm="http://kerneldedup.org/download/uksm/0.1.2.1"

_uksm_name="uksm-0.1.2.1-for-v3.6.ge.2"
echo -e $YELLOW"Descargando parche BFS..."$ENDCOLOR
wget http://ck.kolivas.org/patches/3.0/3.7/${_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-v5r1-3.7.patch"
wget "${_bfqpath}/0002-block-introduce-the-BFQ-v5r1-I-O-sched-for-3.7.patch"
echo -e $YELLOW"Descargando parche Broadcom..."$ENDCOLOR
wget http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz
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

 install -m644 $HOME/kernel-netbook/ubuntu-logo.ppm drivers/video/logo/

  # --> BFS
  zenity --info --text="Parchando fuente con parche BFS"
  #Adjust localversion
  bzip2 -d patch-3.7-ck1.bz2
  sed -i -e "s/-ck${_ckpatchversion}//g" $DIR_FUENTE/${_ckpatchname}
  patch -Np1 -i $DIR_FUENTE/patch-3.7-ck1
  

  # --> TOI

  if [ $TUX_ON_ICE = "y" ] ; then
   zenity --info --text="Parchando fuente con parche TuxOnIce"
    patch -Np1 -i ${_toipatch}
  fi



  # --> BFQ
    zenity --info --text="Parchando fuente con parche BFQ"
  for patch in $(ls $DIR_FUENTE/000*BFQ*.patch) ; do
    patch -Np1 -i $patch
  done



 # --> uKSM
  if [ $UKSM = "y" ] ; then
    zenity --info --text="Parchando fuente con parche uKSM"
    patch -Np1 -i $DIR_FUENTE/${_uksm_name}.patch
  fi


##Section: Broadcom-wl
  if [ "${BROADCOM_WL}" == "y" ] ; then
    zenity --info --text="Compilando módulo Broadcom" 
    cp -ar src/wl src/wl_orig
    patch -p1 -N -i linux-recent.patch
    patch -p1 -N -i license.patch
    patch -p1 -N -i user-ioctl.patch
    make -C $DIR_FUENTE/linux-$_basekernel M=`pwd`
    install -D -m 755 wl.ko ${pkgdir}/lib/modules/${_extramodules}/wl.ko
    rm -r src/wl
    mv src/wl_orig src/wl
  fi


zenity --warning --text="Asegúrese de que los parches se hallan aplicado con éxito"
sleep 3
echo -e $YELLOW"Si no presione Ctrl+C"$ENDCOLOR
sleep 10
echo -e $YELLOW"Borrando archivos innecesarios..."$ENDCOLOR
sudo rm patch-*-ck1* toi*.patch 000*BFQ*.patch *.patch hybrid-portsrc*.tar.gz

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
echo -e $YELLOW"Asegúrese que se haya añadido el archivo .config"$ENDCOLOR
cat /usr/src/linux/.config | grep CONFIG_MATOM
sleep 10
echo -e $YELLOW"Iniciando gconfig"$ENDCOLOR
sudo make gconfig
echo -e $YELLOW"Copiando fichero .config a Ubuntu One"$ENDCOLOR
sudo cp /usr/src/linux/.config $HOME/"Ubuntu One"/kernel-netbook-$VERSION_CONFIG
sleep 3
echo -e $YELLOW"Limpiando el kernel..."$ENDCOLOR
sleep 5
sudo make-kpkg clean
sleep 5
echo -e $YELLOW"Compilando el kernel..."$ENDCOLOR
sudo make-kpkg -j2 --initrd linux_headers linux_image
sleep 5
#Reproduce un pitido
play /usr/share/sounds/Sentinella/Bip-bip.ogg
#echo -e $YELLOW"Instalando linux-image y linux_headers..."$ENDCOLOR
#cd /usr/src
#sudo dpkg -i linux*.deb
sleep 5
echo -e $YELLOW"Subiendo linux-image y linux-headers a 4shared..."$ENDCOLOR
cadaver --rcfile=$HOME/.4shared-kernel
echo -e $YELLOW"Moviendo archivos .deb a Programas"$ENDCOLOR
sudo mv /usr/src/linux*.deb $HOME/Programas
echo -e $YELLOW"Se desactiva una entrada al inicio para checar la version del kernel-netbook"$ENDCOLOR
sed -i 's/X-GNOME-Autostart-enabled=true/X-GNOME-Autostart-enabled=false/g' $HOME/.config/autostart/checa_avisa_kernel.sh.desktop
echo -e $YELLOW"Saliendo..."$ENDCOLOR
sleep 4;;


2)	CANCELAR=$(zenity --warning --text="Se ha cancelado");;

esac



Descarga: kernel.sh
Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

domingo, 21 de octubre de 2012

Usar zenity y wget para ver barras progreso de una descarga

Este script no es de mi autoría pero me pareció útil mencionarlo en este blog, con este script podemos mostrar la con una barra de progreso, una descarga iniciada con wget, puede correrse ya sea con doble clic, y aparece una ventana donde te pregunta que enlace de descarga quieres que use el script, o bien puedes agregar el enlace despues de haber escrito en una terminal por ejemplo:
./wget_progreso.sh http://servidor/midescarga.jpg

DOWNLOAD() {
  rand="$RANDOM `date`"
  pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`"
  mkfifo $pipe
  wget -c $1 2>&1 | while read data;do
    if [ "`echo $data | grep '^Length:'`" ]; then
      total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' |  tr -d '()'`
    fi
    if [ "`echo $data | grep '[0-9]*%' `" ];then
      percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'`
      current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' `
      speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKMG.]\+\).*/\1/' | tr -d ' %'`
      remain=`echo $data | grep -o "[0-9A-Za-z]*$" `
      echo $percent
      echo "#Descargando $1\n$current of $total_size ($percent%)\nSpeed : $speed/Sec\nEstimated time : $remain"
    fi
  done > $pipe &

  wget_info=`ps ax |grep "wget.*$1" |awk '{print $1"|"$2}'`
  wget_pid=`echo $wget_info|cut -d'|' -f1 `

  zenity --progress --auto-close --text="Conectando a $1\n\n\n" --width="350" --title="Descargando"< $pipe
  if [ "`ps -A |grep "$wget_pid"`" ];then
    kill $wget_pid
  fi
  rm -f $pipe
}

if [ $1 ];then
  DOWNLOAD "$1"
else
  dllink=$(zenity --entry --text "Tu enlace de descarga :" --width="350" --entry-text "" --title="Enlace de descarga")
  if [ $dllink ];then
    DOWNLOAD "$dllink"
  fi
fi





Obtenido de: Blog of SysAdmins

Descarga: wget_progreso.sh

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

sábado, 6 de octubre de 2012

Borra la cache de navegadores en cada inicio sesión

Este script borra la cache de:

  •  chromium
  •  firefox
  •  thunderbird

ACTUALIZACIÓN 15/12/12:  Ahora, con la ayuda de bleachbit , esto se puede hacer. Primero hay que instalarlo con sudo apt-get install bleachbit
y se puede añadir al encender ubuntu, sólo van a aplicaciones al inicio, añadir, y en orden le dan examinar y ahi buscan su script. Este es el contenido del script:
#!/bin/bash
YELLOW="\033[1;33m"
RED="\033[0;31m"
ENDCOLOR="\033[0m"
TOTAL=$(bleachbit -p chromium.cache firefox.cache thunderbird.cache | tail -3 | head -1)
notify-send --icon=bleachbit "Bleachbit" "$TOTAL"
echo -e $YELLOW"$TOTAL"$ENDCOLOR
bleachbit -c chromium.cache
bleachbit -c firefox.cache
bleachbit -c thunderbird.cache
rm -rf ~/.cache/google-chrome/Default/ &> /dev/null
rm -rf ~/.adobe/Flash_Player/AssetCache/* &> /dev/null
rm -rf ~/.adobe/Flash_Player/AssetCache &> /dev/null
rm /home/paulo/.cache/gnome-system-monitor.paulo.*
rm -rf ~/.goutputstream*
rm -rf ~/.kde/cache-equipo/icon-cache.kcache
rm -rf ~/.cache/* &> /dev/null
rm -rf ~/.xsession-errors*
echo -e $YELLOW"Caché borrada"$ENDCOLOR



Descarga: start
Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

Avisa que la cache de apt esta llena mediante notify-send

Este script lo unico que hace es checar el tamaño de la carpeta donde se guardan los paquetes .deb que se encuentra ubicada en /var/cache/apt/archives, y para esto hace uso de notify-send un notoficador como su nombre lo indica. De forma predeterminada se activa cuando la cache supera los 40000 kb (mas o menos 40 MB). Lo pueden poner al inicio la sesion, solo abren aplicaciones al inicio  y le dan añadir y en orden le dan examinar y buscan su archivo, asi cada vez que inicien sesion, si la cache supera cierto limite, les avisará que hay que vaciarla. Este es el contenido del script:
#!/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)
# Se concede permiso para copiar, distribuir y/o modificar este programa siempre 
# y cuando se cite al autor y la fuente de http://ubuntu-scripts.blogspot.mx/  
# y según los términos de la GNU General Public License, Versión 3 o cualquiera
# posterior publicada por la Free Software Foundation.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"
TAMANO=$(du -s /var/cache/apt/archives |  grep -o '[0123456789]*')
HUMANO=$(du -sh /var/cache/apt/archives |  grep -o '[0123456789KM,]*')

if [ "$TAMANO" -ge 40000 ]; then
DISPLAY=:0.0 notify-send --icon=gdebi "Caché de apt es de $HUMANO" "Debe vaciarla cuanto antes"
else
echo -e $YELLOW"Cache de apt es de $HUMANO"$ENDCOLOR
sleep 3
#DISPLAY=:0.0 notify-send --icon=gdebi "Caché de apt es de $HUMANO"
fi


Descarga: apt

Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.

sábado, 22 de septiembre de 2012

kernel netbook 3.5.4


Aquí está la ultima version del kernel de linux compilado a la "manera debian"; es la version 3-5.4 optimizado para netbook, la configuración del núcleo la tomé de kernel-netbook 

Información tomada kernel-netbook:

Some features:
Without initrd image (optional support)
Optimized for Intel Atom CPU (CONFIG_MATOM)
Optimized battery management
Added external firmware1
Kernel Mode Settings
Arch official patchset
Support to encrypted partition
BFS (default) and BFQ (optional) scheduler
Tux On Ice support
Native support for CPU scaling
Light, once installed only 10MB used (kernel26 uses 51MB)
Headers in a separated package (kernel-netbook-headers) - Not requested in a standard system


[1] broadcom-wl
Supported netbooks:
Asus Eeepc
Acer Aspire One
MSI Wind
Samsung N-series
Dell Mini
Lenovo Ideapad
Sony Vaio Netbooks
HP mini
Toshiba NB-series
Many others similar


Descarga: http://www.4shared.com/file/FGtZFB0A/linux-image-354-netbook_354-ne.html 
Descarga: http://www.4shared.com/file/l22_HExl/linux-headers-354-netbook_354-.html

miércoles, 12 de septiembre de 2012

kernel Acer Aspire One D255e

Hola, les traigo un kernel compilado para la Acer Aspire One D255E que es el equipo que actualmente tengo, sólo pesa 6.57 Mb. todos los dispositivos funcionan correctamente, pero aun esta "en etapa de pruebas", al algunos controladores que no son de este modelo, pero hice lo posible para quitar los que no eran necesarios. Ojala pueda "limpiar" más la construcción específicamente para esta netbook y reducir el tamaño del núcleo. La versión del kernel es la 3.5.3 y esta es la información de la computadora usando lspci:
00:00.0 Host bridge: Intel Corporation N10 Family DMI Bridge
00:02.0 VGA compatible controller: Intel Corporation N10 Family Integrated Graphics Controller
00:02.1 Display controller: Intel Corporation N10 Family Integrated Graphics Controller
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 02)
00:1d.0 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA Controller [AHCI mode] (rev 02)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 02)
01:00.0 Ethernet controller: Atheros Communications Inc. AR8152 v1.1 Fast Ethernet (rev c1)
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

~$ lsusb
Bus 001 Device 002: ID 064e:d214 Suyin Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Descarga: linux-image-3.5.3-aao-d255e-netbook_3.5.3-aao-d255e-netbook-10.00.Custom_i386.deb
Archivo de configuración del kernel: ultima_config_kernel  (.config)

ACTUALIZACIÓN (14/09/12): He encontrado que hay problemas con la hibernación, al volver de la hibernación, esta no regresa a las aplicaciones que se tenían abiertas. No he encontrado la manera de arreglar esto. Las configuraciones del kernel como CONFIG_HIBERNATION CONFIG_ARCH_HIBERNATION_POSSIBLE CONFIG_PM estan activadas.

jueves, 6 de septiembre de 2012

Script ultima version del kernel

Aqui les traigo un script consulta en kernel.org de las versiones 3.x cual es la última y la descarga, ademas de que tambien sirve para checar la version del archivo de configuración (config) para la compilación del kernel netbook.
Actualización 17/04/13: Debido a mi poco conocimiento acerca de las conexiones seguras, SSL, curl, no he podido usar curl para consultar desde los servidores de kernel.org ya que estos ahora usan https. he cambiado el script y ahora funciona con w3m
Descarga:ultima_version_kernel.sh

#!/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)
# 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.
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
RED="\033[0;31m"

PRINCIPAL=3.x
cd ~/Programas
#echo -e $YELLOW"Escriba la versión que quiera descargar"$ENDCOLOR
#read VERSION
#~/Scripts/./wget_progreso.sh ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION}.tar.bz2
function ultima_version()
{
PRINCIPAL=3.x
VERSION=$(w3m -dump http://kernel.org/kdist/finger_banner | head -2 |tail -1 | awk '{ print $11 }')

LINUX_VERSION=linux-$VERSION.tar.bz2
cd ~/Programas
LISTAR=$(ls *.tar.bz2)
echo -e $YELLOW"Listando archivos .tar.bz2 en Programas..."$ENDCOLOR
echo $LISTAR
sleep 5
echo -e $YELLOW"La ultima version en kernel.org es la  $VERSION"$ENDCOLOR
sleep 5
if [ "$LISTAR" = "$LINUX_VERSION" ]; then
echo -e $YELLOW"Las versiones son iguales, no se descargará nada"$ENDCOLOR
sleep 5
echo -e $YELLOW"Saliendo..."$ENDCOLOR
sleep 4
else
gxmessage -center -geometry 600×400 -title “linux-$VERSION” -buttons Si:1,No:2 -default Si -wrap “Hay una nueva versión del kernel de linux: $VERSION. ¿Desea descargarla?”

case $? in

1) DISPLAY=:0.0 notify-send -i /home/paulo/.icons/linux.xpm "Hay una nueva versión del kernel: $VERSION" "Descargando desde kernel.org..."
echo -e $YELLOW"Descargando desde kernel.org..."$ENDCOLOR
sleep 10
cd ~/Programas
echo -e $YELLOW"Enviando código fuente antiguo a la papelera"$ENDCOLOR
mv  $LISTAR ~/.local/share/Trash/files/$LISTAR
#wget -c http://www.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION}.tar.bz2
#wget -c ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION}.tar.bz2
~/Scripts/./wget_progreso.sh ftp://ftp.kernel.org/pub/linux/kernel/v${PRINCIPAL}/linux-${VERSION}.tar.bz2
play /usr/share/sounds/KDE-K3B-Finish-Success.ogg
DISPLAY=:0.0 notify-send -i /home/paulo/.icons/kernel-check.xpm "Version del kernel de linux $VERSION" "Descargado con éxito"
echo -e $YELLOW"Se añade una entrada al inicio para checar la version del kernel-netbook"$ENDCOLOR
sed -i 's/X-GNOME-Autostart-enabled=false/X-GNOME-Autostart-enabled=true/g' /home/paulo/.config/autostart/checa_avisa_kernel.sh.desktop

############################################################################################
VERSION_CONFIG=$(cat /home/paulo/kernel-netbook/config | head -3 |tail -1 | grep -o '[0123456789.]*' | head -3 |tail -1)
if [ "$VERSION_CONFIG" = "$VERSION" ]; then
echo -e $YELLOW"La versión del kernel y la versión del archivo de configuración de kernel-netbook son iguales"$ENDCOLOR
play /usr/share/sounds/KDE-Im-Message-Out.ogg
DISPLAY=:0.0 notify-send -i /home/paulo/.icons/compilar.xpm "Cuando se decida, puede empezar a compilar" "$LISTAR"
sleep 5
##############################################USO DE XMESSAGE################################
cd ~/Scripts
gxmessage -center -geometry 600×400 -title “kernel-netbook” -buttons Si:1,No:2 -default Si -wrap “La version del kernel es la misma que la del archivo de configuración, ¿desea compilar ahora? Necesitará permisos de administrador para hacerlo.”

case $? in

1) sudo gnome-terminal -e ./kernel-netbook.sh;;
2) ;;

esac

else
echo -e $YELLOW"Hay una nueva versión del kernel, pero el archivo /kernel-netbook/config aún no se actualiza"$ENDCOLOR
sleep 3
echo -e $YELLOW"Saliendo"$ENDCOLOR
sleep 3
fi
sleep 5
;;
2) ;;

esac

fi
}
echo -e $YELLOW"Comprobando conexión a Internet..."$ENDCOLOR
ping www.google.com -c 3 >/dev/null 2>&1
if [ $? = 0 ]; then
ultima_version
else
echo -e $RED"No se ha podido establecer una conexión a internet"$ENDCOLOR
sleep 5
fi


Pueden descargar el script o copiar y pegar el codigo anterior en su editor favorito (puede ser gedit), guardarlo, y darle permisos de ejecución; seleccionan el archivo guardado, le dan clic derecho >Propiedades > pestaña Permisos y marcan la casilla de "Permitir ejecutar el archivo como un programa". Algunos scripts no contienen la extension .sh pero aún asi siguen funcionando.

Nota: En cualquier momento podría modificar el script para adaptarlo a mis necesidades. Favor de avisar en caso de que los enlaces no funcionen.