Equipos y materiales > Openwrt & LEDE
Instalar Debian en un router OpenWrt
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
[#] Página Siguiente
Ir a la versión completa