[Linux] Instalando Debian Wheezy a una Lemote Yeeloong

Ya hace algún tiempo había creado un artículo donde explicaba como montar Debian Squeeze a una Lemote Yeeloong (portatil china con arquitectura MIPSEL).

http://phenobarbital.gnu.org.ve/doku.php/weyu:lemote:yeeloong

Lemote Yeeloong

Lemote Yeeloong

El equipo tenía Debian Squeeze, pero tenía el inconveniente de que corría en modo VESA (pues un bug del driver siliconmotion y del Xserver-xorg hacían imposible correrla en otro modo); en marzo del 2011 me enteré que habían corregido ese fallo para la última versión de X.org (1.7+ que está en Debian Wheezy) y que además paquetes como el kernel loongson-2F (el Microprocesador de la Lemote Yeeloong) y el grub para la yeeloong (grub-yeeloong) habían sido incorporados a Debian Wheezy …

Asi que, ¡Manos a la obra! …

Pasos previos

Es ALTAMENTE recomendable actualizar el BIOS a la versión 1.4.9a como lo indico en mi wiki > http://phenobarbital.gnu.org.ve/doku.php/weyu:lemote:yeeloong.

ADVERTENCIA: haga la actualización del BIOS bajo respaldo energético, una pérdida de energía durante el proceso puede dejarlo sin computador …

La versión 1.4.9a (revisión a) incorpora una serie de mejoras, como por ejemplo, poder “arrancar” directamente desde el pendrive (USB) y una mejora más que notable en el arranque del initrd (que baja de minutos, a solo segundos), se puede *personalizar* el boot splash del BIOS entre otras cosillas (revisar Wiki).

Preparando el pendrive

Usaremos un USB para instalar el equipo, en mi caso, un viejo pendrive de 256 Mb fué más que suficiente), formateamos el pendrive en EXT2, partición activa primaria y en él vamos a copiar los siguientes archivos:

El Kernel (Linux-Libre lemote)

http://archive.gnewsense.org/gnewsense-metad/installer/current/mipsel/loongson/netboot/vmlinuz-2.6.35.8-libre2-lemote

Renombrenlo simplemente a “vmlinuz” al copiarlo al pendrive.

El initrd:

http://d-i.debian.org/daily-images/mipsel/daily/malta/netboot/initrd.gz

Y bajense el archivo “rescue” para que tengan una forma de iniciar un busybox desde el pendrive:

http://dev.lemote.com/files/binary/system/v1.1.2/rescue

Tendríamos entonces los siguientes archivos:

  • vmlinuz
  • initrd
  • rescue

Ahora, creamos un “archivo de arranque” en el pendrive (para no tener que iniciar nosotros mismos, con el fatídico “SUPR+SUPR+SUPR+SUPR+ hasta que sale el prompt del BIOS PMON):

Creamos un archivo “boot.cfg” en la raíz del pendrive con la siguiente información:

default 0
timeout 3
showmenu 1

title Instalar Debian Wheezy Lemote
kernel	(usb0,0)/vmlinuz
initrd  (usb0,0)/initrd.gz
args    console=tty no_auto_cmd matchtype=lemote-yeeloong-2f-8.9inches

title   Consola de recuperacion
kernel	(usb0,0)/rescue
args    console=tty no_auto_cmd matchtype=lemote-yeeloong-2f-8.9inches

title  Iniciar desde el disco duro
kernel (wd0,0)/vmlinux-2.6.38-2-loongson-2f
args console=tty no_auto_cmd root=/dev/sda5 rootdelay=8 matchtype=lemote-yeeloong-2f-8.9inches

Esto nos permitirá tener tres opciones de menú, la primera, el arranque del Instalador (Netinstall) de Debian, la segundo, un “modo de rescate” con una busybox mínima en caso de fallas y la última, un modo para poder arrancar desde el disco duro ya instalado.

Nota: hay que asumir las rutas de los discos duros, como yo “separo” root de boot y pongo a root en la partición extendida, su numeración es “sda5”, pero si root es primaria (la segunda después de boot) sería sda2, si boot  y root quedan juntos, root será igual a sda1.

NOTA: si desean instalar desde una ISO netinstall, deben descargarla y copiarla al pendrive, de lo contrario, se conectará a Internet para descargarse todos los paquetes.

Al tener el pendrive listo, procedemos a “reiniciar”.

Instalación de Debian Wheezy

La instalación ocurre como cualquier otra, las opciones iniciales:

  • Idioma: Español
  • País: Venezuela
  • Teclado: Latinoamericano
  • Desea continuar sin cargar los módulos de núcleo? Respuesta: Si
  • Configurar red?: Si
  • Mirror de red: Estados Unidos > ftp.us.debian.org (o el que escojan, que tenga arquitectura MIPSEL)
  • Nos dirá que no cuenta con módulos LVM ni RAID, presionar “Si” y continuar.
  • Particionado: boot (hda1) de 256 MB-ext2 primaria y activa, root(hda2) de 10Gb tipo ext3 tipo lógica , (partición extendida: home(hda4) ext4 del resto del espacio, swap (hda5) de 2Gb)
  • Tasksel: Sistema Estándar y Equipo portátil
  • No se ha encontrado un kernel, desea continuar sin instalar un kernel? respuesta: Si

Adicionalmente, ha determinado que no encontró o no se instaló un gestor de arranque, por lo que debemos iniciar “manualmente” al finalizar la instalación.-

Primer arranque del sistema

Al reiniciar el instalador, lo primero que debemos hacer es presionar múltiples veces la tecla SUPR (DEL) hasta caer en el prompt (cónsola) del BIOS PMON,

PMON>

Al caer allí, ejecutamos:

dir (wd0,0)

Verán el contenido de la carpeta “/boot”.

Ejecuten para cargar el kernel Linux:

load (wd0,0)/vmlinux-2.6.38-2-loongson-2f

Y luego, indicamos que deseamos cargar DESDE el disco duro:

g console=tty root=/dev/sda5 no_auto_cmd rootdelay=8

O también pueden escoger la opción que para tal fin agregué al boot.cfg del pendrive que dice “Arrancar por el disco Duro”.

En ambos modos, terminaremos con una consola en un sistema básico.

Lo primero, configurar los repositorios:

/etc/apt/source.list

# repositorio oficial
deb http://ftp.us.debian.org/debian/ wheezy main
deb-src http://ftp.us.debian.org/debian/ wheezy main

# repositorios lemote loongson2f
deb http://www.anheng.com.cn/loongson2f/wheezy/ ./ main

Nota: el repositorio oficial “chino” a veces tiene problemas de alcance (se la pasa muchas veces caído), utilicen un repositorio “copia” más cercano como:

deb http://apt.vds-host.org/anheng/wheezy/ ./ main contrib

Definan la prioridad de los repositorios:

vim.tiny /etc/apt/preferences.d/anheng

Package: *
Pin: release o=Debian
Pin-Priority: 1

Package: *
Pin: origin www.anheng.com.cn
Pin-Priority: 2000

Package: *
Pin: origin apt.vds-host.org
Pin-Priority: 2000

Ejecuten la actualización del apt:

apt-get update

Y ya estamos listos para empezar a instalar aplicaciones.

Configuración de Entorno Gráfico

Instalamos los siguientes paquetes:

apt-get install xserver-common xserver-xorg-core xserver-xorg-video-siliconmotion

Luego de instalados, configuramos las X, creamos los archivos:

/usr/share/X11/xorg.conf.d/10-device.conf

Section "Device"
        Identifier      "Configured Video Device"
        Driver          "siliconmotion"
        Option          "HWCursor"       "true"
        Option          "VideoKey"       "45000"
        Option          "UseBIOS"        "false"
        Option          "PanelSize"      "1024x600"
        Option     	"pci_burst"      "true"
        Option          "AccelMethod"    "UXA"
        Option          "MonitorLayout" "CRT,LFP"
        Option          "DevicePresence" "true"
EndSection

/usr/share/X11/xorg.conf.d/20-screen.conf

Section "Monitor"
        Identifier      "Configured Monitor"
        Option          "DPMS"
        HorizSync    	30-70      #30-85
        VertRefresh  	50-80      #40-75
        DisplaySize     197 117   # 1024x600  130 dpi
        gamma 1.0
	modeline     	"1024x600@59.9" 49.00  1024 1072 1168 1312  600 603 613 624 -hsync +vsync
EndSection
Section "Screen"
        Identifier      "Default Screen Section"
        Monitor         "Configured Monitor"
        DefaultDepth    16                           # or 24
        SubSection "Display"
		Viewport   0 0
                Virtual   1024 600
		Depth     16
		Modes   "1024x600@60" "1024x600@54" "1024x768@60" "800x600@60"
	EndSubSection
        SubSection "Display"
		Viewport   0 0
                Virtual   1024 600
		Depth     24
		Modes   "1024x600@60" "1024x600@54" "1024x768@60" "800x600@60"
	EndSubSection
EndSection

/usr/share/X11/xorg.conf.d/30-serverflags.conf

Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
        Option "DAMAGE" "Enable"
EndSection

Section "ServerFlags"
        Option  "AllowGLXWithComposite" "true"
        Option  "XAANoOffscreenPixmaps" "true"
        Option  "AddARGBGLXVisuals"     "True"
        Option  "RandR"                 "on"
        Option  "RENDER"                "on"
        Option  "AIGLX"                 "True"
        Option  "GlxVisuals"            "all"
        Option  "AutoAddDevices"        "True"
        Option  "AutoEnableDevices"     "True"
        Option  "AllowEmptyInput"       "False"
	Option  "NoPM"  		"true"
EndSection

Acerca de la configuración de video

El driver siliconmotion no es un driver muy potente, de hecho, si desean un máximo performance para las actividades cotidianas (abrir ventanas, etc), el modo recomendado es:

  • Modo: XAA
  • Resolución: 16 bits

Instalando el entorno de escritorio

Ejecutamos:

mkfontdir /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType

E instalamos:

aptitude install mesa-utils libgl1-mesa-glx

E instalamos un entorno de escritorio, por ser gnome tan pesado, me he decidido por slim con lxde:

aptitude install lxde slim desktop-base

Generar el arranque

Instalamos grub-yeeloong:

aptitude install grub-yeeloong

Y luego, creamos un archivo /boot/boot.cfg

default 0
timeout 3
showmenu 1

title Boot with Grub
        kernel (wd0,0)/grub.elf
        args console=tty no_auto_cmd

title GNU/Linux Debian Wheezy 2.6.38 Lemote
        kernel vmlinux-2.6.38-2-loongson-2f
        args console=tty root=/dev/sda5 no_auto_cmd matchtype=8.9 acpi=force apic vga=792 video=siliconmotion:1024x600

Tome nota, que si colocamos “showmenu” en 0 y timeout en 1, no mostrará menú de arranque PMON y caerá directamente en el grub de Debian.

Editamos las flags de GRUB (/etc/default/grub):

GRUB_CMDLINE_LINUX=”console=tty root=/dev/sda5 resume=/dev/sda6 splash  no_auto_cmd matchtype=8.9 acpi=force apic lapic idebus=66 vga=792 video=siliconmotion:1024×600″
 

Nota: root=”” apunta a root (/) de nuestro sistema, resume=”” apunta a la partición SWAP.

Actualizamos grub:

update-grub

Y reiniciamos el equipo.

Aplicaciones de usuario

Como sabrán, el entorno de escritorio por defecto en Debian es GNOME y la mayoría de los meta-paquetes vienen orientados en ese aspecto, así que instalé por mi parte LXDE, SLIM y entonces, queda por instalar aplicaciones, en este capítulo, usaré desde aptitude la instalación de tareas de tasksel:

aptitude install ~t^laptop ~t^desktop

La primera instalará network-manager y el resto de aplicaciones (como acpid) para portátiles, la segunda, las aplicaciones de escritorio comunes como LibreOffice, Iceweasel, gimp, totem, gnash, etc.

Optimizaciones varias

Prelink, Preload, Readahead 

Prelink, preload y readahead, insserv, son 4 aplicaciones que mejoran notablemente el performance general del equipo:

Prelink: Modifica las librerías, para que carguen más rápido (pre-binding)

Preload: Carga en RAM las aplicaciones y librerías más usadas, para un inicio más rápido.

Readahead-Fedora,Insserv: Re-organizan los servicios para mejorar el arranque inicial del equipo.

Instalamos:

aptitude install prelink preload readahead-fedora insserv

Editamos:

vim.tiny /etc/default/readahead-fedora

Cambiamos:

# enable readahead at system startup

READAHEAD=”yes”

Y descomentamos y modificamos el IO:

IO_PRIORITY=”real-time”

Editamos:

vim.tiny /etc/default/prelink 

Modificamos:

PRELINKING=yes

 Luego, ejecutamos:

prelink --all

Para que haga un análisis de todos los ejecutables y librerías (puede tardar unos minutos).

Luego, editamos:

vim.tiny /etc/init.d/rc

Y cambiamos el nivel de concurrency a:

CONCURRENCY=makefile

Modificaciones del Sysctl

Sysctl permite cambiar dinámicamente opciones del sistema (en general), de módulos y del kernel en sí mismo, las opciones a habilitar tienen que ver con la reducción del impacto general sobre la memoria virtual del kernel, la reducción de uso de SWAP, entre otras.

vim.tiny /etc/sysctl.conf
# —-
#disminuir el uso de swap
vm.swappiness=1

 

#shared buffers
kernel.shmmni = 4096
kernel.shmall = 536870912
kernel.shmmax = 2147483648

 

#cantidad de hilos maximos
kernel.threads-max = 98006

 

#cantidad de archivos máximos abiertos
fs.file-max = 307615
fs.aio-max-nr = 1048576

 

# frecuencia de flush del demonio writeback
vm.dirty_background_ratio = 10
# porcentaje de RAM que será usada para memoria paginada (dirty memory)
vm.dirty_ratio=25
# para equipos con poca RAM, se usará solamente el 40% de la RAM como cache
vm.vfs_cache_pressure = 40
# wine, qemu y otras aplicaciones, requieren mapear Low-memory
vm.mmap_min_addr=4096
# una aplicacion no podrá usar más de 4096Kb de memoria baja
# Habilitamos el schedule autogroup y su velocidad de respuesta
kernel.sched_autogroup_enabled=1
kernel.sched_rt_runtime_us = 960000
# —

* ejecutamos:

sysctl -p

Para aplicar los cambios.

Performance del Disco

Instalamos hdparm

aptitude install hdparm

Luego de mejorar el performance de los sistemas de archivos, habilitamos 2 cosas importantes al disco duro:

hdparm -W1 -A1 /dev/sda

-W1 habilita el caché del disco duro

agregamos la siguiente información al /etc/hdparm.conf

/dev/sda {
lookahead = on
write_cache = on
}

Y ejecutamos con el comando, para que se active:

hdparm -q -W1 -A1 /dev/sda

CGROUPS

Es una técnica del Kernel Linux para aislar, solapar, limitar o contabilizar todos los recursos hardware de la máquina (CPU, Memoria RAM, Disk I/O) en forma de contenedores de procesos aislados, con el fin de mejorar la eficiencia del kernel Linux, al paralelizar de manera óptima los procesos.

Esta técnica permite priorizar tareas y organizarlas jerárquicamente por criterios definidos, mejorando notablemente el performance general del sistema.

Instalaramos lo que necesitamos para administrarlos en GNU/Linux (> 2.6.38)

aptitude install cgroup-bin libcgroup1 libpam-cgroup

* editamos el archivo cgconfig e indicamos donde se encuentra la ruta donde se montarán los CGROUPS:

vim.tiny /etc/cgconfig.conf

En Debian esa ruta es:

/sys/fs/cgroup/

Quedando:

mount {
all = /sys/fs/cgroup;
}

Editamos el cgrules:

vim.tiny /etc/cgrules.conf

Y creamos un grupo “especial”, llamado default, donde se agregarán los procesos de todos los usuarios (procesos no de sistema):

* * default/

Editamos:

vim.tiny /etc/pam.d/common-session

Y agregamos el pam_cgroup, esto con el fin de que las tareas de usuario, sean agrupadas y gestionadas por el control CGROUP:

session optional pam_cgroup.so

libpam-cgroup clasifica los trabajos interactivos que implican inicio de sesión.

Inittab

Reducimos las consolas TTY al mínimo (cada cónsola consume recursos):

Editamos: /etc/inittab y comentamos:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Dejando solo las 2 primeras.

Luego de todos los cambios, reiniciamos el equipo.

Limpieza General

Eliminé los siguientes paquetes (no los necesito en mi portatil de escritorio)

aptitude purge rpcbind portmap exim4 exim4-base exim4-config exim4-daemon-light

Limpiamos la caché del aptitude

aptitude clean

Instalamos localepurge y deborphan

aptitude install localepurge deborphan

Y limpiamos paquetería innecesaria con deborphan:

aptitude purge `deborphan` `deborphan --find-config` `deborphan --libdevel` `deborphan --guess-all`

TODO:

* Instalar la temática Canaima

* Hacer un kernel tunning extra-personalizado y monolítico para la Lemote Yeeloong

* Hacer que el driver siliconmotion pueda dar direct-rendering sin usar Software

* Mejorar el rendimiento general del sistema y las flags del filesystem según > https://phenobarbital.wordpress.com/2011/05/13/linux-debiancanaima-en-soneview-n110-mini-laptop-classmate/

 

* Hacer mediciones de benchmark y performance

Ver más:

http://phenobarbital.gnu.org.ve/doku.php/weyu:lemote:yeeloong

http://wiki.debian.org/DebianYeeloong/HowTo/Install

http://romanrm.ru/en/loongson/debian

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 1 junio 2011 en Blogeando!, Cultura Libre, Linux, PlanetaLinux, Software Libre, trucos de la abuela y etiquetado en , , , , , , , . Guarda el enlace permanente. 15 comentarios.

  1. uff… se ve muy completo. Voy a probar estos pasos durante el fin de semana… Gracias por el aporte

  2. Que bien, lo intentare mañana y te diré como me fue😉

  3. buenos días hermano yo tengo una lemote yeeloong y e leido tu tutorial es muy completo solo me queda prefuntar algo yo tengo el instalador de canaima (versión normal) y quisiera saber si puedo utilizarlo al igual que la imagen comprimida de devian o de canaima mips a la que haces referencia en el post… gracias

    • phenobarbital

      Son arquitecturas distintas, Canaima se empaqueta para arquitecturas x86 y x86_64, no se empaqueta para arquitectura MIPSel desde la versión 2.0 (basada en Debian Etch), podrías usar algunos paquetes sin arquitectura que tiene la plataforma (ej. canaima-estilo-visual) para darle al Debian un “aspecto” Canaima.
      Saludos! y de nada!

  4. Saludos amigo, tengo una lemote yeeloong y seguí los pasos como dicen arriba pero tengo problemas al final no me carga las X y después lo intente instalando gnome y nada, cuando realizo un Xorg -configure me da error dice que no genera el xorg.conf.new , probando cree (xorg.conf) a partir de 10-device.conf, 20-screen.conf y 30-serverflags.conf y nada no se deja, bueno sigo buscando a ver si doy con la falla si tienes alguna sugerencia o ayuda te agradecería.

    • Debes revisar el archivo log del sistema X (/var/log/Xorg.0.log) es la única forma de saber cual es el error que está ocurriendo.
      Revisalo y por acá te podemos explicar …
      saludos!

  5. Hola, me estoy planteado adquirir un Lemote Yeeloong aunque no está con teclado en castellano, ¿es posible remapear el teclado para poder escribir eñes y tildes? ¿cómo?

    Saludos.

    • Si paco, es posible, simplemente colocas el teclado en otra distribución y cambia las teclas (o compras stickers y se las pegas encima).

  6. buenas días mi lemote yeeloong no carga el pmon al encenderla solo me salela pantalla en blanco, me podria ayudar para cargar el pmon nuevamente gracias.

    • Si comenzaste una carga del PMON y falló por algún motivo (falla de energía, etc, por algo hice la acotación muy importante) has perdído el BIOS, hay algunas formas más complicadas de rescatar el equipo, pero implican un servidor TFTP con el BIOS pmon y configurado a una IP específica o re-escribir el BIOS (que está en un chip) con un dispositivo para escribir en la memoria.
      Por ahora, es posible que hayas perdido el equipo; lo siento.

      • Hola…. Tengo un problema con mi Yeeloong 8089_C. Actualice el BIOS con el equipo pegado a la corriente y ahora me sale la pantalla en blanco…. como puedo rescatar el equipo????

  7. Hola…. Tengo un problema con mi Yeeloong 8089_C. Actualice el BIOS con el equipo pegado a la corriente y ahora me sale la pantalla en blanco…. como puedo rescatar el equipo????

  8. amigo que hago cuando me dice no se detecta tarjeta de red
    debido a que no pude actualizar el bios lo instale de la siguiente forma

    ide -d bl (usb0,0) /boot.cfg

    carga todo pero no me detecta la red para continuar la instalcion

  1. Pingback: Instalar GNU/Linux Debian Wheezy en una Lemote Fuloong | Phenobarbital con Soda!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: