====== 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 ===== [[https://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-SetupmicroSDcard]] [[http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User%27s_Guide]]