Outils pour utilisateurs

Outils du site


gnu:fonera2g

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

#  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

Préparation

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
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
  • 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)
# 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

Du son sur la fonera 2.0g

Une mini carte son USB ajoutée sur le hub connecté sur la fonera.

opkg install kmod-usb-audio kmod-sound-core alsa-lib alsa-utils

Installation de la chaine de cross-compilation

Télécharger et décompresser l'archive donné par Fonera

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

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.

make V=99

Mettez à jour les paquets pour disposer de plus de programmes

./scripts/feeds update -a ; ./scripts/feeds install -a -p fon 

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

#
# 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))

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. timidity_-2.13.2.bz2 pour fonera 2g et 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

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 .
gnu/fonera2g.txt · Dernière modification: 2017/04/11 15:13 (modification externe)