FAT partition on newer images

266 views
Skip to first unread message

Alexander Rössler

unread,
Sep 1, 2017, 9:44:49 AM9/1/17
to BeagleBoard
Older BBB had a very useful FAT partition when plugged in via USB. The FAT partition was also accessible directly on the SD card. However, I have tested some newer images and saw that some of them still mount the FAT partition but it's not physically present on the SD card anymore. How can I create/modify this FAT partition? It seems to be missing on the latest Machnekit Jessie image.

Robert Nelson

unread,
Sep 1, 2017, 9:56:25 AM9/1/17
to Beagle Board
Oh, it's been a few years since we nuked that partition..

The "virtual" fat image you see now is just an image *.img file we
started pushing back in 2015.12.04

Last year, i had added a "--enable-fat-partition" option to the sdcard
authoring script:

https://github.com/RobertCNelson/omap-image-builder/commit/f24e65c7b7b63a13c41216f893cde05529101722

There's a "setup_sdcard.sh" example here:

http://elinux.org/BeagleBoardDebian#Debian_.28stretch.29

Just add the --enable-fat-partition option and see what happens...

Regards,

--
Robert Nelson
https://rcn-ee.com/

Alexander Rössler

unread,
Sep 1, 2017, 11:23:43 AM9/1/17
to BeagleBoard
Thanks. The script created a BOOT partition when supplying the --enable-fat-partition command. However, for some reason, it created an ext4 partition called BOOT. When I plug in the BBB  to my computer via USB, it does not show up.

The FAT partition was very useful to supply host drivers and applications with the board.

Robert Nelson

unread,
Sep 1, 2017, 11:28:20 AM9/1/17
to Beagle Board
On Fri, Sep 1, 2017 at 10:23 AM, Alexander Rössler
<mail.ar...@gmail.com> wrote:
> Thanks. The script created a BOOT partition when supplying the
> --enable-fat-partition command. However, for some reason, it created an ext4
> partition called BOOT. When I plug in the BBB to my computer via USB, it
> does not show up.
>
> The FAT partition was very useful to supply host drivers and applications
> with the board.

Passing the "/dev/mmcblkXp1" node has to be fixed here, when
"has_img_file" is not enabled. (it should only be done when there is 2
partitions)

https://github.com/RobertCNelson/boot-scripts/blob/master/boot/am335x_evm.sh#L514-L534

Robert Nelson

unread,
Sep 1, 2017, 11:30:21 AM9/1/17
to Beagle Board, Alexander Rössler
correction, it's implemented here:

https://github.com/RobertCNelson/boot-scripts/blob/master/boot/am335x_evm.sh#L466-L481

what does:

journalctl | grep am335x_evm

show in on bootup..

Alexander Rössler

unread,
Sep 1, 2017, 11:57:08 AM9/1/17
to BeagleBoard, mail.ar...@gmail.com
Okay, retried with the --img-4gb command.

sudo ./setup_sdcard.sh --dtb beaglebone --enable-fat-partition --enable-cape-universal --enable-uboot-cape-overlays --boot_label SandyBox --enable-systemd --hostname sandybox --img-4gb test.img

Interestingly it still creates a ext4 partition

Journalcmd output

debian@sandybox:~$ journalctl | grep am335x_evm
Sep 01 15:47:24 sandybox sh[641]: generic-board-startup: [startup script=/opt/scripts/boot/am335x_evm.sh]
Sep 01 15:47:24 sandybox sh[641]: am335x_evm: usb_image_file=[/var/local/usb_mass_storage.img]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: uncached cpsw_2_mac: [78:A5:04:CC:90:EF]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_0_mac: [78:A5:04:CC:90:EE]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_1_mac: [78:A5:04:CC:90:F0]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_2_mac: [78:A5:04:CC:90:EF]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_3_mac: [78:A5:04:CC:90:F1]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_4_mac: [78:A5:04:CC:90:F2]
Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_5_mac: [78:A5:04:CC:90:F3]
Sep 01 15:47:26 sandybox sh[641]: am335x_evm: use_libcomposite
Sep 01 15:47:26 sandybox sh[641]: am335x_evm: modprobe libcomposite
Sep 01 15:47:26 sandybox sh[641]: am335x_evm: Creating g_multi
Sep 01 15:47:26 sandybox sh[641]: am335x_evm: g_multi Created
Sep 01 15:47:26 sandybox sh[641]: am335x_evm: Starting usb0 network
Sep 01 15:47:27 sandybox sh[641]: am335x_evm: Starting usb1 network
Sep 01 15:47:28 sandybox sh[641]: am335x_evm: dnsmasq: setting up for usb0/usb1
Sep 01 15:47:31 sandybox sh[641]: am335x_evm: Starting serial...@ttyGS0.service

 debian@sandybox:~$ sudo ls /var/local/

Robert Nelson

unread,
Sep 1, 2017, 12:01:09 PM9/1/17
to Beagle Board, Alexander Rössler
On Fri, Sep 1, 2017 at 10:57 AM, Alexander Rössler
<mail.ar...@gmail.com> wrote:
> Okay, retried with the --img-4gb command.
>
>> sudo ./setup_sdcard.sh --dtb beaglebone --enable-fat-partition
>> --enable-cape-universal --enable-uboot-cape-overlays --boot_label SandyBox
>> --enable-systemd --hostname sandybox --img-4gb test.img
>
>
> Interestingly it still creates a ext4 partition
>
> Journalcmd output
>
>> debian@sandybox:~$ journalctl | grep am335x_evm
>> Sep 01 15:47:24 sandybox sh[641]: generic-board-startup: [startup
>> script=/opt/scripts/boot/am335x_evm.sh]
>> Sep 01 15:47:24 sandybox sh[641]: am335x_evm:
>> usb_image_file=[/var/local/usb_mass_storage.img]

It's detecting the *.img file, so you'll need to remove that..

sudo rm /var/local/usb_mass_storage.img || true

>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: uncached cpsw_2_mac:
>> [78:A5:04:CC:90:EF]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_0_mac:
>> [78:A5:04:CC:90:EE]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_1_mac:
>> [78:A5:04:CC:90:F0]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_2_mac:
>> [78:A5:04:CC:90:EF]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_3_mac:
>> [78:A5:04:CC:90:F1]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_4_mac:
>> [78:A5:04:CC:90:F2]
>> Sep 01 15:47:25 sandybox sh[641]: am335x_evm: cpsw_5_mac:
>> [78:A5:04:CC:90:F3]
>> Sep 01 15:47:26 sandybox sh[641]: am335x_evm: use_libcomposite
>> Sep 01 15:47:26 sandybox sh[641]: am335x_evm: modprobe libcomposite
>> Sep 01 15:47:26 sandybox sh[641]: am335x_evm: Creating g_multi
>> Sep 01 15:47:26 sandybox sh[641]: am335x_evm: g_multi Created
>> Sep 01 15:47:26 sandybox sh[641]: am335x_evm: Starting usb0 network
>> Sep 01 15:47:27 sandybox sh[641]: am335x_evm: Starting usb1 network
>> Sep 01 15:47:28 sandybox sh[641]: am335x_evm: dnsmasq: setting up for
>> usb0/usb1
>> Sep 01 15:47:31 sandybox sh[641]: am335x_evm: Starting
>> serial...@ttyGS0.service
>

Alexander Rössler

unread,
Sep 4, 2017, 2:56:08 AM9/4/17
to BeagleBoard, mail.ar...@gmail.com
I made some modifications to the setup_sdcard.sh and now it creates the flash drive.

The image file does not exist:
debian@sandybox:~$ sudo rm /var/local/usb_mass_storage.img || true  
rm: cannot remove '/var/local/usb_mass_storage.img': No such file or directory
 
Btw. I do not want to boot from the FAT partition. How does the usb_mass_storage.img solution work?

Alexander Rössler

unread,
Sep 13, 2017, 5:48:44 AM9/13/17
to BeagleBoard
Here is how I finally achieved what I wanted:

Code hier eingeben...
sudo apt install doc-beaglebone-getting-started
sudo cp /var/cache/doc-beaglebone-getting-started/beaglebone-getting-started-2017-05-25.img /var/local/bb_usb_mass_storage.img2
sudo apt remove doc-beaglebone-getting-started
sudo rm -rf /var/cache/doc-beaglebone-getting-started/
sudo mv /var/local/bb_usb_mass_storage.img2 /var/local/bb_usb_mass_storage.img

Change usb_ms_ro=0 in /opt/scripts/boot/am335x_evm.sh

Resizing was a little bit tricky but possible using gparted and the loop driver on my host system:


sudo modprobe loop
sudo losetup -f
sudo losetup /dev/loop0 /var/local/bb_usb_mass_storage.img
sudo sh -c "dd if=/dev/zero bs=1M count=500 >> /var/local/bb_usb_mass_storage.img"
sudo gparted /dev/loop0
sudo losetup -d /dev/loop0
Reply all
Reply to author
Forward
0 new messages