gnu:totemfon
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | gnu:totemfon [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Le TotemFon ====== | ||
+ | Pour à peine 80 euros, moins cher qu'un NSLU2 aujourd' | ||
+ | * RT3052 Chipset (Ralink 300mhz) | ||
+ | * 64mb SRAM, 8MB Flash, | ||
+ | * 4 10/100Mbit netwerk poorten | ||
+ | * 300Mbit Wifi/N | ||
+ | * USB 1.1/2.0 port | ||
+ | * 12V dc PSU | ||
+ | Les logiciels de base sur le firmware sont fait pour permettre à la < | ||
+ | |||
+ | Nous ne pouvons pas compter aujourd' | ||
+ | |||
+ | Le temps des data-centers, | ||
+ | |||
+ | Pensez que si vous faites héberger votre site sur une machine d'une ferme de site, non seulement vous participez à l' | ||
+ | |||
+ | Bien souvent les visites des sites qui participent à la vie locale sont...locales et la fréquentation ne dépasse pas 20000 visites par mois, c'est plutôt 1000/mois. Et dans le monde virtuel, point de distance... Utilisez des outils comme traceroute ou xtraceroute pour vous rendre compte du gâchis. | ||
+ | De toute manière vous utilisez déjà une machine pour rester connecter, profitez de sa présence pour lui confier tout l' | ||
+ | |||
+ | Il y aura plusieurs niveau d' | ||
+ | |||
+ | ===Voici donc nos perspectives === | ||
+ | |||
+ | **Destinations Internet:** | ||
+ | * Se connecter à Internet derrière un modem ou modem routeur ADSL sur nos FAI préférés | ||
+ | * Gérer un point d' | ||
+ | * Héberger un ou plusieurs sites web publiques | ||
+ | * Gérer un serveur BootPXE pour distribuer des systèmes GNU/Linux sur le réseau | ||
+ | |||
+ | * Héberger un ou plusieurs sites web privés (F2F) | ||
+ | * Héberger sa propre messagerie , publique | ||
+ | * Partager des ressources locales, disques par exemple, mais aussi proxy/VPN? | ||
+ | * Permettre le partage de fichier avec d' | ||
+ | * Gérer une messagerie instantanée sur le réseau privé | ||
+ | | ||
+ | * Accéder à un moteur de recherche collectif | ||
+ | * Bien contrôler la séparation des différents réseaux | ||
+ | * Utilisez l' | ||
+ | |||
+ | **Solutions envisagées: | ||
+ | * OpenWRT Kamikaze 8.09 pour le système d' | ||
+ | * tftpboot fonctionne déjà sous openwrt cf le totemtaz | ||
+ | * des éléments de OpenMesh, wifidog, ChilliSpot | ||
+ | * lighthttpd, php5, ( mysql? ) , | ||
+ | * site oueb : un moteur dokuwiki ou [[http:// | ||
+ | * des éléments de OpenVPN | ||
+ | * Squirrelmail? | ||
+ | * smb, proxy thor?, GnuNet | ||
+ | * GnuNet , OneSwarm ? | ||
+ | * serveur Jaber et clients qui vont bien , openSIP | ||
+ | |||
+ | Ainsi soit la page sur le [[TotemFon alpha]], soit à la suite de notre petit atelier de fonosfera, montrant notre progression et nos problèmes avant de commencer la version alpha. | ||
+ | |||
+ | ===== Premier contact ===== | ||
+ | J'ai une fonera 2303a (2.0n) depuis ce matin. | ||
+ | |||
+ | On connecte la fiche internet au serveur de la maison qui lui est connecté à Internet, et un pc sur le switch, le dhcp de la fonera lui attribu l'ip 192.168.10.156 | ||
+ | |||
+ | En suivant la documentation, | ||
+ | |||
+ | |||
+ | Je récupere sur mon pc le firmware DEV ici [[http:// | ||
+ | |||
+ | après 5 min j'ai un nouveau dashboard et un accès ssh par 192.168.10.1 :))) | ||
+ | < | ||
+ | ssh 192.168.10.1 | ||
+ | |||
+ | Host ' | ||
+ | (fingerprint md5 75: | ||
+ | Do you want to continue connecting? (y/n) yes | ||
+ | root@192.168.10.1' | ||
+ | |||
+ | BusyBox v1.11.1 (2009-08-24 09:46:24 CEST) built-in shell (ash) | ||
+ | Enter ' | ||
+ | |||
+ | _.--""" | ||
+ | .' | ||
+ | .-"""""" | ||
+ | / | ||
+ | | | ||
+ | | ||
+ | `""' | ||
+ | | | ||
+ | / | ||
+ | / | ||
+ | ' | ||
+ | | _ / \ ' | ||
+ | \_/ | | ' | ||
+ | ' | ||
+ | | .-. .-. | | ||
+ | \ / o| |o \ / | ||
+ | | ||
+ | / `" | ||
+ | / | ||
+ | | ' | ||
+ | | / | ||
+ | \ | | ||
+ | || _ _ / | ||
+ | /|\ (_\ /_) / | ||
+ | jgs \ \' | ||
+ | | ||
+ | | ||
+ | Elan the Elk | ||
+ | | ||
+ | -------- | ||
+ | * Based on OpenWrt - http:// | ||
+ | * Powered by FON - http:// | ||
+ | ---------------------------------------------------- | ||
+ | root@Fonera: | ||
+ | </ | ||
+ | Bon ,maintenant je fais le point et je vais parcourir http:// | ||
+ | |||
+ | * Il y a déjà un openwrt sur la fon :) kamikaze 8.09.1 ? | ||
+ | * ce routeur permet d' | ||
+ | * Il y a un QoS pour configurer la quantité de bande passante allouée à Fon | ||
+ | * opkg pourait gerer les paquets | ||
+ | |||
+ | ===== Premières modifications ===== | ||
+ | * Avoir un gestionnaire de paquet pour installer sans trop de compilation ;-) | ||
+ | < | ||
+ | mkdir / | ||
+ | cp / | ||
+ | echo " | ||
+ | src snapshots http:// | ||
+ | src snapshots2 http:// | ||
+ | src snapshots3 http:// | ||
+ | |||
+ | dest root / | ||
+ | dest ram /tmp | ||
+ | dest usb /opt | ||
+ | lists_dir ext / | ||
+ | " > / | ||
+ | opkg update | ||
+ | opkg list | ||
+ | </ | ||
+ | |||
+ | * mettre en place de la place, une cleUSB avec une swap(/ | ||
+ | < | ||
+ | mv / | ||
+ | echo " | ||
+ | config mount | ||
+ | option target /opt | ||
+ | option device / | ||
+ | option fstype ext3 | ||
+ | option options rw, | ||
+ | option enabled 0 | ||
+ | |||
+ | config swap | ||
+ | option device / | ||
+ | option enabled 0 | ||
+ | " > / | ||
+ | echo "# | ||
+ | START=99 | ||
+ | start() { | ||
+ | # fstab, / | ||
+ | mount /opt | ||
+ | }">/ | ||
+ | ln -s / | ||
+ | </ | ||
+ | * Installation de lighthttpd sur la cleUSB (/opt) | ||
+ | < | ||
+ | opkg install lighttpd lighttpd-mod-simple_vhost lighttpd-mod-status lighttpd-mod-cgi -d usb | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | mkdir -p /opt/www | ||
+ | ln -s /opt/www /www | ||
+ | echo " | ||
+ | export LD_LIBRARY_PATH=/ | ||
+ | export PATH=$PATH:/ | ||
+ | " >> / | ||
+ | export LD_LIBRARY_PATH=/ | ||
+ | export PATH=$PATH:/ | ||
+ | </ | ||
+ | * modification / | ||
+ | < | ||
+ | server.modules = ( | ||
+ | # " | ||
+ | # " | ||
+ | # " | ||
+ | " | ||
+ | " | ||
+ | # " | ||
+ | # " | ||
+ | # " | ||
+ | " | ||
+ | " | ||
+ | # " | ||
+ | # " | ||
+ | # " | ||
+ | ) | ||
+ | </ | ||
+ | * racine des pages // | ||
+ | * status module // | ||
+ | * CGI module // | ||
+ | |||
+ | OK jusque la ça roule | ||
+ | |||
+ | * Installation de php5 | ||
+ | < | ||
+ | opkg install -d usb php5-cgi | ||
+ | opkg install -d usb php5-mod-gd php5-mod php5-mod-session php5-mod-pcre php5-mod-auth | ||
+ | opkg install -d usb lighttpd-mod-fastcgi | ||
+ | opkg install -d usb php5-mod-sockets # ? | ||
+ | # | ||
+ | </ | ||
+ | * modification de / | ||
+ | * et aussi si mysql // | ||
+ | * passer l' | ||
+ | |||
+ | * Installation de postgres à la place de mysql ? | ||
+ | < | ||
+ | opkg install -d usb php5-mod-pgsql pgsql-server pgsql-cli | ||
+ | </ | ||
+ | * modification de / | ||
+ | |||
+ | ====Resultats==== | ||
+ | |||
+ | * lighttpd fonctionne , reste a tester le mod fastcgi | ||
+ | * dokuwiki fonctionne bien avec une gestion des permissions acl | ||
+ | * je tente de faire l' | ||
+ | * impossible non plus de faire avec postgres, | ||
+ | * le routage/ | ||
+ | |||
+ | - il faut passer par la phase de cross-compilation si on veut faire l' | ||
+ | - garde ton le firmware fon ? | ||
+ | - pour une utilisation simple pas de pb c'est openwrt... | ||
+ | - pour creer un mesh, des sites etc.. ca fait beaucoup de modif avec le fait d' | ||
+ | - => autant refaire un firmware entier 8-) | ||
+ | |||
+ | ==== test de cross-compilation ==== | ||
+ | Recuperation de gcc4.4, il semble que ce soit le 4.2 qui soit utilise sur ma machine? | ||
+ | |||
+ | Et cf [[http:// | ||
+ | |||
+ | * ne pas être sous root ! | ||
+ | < | ||
+ | # defile le téléchargement | ||
+ | # réponse en fin : Révision 1519 extraite. | ||
+ | cd trunk | ||
+ | chmod +x install.sh | ||
+ | ./ | ||
+ | cd openwrt | ||
+ | ./ | ||
+ | ./ | ||
+ | make menuconfig | ||
+ | </ | ||
+ | * mettre à 1 l' | ||
+ | | ||
+ | < | ||
+ | 1. Write the OpenWRT makefile : This is a special makefile which OpenWRT uses. The Makefile is listed and explained at the end of this post. Understanding how to write this makefile is the key to building packages on OpenWRT. | ||
+ | |||
+ | 2. Copy this makefile in the appropriate folder : This should be package/< | ||
+ | |||
+ | 3. make menuconfig : Once the makefile has been placed in the appropriate directory, calling make menuconfig in the buildroot system should show the package in the appropriate section. The package should be selected. | ||
+ | |||
+ | 4. make package/< | ||
+ | 5. make package/< | ||
+ | </ | ||
+ | Faire attention à la documentation, | ||
+ | |||
+ | Si vous lancer le make comme ça, prévoyez une occupation pour les prochains jours... | ||
+ | |||
+ | le lendemain :-\ | ||
+ | |||
+ | cà marche pô.. pb de compilation | ||
+ | |||
+ | ==== meilleurs test de cross-compilation ==== | ||
+ | ===Tentative d' | ||
+ | **Revenir au fichier fonosfera_GPL**, | ||
+ | {{http:// | ||
+ | |||
+ | La première fois j'ai fais une fois decompresse qlq modifs ;-) | ||
+ | - lien symbolique //ln -sf / | ||
+ | // sinon la generation du kernel se plante, relocaliser le lien en fonction de votre repertoire. | ||
+ | - enlever -Werrors dans mon fichier / | ||
+ | - mettre à 1 l' | ||
+ | La 2eme fois pour la même manip ( apparemment ...) ça a fonctionner directement . | ||
+ | ensuite < | ||
+ | ./ | ||
+ | cd openwrt | ||
+ | make menuconfig | ||
+ | </ | ||
+ | - **mettre | ||
+ | - cocher SDK | ||
+ | - RIEN D' | ||
+ | - lancez la compilation par un **make V=99** | ||
+ | **C' | ||
+ | |||
+ | J' | ||
+ | === Modifications, | ||
+ | - < | ||
+ | ./ | ||
+ | ./ | ||
+ | </ | ||
+ | Puis j'ai suivi la doc [[http:// | ||
+ | |||
+ | si ensuite le menumakeconfig donne : | ||
+ | < | ||
+ | tmp/ | ||
+ | tmp/ | ||
+ | tmp/ | ||
+ | tmp/ | ||
+ | tmp/ | ||
+ | </ | ||
+ | Il faut modifier le fichier | ||
+ | Et pour que ca ne recommence plus les fichiers feeds/ | ||
+ | - ajout dans la section lang de tout php5 pour test et make V=99 a suivre ... | ||
+ | - ajout de mysql, qui va servir pour pas mal de services ? | ||
+ | - il manque libreadline ...je copie des sources de kamikaze | ||
+ | < | ||
+ | cd /usr/src | ||
+ | cp -a openwrt-dev/ | ||
+ | cd fonosfera_2.3.0.0_GPL/ | ||
+ | ./ | ||
+ | make package/ | ||
+ | </ | ||
+ | - compilation de mysql-5.0.18, | ||
+ | - modif du fichier // | ||
+ | |||
+ | comme j'ai déjà la toolchain teste export PATH=$PATH:/ | ||
+ | |||
+ | bon aujourd' | ||
+ | |||
+ | Un peu laborieux le machin, vient une idée: Le but est non pas d' | ||
+ | |||
+ | === D' | ||
+ | https:// | ||
+ | * Nous travaillons a partir d'une ubuntu, avec gcc-4.3.3 venant de karmic | ||
+ | * tout se lance sous l' | ||
+ | - make prepare met tout d' | ||
+ | - Il y a un répertoire openwrt/ | ||
+ | - un autre répertoire fon dans la racine, on le copie dans notre racine aussi | ||
+ | - ajout //echo " | ||
+ | - un dernier répertoire different // luci // à copier sir on veut garder cette interface utilisateur ?? en principe non ? | ||
+ | - recherche des différences dans l' | ||
+ | * madwifi/ | ||
+ | * 371-wds_sta_separation.patch | ||
+ | * 400-changeset_r3402.patch | ||
+ | * 450-new_hal.patch | ||
+ | * 500-bssid_incr.patch | ||
+ | * 500-noderef_test.patch | ||
+ | - on choisi de laisser faire les scripts scripts/ | ||
+ | - < | ||
+ | - make menuconfig, on choisi fonera 2.0n dans target pour voir | ||
+ | - make V=99 pour voir | ||
+ | |||
+ | ==== autre piste : vers une simplification sans cross-compilation ==== | ||
+ | On constate que la fonera est assez rapide, que l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Ainsi : plus de problème liée à la lourdeur de la cross-compilation, | ||
+ | |||
+ | Ce sera un peu plus lent mais le jeu en vaut la chandelle ;-) | ||
+ | |||
+ | 1ère constatation : il n'y a pas de paquet gcc. Doit on l' | ||
+ | |||
+ | j'ai trouvé le fichier Makefile : https:// | ||
+ | |||
+ | On le colle dans le répertoire packages/ | ||
+ | |||
+ | ==== continuation avec la création d'une image système ==== | ||
+ | Revenons au ' | ||
+ | * Modifier busybox pour avoir le su pour un autre utilisateur que root, ce qui est nécéssaire pour le paquet postgres-serveur | ||
+ | * ou modifier le postgres serveur pour accepter de travailler sous root ... Cela prendra moins de place ? | ||
+ | On commence par la première solution. un make menuconfig en cochant dans base/ | ||
+ | |||
+ | d'un coté : //scp busybox_1.11.1-1_mipsel.ipk root@192.168.10.1:/ | ||
+ | |||
+ | de l' | ||
+ | < | ||
+ | cd /opt/tmp | ||
+ | opkg install ./ | ||
+ | opkg install -d usb pgsql-cli pgsql-server | ||
+ | adduser postgres | ||
+ | mkdir -p / | ||
+ | chown postgres / | ||
+ | su - postgres | ||
+ | LC_COLLATE=" | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | Le serveur postgres fonctionne, mais un top me dit que 3 processus occupent plus de 55% du CPU... a vide ... peut être que l' | ||
+ | |||
+ | Nous pourrions nous contenter de dokuwiki avec quelques thèmes bien choisis et communiquer sur komposer ou amaya pour des pages statiques ;-) | ||
+ | |||
+ | ===== ===== | ||
+ | |||
+ | **Des trucs:** | ||
+ | * Commencez par la ! au lieu comme moi de perdre du temps a chercher ;-) [[http:// | ||
+ | |||
+ | * ça rassure ! [[http:// | ||
+ | |||
+ | * Faire un tour sur les paquets et Makefile deja fait : | ||
+ | * http:// | ||
+ | |||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * wifidog [[http:// | ||
+ | |||
+ | * application a la casa [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// |