francois:beaglebone_black
Table des matières
Développer avec la carte Beaglebone black
Le cross-compiler
wget -c https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz tar xf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz export CC=`pwd`/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
Compiler U-Boot
git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2017.09 -b tmp
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.09/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.09/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=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
make ARCH=arm CROSS_COMPILE=${CC}
Flasher U-Boot sur une carte SD
export DISK=/dev/mmcblk0
sudo dd if=/dev/zero of=${DISK} bs=1M count=10
sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=128k
sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=384k
Creation of the partition next to U-Boot
sudo sfdisk ${DISK} <<-__EOF__
4M,,L,*
__EOF__
For mkfs.ext4 >= 1.43
sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit ${DISK}p1
Compiler le noyau
git clone https://github.com/RobertCNelson/bb-kernel cd bb-kernel/ git checkout origin/am33x-v4.9 -b tmp ./build_kernel.sh export kernel_version=4.9.50-bone7
Replace the kernel version by the one returned by the build_kernel.sh script
Ecrire le rootfs
mkdir rootfs
sudo mount /dev/mmcblk0p1 rootfs
wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-9.1-minimal-armhf-2017-08-08.tar.xz
tar xfvp debian-9.1-minimal-armhf-2017-08-08.tar.xz
sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C rootfs/
sudo chown root.root rootfs
sudo chmod 755 rootfs/
sudo sh -c "echo 'uname_r=${kernel_version}' >> rootfs/boot/uEnv.txt"
sudo cp -v ./bb-kernel/deploy/${kernel_version}.zImage rootfs/boot/vmlinuz-${kernel_version}
sudo mkdir -p rootfs/boot/dtbs/${kernel_version}/
sudo tar xfv ./bb-kernel/deploy/${kernel_version}-dtbs.tar.gz -C rootfs/boot/dtbs/${kernel_version}/
sudo tar xfv ./bb-kernel/deploy/${kernel_version}-modules.tar.gz -C rootfs/
sudo sh -c "echo '/dev/mmcblk0p1 / auto errors=remount-ro 0 1' >> rootfs/etc/fstab"
Configurer le réseau
Ajouter à /etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
USB Gadget
Provides http access to beaglebone black over usb. Install udhcpd
sudo apt-get install udhcpd
Edit: /etc/network/interfaces and add
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.252
network 192.168.7.0
gateway 192.168.7.1
wget -c https://raw.github.com/RobertCNelson/tools/master/scripts/beaglebone-black-g-ether-load.sh chmod +x beaglebone-black-g-ether-load.sh sudo ./beaglebone-black-g-ether-load.sh
eMMC
Script to copy your microSD card to eMMC: (this will need these packages installed: initramfs-tools dosfstools rsync)
wget https://raw.githubusercontent.com/RobertCNelson/boot-scripts/master/tools/eMMC/bbb-eMMC-flasher-eewiki-ext4.sh chmod +x bbb-eMMC-flasher-eewiki-ext4.sh sudo /bin/bash ./bbb-eMMC-flasher-eewiki-ext4.sh
Liens utiles
francois/beaglebone_black.txt · Dernière modification : de francois
