I recently bought a Beaglebone Black (BBB). I first had a Raspberry Pi but returned it after I ran into the (famous) USB Isochronous Transfer Mode problems. The Pi has the best support for graphical stuff, but that’s not what I was looking for. The BBB is a little older and it’s supported like most open source stuff. The documentation on hardware and on TI’s website is very good. But outside of that “controlled” environment you’re on your own. This is where the Pi scores much better.
An example: booting and the FAT partition. The BBB’s bootcode needs a FAT partition to boot, is what you read almost everywhere. After I flashed this
Linux beaglebone 3.8.13-bone79 #1 SMP Tue Oct 13 20:44:55 UTC 2015 armv7l GNU/Linux
image to the internal eMMC and verified that the BBB booted from it, I checked the partitions. WTF, only one ext4 partition, no FAT… Well it must be hidden then (a common remark in forums) or I must be doing something wrong (hmmm).
debian@beaglebone:~$ lsblk -f NAME FSTYPE LABEL MOUNTPOINT mmcblk0boot0 mmcblk0boot1 mmcblk0 └─mmcblk0p1 ext4 BEAGLEBONE /
Google is your friend: The BBB’s bootcode supports raw booting as well. This means it looks for specific locations on the boot disk, I mean disk block locations, i.e. not using the filesystem layer. When it finds bootcode it loads it and starts the multi stage boot process. No FAT partition required.
One last thing: You also run into this FAT partition confusion when trying to use a SD Card as additional storage: If the BBB reads the boot manager from an internal FAT partition and detects an external FAT partition as well, it will try to load uEnv.txt and boot (i.e. load the kernel) from the external (SD Card) partition. When the BBB uses the raw boot method, it does not care about an external FAT partition anymore. So you can format your SD Card as ext4 and enjoy the extra storage space. Many internet sources state that you have to put an uEnv.txt file on the SD Card. Bottom line: it really helps to try to understand how things work…