Equipos y materiales > Openwrt & LEDE

Instalar Debian en un router OpenWrt

(1/5) > >>

raphik:
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: ---# 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
--- Fin del código ---

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: ---# Entrar en el menú de configuración
make menuconfig
--- Fin del código ---

--- 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
--- Fin de la cita ---

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
--- Fin de la cita ---

Como dije más arriba, también hay que habilitar la emulación FPU en kernel_menuconfig

--- Código: ---# Entrar en el menú de configuración del Kernel
  make kernel_menuconfig
--- Fin del código ---

--- Citar ---# Habilitar emulación FPU
  Kernel type ---> (*) MIPS FPU Emulator
--- Fin de la cita ---

Por último,

--- Código: ---# Compilar
  make -j 3 V=cs
--- Fin del código ---

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: ---# Particionar Disco
  cfdisk /dev/sda
--- Fin del código ---



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

Formatear y montar

--- Código: ---# Formatear /dev/sda2
  mke2fs -t ext4 /dev/sda2

# Montar
  mount /dev/sda2 /mnt
--- Fin del código ---

La partición Swap no es necesaria por ahora, pero también se puede montar si se quiere

--- Código: ---# Formatear swap
  mkswap /dev/sda1

# Montar swap
  swapon /dev/sda1
--- Fin del código ---

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: ---  opkg update
  opkg install debootstrap
--- Fin del código ---

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: ---  uname -m
--- Fin del código ---
En 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: ---  LANG=C
--- Fin del código ---

Invocar el comando deboostrap con la opción --arch=<arquitectura_del_router>

--- Código: ---  debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debian.org/debian
--- Fin del código ---

Tarda un buen rato en descargar e instalarse.

6. ¡Debian!
Para entrar en el entorno Debian, ejecutar el comando

--- Código: ---  chroot /mnt /bin/bash
--- Fin del código ---

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.

Tki2000:

--- Cita de: raphik 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.

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
--- Fin de la cita ---
Kernel

--- Citar ---root@OpenWrt:/# uname -a
Linux OpenWrt 4.9.133 #0 Mon Oct 15 14:54:30 2018 mips GNU/Linux
--- Fin de la cita ---

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

--- Fin de la cita ---

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

raphik:

--- Cita de: Tki2000 en 16-10-2018, 23:07 (Martes) ---
--- Cita de: raphik en 16-10-2018, 21:33 (Martes) ---Si alguien está interesado en el tema, puedo hacer una pequeña guía paso a paso.

--- Fin de la cita ---

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

--- Fin de la cita ---

Hecho. He detallado los pasos en el primer post.

raphik:
Una vez en Debian, se puede editar el fichero /root/.bashrc

--- Código: ---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\]'
--- Fin del código ---

Y la sesión adquiere este aspecto


jar229:
Muy interesante  >:( >:( >:( >:(

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa