Page d'accueil » comment » Comment installer des logiciels supplémentaires sur votre routeur domestique (DD-WRT)

    Comment installer des logiciels supplémentaires sur votre routeur domestique (DD-WRT)

    Avez-vous déjà souhaité disposer de fonctionnalités supplémentaires telles que Email, Bit-torrent ou même MySQL directement sur votre routeur? Eh bien peut-être que maintenant vous pouvez. How-To Geek explore comment installer le logiciel Opkg sur DD-WRT.

    Image de Jean Spector et Aviad Raviv

    Si vous ne l'avez pas déjà fait, vérifiez les articles précédents de la série:

    • Transformez votre routeur domestique en un routeur super-alimenté avec DD-WRT
    • Comment supprimer des publicités avec Pixelserv sur DD-WRT

    En supposant que vous connaissez ces sujets, continuez à lire. N'oubliez pas que ce guide est un peu plus technique et que les débutants doivent faire attention lorsqu'ils modifient leur routeur..

    Tribulations

    J'ai récemment acheté un nouveau Buffalo WZR-HP-AG300H, livré avec une version renommée de DD-WRT. Étant donné que ce routeur dispose d'un port USB, j'ai immédiatement connecté un disque dur et essayé d'utiliser le guide wiki «Optware, The Right Way». Malheureusement, j'ai rapidement constaté que le routeur que j'ai obtenu est basé sur Atheros et que le script de cette page wiki ne le prend pas en charge. J'ai donc commencé à creuser (comme je le fais toujours) et suis tombé sur plusieurs guides (1, 2, 3 et 4) qui expliquaient comment faire fonctionner manuellement Opkg. Bien que leur contribution (entre autres sources sur le Web) à ce guide ait été inestimable, certaines des instructions sont (IMHO) tout simplement pas assez simples. Par exemple, vous donner les fichiers «lib» du poisson, mais ne vous apprenez pas comment le pêcher depuis la source. De plus, je dois utiliser une HD formatée Linux ou au moins une partition de celle-ci (qui ne fonctionne même pas avec les firmwares avec lesquels j'ai testé). C'est pourquoi, j'ai ressenti le besoin de créer la procédure ci-dessous, concise, simple à suivre et reproductible, permettant au gestionnaire de paquets OpenWRT Opkg de fonctionner sur de tels routeurs..

    Mise à jour: la fonctionnalité de montage des partitions a été réintroduite dans la version renommée de la version 17798 alpha.

    Quel est Opkg?

    Opkg est un gestionnaire de paquets comme apt / aptitude and yum. Il remplace le gestionnaire de paquets Ipkg et peut être utilisé pour installer des logiciels tels que: le démon Transmission BitTorrent, l'expéditeur du courrier électronique ssmtp et le démon Knockd qui exécute des scripts après une séquence de déclenchement de port spécifiée. Depuis le site OpenWRT:

    L'utilitaire opkg (un ipkg fork) est un gestionnaire de paquets léger utilisé pour télécharger et installer les paquets OpenWrt à partir de référentiels de paquets locaux ou situés sur Internet.. Opkg tente de résoudre les dépendances avec les packages dans les référentiels - si cela échoue, une erreur est signalée et l'annulation de l'installation de ce package..

    Donc, en utilisant Opkg, nous pouvons installer des choses comme nous l'avons fait avec Ipkg dans le guide «Libérez encore plus de puissance de votre routeur domestique». Les principales différences sont:

    1. Afin de donner les exemples de SSMTP et de Knockd, il vous fallait véritablement comprendre les dépendances manuellement. La procédure pour le faire manuellement est gênante et pas très simple. Opkg fait cela automatiquement.
    2. Cette fois nous serons ajouter logiciel au-dessus du micrologiciel en place, plutôt que de le remplacer. Bien que le remplacer fût un excellent exercice geek, c’était sans aucun doute: dangereux, sujet aux problèmes, irréversible et pire encore, spécifique à un routeur. Inutile de dire que c'est beaucoup plus simple et plus sûr.

    Conditions préalables

    Afin de compléter ce guide, notez ce qui suit:

    1. Comme indiqué ci-dessus, ce guide a été créé et testé sur Buffalo WZR-HP-AG300H avec la version 17135 du microprogramme «Pro» de Buffalo. Il devrait fonctionner sur tous les routeurs basés sur Atheros (ar71xx) avec toute version de DD-WRT de la même version ou plus. , mais votre kilométrage peut très.
    2. Vous devrez activer SSH sur le routeur, installer et utiliser WinSCP pour vous y connecter. Ceci a été expliqué dans le guide «Comment supprimer des publicités avec Pixelserv sur DD-WRT». En fait, on supposera que vous êtes capable de faire tout ce qui est expliqué dans ce guide..
    3. Vous devez pouvoir vous connecter au routeur à l'aide d'un terminal (SSH est recommandé). Quelques conseils sur la façon de faire cela sont sur le wiki DD-WRT.
    4. Espace pour JFFS et environ 4 Mo d’espace formaté pour la configuration de base. L’espace JFFS n’est pas seulement un préalable, c’est un spectacle. En effet, si votre routeur ne dispose pas au moins des 4 Mo d’espace formaté mentionnés ci-dessus, vous ne tirerez aucun avantage réel de ce guide et vous aurez intérêt à utiliser le chapitre «Libérez encore plus de puissance de votre routeur domestique». guide pour installer les paquets Ipkg directement dans le micrologiciel ou l’installation manuelle des paquets Ipkg. Suivez les instructions du guide «Comment supprimer des publicités avec Pixelserv sur DD-WRT» pour activer JFFS et voir combien d’espace libre dont vous disposez réellement après il est formaté.

    Remarque: Il est possible de faire cela avec seulement 2 Mo d’espace pour la configuration, mais nous perdrions alors le résultat de «/ etc» en lecture-écriture et devrions invoquer Opkg, tout en spécifiant le fichier de configuration manuellement à chaque fois… tellement boiteux…  

    Permet de craquer

    A ce stade, vous devez avoir activé JFFS et pouvoir connecter SSH / WinSCP au routeur..

    1. Ouvrir une session de terminal sur le routeur.
    2. Créez un répertoire temporaire dans lequel nous allons travailler:

      mkdir / tmp / 1
      cd / tmp / 1

    Utilisez Ipkg pour installer Opkg
    Pendant que nous allons remplacer Ipkg en tant que gestionnaire de paquet, nous allons l’utiliser pour installer manuellement le paquet d’installation Opkg..

    1. Pour ce faire, téléchargez le package d'installation Opkg pour l'architecture ar71xx à partir du coffre du projet OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      Note 1: Au moment de la rédaction de cet article, 618 est la dernière version. Elle peut être modifiée à l'avenir. Adaptez-vous en conséquence..
      Note 2: Il est possible que la seule différence pour que ce guide fonctionne pour d'autres architectures est d'obtenir le programme d'installation d'Opkg à partir de l'architecture applicable pour votre routeur… mais cela n'a pas été testé par le vôtre..

    2. Appelez Ipkg pour installer manuellement Opkg en utilisant:

      ipkg install opkg_618-2_ar71xx.ipk

      Remarque: Vous pouvez aussi, si vous le souhaitez, installer manuellement chaque paquet dans le référentiel. Cependant, cela signifierait que vous devrez résoudre les dépendances vous-même… et quel serait le plaisir de cela?

    Obtention des fichiers de bibliothèque dynamiques («lib» s)
    Les fichiers «lib» requis pour faire fonctionner Opkg font partie de la distribution OpenWRT. Pour les obtenir, il faut les extraire du «système de fichiers racine» de cette distribution..

    1. Pour ce faire, téléchargez le dernier «système de fichiers racine» de base pour la distribution openWRT, qui contient les «lib» requises à partir du coffre du projet OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    2. Extrayez-le en utilisant:

      tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    3. Copiez les fichiers «libs» des «rootfs» que nous avons extraits ci-dessus dans le répertoire «libs» de notre JFFS, tout en préservant leurs attributs et leurs liens symboliques:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      Remarque: Vous recevrez des messages indiquant que les sous-répertoires sont omis. Comme nous n’avons besoin que des fichiers «lib», c’est très bien et vous pouvez ignorer ces messages en toute sécurité..

    Correction du "PATH" LD_LIBRARY
    Nous devons indiquer au routeur où chercher les bibliothèques partagées (libs) que nous venons de «installer» et qu'il doit le faire. avant ceux qui sont venus avec le firmware.

    1. Pour ce faire, définissez manuellement la variable d’environnement LD_LIBRARY (pour l’instant). Ainsi, l’emplacement où nous avons copié les nouveaux fichiers lib sera le premier du «PATH»:

      export LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    Lecture-écriture “/ etc”
    Nous allons copier “/ etc” dans JFFS puis créer le point de montage “/ etc” habituel, le pointer. Cela va à la fois ouvrir un monde de possibilités, parce que «/ etc» deviendra en lecture-écriture (ce que j’attendais personnellement depuis 7 ans) et permettre aux paquets qui attendent ce comportement de fonctionner correctement.

    1. Créez le répertoire qui contiendra “/ etc”:

      mkdir -p / jffs / geek / etc

    2. Copier de manière récursive l'intégralité de «/ etc» tout en préservant tous les sous-répertoires, attributs de fichier et liens symboliques.

      cp -a / etc / * / jffs / geek / etc /

    3. Manuellement (pour le moment), «liez» le répertoire «/ etc» à celui de JFFS:

      mount -o bind / jffs / geek / etc / / etc /

    Définir le répertoire Optware (“/ opt”)
    Opkg d'OpenWRT, devrait être utilisé lors de la construction du micrologiciel du routeur. À ce moment-là, le système de fichiers ne se trouve pas encore sur le routeur et reste donc sujet à modification. Il n'y a aucun problème pour installer le système de fichiers. C'est pourquoi le fichier de configuration Opkg désigne les packages à installer à la “racine” (/) du système de fichiers. Cependant, nous utilisons Opkg après le micrologiciel a été créé et installé sur le routeur, et comme nous ne pouvons pas modifier la racine du système de fichiers pour qu’elle soit en lecture-écriture, nous indiquerons que toutes les installations doivent être installées sous «/ opt». Cependant, actuellement, “/ opt” pointe également vers un emplacement en lecture seule sur le micrologiciel du routeur. Pour résoudre ce problème, nous ferons en sorte que “/ opt” pointe JFFS, qui est en lecture-écriture..

    1. Pour ce faire, créez le répertoire qui contiendra les packages Optware:

      mkdir -p / jffs / opt

    2. Manuellement (pour le moment) «liez» le répertoire «/ opt» à celui de JFFS:

      mount -o bind / jffs / opt / / opt /

      Remarque: bien qu’en dehors de la portée de ce guide, les utilisateurs plus avancés peuvent vouloir changer ce point de montage, pour pointer sur un disque dur.

    Ajustement du fichier de configuration Opkg
    Nous voulons que le fichier de configuration d'Opkg soit là où Opkg le recherche par défaut (c'est-à-dire «/ etc») et qu'il soit ajusté pour installer «/ opt»..

    1. Pour ce faire, déplacez le fichier de configuration opkg installé par le paquet Opkg vers l'emplacement «/ etc» en lecture-écriture:

      mv /jffs/etc/opkg.conf / etc /

    2. Changez la destination pour les installations Optware en "/ opt" au lieu de "root" (/).
      Pour ce faire, avec l'éditeur “vi” ou WinSCP, accédez à “/ etc /” et créez le contenu du fichier “opkg.conf”:

      vi /etc/opkg.conf

      Faites-le ressembler à:

      instantanés src / gz http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      dest root / opt
      dest ram / tmp
      lists_dir ext / var / opkg-lists
      option superposition_racine / superposition

      Remarque: Vous pouvez modifier la directive «lists_dir» pour qu'elle pointe vers un emplacement qui n'est pas dans la RAM, mais plutôt dans JFFS. Bien que cela vous libère de la mise à jour des listes, avant de pouvoir installer un logiciel supplémentaire (si votre routeur est redémarré depuis la dernière fois), vous perdriez environ 1,5 Mo de l'espace rare du JFFS et vous aggraveriez son érosion..

    Salut bébé
    Vous devriez pouvoir voir qu'Opkg fonctionne en lançant la commande update et list.

    1. Si tout s'est bien passé, vous devriez voir que les listes Opkg ont été mises à jour sans erreur et que vous êtes prêt à implémenter le script à l'étape suivante:

      mise à jour opkg; liste opkg

    2. Prenez le temps de commencer à explorer les paquets disponibles sur le référentiel… .

    Script de démarrage
    Nous devons maintenant faire en sorte que tout le montage et le chemin nécessaires se produisent automatiquement lorsque le routeur démarre. À cette fin, nous avons créé pour vous ce script d'initialisation Geek-init..

    1. Téléchargez, puis extrayez-le et placez-le sous “/ jffs / geek / etc /”. (Pensez à le faire avec WinSCP).
    2. Rendre le script exécutable en accédant à ses propriétés avec WinSCP ou en exécutant:

      chmod + x /jffs/geek/etc/geek-init.sh

    3. Exécutez le script au démarrage du routeur, à l'aide de l'interface Web. Sous Administration -> Commandes, dans la zone de texte, mettez:

      /jffs/geek/etc/geek-init.sh web-gui

      Et cliquez sur «Enregistrer le démarrage».

    Kicking les pneus
    Si tout va bien, vous devriez maintenant pouvoir redémarrer le routeur et continuer à utiliser le gestionnaire de paquets Opkg. Cela consiste à mettre à jour, répertorier et installer des applications.
    Permet de vérifier que tout fonctionne correctement en installant la commande «netstat», qui pour une raison quelconque a été omise des versions de DD-WRT récemment. Avant cela, exécutez la commande netstat dans le terminal et vous verrez que vous êtes bloqué par une erreur du shell en disant «-sh: netstat: not found»..

    1. Votre première étape consistera toujours à mettre à jour les listes Opkg afin d’obtenir les derniers packages listés dans le référentiel:

      mise à jour opkg

    2. Si vous ne savez pas quel paquet contient la commande “netstat”, vous pouvez filtrer les résultats en utilisant.

      liste opkg | grep netstat

    3. Et maintenant, installez «netstat» en utilisant:

      opkg installer net-tools-netstat

      Et maintenant, lorsque vous exécutez à nouveau la commande netstat, cela fonctionne… net ha? :)

    En attendant les prochains articles dans lesquels nous installerons et configurerons des progiciels à l'aide de cette méthode, vous pourrez vous amuser énormément en explorant la grande quantité de logiciels à portée de main..


    Si une telle machine est virtuellement impossible, elle doit logiquement être une improbabilité finie. Donc, tout ce que j'ai à faire pour en créer un, c'est comprendre à quel point c'est invraisemblable, insérer ce chiffre dans le générateur d'improbabilité finie, lui donner une tasse de thé bien chaud et l'allumer……… n'aime vraiment pas, est un "Smart-Ass".