Où sommes nous ?

Retour

BSP : le "Board Support Package"

Ressources

Adapté pour Gentoo du WiKi de LeMaker

Les binaires correspondants sont disponibles en téléchargement sur cette page.

Le "Board Support Package" permet d'obtenir en une action tout ce qui est nécessaire pour démarrer son BananaPI. Il doit être construit sur une autre machine Unix et si cette machine a une autre architecture que le Banana, un cross compilateur doit y avoir été installé.
Chez moi, ça sera un PC ... sous Gentoo bien sûr.

Les prérequis

Les packages suivants sont nécessaires :

emerge dev-vcs/git dev-embedded/u-boot-tools

Récupération et configuration des sources

Depuis un répertoire de travail quelconque :

git clone https://github.com/LeMaker/lemaker-bsp.git
cd lemaker-bsp/
./configure BananaPi

(On remplacera BananaPi par BananaPro dans le cas ... d'un Banana Pro ).

Adaptation à Gentoo

image.h

Il faut renomer ou supprimer le fichier /usr/include/image.h qui entre en conflit avec le code d'uboot, sinon on bloquera sur l'erreur suivante :

  HOSTCC  tools/aisimage.o
In file included from /usr/include/image.h:22:0,
                 from /home/laurent/bPI/lemaker-bsp/u-boot-sunxi/tools/aisimage.c:10:
/usr/include/rgbpixel.h:61:3: erreur: expected specifier-qualifier-list before ‘RGBpixel’
   RGBpixel () /* : red(0), green(0), blue(0), alpha(255) {} */

Pour être clair, c'est un problème de design d'uboot ... pourquoi va-t-il donc chercher cette include globalement ????

Cross Compilateur

Dans le fichier ./Makefile on change la définition du compilateur (l'original est pour Ubuntu)

CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi-

Compilation

Etape optionnelle uniquement si on souhaite par exemple ajouter ou supprimer des modules supplémentaires

make linux-config

qui lancera le classique menuconfig.

Ensuite, on lance le classique

make

et on va faire un tour ... ça peut durer un moment !

Note

Il existe d'autres options pour make, que l'on peut obtenir par un

~/bPI/lemaker-bsp $ make help

Usage:
  make hwpack          - Default 'make'
  make hwpack-install  - Build and install hwpack and optional rootfs to sdcard
   Arguments:
    SD_CARD=           - Target  (ie. /dev/sdx)
    ROOTFS=            - Source rootfs (ie. rootfs.tar.gz)
  make livesuit        - Build and create livesuit image
   Arguments:
    ROOTFS=            - Source rootfs (ie. rootfs.tar.gz)

  make android         - **Experimental**
  make clean
  make update

Optional targets:
  make linux           - Builds linux kernel
  make linux-config    - Menuconfig
  make u-boot          - Builds u-boot
  make libs            - Download libs
  make tools           - Builds open source tools

A noter que je n'ai pas essayé de "graver" une carte par cette méthode ...

Le résultat se trouve dans build/BananaPi_hwpack/.

Formatage et installation des outils de boot sur un SD

ATTENTION

Le contenu de la carte va être totalement effacé.

Attention aussi au point de montage, chez moi, c'est /dev/sdb

SD d'au moins 4 GO et de classe 10 de rigueur.

cd build/Bananapi_hwpack/
dd if=/dev/zero of=/dev/sdb bs=1M count=1
dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

puis création des partitions par fdisk :

Commande (m pour l'aide) : n

Type de partition :
   p   primaire (0 primaire(s), 0 étendue(s), 4 libre(s))
  e   étendue
Sélection (p par défaut): p
Numéro de partition (1-4, default 1): 1
Premier secteur (2048-15523839, default 2048):
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-15523839, default 15523839): +64M

Une nouvelle partition 1 de type « Linux » et de taille 64 MiB a été créée.

Commande (m pour l'aide) : t
Partition 1 sélectionnée
Code Hexa (taper L pour afficher tous les codes) :c
Si vous avez créé ou modifié une partition DOS 6.x, veuillez consulter la documentation de fdisk pour de plus amples renseignements.
Type de partition « Linux » modifié en « W95 FAT32 (LBA) ».

Commande (m pour l'aide) : a
Partition 1 sélectionnée
The bootable flag on partition 1 is enabled now.

Commande (m pour l'aide) : n

Type de partition :
   p   primaire (1 primaire(s), 0 étendue(s), 3 libre(s))
  e   étendue
Sélection (p par défaut): p
Numéro de partition (2-4, default 2):
Premier secteur (133120-15523839, default 133120):
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (133120-15523839, default 15523839):

Une nouvelle partition 2 de type « Linux » et de taille 7,3 GiB a été créée.

Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Synchronisation des disques.

et formatage

mkfs.vfat /dev/sdb1
mkfs.ext2 /dev/sdb2

mkdir /mnt/gentoo
mount /dev/sdb2 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sdb1 /mnt/gentoo/boot/

Enfin toujours depuis  Bananapi_hwpack

cp kernel/* /mnt/gentoo/boot/
cp -r rootfs/lib/* /mnt/gentoo/lib

Reste plus qu'à installer le système.


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.