Outils pour utilisateurs

Outils du site


gnu:fonera2g

Différences

Ci-dessous, les différences entre deux révisions de la page.


gnu:fonera2g [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Une base Fonera 2g ======
 +
 +Pour une quarantaine d'euro, nous pouvons avoir une petite machine : **La fonera 2g** : [[ http://wiki.fon.com/wiki/Fonera_2.0g_Specifications ]]. Elle tourne sous linux OpenWRT, a un port USB, un port ethernet et du wifi.
 +
 +C'est une base solide pour bricoler des automates, faire fonctionner un ou plusieurs arduinos, des capteurs gps, tracer les champs radio etc.
 +
 +**Specifications**
 +<code>
 +#  Model Name: FON2202
 +# Dimensions: 93.5 mm x 25.5 mm x 110 mm (excluding antenna)
 +# Antenna Connector: RP-SMA connector (reverse SMA)
 +# USB Port: USB A-type Receptacle (USB 2.0)
 +# Antenna: External detachable antenna (1,5dBi)
 +# Authentication: WEP 64bit/128 bit, WPA, WPA2, WPA mixed
 +# Encryption: TKIP, AES, Mixed
 +# Network Standard Support: IEEE 802.11b / 802.11g (up to 54 Mbps)
 +# Frequency Range: 2412 ~ 2462 MHz (802.11b/g, Channel 1~Channel11)
 +# Maximum output power: 112.460 mW
 +# Ports: 1 Ethernet WAN port (10/100Mbps) for Internet + 1 Ethernet LAN port (10/100Mbps) for COMPUTER connections and other devices (network printer, storage, etc.)
 +# SSIDs: One public (named FON_FREE_INTERNET by default) non-encrypted and one private (named MyPlace by default) encrypted with WPA-PSK
 +# Platform / frequency: Atheros AR2315 @ 180 MHz
 +# Flash: 8MB / Ram: 32MB
 +# Wireless NIC: Atheros SoC, LAN Switch: Marvell 88E6060
 +# bootwait: Redboot
 +# Serial: Yes JTAG: Yes USB: Yes
 +</code>
 +
 +===== Préparation =====
 +  * On déballe l'engin, connecte l'ethernet blanc sur son LAN perso et donc à Internet, le noir sur un switch ou directement sur un pc pour le paramétrage.
 +  * Rendez vous avec votre navigateur ( pas celui de microsoft!) sur http://192.168.1.10
 +  * le mot d'usine de passe est 'admin'
 +  * Télécharger le firmware linux dernier crie sur votre bureau [[http://download.fonosfera.org/LATEST/fonera2.0g-FON2202/20090421_FON2202_2.2.5.0_Flipper_DEVELOPER.tar.gz ]]
 +  * mettre à jour dans la partie système en pointant le fichier téléchargé, ça dure 30 minutes !
 +===== Préparatifs =====
 +
 +Maintenant on peut se loger en ssh sur root@192.168.10.1 avec un mot de passe 'admin'
 +
 +  * Mise à jour des listes de paquets
 +<code>
 +cp /etc/opkg.conf /etc/opkg.conf.origin
 +echo "
 +src snapshots http://www.fonera.be/rep/FON2202/
 +#src snapshots2 http://downloads.openwrt.org/kamikaze/8.09.2/atheros/packages/
 +#src snapshots3 http://ipkg.nslu2-linux.org/feeds/openwrt/fon-ng/mips/
 +#src snapshots4 http://downloads.openwrt.org/snapshots/fonera2/packages
 +
 +dest root /
 +dest ram /tmp
 +dest usb /opt                
 +lists_dir ext /var/opkg-lists
 +" > /etc/opkg.conf
 +opkg update
 +opkg list
 +</code>
 +    * mettre en place de la place, une cleUSB avec une swap(/dev/sda1),une partition /opt(/dev/sda2), et autre pour le stockage(/dev/sda3)
 +<code>
 +# modification du fichier de montage fstab pour la cleUSB
 +mv /etc/config/fstab /config/fstab.std
 +echo "
 +config mount
 + option target /opt
 + option device /dev/sda2
 + option fstype ext3
 + option options rw,sync
 + option enabled 0
 +
 +config swap
 + option device /dev/sda1
 + option enabled 0
 +" > /etc/config/fstab
 +echo "#!/bin/sh /etc/rc.common
 +START=99
 +start() {
 +# fstab, /etc/config/fstab => /dev/sda2 /opt ext noauto,rw,sync 0 0
 + mount /opt
 +}">/etc/init.d/fini
 +chmod 755 /etc/init.d/fini
 +ln -s /etc/init.d/fini /etc/rc.d/S99fini
 +
 +# ajout des chemins vers /opt
 +echo "
 +export LD_LIBRARY_PATH=/lib:/usr/lib:/opt/lib:/opt/usr/lib
 +export PATH=$PATH:/opt/usr/sbin:/opt/usr/bin              
 +" >> /etc/profile
 +export LD_LIBRARY_PATH=/lib:/usr/lib:/opt/lib:/opt/usr/lib
 +export PATH=$PATH:/opt/usr/sbin:/opt/usr/bin
 +
 +</code>
 +===== Du son sur la fonera 2.0g =====
 +Une mini carte son USB ajoutée sur le hub connecté sur la fonera.
 +<code>
 +opkg install kmod-usb-audio kmod-sound-core alsa-lib alsa-utils
 +</code>
 +
 +===== Installation de la chaine de cross-compilation =====
 +Télécharger et décompresser l'archive donné par Fonera
 +<code>
 +cd /usr/src
 +wget http://download.fonosfera.org/Elan/20090921_fonosfera_GPL_tar.bz2
 +tar xvjf 20090921_fonosfera_GPL_tar.bz2
 +cd fonosfera_2.3.0.0_GPL
 +sh install.sh
 +cd openwrt
 +make menuconfig
 +</code>
 +Choisir fon2.0 en plateforme et lancer une première compilation générale, qui va préparer tous les outils nécessaire par la suite aux compilations.
 +<code>
 +make V=99
 +</code>
 +Mettez à jour les paquets pour disposer de plus de programmes
 +<code>
 +./scripts/feeds update -a ; ./scripts/feeds install -a -p fon 
 +</code>
 +===== TiMidity++ sur la Fonera =====
 +Le chalenge est de tester un player midi sur la bêbête , j'ai nommé TiMidity++. Ainsi nous pourrons générer et lire des fichiers midi directement pour les sortir en audio sur la carte son USB :-) .
 +On imagine toute les nouvelles applications : orchestre midi en réseau, automate de composition. Et une idée nous est venue : utiliser un automate conversationnel ( le robot irc pyborg ) pour gérer non pas des mots mais des chaines de caractère MIDI ...
 +
 +[[http://timidity.sourceforge.net/#download]]
 +
 +J'ai crée un Makefile vitefait openwrt/package/TiMidity/Makefile
 +<code>
 +#
 +# Copyright (C) 2007 OpenWrt.org
 +#
 +# This is free software, licensed under the GNU General Public License v2.
 +# See /LICENSE for more information.
 +#
 +# blogic@openwrt.org
 +
 +include $(TOPDIR)/rules.mk
 +
 +PKG_NAME:=TiMidity
 +PKG_VERSION:=2.13.2
 +PKG_RELEASE:=1
 +PKG_SOURCE:=TiMidity++-$(PKG_VERSION).tar.bz2
 +PKG_SOURCE_URL:=http://TiMidity++.s11.xrea.com/files/
 +PKG_BUILD_DIR:=$(BUILD_DIR)/TiMidity++-$(PKG_VERSION)
 +include $(INCLUDE_DIR)/package.mk
 +
 +define Package/TiMidity
 +        $(call Package/TiMidity/Default)
 +        SECTION:=sound
 +        URL:=http://TiMidity++.s11.xrea.com/
 +        TITLE:=TiMidity
 +#       MENU:=1
 +endef
 +
 +define Build/Configure
 +        $(call Build/Configure/Default)
 +endef
 +
 +#define Build/Compile
 +#       $(MAKE) -C $(PKG_BUILD_DIR) \
 +#       DESTDIR="$(PKG_INSTALL_DIR)" \
 +#       all install
 +#endef
 +
 +
 +define Package/TiMidity/install
 +#        $(INSTALL_DIR) $(1)/usr/lib
 +#        $(CP) $(PKG_BUILD_DIR)/libltdl/.libs/libltdl.so.* $(1)/usr/lib/
 +        $(INSTALL_DIR) $(1)/usr/bin
 +        $(CP) $(PKG_INSTALL_DIR)/timidity/timidity $(1)/usr/bin/
 +endef
 +
 +$(eval $(call BuildPackage,TiMidity))
 +
 +</code>
 +Bon, ca ne se passe pas tout seul ... evidement.
 +
 +J'ai un peu galèré, il faut jongler entre les dénominations TiMidity et TiMidity++ ( qui pose problème sur la chaine de compilation ). Ensuite à un moment, il faut exécuter un binaire sur la fonera et en récupérer le résultat pour pouvoir continuer.
 +
 +Bref , voici le répertoire une fois la première compilation passée.
 +{{:gnu:timidity_-2.13.2.bz2|timidity_-2.13.2.bz2 pour fonera 2g}} et 
 +{{:gnu:newton_table.c.bz2|}}
 +
 +J'ai eu besoin de alsa-lib, alsa-utils, ...
 +
 +===== Trucs =====
 +aplay -Dplughw:0,0 /tmp/voice.wav de [[http://alsa.opensrc.org/Aplay]]
 +<code>
 +Out of space
 +
 +When opkg runs out of space, it usually fails to elegantly recover. If the lock was not removed,
 +
 +Collected errors:
 + * Could not obtain administrative lock
 +
 +it can be deleted from /usr/lib/opkg/lock.
 +
 +Additionally, opkg doesn't remove the files it was installing. One way to do this is get a list of the files it was installing, then delete them.
 +
 +mkdir /tmp/opkg_cleanup
 +cd /tmp/opkg_cleanup
 +opkg download <package>
 +gunzip -c *.ipk | tar -x
 +gunzip -c data.tar.gz | tar -x
 +
 +find .
 +</code>