03/08/2018

linux  Linux underground

BeagleBone Black

Premier démarrage

Ce matériel est livré prêt à l'emploi. Branchez simplement la cable USB à votre PC d'une part et au BeagleBone Black via le port microUSB d'autre part. Celui-ci démarre alors, alimenté par l'USB. Pour se connecter en SSH :
adresse IP : 192.168.7.2
Login : debian
password : temppwd

Ce 29 août 2014, j'arrive enfin à booter mon BeagleBone black sur la carte microSD. Mais depuis, beaucoup de choses ont changé dans la configuration de notre bien aimé BeagleBone Black. En vrac, voici quelques notes...

Console série

NB:  Pin 1 on the cable is the black wire and connects to pin 1 on the board, the pin with the white dot next to it (http://elinux.org/Beagleboard:Terminal_Shells).

dmesg donne :

[ 1728.681876] usbcore: registered new interface driver usbserial
[ 1728.682022] usbcore: registered new interface driver usbserial_generic
[ 1728.682080] usbserial: USB Serial support registered for generic
[ 1728.698254] usbcore: registered new interface driver ftdi_sio
[ 1728.699633] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1728.699834] ftdi_sio 1-2.1:1.0: FTDI USB Serial Device converter detected
[ 1728.701000] usb 1-2.1: Detected FT232RL
[ 1728.704377] usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0

# screen /dev/ttyUSB0 115200

ATTENTION : le câble FTDI doit être connecté avant de lancer la commande screen, à tout le moins côté prise USB.

Environnement de compilation Gentoo

Pour configurer votre environnement de compilation "armv7a-hardfloat-linux-gnueabihf", consultez directement le Wiki Gentoo.

Compilation de U-boot

$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-2018.01.tar.bz2
$ tar xvjf u-boot-2018.01.tar.bz2
$ cd u-boot-2018.01
$ wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
$ wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0002-U-Boot-BeagleBone-Cape-Manager.patch
$ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
$ patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- am335x_boneblack_config
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf-

Pourquoi cela ne fonctionne pas avec la "tarball" release mais uniquement en compilant au départ du dépôt git ?

omap4+

ATTENTION:
Remplacez toujours /dev/sdX par le fichier correspondant à votre périphérique de lecture de carte SD !

Effacez l'actuelle table de partition (et les labels) :

# dd if=/dev/zero of=/dev/sdX bs=1M count=10

Partionnez la microSD :

# sfdisk /dev/sdX <<-__EOF__
4M,,L,*
__EOF__

Installez le bootloader. MLO et u-boot.img sont "dd'ed to drive" :

# dd if=MLO of=/dev/sdX count=1 seek=1 conv=notrunc bs=128k
# dd if=u-boot.img of=/dev/sdX count=2 seek=1 conv=notrunc bs=384k

Formatez la microSD :

# mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit /dev/sdX1

Sources :
https://eewiki.net/display/linuxonarm/BeagleBone+Black
https://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0.

Compilation du noyau

$ mkdir -p ~/bbb/deploy/boot
$ cd ~/bbb
$ git clone -b 4.14 --single-branch https://github.com/beagleboard/linux.git
$ cd linux
$ ti_config_fragments/defconfig_builder.sh -t ti_sdk_am3x_release
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- ti_sdk_am3x_release_defconfig
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- -j8 zImage modules dtbs
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- INSTALL_MOD_PATH=~/bbb/deploy modules_install
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- INSTALL_PATH=~/bbb/deploy/boot install
$ make ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabihf- INSTALL_PATH=~/bbb/deploy/boot dtbs_install
$ cd ~/bbb/deploy
$ echo uname_r=$(ls boot/dtbs/) > boot/uEnv.txt
$ tar cvzf ../deploy.tar.gz . --group=root --owner=root

Bizarre, je n'ai pu booter ce kernel qu'en utilisant le fichier de config de Robert Nelson et pas celui du defconfig_builder ni celui du bb.org_defconfig pour la compilation.

Les "defconfig" présent par défaut : utiles ???
omap2plus_defconfig
bb.org_defconfig

Fichiers

Trucs et astuces

Mettre à jour l'horloge software :

# tlsdate -V -l -t
# touch /sbin/openrc-run

Créez de la mémoire swap pour une opération ponctuelle :

# dd if=/dev/zero of=/swapfile bs=1M count=512
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
...
# swapoff -a

Gentoo - lors de la mise à jour du stage3 (assez ancien), pour me sortir du blocage de portage :
# emerge -1 --nodeps dev-python/six

Liens

https://wiki.gentoo.org/wiki/Embedded_Handbook/Boards/BeagleBone_Black
https://wiki.gentoo.org/wiki/BeagleBone_Black
https://eewiki.net/display/linuxonarm/BeagleBone+Black
https://www.twam.info/hardware/beaglebone-black/u-boot-on-beaglebone-black
http://wiki.beyondlogic.org/index.php?title=BeagleBoneBlack_Default_uBoot_Environment_Variables


Valid XHTML 1.1 CSS Valide !