howtos:devboards

Ceci est une ancienne révision du document !


Boards de développement

Buildroot c'est bien !

## Pandaboard

### Noyau Ubuntu/TI (marche)

La pandaboard n'est plus supportée par personne et ce n'est pas facile de trouver comment faire pour obtenir un système qui marche. En pratique, on a un setup fonctionnel avec

  • WiFi
  • Bluetooth
  • Possibilité d'exécution de code sur les Cortex M3
  • Possibilité d'exécution de code sur le DSP C64
  • I2C

L'image avec tout cela est disponible sur notre site à l'adresse TODO, et les instructions ci-dessous expliquent comment elle a été crée (et donc, comment la recréer). TODO: Explications sur comment cross-compiler pour et utiliser ducati (les cortex M3) et tesla (le DSP). Et surtout mettre un dump de trucs qui marchent.

Buildroot c'est bien, mais ça ne boot pas sur la panda. Il faut donc utiliser l'image Ubuntu disponible à https://wiki.ubuntu.com/ARM/OMAP. Attention, bien évidemment, cette version d'Ubuntu n'est plus supportée (je vous l'avais dit), et il faut à priori éviter de faire un do-release-upgrade… La version à choisir est “Texas Instruments OMAP4 (Hard-Float) preinstalled server image” (vous pouvez prendre le desktop image si vous voulez X11). Il faut ensuite extraire le fichier .img, puis copier son contenu sur la carte SD avec dd.

Si la carte SD est montée en /dev/mmcblk0, il vous suffit donc d'exécuter les commandes suivantes :

``` $ wget http://cdimage.ubuntu.com/releases/12.04/release/ubuntu-12.04-preinstalled-server-armhf+omap4.img.gz $ gunzip ubuntu-12.04-preinstalled-server-armhf+omap4.img.gz $ dd if=ubuntu-12.04-preinstalled-server-armhf+omap4.img of=/dev/mmcblk0 bs=8M ```

Ensuite, mettez la carte SD dans la Panda, connectez-là par le port serial avec minicom (attention le serial est /dev/ttyO2), n'oubliez pas de la brancher en ethernet, et enfin branchez-là.

Suivez les étapes d'installation d'Ubuntu à travers minicom. Attention, les sélections dans les menus d'installation ne sont pas facile. Je m'en suis sorti un peu au hasard en utilisant le fait que taper la première lettre d'une option cycle entre les différentes options qui commencent par cette lettre. Installez au moins le “serveur Ubuntu de base” et le “serveur SSH”. Une fois l'installation terminée, connectez-vous en SSH, parceque c'est 1000 fois plus agréable que par minicom.

Une fois connecté, la *première chose à faire* c'est de mettre le kernel custom TI à la place de celui d'Ubuntu. Pour ce faire, suivre les instructions de https://groups.google.com/forum/#!topic/pandaboard/vKunvhMNV8k, puis de http://askubuntu.com/questions/201981/pandaboard-crash-on-startup-or-freeze-after-minutes AVANT de faire le reboot pour éviter un crash. En pratique, il faut commencer par faire un apt-get update (pour des raisons de certificats SSL), et installer apt-add-repository (si vous avez des problèmes essayez de redémarrer la board juste avant le apt-add-repository) :

``` $ sudo su # apt-get update # apt-get upgrade # apt-get install apt-add-repository # apt-add-repository ppa:tiomap-dev/release # apt-get update # apt-get dist-upgrade # apt-get install ubuntu-omap4-extras # reboot # /usr/bin/alsaucm -c Panda set _verb HiFi # /usr/sbin/flash-kernel –update-bootloader # apt-get install –reinstall pvr-omap4-dkms # vim /etc/init.d/ondemand Commenter la ligne “echo -n ondemand > $CPUFREQ” # reboot ``` Ensuite on installe le bluetooth en suivant http://elinux.org/PandaBoard/Ubuntu_Tips, c'est-à-dire qu'on fait

``` $ sudo apt-get install git bluez bluez-utils –no-install-recommends $ git clone git:gitorious.org/uim/uim.git $ cd uim $ make $ sudo mv uim /usr/bin $ sudo modprobe btwilink $ sudo uim & ``` Il faut répéter les deux dernières étapes (```modprobe btwilink && uim &```) à chaque fois qu'on veut activer le bluetooth. Enfin, pensez à installer et configurer le wifi par la méthode de votre choix (par exemple, wicd-curses). ### Alimentation From : http://omappedia.org/wiki/PandaBoard_FAQ#What_are_the_specs_of_the_Power_supply_I_should_use_with_a_PandaBoard.3F The recommended power supply is rated at 5V (max) @ 4A. Power Supply: 5V Barrel Measurements: 2.1mm ID, 5.5mm OD - Tip Positive ^ L'extérieur du câble est à la masse, l'intérieur est à 5V. En pratique j'ai eu du succès (ahem) avec l'USB-OTG sur un port USB 3.0 (E_NOBOOT sur de l'USB 2.0). ### Méthode Buildroot (ne marche pas) Pour la Panda, il y a un fichier de configuration pré-disponible : ``` git clone git:git.buildroot.net/buildroot make pandaboard_defconfig make ```

Lancer ensuite le script suivant (attention à la locale !) : ``` #!/bin/sh if [ ! “$1” = “/dev/sda” ] ; then

DRIVE=$1
if [ -b "$DRIVE" ] ; then
	dd if=/dev/zero of=$DRIVE bs=1024 count=1024
	SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
	echo DISK SIZE - $SIZE bytes
	CYLINDERS=`echo $SIZE/255/63/512 | bc`
	echo CYLINDERS - $CYLINDERS
	{
	echo ,9,0x0C,*
	echo ,,,-
	} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
	mkfs.vfat -F 32 -n "boot" ${DRIVE}1
	mke2fs -j -L "rootfs" ${DRIVE}2
fi 

fi ``` (trouvé ici http://elinux.org/Panda_How_to_buildroot)

Pour tester que la SD est bien formatée, compiler et lancer : ``` #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>

int main( int argc, char **argv ) {

if ( argc < 2 ) {
	printf("check /dev/sdX you must be root too \n");
	return 1;
}
int fd = open( argv[1], O_RDONLY );
lseek( fd, 0 + 446 + 8, SEEK_SET );
int start;
int num_mbr;
read( fd, &start, 4 );
read( fd, &num_mbr, 4 );
int num_bpb = 0;

lseek( fd, start * 512 + 0x13, SEEK_SET );
read( fd, &num_bpb, 2 );
if( num_bpb == 0 ) {
	lseek( fd, start * 512 + 0x20, SEEK_SET );
	read( fd, &num_bpb, 4 );
}

printf( "start: %d  mbr: %d  bpb: %d -> %s\n", 
	start, num_mbr, num_bpb, 
	num_mbr == num_bpb ? "PASS" : "FAIL!" );
return num_mbr == num_bpb;

} ``` (même source)

Copier MLO, u-boot.bin, uImage et le fichier .dtb sur la première partition et faire un dd du fichier .ext2 sur la deuxième partition.

J'ai eu un bug avec la partition système en ext2, qui provoquait un Kernel panic, cf https://bugs.busybox.net/post_bug.cgi. Utiliser tune2fs pour passer en ext3 ou éditer la configuration pour utiliser un fs en ext3.

  • howtos/devboards.1414937715.txt.gz
  • Dernière modification : 2022/05/05 07:40
  • (modification externe)