Este es el proyecto experimental de firmware personalizado (CFW) de Q3K para su módem Draytek Vigor 167 VDSL.
Antes de ir más allá, se deben declarar algunas cosas:
El firmware personalizado se basa en la versión 5.0.1 del firmware del módem Draytek Vigor 167 VDSL, con las siguientes modificaciones:
Necesitarás Nix o Nixos.
$ # Build everything. This will take a bit on first run, as a bunch of
$ # toolchains for MIPS must be built...
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
$ nix-build -A cfw
/nix/store/v7ihha3j4j2swz3ildaylz9vqaqrl78r-vraytek-custom-518f426f
$ # Note: your hash will differ, as it's based on the Git revision of this
$ # repository at build time.
$ ls /nix/store/v7ihha3j4j2swz3ildaylz9vqaqrl78r-vraytek-custom-518f426f
v167_cfw518f426f.all
$ # Note: your firmware name will differ, as it contains the Git revision
$ # of this repository at build time.
Una vez que tenga un archivo de firmware como v167_cfw518f426f.all
, se puede cargar en la interfaz web en Mantenimiento del sistema -> firmware.
Después de instalar y reiniciar al nuevo firmware, debería poder SSH como administrador en el módem, utilizando la misma contraseña que para el panel web.
$ ssh [email protected]
[email protected]'s password:
_ __ ______ __ ___ _
| | / /______ ___ _/_ __/__ / /__ / _ (_)__ ____ ____
| |/ / __/ _ `/ // // / / -_) '_/ / // / / _ `/ _ / __/
|___/_/ _,_/_, //_/ __/_/_ /____/_/_, /___/_/
/___/ CFW, git rev 518f426f /___/
# uname -a
Linux draytek 3.18.21 #4 SMP Fri May 7 16:22:06 CST 2021 mips unknown
Para la autenticación de la clave pública, agregue una clave de administración SSH en el panel web, en mantenimiento del sistema -> Cuentas -> Clave pública SSH. Deberá ingresar su contraseña actual y una nueva contraseña dos veces (puede ser lo mismo que la contraseña existente) junto con la clave pública SSH para guardarla. Esto se debe a cómo se implementa el comportamiento del formulario de contraseña en la interfaz web.
Actualmente, solo un firmware personalizado de 'modelo' está creado por este repositorio, definido en default.nix. Presione este archivo (especialmente el 'script') para agregar sus propias modificaciones. Debe documentarse lo suficientemente bien como para entender lo que está pasando y por qué.
En el futuro, podría ser posible importar este repositorio a otra derivación de Nix y extenderla (esto ya puede hacerse un poco utilizando el makecustomfirmware de Lib.nix, pero eso significa que debe volver a implementar todas las modificaciones básicas según el valor predeterminado.nix).
Este repositorio contiene solo código fuente con licencia bajo una licencia de código abierto (licencia del MIT, ver copia). Sin embargo, esto no hace que el software de código abierto de artefactos de construcción resultante.
El firmware original de Draytek es un software patentado que no se distribuye bajo una licencia de código abierto. No tengo ningún derecho de redistribuirlo, y probablemente tampoco. El firmware personalizado creado por el código en este repositorio deriva de ese firmware original. Para ser claros, este repositorio no contiene un firmware original ni personalizado, solo código que a su vez, cuando se ejecuta, construye firmware personalizado.
Además, el firmware original de Draytek aparentemente contiene un código compilado de obras originalmente con licencia de Copyleft como el GPL, y no hay código fuente correspondiente al momento de escribir. Esto significa que redistribuir el firmware podría infringir no solo los derechos del código Draytek patentado, sino los autores de lo que parece ser el código redistribuido bajo estas licencias de Copyleft.
En general, los firmwares personalizados son un área legalmente gris, y debe hacer su propia investigación sobre cómo esto le preocupa, el potencial usuario de cualquier cosa construida por esta base de código.
Teniendo en cuenta lo anterior, nunca se proporcionarán compilaciones binarias del firmware personalizado . Debe construir todo usted mismo y hacer su propia investigación legal sobre si lo que sea que esté haciendo es incluso legal.
El módem se ejecuta en un ECONET EN751627 SOC (2 núcleos / 4 hilos), tiene un poco más de 100 m de RAM disponible para Linux y 128 MB de flash (dividido en un conjunto de particiones primarias / secundarias).
Especulación a continuación:
Drayos 5 se basa en Linux 3.18.21. ¿Parece haber sido BULT de un BuildRoot BSP que también podría haberse utilizado en compilaciones anteriores de Drayos? Difícil de decir.
El firmware contiene muchas referencias a un 'TC3162', pero eso parece ser un arenque rojo, ¿qué parece un SoC ADSL independiente de TrendChip que ahora se ha convertido en una interfaz estandarizada de Userland para alguna clase de Gateways de Home DSL? Parece aparecer en varios proveedores de diferentes clases de módems DSL a través de años de proyectos públicos aleatorios. La gente ha estado escribiendo analizadores para cat /proc/tc3162/adsl_stats
por un tiempo. Un montón de módulos de núcleo (a los que no hay fuentes ...) interactúan e implementan este misterioso mundo TC3162, incluido lo que parece ser el principal controlador Ethernet/Switch ( eth.ko
). El chip de conmutación / Mac en sí podría ser un MT7530.
Debería realizarse más investigaciones en la pila real del controlador/firmware involucrado para hacer una opinión educada sobre si algo como OpenWRT podría ser portado a este dispositivo. Tener un shell de raíz confiable ayuda :).