Il s'agit du projet expérimental de firmware personnalisé (CFW) de Q3K pour son modem VDSL Draytek Vigor 167.
Avant d'aller plus loin, quelques choses doivent être énoncées:
Le firmware personnalisé est basé sur le micrologiciel version 5.0.1 du modem VDSL Vigor 167 Draytek, avec les modifications suivantes:
Vous aurez besoin de Nix ou 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.
Une fois que vous avez un fichier de firmware comme v167_cfw518f426f.all
, il peut être téléchargé sur l'interface Web sous maintenance système -> firmware.
Après avoir installé et redémarré le nouveau firmware, vous devriez pouvoir SSH en tant qu'administrateur sur le modem, en utilisant le même mot de passe que pour le panneau 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
Pour l'authentification de la clé publique, ajoutez une clé d'administration SSH dans le panneau Web, dans la maintenance du système -> Comptes -> Clé publique SSH. Vous devrez saisir deux fois votre mot de passe actuel et un nouveau mot de passe (peut être le même que le mot de passe existant) à côté de la clé publique SSH pour l'enregistrer. Cela est dû à la façon dont le comportement du formulaire de mot de passe est implémenté dans l'interface Web.
Actuellement, seul un firmware personnalisé «modèle» est construit par ce référentiel, défini dans Default.nix. Faire croire ce fichier (en particulier le «script») pour ajouter vos propres modifications. Il doit être suffisamment documenté pour comprendre ce qui se passe et pourquoi.
À l'avenir, il pourrait être possible d'importer ce référentiel dans une autre dérivation NIX et de l'étendre (cela peut déjà être quelque peu fait à l'aide de MAKECUSTUMFIRM de Lib.Nix, mais cela signifie que vous devez réimplémenter toutes les modifications de base selon Default.Nix).
Ce référentiel contient uniquement un code source sous licence open source (licence MIT, voir copie). Cela ne fait cependant pas le logiciel Open Source Build Artefacts qui en résulte.
Le firmware d'origine Draytek est un logiciel propriétaire non distribué sous une licence open source. Je n'ai aucun droit de le redistribuer, et probablement vous non plus. Le firmware personnalisé construit par le code de ce référentiel dérive de ce firmware d'origine. Pour être clair, ce référentiel ne contient ni le firmware original ni personnalisé, le code qui à son tour, lorsqu'il est exécuté, construit un micrologiciel personnalisé.
De plus, le firmware d'origine Draytek contient apparemment un code de travail compilé à l'origine sous licence Copyleft comme le GPL, et aucun code source correspondant n'est disponible au moment de la rédaction. Cela signifie que la redistribution du firmware pourrait non seulement porter atteinte aux droits du code de Draytek propriétaire, mais aussi aux auteurs de ce qui semble être redistribué par le code en vertu de ces licences Copyleft.
Dans l'ensemble, les firmwares personnalisés sont une zone légalement grise, et vous devriez faire vos propres recherches sur la façon dont cela vous concerne, l'utilisateur potentiel de tout ce qui est construit par cette base de code.
Compte tenu de ce qui précède, aucune construction binaire du firmware personnalisé ne sera fournie jamais . Vous devez tout construire vous-même et faire vos propres recherches juridiques pour savoir si tout ce que vous faites est même légal.
Le modem fonctionne sur un SOC Econet EN751627 (2 cœurs / 4 threads), a un peu plus de 100 m de RAM disponible pour Linux et 128 Mo de flash (divisé en un ensemble de partitions primaires / secondaires).
Spéculation ci-dessous:
Drayos 5 est basé sur Linux 3.18.21. Il semble avoir été Bult à partir d'un Buildroot BSP qui pourrait également avoir été utilisé dans les constructions Drayos précédentes? Difficile à dire.
Le firmware contient beaucoup de références à un «TC3162», mais cela semble être un hareng rouge, ce qui ressemble à un SoC ADSL autonome de TrendChip qui est maintenant devenu une interface utilisateur standardisée pour une classe de passerelles DSL? Il semble apparaître dans divers fournisseurs de différentes classes de modems DSL à travers des années de projets publics aléatoires. Les gens écrivent des analyseurs pour cat /proc/tc3162/adsl_stats
depuis un certain temps maintenant. Tout un tas de modules de noyau (auquel il n'y a pas de sources ...) interagissent et implémentent ce mystérieux monde TC3162, y compris ce qui semble être le principal pilote Ethernet / Switch ( eth.ko
). La puce de commutation / Mac elle-même pourrait être un MT7530.
D'autres recherches devraient être effectuées dans la pile réelle du pilote / micrologiciel impliqué pour savoir si quelque chose comme OpenWRT pourrait être porté vers cet appareil. Avoir un shell racine fiable aide :).