qmake make
depuis dossier binary de camera econ
scp uImage root@192.168.1.80:/boot/uImage-2.6.30
sur gumstix dans /boot/
rm uImage ln -s uImage-2.6.30 uImage
copie du module modifié v4l2 vers le home root sur gumstix
scp v4l2_driver.ko root@192.168.1.80:
regarder le readme de econ
doc sur uboot: http://www.denx.de/wiki/DULG/Manual
presser une touche pendant le boot pour avoir uboot
setenv mmcargs setenv bootargs mem=122M i2c_bus=3,100 iconsole=${console} mpurate=${mpurate} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype} saveenv
dans org.openembedded.dev pour mettre a jour les recettes
git pull
effacer tmp pour virer les fichiers temporaires mais preserver tmp/sources (je l'ai mis dans le dossier parent)
So that recipes delete contents of tmp/work (which saves lots of rooms, particularly for the build system) to build/conf/local.conf add :
INHERIT += “rm_work”
pour pouvoir compiler des recettes bitbake dont le code source est sur le serveur git du laas
ajouter ma clef publique à trac
ssh bvandepo@trac.laas.fr vim ~/.ssh/authorized_keys
copier le contenu de /home/bvdp/.ssh/id_rsa.pub de la machine de développement bitbake
puis pour que l'user sur git soit bvandepo au lieu de bvdp, faire sur la machine de développement bitbake:
vim ~/.ssh/config
et ajouter ce contenu:
host trac.laas.fr "tabulation" user bvandepo
pour compiler la recette genom, il faut avoir genom installée sur la machine de dev. l'executable de conversion du .gen en .c reste sur la machine de dev. Sur la gumstix, il y aura seulement les executables.
voir la recette demo-genom.bb pour compiler un module genom
éventuellement, pour compiler depuis des sources en local, remplacer SOURCES… par FILES et une liste de fichiers.
http://homepages.laas.fr/mallet/robotpkg
dans home:
git clone ssh://bvandepo@softs.laas.fr/git/robots/robotpkg cd robotpkg ./bootstrap --prefix=${HOME}/openrobots
ajouter à ~/.bashrc
export ROBOTPKG_BASE=/home/bvdp/openrobots
puis faire
cd ~/robotpkg/architecture/genom make update
bitbake -b mkdep-native_2.8 bitbake -b demo-genom
root@overo:~# cat /etc/rc5.d/network_eth1_static sleep 2 ifconfig eth1 192.168.1.80 up route add -net default gw 192.168.1.1 root@overo:~# ls -l /etc/rc5.d/ <snip> lrwxrwxrwx 1 root root 19 Jun 19 09:36 S99network -> network_eth1_static -rwxrwxrwx 1 root root 76 Jun 19 09:40 network_eth1_static -rwxrwxrwx 1 root root 102 Jun 19 09:36 network_wlan3_static
documentation développement: http://www.gumstix.net/
Bon tuto sur cross compilation, ipkg et makefiles: http://www.gumstix.net/User-How-To-s/view/Build-system-overview/Hello-world-tutorial/110.html
doc bitbake: http://bitbake.berlios.de/manual/index.html
Pour télécharger des images de linux pré-compilée pour Gumstix Overo : http://www.sakoman.com/feeds/omap3/glibc/images/overo/
sudo aptitude install subversion cvs git-core build-essential help2man diffstat texi2html texinfo libncurses5-dev gawk python-dev python-psyco python-pysqlite2 gnome-doc-utils gettext automake flex
sudo yum install subversion cvs git-core build-essential help2man diffstat texi2html texinfo libncurses5-dev gawk python-dev python-psyco python-pysqlite2 gnome-doc-utils gettext automake flex
d'apres http://wiki.openembedded.net/index.php/OEandYourDistro#Fedora_11
sudo yum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools gcc gcc-c++ help2man perl-ExtUtils-MakeMaker glibc-static
git clone git://gitorious.org/gumstix-oe/mainline.git org.openembedded.dev cd org.openembedded.dev git checkout --track -b overo origin/overo cd .. git clone git://git.openembedded.net/bitbake bitbake cd bitbake git checkout 1.8.18 cd .. cp -r org.openembedded.dev/contrib/gumstix/build . vim build/profile
## Environment setup for oe setenv BB_ENV_EXTRAWHITE "MACHINE DISTRO ANGSTROM_MODE OVEROTOP OEBRANCH USERBRANCH TITOOLSDIR" setenv OVEROTOP "/local/users/bvandepo/overo-oe" setenv OEBRANCH "$OVEROTOP/org.openembedded.dev" setenv USERBRANCH "${OVEROTOP}/user.collection" setenv PATH "${OVEROTOP}/bitbake/bin:$PATH" setenv BBPATH "${OVEROTOP}/build:${USERBRANCH}/:${OEBRANCH}" setenv TITOOLSDIR "${OVEROTOP}/ti" umask 0002 ## end oe setup
puis concatener avec ~/.tchrc
## Environment setup for oe export BB_ENV_EXTRAWHITE="MACHINE DISTRO ANGSTROM_MODE OVEROTOP OEBRANCH USERBRANCH TITOOLSDIR" export OVEROTOP="/usr/overo-oe" export OEBRANCH="$OVEROTOP/org.openembedded.dev" export USERBRANCH="${OVEROTOP}/user.collection" export PATH="${OVEROTOP}/bitbake/bin:$PATH" export BBPATH="${OVEROTOP}/build:${USERBRANCH}/:${OEBRANCH}" export TITOOLSDIR= "${OVEROTOP}/ti" umask 0002 ## end oe setup
puis concatener avec ~/.bashrc
sous ubuntu, il faut changer dash contre bash
sudo ln -sf /bin/bash /bin/sh
Voici les commandes à effectuer :
Note 1: If you are using an Ubuntu distribution, it is likely that /bin/sh is linked to /bin/dash. If this is the case, then you will need to change /bin/sh to link to /bin/bash. Neglecting to do this will cause target system init file corruption and your build image will not boot! Run “sudo dpkg-reconfigure dash” and answer no when asked whether you want to install dash as /bin/sh. Note 2: If you are using Ubuntu 8.04 or later you will also need to edit /etc/sysctl.conf and set 'vm.vdso_enabled = 0' and 'vm.mmap_min_addr = 0'. Afterwards run 'sudo sysctl -p' Build system checkout
First you'll want to check out the source files for OE build system (roughly 250 MB). With a typical DSL connection this step should take less than 20 minutes. You should have at least 10GB of free space on your hard drive in order to do a complete build of the kernel and root file system images.
These instructions will assume that you are installing the build system in your home directory under “overo-oe”. If you decide to put it elsewhere you will need to make appropriate alterations to the steps below.
First we will create the “overo-oe” directory and cd into it:
$ mkdir -p ~/overo-oe $ cd ~/overo-oe
Then we will install the OE metatdata, and check out the overo branch (you can safely ignore the warnings you will get from the git commands):
$ git clone git://gitorious.org/gumstix-oe/mainline.git org.openembedded.dev $ cd org.openembedded.dev $ git checkout --track -b overo origin/overo
The next step installs BitBake:
$ cd ~/overo-oe $ git clone git://git.openembedded.net/bitbake bitbake $ cd bitbake $ git checkout 1.8.18
Creating the OE configuration files and profile
We now will create a profile script and the configuration files required to tailor OE to our needs.
To make this a somewhat easier task, there is a template for the required files in the openembedded installation we just did.
Copy these files to your overo-oe directory:
$ cd ~/overo-oe $ cp -r org.openembedded.dev/contrib/gumstix/build .
If you have followed the example installation and placed the build system in overo-oe in your home directory, you are now ready to proceed to the next step. If you have installed the build system in a different location you will need to edit overo-oe/build/profile and change the definition of OVEROTOP as appropriate. Source code caching
As part of the build process OpenEmbedded downloads source code tarballs for the linux kernel, compiler, and other software packages. By default this source code cache will be placed in overo-oe/sources. If you would like this cache to be located elsewhere, now is the time to edit build/conf/site.conf and set DL_DIR as appropriate. Environment setup
OpenEmbedded requires some environment setup in order to function properly. There are a couple of ways to handle this requirement. Option A: bash profile
You can set this up via your bash profile:
$ cp ~/.bashrc ~/bashrc.bak $ cat ~/overo-oe/build/profile >> ~/.bashrc
With most distributions, adding this environment setup to ~/.bashrc will work for both GUI shells and login shells. If your distribution does not source .bashrc for login shells, you may need to use ~/.bash_profile instead of ~/.bashrc (or modify ~/.bash_profile so that it does source ~/.bashrc).
if you chose Option A for environment setup (bash profile method), log out/log back in or close your terminal window and open a new one so that the environment changes you enabled above will take effect. Option B: Command line sourcing
If you don't want to modify your standard terminal profile for some reason, you can do this environment setup on a per session basis by sourcing overo-oe/build/profile prior to issuing any build commands:
$ . ~/overo-oe/build/profile
or alternatively:
$ source ~/overo-oe/build/profile
If you chose Option B (command line sourcing), issue the command to source the environment setup. Your first build
You can build a basic kernel and non-gui root file system image in one step with:
$ bitbake omap3-console-image
If your build machine is missing any essential packages, bitbake will notify you about them at this point. Install the recommended packages and try the bitbake command again.
You will also get a message from bitbake suggesting that you install the psyco JIT compiler for better performance. It isn't necessary to install psyco right now, though it is a good idea to install it at some point.
You may also notice another message complaining about not finding user.collection/packages/*/*.bb. Don't concern yourself with this – you will create this directory later when you create your first package for your own code.
This initial build will take a bit of time since it will need to download all the source code and build the cross compilation tools. Subsequent builds will be much faster. When the build completes, you will find the root file system image and the kernel image in $HOME/overo-oe/tmp/deploy/glibc/images/overo
The Overo COM will boot directly from a properly prepared microSD card. This section will outline how to partition and format a bootable microSD card.
In order to create a bootable microSD compatible with the OMAP3 boot ROM, you must set a special geometry using the fdisk “Expert mode”.
This example will show the steps for setting up a brand new 2GB microSD card.
First insert your card into your development machine's flash card slot. You may need to use a microSD to SD card adaptor to fit your slot.
On my Ubuntu 8.04 machine, the newly inserted card shows up as /dev/sde and that is the device name that will be used through this example. You should substitute the proper device name for your machine. You can use 'mount' or 'df' to see where the card mounts on your machine.
Let's unmount the device's existing file system before we get started with fdisk:
$ sudo umount /dev/sde1
Now launch fdisk and create an empty partition table. Note that the argument for fdisk is the entire device (/dev/sde) not just a single partition (i.e. /dev/sde1):
# sudo fdisk /dev/sde Command (m for help): o Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Let's first look at the current card information:
Command (m for help): p Disk /dev/sde: 2032 MB, 2032664576 bytes 64 heads, 63 sectors/track, 984 cylinders Units = cylinders of 4032 * 512 = 2064384 bytes Disk identifier: 0x00aa8e5c Device Boot Start End Blocks Id System
Note the card size in bytes. We will needed it later in the process.
Now go into “Expert” mode:
Command (m for help): x
Next we will set the geometry to 255 heads, 63 sectors and a calculated value for the number of cylinders required for the particular microSD card.
To calculate the number of cylinders, we take the 2032664576 bytes reported above by fdisk divided by 255 heads, 63 sectors and 512 bytes per sector:
2032664576 / 255 / 63 / 512 = 247.12 which we round down to 247 cylinders.
Expert command (m for help): h Number of heads (1-256, default 4): 255 Expert command (m for help): s Number of sectors (1-63, default 62): 63 Warning: setting sector offset for DOS compatiblity Expert command (m for help): c Number of cylinders (1-1048576, default 984): 247
Return to fdisk's main mode and create a new partition 32 MB FAT partition:
Expert command (m for help): r Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-247, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-247, default 15): +32M
Change the partition type to FAT32:
Command (m for help): t Selected partition 1 Hex code (type L to list codes): c Changed system type of partition 1 to c (W95 FAT32 (LBA))
And mark it bootable:
Command (m for help): a Partition number (1-4): 1
Next we create an ext3 partition for the rootfs:
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (6-247, default 6): 6 Last cylinder or +size or +sizeM or +sizeK (6-247, default 247): 247
To verify our work, lets print the partition info:
Command (m for help): p Disk /dev/sde: 2032 MB, 2032664576 bytes 255 heads, 63 sectors/track, 247 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00aa8e5c Device Boot Start End Blocks Id System /dev/sde1 * 1 5 40131 c W95 FAT32 (LBA) /dev/sde2 6 247 1943865 83 Linux
Up to this point no changes have been made to the card itself, so our final step is to write the new partition table to the card and then exit:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks.
We format the first partition as a FAT file system (the -n parameter gives it a label of FAT, you can change or omit this if you like):
# sudo mkfs.vfat -F 32 /dev/sde1 -n FAT mkfs.vfat 2.11 (12 Mar 2005)
We format the second partition as an ext3 file system:
$ sudo mkfs.ext3 /dev/sde2 mke2fs 1.40.8 (13-Mar-2008) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 121920 inodes, 485966 blocks 24298 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=499122176 15 block groups 32768 blocks per group, 32768 fragments per group 8128 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: ^[done This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
There are three files required on the first (FAT) partition to boot your Overo:
1. MLO: the boot-loader loader - this small program is loaded into the OMAP3 processor's static RAM. It does some minimal configuration of system memory and io pins and then loads the second file. 2. u-boot.bin: the boot loader 3. uImage: the linux kernel
You can build these yourself or download pre-built images. It is important that these three files have precisely these names.
Once you have completed building or downloading these files, mount the FAT partition of your microSD card. This example will assume that you have mounted it at /media/card:
sudo mount /dev/sde1 /media/card
Due to constraints of the mask boot ROM in the OMAP processor, MLO should be written first:
$ sudo cp MLO-overo /media/card/MLO
Then copy u-boot and the linux kernel to the card:
$ sudo cp u-boot-overo.bin /media/card/u-boot.bin $ sudo cp uImage-overo.bin /media/card/uImage
You can now unmount the FAT partition:
$ sudo umount /dev/sde1
At this point you have a bootable FAT partition.
The final step is to untar your desired rootfs onto the ext3 partition that you created above.
Note that this step can be dangerous. You do not want to untar your Overo rootfs onto your development machine - be careful!
This example will assume that you have mounted it at /media/card:
$ sudo mount /dev/sde2 /media/card
Now untar your desired rootfs:
$ cd /media/card $ sudo tar xvjf /path/to/omap3-console-image-overo.tar.bz2
You can now unmount the ext3 partition:
$ sudo umount /dev/sde2
installer le logiciel minicom : apt-get install minicom
exécution du logiciel : minicom /dev/ttyUSB0 kernel-module-v4l2-common Configuration du logiciel :
o ⇒ configure minicom serial port setup ⇒ régler le port A⇒ serial device sur le port usb ou est connecté la gumstix /dev/ttyUSB0
régler le mode de transfert E => sur 115200 (vitesse) 8N1 (8bit, aucune parité, 1bit de stop) régler F (Hardware Flow Control) et G (Software Flow Control) => « NO » Faire « Y » en quittant puis « Save setup as dev_ttyUSB0 », puis « Exit »
Si rien est branché brancher d'abord l'usb, ensuite l'alimentation! Sinon débrancher et rebrancher l'alimentation de la carte.
http://www.gumstix.net/Setup-and-Programming/cat/Overo-Setup-and-Programming/111.html
http://wiki.openembedded.net/index.php/Main_Page
http://pixhawk.ethz.ch/tutorials/omap/openembedded_bitbake_installation
Please install following missing utilities: C++ Compiler (${BUILD_PREFIX}g++)
Il faut installer G++ avec la commande : sudo aptitude install g++
Impossible de télécharger les fichiers à la compilation, il suffit d'éditer un fichier «~/.wgetrc» avec dedans :
http_proxy = http:'proxy-name':'port-number'
ftp_proxy = http:'proxy-name':'port-number' use_proxy = on
on va utiliser v4l, exemple pour grabber une image en c++: http://staff.science.uva.nl/~bterwijn/Projects/V4L2/html/
doc perso sur drivers etc: https://bvdp.inetdoc.net/wiki/doku.php?id=camerauvc
liste les periphs usb branchés:
lsusb
dmesg | grep v4
liste des modules chargés:
lsmod
verifier si un package est installé:
opkg list-installed | grep 7311 opkg list-installed | grep v4l opkg list-installed | grep uvc
décharger un module:
rmmod v4l2-common
chargement de module:
modprobe gspca-pac7311 modprobe v4l2-common
on peut automatiser le chargement de ces modules au démarrage en editant /etc/modules
lister les modules chargés:
lsmod
affichage du flux de données depuis la webcam:
cat /dev/video0
on doit obtenir ces modules chargés :
v4l2_common 16258 0 gspca_pac7311 12405 0 gspca_main 21653 1 gspca_pac7311 videodev 33496 2 v4l2_common,gspca_main v4l1_compat 14083 1 videodev ipv6 225222 10
pour la clef blanche
opkf list-installed pipe grep rt73 modprobe rt73usb iwconfig wlan0
voir: https://help.ubuntu.com/community/WifiDocs/Driver/RalinkRT73
installer driver (v2.2.14): http://www.ftdichip.com/Drivers/VCP.htm
installer minicom
sudo port install minicom
le device est accessible en tty.usbserial-A7005rIY
/opt/local/bin/airport
/opt/local/bin/airport -s Chan Nois Sign Address Beac Flgs SLen SSID 9 65444 65470 00:25:84:93:cf:50 100 0431 11: laas-secure 11 65444 65481 00:12:01:b0:0e:c0 100 0c31 11: laas-secure 13 65442 65468 00:25:84:90:6d:f0 100 0431 11: laas-secure 11 65444 65481 00:12:01:b0:0e:c1 100 0c21 12: laas-welcome 9 65444 65468 00:25:84:93:cf:51 100 0421 12: laas-welcome 13 65442 65479 00:25:84:90:6d:f1 100 0421 12: laas-welcome 44 65442 65466 00:14:a5:30:9e:5e 100 0411 8: LAASHRP2
rejoindre un reseau wifi
/opt/local/bin/airport -J linksys
créer un reseau ad hoc wifi /opt/local/bin/airport -A netgumstix 0x0000000000 11
http://192.168.1.1 log: rien psw: admin
configuration fonctionnelle au 23 septembre 2010
carte sd 2
carte wifi intégrée de l'overo 1 sur tobi 1
script sl2 copié en /etc/init.d/setupnetwork puis link
ln -s /etc/init.d/setupnetwork /etc/rc2.d/S99setupnetwork
#/bin/sh export ADAPT="wlan3" route flush ifconfig $ADAPT down iwconfig $ADAPT mode managed ifconfig $ADAPT inet 192.168.1.101 netmask 255.255.255.0 route add default gw 192.168.1.6 iwconfig $ADAPT rate 6M iwconfig $ADAPT channel 1 ifconfig $ADAPT up sleep 3 iwconfig $ADAPT essid linksys sleep 5 iwconfig $ADAPT essid linksys
routeur wifi linksys configuré pour ne pas diffuser son ssid, il faut demander a se connecter en tapant le nom sous mac
plante a cause du module rt73usb lors de ifconfig, a retester
opkg list-installed | grep 8187
kernel-module-rtl8187 - 2.6.32-r51.5
modprobe rtl8187
du coup il accepte
iwconfig wlan0 txpower 500mW
ifconfig wlan0 192.168.1.107
creer un script /home/root/setupnetwork:
iwconfig wlan0 rate 54M iwconfig wlan0 channel 6 iwconfig wlan0 mode managed iwconfig wlan0 essid "linksys" iwconfig wlan0 txpower 100mW iwlist ifconfig -a ifconfig wlan0 192.168.1.107 ifconfig wlan0 up
copier le script vers /etc/init.d/
cp /home/root/setupnetwork /etc/init.d/ update-rc.d /etc/init.d/setupnetwork defaults
et faire un lien symbolique:
ln -s /etc/init.d/setupnetwork /etc/rc2.d/S99setupnetwork
ca ne marche pas, sans doute les modules de /etc/modules sont charges trop tard (carte wifi?)
http://www.labri.fr/perso/billaud/presentations/linux2002/POLY/admin-unix-2.html
http://www.commentcamarche.net/forum/affich-2062649-lancer-un-script-au-demarrage
mkdir /etc/sysconfig/network-scripts cd /etc/sysconfig/network-scripts vim ifcfg-wifi
DEVICE=wlan0 ONBOOT=yes # Monter l'interface au démarrage TYPE=Wireless USERCTL=no # Contrôle par un simple utilisateur BOOTPROTO=none # Remplacer par dhcp, mais peut poser des problèmes au démarrage HWADDR=00:e0:4c:03:23:f4 # L'adresse MAC de votre carte NETMASK=255.255.248.0 #DHCP_HOSTNAME=pioupiou1-wifi # Nom de votre ordinateur lorsque le dhcp est utilisé IPADDR=192.168.1.107 # Adresse fixe de votre interface wifi #DOMAIN= #NETWORK=192.193.1.0 # Adresse réseau GATEWAY=192.168.1.1 # Adresse de votre passerelle IPV6INIT=no PEERDNS=yes ESSID=linksys # Le nom de votre réseau wifi (ESSID) CHANNEL=6 # Le canal utilisé par votre point d'accès wifi MODE=Managed # Mode wifi utilisé (Master, Adhoc - Managed par défault) IWCONFIG=“AP 00:16:B6:40:F7:4E” # Adresse MAC de votre point d'accès wifi RATE=54M # Cette valeur permet d'augmenter la stabilité (laisser vide).
touch /etc/sysconfig/network-scripts/ifcfg-wifi
ne marche pas….
ssh root@192.168.1.107
copie de fichiers vers la gumstix
scp overo_snapshot_19.pdf root@192.168.1.107:/home/root/
copie de fichiers depuis la gumstix en étant loggé sur la gumstix par ssh
scp overo_snapshot_19.pdf guillaume@192.168.1.102:/home/guillaume
en cas de connexion par ssh, si on perd la connexion, au bout d'un certain temps, les programmes plantent à cause de debordement de buffer. pour lancer proprement des softs depuis un autre pc, on utilise ssh puis on lance screen
yum install screen
une fois connectée à la machine, lancer
screeen
avant de déconnecter le cable reseau, pour rendre la main, taper
CTRL-A D
puis exit de ssh
a la prochaine connexion ssh, pour reprendre la main, taper
screen -r
modinfo rtl8187
modules à charger pour la gumstix
-driver webcam serverin: gspca-pac7311
-driver video for linux: v4l2-common
-driver clef usb dlink wifi: rt73usb
-driver clef usb noire wifi: rtl8187
Pour charger dans un premier temps on peut modifier le fichier 'modules' qui se trouve dans :
/etc/
de la facon suivante :
### This file is automatically generated by update-modules" # # Please do not edit this file directly. If you want to change or add # anything please take a look at the files in /etc/modutils and read # the manpage for update-modules. # ### update-modules: start processing /etc/modutils/cdc_acm cdc_acm ### update-modules: end processing /etc/modutils/cdc_acm ### update-modules: start processing /etc/modutils/ipv6 ipv6 ### update-modules: end processing /etc/modutils/ipv6
La deuxième solution pour ne pas toucher au fichier 'modules' de /etc/ qui est généré automatiquement Il est possible de créer un fichier (script) qui sera automatiquement executé au démarrage de la gumstix
Ce fichier doit se trouver dans : /etc/rc'num du runlevel'.d (par exemple:/etc/rc5.d/) pour avoir le numéro du runlevel 2 possibilités :
soit taper la commande runlevel (ici on trouve le numéro 5) : root@overo:/etc# runlevel N 5 Soit au démarrage de la gumstix le numéro est précisé : INIT: Entering runlevel: 5
Le fichier doit porter un nom de la forme “S'numéro''nom'” (par exemple numéro=90 et nom=local : S90local) Le fichier doit contenir, pour lancer le module cdc_acm au démarrage, la ligne de commande :
modprobe cdc_acm
Une fois le fichier sauvegardé il suffit de redémarrer la carte gumstix (reboot) et vérifier que le module a bien été chargé au démarrage avec la commande 'lsmod' :
root@overo:/etc/rc5.d# lsmod Module Size Used by cdc_acm 14477 0 // => le module est bien chargé ipv6 219420 14
http://playerstage.sourceforge.net/wiki/Cross_Compile_Player_with_Openembedded_and_bitBake
http://playerstage.sourceforge.net/wiki/Cross_Compile_Player_with_Gearbox
opkg install player-dbg_3.1.0-r0.5_armv7a.ipk opkg install player-dev_3.1.0-r0.5_armv7a.ipk opkg install player_3.1.0-r0.5_armv7a.ipk
résultat:
e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'
root@overo:~/hokuyo# opkg install player-dbg_3.1.0-r0.5_armv7a.ipk
Installing player-dbg (3.1.0-r0.5) to root… player-dbg: unsatisfied recommendation for player player-dbg: unsatisfied recommendation for glibc-dbg player-dbg: unsatisfied recommendation for libltdl-dbg player-dbg: unsatisfied recommendation for libjpeg-dbg player-dbg: unsatisfied recommendation for libz-dbg player-dbg: unsatisfied recommendation for libstdc++-dbg player-dbg: unsatisfied recommendation for libgcc-dbg Configuring hicolor-icon-theme. usr/lib/opkg/info/hicolor-icon-theme.postinst: line 7: gdk-pixbuf-query-loaders: not found usr/lib/opkg/info/hicolor-icon-theme.postinst: line 13: gtk-update-icon-cache: not found Configuring player-dbg. Collected errors: * pkg_run_script: postinst script returned status 127. * opkg_configure: hicolor-icon-theme.postinst returned 127.
root@overo:~/hokuyo# root@overo:~/hokuyo# opkg install player-dev_3.1.0-r0.5_armv7a.ipk Installing player-dev (3.1.0-r0.5) to root… player-dev: unsatisfied recommendation for libtool-dev player-dev: unsatisfied recommendation for libjpeg-dev player-dev: unsatisfied recommendation for libc6-dev player-dev: unsatisfied recommendation for libltdl-dev player-dev: unsatisfied recommendation for libz-dev player-dev: unsatisfied recommendation for libstdc++-dev player-dev: unsatisfied recommendation for libgcc-dev Configuring hicolor-icon-theme. usr/lib/opkg/info/hicolor-icon-theme.postinst: line 7: gdk-pixbuf-query-loaders: not found usr/lib/opkg/info/hicolor-icon-theme.postinst: line 13: gtk-update-icon-cache: not found Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for player-dev: * player * * opkg_install_cmd: Cannot install package player-dev. * pkg_run_script: postinst script returned status 127. * opkg_configure: hicolor-icon-theme.postinst returned 127. root@overo:~/hokuyo# root@overo:~/hokuyo# opkg install player_3.1.0-r0.5_armv7a.ipk Installing player (3.1.0-r0.5) to root…
Configuring hicolor-icon-theme. usr/lib/opkg/info/hicolor-icon-theme.postinst: line 7: gdk-pixbuf-query-loaders: not found usr/lib/opkg/info/hicolor-icon-theme.postinst: line 13: gtk-update-icon-cache: not found Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for player: * libjpeg62 * libstdc++6 * * opkg_install_cmd: Cannot install package player. * pkg_run_script: postinst script returned status 127. * opkg_configure: hicolor-icon-theme.postinst returned 127. root@overo:~/hokuyo# root@overo:~/hokuyo# Broadcast message from root (ttyS2) (Thu Apr 15 22:11:53 2010):
http://artisan.karma-lab.net/node/60
apres avoir installe un paquet hokuyo:
ls /usr/lib/ipkg/info/ | grep hokuyo gbx-hokuyo-aist.control gbx-hokuyo-aist.list
vim /usr/lib/ipkg/info/gbx-hokuyo-aist.list
/usr/lib/gearbox/libhokuyo_aist.so.1.0.0 /usr/bin/hokuyo_aist_example
ln -s /dev/usbdev1.10 /dev/ttyACM0
en remplacant le 10 par le numero de device affiche a la connexion sur l'usb → probleme /dev/usbdev1.10 n'est pas utilisable par /usr/bin/hokuyo_aist_example
Le device a besoin du module cdc_acm
modprobe cdc_acm
fichiers .bb installé sur borderouge dans:
cd /local/users/bvandepo/overo-oe/hokuyo/gearbox-oe
Ils sont sous git, a mettre dans user.collection/recipes/
git clone ssh://trac.laas.fr/git/robots/gearbox-oe
ne pas oublier de faire
source ~/.tcshrc
verifier avec env si j'ai bien le meme environnement que: https://bvdp.inetdoc.net/data/envpourbitbake
par defaut les devices /dev/ttyUSB0 et 1 ne sont pas accessibles à tous les utilisateurs
pour changer temporairement le propriétaire du device:
sudo chown -vR bvandepo /dev/ttyUSB0
pour le configurer de manière permanente:
créer un fichier /etc/udev/rules.d/99-mti.rules SYSFS{idVendor}="04033", SYSFS{idProduct}=="6010", MODE="0666", OWNER="root", GROUP="root"
115200 baus 8N2 Stops, Pas de controle logiciel et materiel
matthieu a fait la recette et explique comment intégrer les paquet openrobots dans bitbake:
https://intranet.laas.fr/intranet/robots/wiki/Gumstix/OpenEmbedded#preview
modprobe usbserial modprobe ftdi_sio vendor=0x0403 product=0x6010
MTIHardTest -v /dev/ttyUSB0 -o 1 -d 2
http://www.lefinnois.net/wp/index.php/2009/04/15/ttyusb0-ttyusb2-non-ttyusb1-graaaahh-udev/
Où est ma Fonera 1, où est mon Attiny2313, où est ma Fonera 2… etc… ?
On trouve dans /sys/bus/usb-serial/devices plein de choses intéressantes avec udevinfo -a -p. Parmi lesquelles :
ATTRS{manufacturer}=="FTDI" ATTRS{product}=="FT232R USB UART" ATTRS{serial}=="A90066ai"
Du coup, il ne reste plus qu'à se construire des petites règles sympathiques dans un fichier placé dans /etc/udev/rules.d :
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="FT232R USB UART", \ SYSFS{serial}=="A90066j7", SYMLINK+="TTYUSB0" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="FT232R USB UART", \ SYSFS{serial}=="A90066ac", SYMLINK+="TTYUSB1" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="FT232R USB UART", \ SYSFS{serial}=="A900669W", SYMLINK+="TTYUSB2" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{product}=="FT232R USB UART", \ SYSFS{serial}=="A90066ai", SYMLINK+="TTYUSB3"
On redémarre udev avec un petit /etc/init.d/udev restart et on marque des petits chiffres au feutre indélébile sur les adaptateurs. A la connexion du périphérique identifié par son numéro de série, un lien symbolique est créé dans /dev. Peu importe le /dev/ttyUSB*, le lien symbolique donne toujours accès au bon périphérique.
Done.
PS : ça marche pour plein de périphériques. Ceci inclus les clef USB par exemple :
BUS=="usb", SYSFS{serial}=="123456789ABCDEF", NAME="%k", SYMLINK="usbkey1"
Article posté on Mercredi, 15 avril 2009 à 21:19 dans Configuration. Vous pouvez suivre les commentaires sur cet article via un feed RSS 2.0. Commentaires et pings fermés.
recettes pour les images: $OVEROTOP/org.openembedded.dev/recipes/images
j'utilise omap3-console-image.bb
j'y ai ajouté notamment:
TOOLS_INSTALL = " \ pocolibs \ gbx-hokuyo-aist \ mti-libs \ jpeg-dev\ tiff\ busybox\ gcc\ glibc\ libstdc++-dev\ libtool-dev\ pstree\ unzip\ bash \ bzip2 \
fichiers image résultat: $OVEROTOP/tmp/deploy/glibc/images/overo/
attention les differentes versions sont stockees… elles prennent de la place (a peu pres 300mo par image). le lien symbolique omap3-console-image-overo.tar.bz2 pointe normallement vers la derniere version
Angstrom-omap3-console-image-glibc-ipk-2010.4-test-20100520-overo.rootfs.tar.bz2 Angstrom-omap3-console-image-glibc-ipk-2010.4-test-20100520-overo-testlab modules-2.6.32-r51-overo.tgz omap3-console-image-overo.tar.bz2 u-boot-overo-2009.11.1+r0+git327f51adacfe8c7b633f90306d646ae03e098554-r0.bin u-boot-overo.bin uImage-2.6.32-r51-overo.bin uImage-overo.bin
fichiers recettes du laas: $OVEROTOP/org.openrobots.dev/recipes
demo-genom gearbox --> drivers du hokuyo gbx-common.inc gbx-flexiport.bb gbx-hokuyo-aist.bb gbx-share.bb genom mkdep mti-libs --> drivers de la centrale xsense mti-libs.bb mti-libs_git.bb pocolibs --> fonctions de communications ( peut être utile pour mti, demander a Matthieu) pocolibs_git.bb
lors de l'installation d'un paquet, pour avoir plus d'infos:
opkg install -V2 hokuyogood_1.0-r0.5_armv7a.ipk
soit les intégrer directement à l'image système, soit installer les ipk a posteriori
scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-flexiport_9.11-r1.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-flexiport-dbg_9.11-r1.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-flexiport-dev_9.11-r1.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-hokuyo-aist_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-hokuyo-aist-dbg_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-hokuyo-aist-dev_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-share_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-share-dbg_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/gbx-share-dev_9.11-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/hokuyogood_1.0-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/hokuyogood-dbg_1.0-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/hokuyogood-dev_1.0-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/hokuyogood-doc_1.0-r0.5_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/mti-libs_0.4+git63d1948-r0.6_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/mti-libs-dbg_0.4+git63d1948-r0.6_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/mti-libs-dev_0.4+git63d1948-r0.6_armv7a.ipk ./ scp bvandepo@borderouge.laas.fr:/local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a/mti-libs-static_0.4+git63d1948-r0.6_armv7a.ipk ./
opkg install gbx-flexiport_9.11-r1.5_armv7a.ipk opkg install gbx-share_9.11-r0.5_armv7a.ipk opkg install gbx-hokuyo-aist_9.11-r0.5_armv7a.ipk opkg install hokuyogood_1.0-r0.5_armv7a.ipk opkg install mti-libs_0.4+git63d1948-r0.6_armv7a.ipk
chmod +x hokuyogoodgumstix
scprit shell pour configurer le reseau et executer hokuyogumstix
#/bin/sh ifconfig eth0 10.31.4.9 export LD_LIBRARY_PATH=/usr/lib/gearbox/ modprobe cdc_acm cd /home/root/hokuyogood/gumstix ./hokuyogoodgumstix /dev/ttyACM0
dans .tcshrc
## Environment setup for oe # # setenv BB_ENV_EXTRAWHITE "MACHINE DISTRO ANGSTROM_MODE OVEROTOP OEBRANCH ROBOTSBRANCH USERBRANCH TITOOLSDIR" setenv OVEROTOP "/local/users/bvandepo/overo-oe" setenv ROBOTSBRANCH "$OVEROTOP/org.openrobots.dev" setenv OEBRANCH "$OVEROTOP/org.openembedded.dev"
setenv USERBRANCH "${OVEROTOP}/user.collection"
setenv PATH "${OVEROTOP}/bitbake/bin:$PATH" setenv BBPATH "${OVEROTOP}/build:${USERBRANCH}/:${OEBRANCH}"
setenv TITOOLSDIR "${OVEROTOP}/ti"
umask 0002
# ## end oe setup # #~
branche GPS du depot git
modifier dans la recette mti-libs_git.bb pour choisir la version que l'on veut
SRCREV = "b4638df"
ce sont les premiers numeros d'un commit (on peut les voir en faisant gitk)
cette version est celle qui fonctionne sous mac, pour laquelle il y a le flag -lrt dans le fichier Makefile.in, pour modifier les sources en local, editer : /local/users/bvandepo/overo-oe/tmp/work/armv7a-angstrom-linux-gnueabi/mti-libs-0.4+gitbcccc5e-r0/git/test/test.cpp
pour cleaner (obligatoire!)
bitbake -b org.openrobots.dev/recipes/mti-libs/mti-libs_git.bb -c clean
pour aller chercher les sources sur le depot git
bitbake -b org.openrobots.dev/recipes/mti-libs/mti-libs_git.bb -c fetch
pour builder
bitbake -b org.openrobots.dev/recipes/mti-libs/mti-libs_git.bb
on obtient les 4 ipk dans: /local/users/bvandepo/overo-oe/tmp/deploy/glibc/ipk/armv7a
IMPORTANT: Si il y a un probleme avec le fetch, il faut effacer dans $OVEROTOP/sources/git
mes sources sont sur garossos dans ~/robotpkg/hardware/MTI/work.garossos.laas.fr/MTI-0.4/test
dhclient eth0
fichier Makefile:
OVERO_CC = /opt/paparazzi/omap/overo-oe/tmp/sysroots/i686-linux/usr/armv7a/bin/arm-angstrom-linux- gnueabi-gcc CFLAGS += -Wall -std=gnu99 IPOVERO=192.168.31.17 all: hello upload exec hello: hello.c $(OVERO_CC) $(CFLAGS) $^ -o $@ clean: # rm *.o rm hello upload: scp ./hello root@$(IPOVERO):/home/root/hello exec: ssh root@192.168.31.17 /home/root/hello
script sur mac:
# pour lancer la compil bitbake depuis mac #/bin/sh export OVEROTOP=/usr/overo export DOSSIER="hokuyo_makearm" #synchronise les sources sur linux rsync -av -e 'ssh -p 2222' -r ~/Desktop/hokuyo/$DOSSIER/ bvdp@127.0.0.1:/$OVEROTOP/perso/$DOSSIER/ #compile les sources sur linux, en utilisant le script compilbb ssh -l bvdp -p 2222 127.0.0.1 "/home/bvdp/compilbb $DOSSIER" #synchronise sur le mac rsync -av -e 'ssh -p 2222' -r bvdp@127.0.0.1:/$OVEROTOP/perso/$DOSSIER/ ~/Desktop/hokuyo/$DOSSIER/
script compilbb sur linux:
#/bin/sh export OVEROTOP=/usr/overo cd $OVEROTOP/perso/$1 make clean make rm *.gch