?>/script>'; } ?> Instalar Debian en un router OpenWrt Widgets Magazine

Autor Tema: Instalar Debian en un router OpenWrt  (Leído 57303 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado raphik

  • *****
  • Mensajes: 102
Instalar Debian en un router OpenWrt
« en: 16-10-2018, 21:33 (Martes) »
La idea no es nueva. Hay algo publicado para el D-Link DIR-825 aquí: https://wiki.debian.org/InstallingDebianOn/D-Link/DIR-825

Después de varios días intentándolo, finalmente lo he podido instalar en un HG553. Presumiblemente, se puede instalar en cualquier router OpenWrt.
- jar229 lo ha instalado en un Xiaomi MiWiFi Mini.

En el PC,

1. Compilar una imagen OpenWRT específica con emulación FPU y soporte USB para sistemas de archivo ext4
Empezamos como siempre,
Código: [Seleccionar]
# Clonar repositorio
  git clone https://www.github.com/openwrt/openwrt -b openwrt-18.06
# Actualizar e instalar fuentes
  cd openwrt
  ./scripts/feeds update -a
  ./scripts/feeds install -a

Debian utiliza un coprocesador matemático hardware (FPU) del que carece el HG553. Afortunadamente, su presencia se puede emular por software. Es muy importante habilitar la emulación FPU tanto en menuconfig como en kernel_menuconfig.
Código: [Seleccionar]
# Entrar en el menú de configuración
make menuconfig
Citar
# Seleccionar Sistema
  Target System ---> (X) Broadcom BCM63xx

# Selecciona Perfil
  Target Profile ---> (X) Huawei EchoLife HG553

# MUY IMPORTANTE, habilitar la emulación FPU
  Global build settings  ---> Kernel build options  ---> (*) Compile the kernel with MIPS FPU Emulator

# Poner interfaz luci,
  LuCI ---> Collections ---> <*> LuCI

# Dar soporte WiFi
  Kernel modules ---> Wireless Drivers ---> <*> kmod-b43

# Dar soporte WPA-PSK
  Network ---> <*> wpad-mini

Hay algunos paquetes que se pueden incluir en la compilación o instalarlos más tarde
Citar
Base system  ---> <*> block-mount
Kernel modules ---> Filesystems ---> <*> kmod-fs-ext4
Kernel modules ---> USB Support ---> <*> kmod-usb-storage
Utilities  ---> Disc  ---> <*> cfdisk
Utilities  ---> Filesystem  ---> <*> e2fsprogs
Utilities  ---> Compression ---> <*> xz-utils  (si no se selecciona, no aparecerá deboostrap)
Administration  ---> <*> debootstrap

Como dije más arriba, también hay que habilitar la emulación FPU en kernel_menuconfig
Código: [Seleccionar]
# Entrar en el menú de configuración del Kernel
  make kernel_menuconfig
Citar
# Habilitar emulación FPU
  Kernel type ---> (*) MIPS FPU Emulator

Por último,
Código: [Seleccionar]
# Compilar
  make -j 3 V=cs

Y flashear el router.

En el router,

2. Configurar la red
Es imprescindible que el router tenga acceso a Internet.

3. Particionar y montar una memoria USB externa
Yo he utilizado un pendrive de 4GB que he particionado con la utilidad cfdisk en el propio router
Código: [Seleccionar]
# Particionar Disco
  cfdisk /dev/sda



Partición sda1, tipo Swap, de 512M. Partición sda2, tipo Linux, con el resto de espacio.

Formatear y montar
Código: [Seleccionar]
# Formatear /dev/sda2
  mke2fs -t ext4 /dev/sda2

# Montar
  mount /dev/sda2 /mnt

La partición Swap no es necesaria por ahora, pero también se puede montar si se quiere
Código: [Seleccionar]
# Formatear swap
  mkswap /dev/sda1

# Montar swap
  swapon /dev/sda1

4. Instalar la utilidad debootstrap
Si no se incluyó al compilar, instalar la utilidad debooststrap que se usará más adelante para descargar e instalar Debian.
Código: [Seleccionar]
  opkg update
  opkg install debootstrap

Junto con este paquete se descargan automáticamente otros paquetes que son necesarios.

5. Instalar Debian 8 («jessie») en el punto de montaje /mnt
Averiguar la arquitectura del router.
Código: [Seleccionar]
  uname -mEn teoría, este comando devuelve la arquitectura del router. Pero, según reporta jar229, este método no es fiable. Sugiero entonces consultar la toh de OpenWrt.

Establecer variable de entorno. Esto es importante, si no, no irá bien la instalación.
Código: [Seleccionar]
  LANG=C
Invocar el comando deboostrap con la opción --arch=<arquitectura_del_router>
Código: [Seleccionar]
  debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debian.org/debian
Tarda un buen rato en descargar e instalarse.

6. ¡Debian!
Para entrar en el entorno Debian, ejecutar el comando
Código: [Seleccionar]
  chroot /mnt /bin/bash
Puede parecer que no ha sucedido nada, pero se está ejecutando un SO Debian con un Kernel OpenWRT


QUEDA POR HACER:
- Montaje automático de Debian al arrancar el router.
- Establecer una IP propia para Debian distinta de OpenWRT
- Instalar soporte SSH para Debian.
- Etc.

« Última modificación: 29-03-2020, 12:34 (Domingo) por raphik »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re:Instalar Debian en un HG553
« Respuesta #1 en: 16-10-2018, 23:07 (Martes) »
La idea no es nueva. Hay algo publicado para el D-Link DIR-825 aquí: https://wiki.debian.org/InstallingDebianOn/D-Link/DIR-825

Después de varios días intentándolo, finalmente lo he podido instalar en un HG553.

En el PC,
Compilar una imagen OpenWRT específica con emulación FPU y soporte USB para sistemas de archivo ext4.

En el router,
1. Configurar la red.
2. Particionar y montar una memoria USB externa.
3. Instalar la utilidad debootstrap.
4. Instalar en la memoria externa Debian 8 («jessie») para MIPS.
5. Lanzar Debian.

Sistema Operativo
Citar
root@OpenWrt:/# cat /etc/issue.net
Debian GNU/Linux 8
Kernel
Citar
root@OpenWrt:/# uname -a
Linux OpenWrt 4.9.133 #0 Mon Oct 15 14:54:30 2018 mips GNU/Linux

Si alguien está interesado en el tema, puedo hacer una pequeña guía paso a paso.

¡Por favor! ¡Eso ya sería para descubrirse el sombrero!
Adelante.

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #2 en: 17-10-2018, 01:08 (Miércoles) »
Si alguien está interesado en el tema, puedo hacer una pequeña guía paso a paso.

¡Por favor! ¡Eso ya sería para descubrirse el sombrero!
Adelante.

Hecho. He detallado los pasos en el primer post.

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #3 en: 17-10-2018, 11:49 (Miércoles) »
Una vez en Debian, se puede editar el fichero /root/.bashrc
Código: [Seleccionar]
echo
echo
echo "Bash v$BASH_VERSION"
echo " _____         __     ________        __   "
echo "|     \.-----.|  |--.|  |  |  |.----.|  |_ "
echo "|  --  |  -__||  _  ||  |  |  ||   _||   _|"
echo "|_____/|_____||_____||________||__|  |____|"
echo "   D e b i a n   o v e r   O p e n W r t   "
echo "-----------------------------------------------"
echo $(cat /etc/issue.net) "~ Kernel" $(uname -nr)
echo "-----------------------------------------------"
PS1='\[\033[01;32m\]\u@Debian:\[\033[01;34m\]\w\$ \[\033[00m\]'

Y la sesión adquiere este aspecto


« Última modificación: 17-10-2018, 11:53 (Miércoles) por raphik »

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re:Instalar Debian en un HG553
« Respuesta #4 en: 17-10-2018, 13:22 (Miércoles) »
Muy interesante  >:( >:( >:( >:(

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #5 en: 17-10-2018, 16:47 (Miércoles) »
Muy interesante  >:( >:( >:( >:(

Y espero que finalmente también sea útil y permita instalar Java 8/10 en OpenWrt, aunque sea indirectamente.
https://foro.seguridadwireless.net/openwrt/blynk-openwrt/msg364606/#msg364606

Desconectado peperfus

  • ******
  • Mensajes: 251
Re:Instalar Debian en un HG553
« Respuesta #6 en: 18-10-2018, 09:43 (Jueves) »
Por curiosidad.... ¿en qué routers instaláis estas cosas?
Porque me imagino que el rendimiento no tirará bien para tanta cosa, no?
Yo probé a instalar mediawiki con php y mysql e iba lentísimo en un livebox con 128 mb ram y cpu 500 mhz..... así que me imagino que java.... será parecido el rendimiento, no?

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #7 en: 18-10-2018, 15:09 (Jueves) »
@peperfus

En un HG553 con una memoria USB, una veces de 4GB, otras de 16 y ocasionalmente un HDD-160GB. Las instalaciones van jod***mente lentas. Con todo, es mucho más rápido que instalar Windows 10 en un PC.

Al final, si todo sale bien el router formaría parte de un sistema IoT LoRa. El router hará justo lo contrario para lo que se suelen diseñar: poco tráfico IP y mucha CPU para manejar Java+Blync. Estoy valorando ponerle un pequeño ventilador a la CPU para que disipe bien.

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re:Instalar Debian en un HG553
« Respuesta #8 en: 22-10-2018, 18:19 (Lunes) »
Citar
root@OpenWrt:~# debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debi
an.org/debian
W: Cannot check Release signature; keyring file not available /usr/share/keyring                                                        s/debian-archive-keyring.gpg
I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
E: Couldn't download dists/jessie/main/binary-mips/Packages
root@OpenWrt:~# debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debian.org/debian
W: Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg
I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Packages
I: Retrieving Packages
I: Retrieving Packages
E: Couldn't download dists/jessie/main/binary-mips/Packages
root@OpenWrt:~#

Lo he intentado probar en un Xiaomi MiWiFi Mini (con FPU habilitado) pero no termina de bajar e instalar  >:D

Al menos me ha servido para volver a compilar un firmware que hace muuuucho que no lo hacía  ;D
« Última modificación: 22-10-2018, 18:35 (Lunes) por jar229 »

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #9 en: 23-10-2018, 07:36 (Martes) »
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re:Instalar Debian en un HG553
« Respuesta #10 en: 23-10-2018, 20:49 (Martes) »
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!

Lo probaré cuando vuelva a sacar un poco de tiempo, gracias  :D

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re:Instalar Debian en un HG553
« Respuesta #11 en: 01-11-2018, 20:02 (Jueves) »
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!

Lo probaré cuando vuelva a sacar un poco de tiempo, gracias  :D

Efectivamente, era eso la arquitectura  >:(

Pero la forma de verificarlo con uname no es correcta ya que me devuelve

Código: [Seleccionar]
root@OpenWrt:~# uname -m
mips

Voy a seguir trasteando un rato con el cacharro  ;D

Garcad

  • Visitante
Re:Instalar Debian en un HG553
« Respuesta #12 en: 02-11-2018, 15:38 (Viernes) »
 >:( >:( >:( >:( >:( >:(

Impresionante.

Tengo que intentarlo con uno de los 556a que tengo por aqui.

Salu2

Garcad

  • Visitante
Re:Instalar Debian en un router OpenWrt
« Respuesta #13 en: 06-11-2018, 02:32 (Martes) »
@raphik

openwrt # find . | grep menuconfig
./package/utils/busybox/convert_menuconfig.pl
« Última modificación: 06-11-2018, 02:33 (Martes) por Garcad »

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un router OpenWrt
« Respuesta #14 en: 06-11-2018, 12:47 (Martes) »

Desconectado raphik

  • *****
  • Mensajes: 102
Re:Instalar Debian en un HG553
« Respuesta #15 en: 07-11-2018, 13:56 (Miércoles) »
Efectivamente, era eso la arquitectura  >:(

Pero la forma de verificarlo con uname no es correcta ya que me devuelve
Código: [Seleccionar]
root@OpenWrt:~# uname -m
mips

El error no es por la arquitectura, sino por el "endianness". En principio puede parece que el parámetro --arch del comando debootstrap se refiere a la arquitectura. El problema es que también se refiere a otras cosas.

mips-->arquitectura mips, modo big endian
mipsel-->arquitectura mips, modo little endian
armel-->arquitectura arm, modo little endian
armhf-->arquitectura arm, modo little endian, con FPU por hardware (hard float)
(FUENTE: https://www.debian.org/ports/index.es.html)

El comando uname -n devuelve la arquitectura. El endianness hay que averiguarlo de otra manera.

En una máquina Big Endian,
Código: [Seleccionar]
printf "01%s" | hexdump
0000000 3031                                   
0000002

En una máquina Little Endian,
Código: [Seleccionar]
printf "01%s" | hexdump
0000000 3130                                   
0000002

« Última modificación: 07-11-2018, 14:20 (Miércoles) por raphik »

Garcad

  • Visitante
Re:Instalar Debian en un router OpenWrt
« Respuesta #16 en: 08-11-2018, 01:14 (Jueves) »
@raphik

Me puse con la compilación pero me quede a medias.

# git clone https://www.github.com/openwrt/openwrt -b openwrt-18.06
# cd openwrt/
# ./scripts/feeds update -a
# ./scripts/feeds install -a


wifislax64 ~ # find . | grep menuconfig
./openwrt/package/utils/busybox/convert_menuconfig.pl


# uname -a
Linux wifislax64 4.14.74-wifislax64 #1 SMP Fri Oct 5 10:18:46 CEST 2018 x86_64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz GenuineIntel GNU/Linux

# cat /etc/*-release
NAME=Wifislax64
VERSION="1.2"
ID=wifislax64
VERSION_ID=1.2
PRETTY_NAME="Wifislax64 1.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:wifislax64:wifislax64_linux:1.2"
HOME_URL="http://www.wifislax.com/"
SUPPORT_URL="https://foro.seguridadwireless.net/"
BUG_REPORT_URL="https://foro.seguridadwireless.net/"

# cat  /etc/issue

Welcome to \s \r (\l)


Salu2
« Última modificación: 08-11-2018, 02:50 (Jueves) por Garcad »

Garcad

  • Visitante
Re:Instalar Debian en un router OpenWrt
« Respuesta #17 en: 09-11-2018, 23:40 (Viernes) »
Alguien que me ilumine.

openwrt # cd config/
wifislax64 config # ls
Config-build.in  Config-devel.in  Config-images.in  Config-kernel.in

Error Instalar Debian en un router OpenWrt

Salu2
« Última modificación: 09-11-2018, 23:43 (Viernes) por Garcad »

Desconectado Ficht

  • ****
  • Mensajes: 63
Re:Instalar Debian en un router OpenWrt
« Respuesta #18 en: 10-11-2018, 00:21 (Sábado) »
Alguien que me ilumine.

openwrt # cd config/
wifislax64 config # ls
Config-build.in  Config-devel.in  Config-images.in  Config-kernel.in

Error Instalar Debian en un router OpenWrt

Salu2

Hola Garcad, que es lo que intentas hacer exactamente?

tu has seguido este tuto que te cita raphik ?
@Garcad

¿Has compilado OpenWrt para tu HG556?
https://foro.seguridadwireless.net/openwrt/(tutorial)-como-compilar-openwrt-a-nuestro-gusto/

No entiendo lo que listas de tu máquina.......

los comando para compilar openwrt.
Código: [Seleccionar]
cd openwrt
make menuconfig
make kernel_menuconfig
make        # o =>  make -j 3 V=cs

Garcad

  • Visitante
Re:Instalar Debian en un router OpenWrt
« Respuesta #19 en: 10-11-2018, 02:24 (Sábado) »
@Ficht si he seguido el tuto de @raphik y no existe el archivo para compilar.

Y si he compilado varios firmwares a mi gusto para mis hg566a. Tengo 3 con chip atheros.

Salu2