How to get the latest ubuntu image for Beaglebone Black (via MicroSD Card)?

Just down load the checksum file from here.

BBB download location

save it to the same location as the downloaded image file.

before uncompressing the image, on linux you can use the sha256sum command to check the file. I don’t know about Windows.

It is unlikely that it is corrupt, but you never know. It is more likely to be the sd card.

OK, I’ll try that this evening, and also a new SD card.
Is a 64GB card fine for the BBB?

BTW, what are the main differences between versions 10 and 11? Is it worth the effort?

EDIT: looking at your suggestion, I see that the size of the image file is only 775MB, which is very small compared to the ones I tried (more than 3GB). Is this normal?

Furthermore, I downloaded the image from here, but it says:

Media AM335x Xfce Snapshot
microSD Download am335x-debian-11.5-xfce-armhf-2022-11-01-4gb.img.xz 10
microSD sha256sum 7744b99569073a5c6282ec7627778161f2abe47f985500c5c40300ae8c2b8c97

The media is microSD, not eMMC. Maybe this is not the correct file?

That kind of depends what you are using the BBB for. You will get newer packages and a newer kernel on Debian 11.

However if it works and the latest software/security fixes are not an issue, then no, there is no real need to upgrade.

I edited my message.

There is no difference. To flash the eMMC you need to use an SD card.

I asked because here the images have 2 categories: microSD and eMMC

Media bbai64 Xfce Snapshot
microSD Download bbai64-debian-11.5-xfce-arm64-2022-11-01-10gb.img.xz 9
microSD sha256sum 0b1fb2a41cdfd73e038f1216566639c3c061d30a412062dfbd616aa0f79a1a17
eMMC Download bbai64-emmc-flasher-debian-11.5-xfce-arm64-2022-11-01-10gb.img.xz 4
eMMC sha256sum 6a2bd845683ff0fed4cf1c1f073de17d5798b5b146ee561bd8aa11c0d4863868

I thought that the eMMC version was used to permanently flash the eMMC, and the microSD to only boot from the SD card.

yup, the eMMC ones will flash the image from SD card to eMMC (hence the flasher in the filename), whereas the microSD version will not flash the eMMC and will run from the sd card.

I found here a thread explaining (as far as I can understand) that there is now only one version (the microSD version) that can be flashed on the eMMC using:

sudo enable-beagle-flasher
sudo reboot

So if I understand well, all I have to do is insert the SD card, connect via SSH, and type the above 2 lines and the eMMC will be flashed.

If the flasher is not installed, then:

sudo apt update
sudo apt install bb-beagle-flasher

sudo cp -v /etc/beagle-flasher/beaglebone-black-microsd-to-emmc /etc/default/beagle-flasher

Is my understanding correct?

Ok, I just download the image and flashed it to an SD card (16Gb) and it works fine on my BBB, well it boots. I have no display connected so can’t tell if the desktop is working correctly, but the image does boot.

On the page listing all the Debian 11 images, it does say this to convert the image to flash the eMMC…

eMMC Flasher

Copy board specific configuration files, example:

sudo enable-beagle-flasher
sudo reboot

It seems it worked, I can see this:

debian@BeagleBone:~$ cat /etc/os-release
PRETTY_NAME=“Debian GNU/Linux 11 (bullseye)”
NAME=“Debian GNU/Linux”
VERSION=“11 (bullseye)”
SUPPORT_URL=“Debian -- User Support

Thanks for your help everyone!

When I boot with the SD card in, the BBB flashes the image again. How can I disable the flasher?

Take it out, boot, and then reformat it…


Yes, sorry, this one was obvious :slight_smile:
However, I have a problem : no more IP address or no more network access (the BBB is connected to my PC via USB)

debian@BeagleBone:~$ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 94:a9:a8:85:d8:37 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet netmask
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 2099 bytes 171673 (167.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2099 bytes 171673 (167.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet netmask broadcast
inet6 fe80::96a9:a8ff:fe85:d83a prefixlen 64 scopeid 0x20
ether 94:a9:a8:85:d8:3a txqueuelen 1000 (Ethernet)
RX packets 951 bytes 82992 (81.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 318 bytes 59062 (57.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

usb1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 94:a9:a8:85:d8:3c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

When I type in Chrome, I get this, instead of the usual welcome page.

What has gone wrong?

The classic Welcome page is an un-maintained nodejs mess, that is no longer pre-install or available in bullseye…

As you can see nginx is running and serving on port 80…

If you want to enable VScode or Node-Red run:

sudo systemctl enable --now bb-code-server


sudo systemctl enable --now nodered

Then either of those html links over will be active…


Thanks, but actually I’m not really worried about that.
My main concern for now is to retrieve the internet access. I use the board in various configurations:

  • connected via USB to my work Windows computer, which may be connected by Wifi at home of by wire at work. When I’m at work, the board is declared with a fixed IP.
  • connected with an ethernet cable to the internet and SSH’d to my computer
  • at home, I can also use another computer running Linux Ubuntu

And I really need the board to reach the Internet to install packages or for update. How can I get the correct configuration?

Enable Windows ICS, and share the connection…

Then run these magic commands:

Look at your dhcp server and find what address it was given…

with ‘iptables’ set it up like this…

or use nftables… (and help document how todo that…)

and then run…


Thanks for your answer.
I found the IP address of the BBB when it’s connected to the router.

But I do not understand the rest of your answer.

The first case is (most important one) : at home, work computer running Windows, connected to my router by Wifi, the BBB connected by ethernet wire to the router. I can’t SSH to the board.

What should I do, on what device?


As far as I know the USB IP address of the BBB is
If the USB is connected you can always SSH into the BBB using this address.

However, the BBB does not set a default route for the USB interface, so will not reach the internet via USB. Nor as far as I can see, does it set a DNS server by default when using USB only.

For USB internet access you will need to configure internet connection sharing on your windows computer to forward traffic, or if connected via linux, you will need to enable ipv4 forwarding and set up some iptable rules.

This is what Robert has explained.

The first set of magic commands releases the USB IP address ( by default), and then uses dhcp to set a new address, this should also set a default route and dns server, depending on your local dhcp server. This requires Windows ICS to be setup correctly to work and probably any AV and firewall software that you are using.

You will also need to be connected via the serial console to do this. If you try from an SSH connection, you will loose connection after the flush command.

If you put both commands on the same line separated by a semicolon, it would still kick you off, but should work as expected. You can then ssh back in to whatever IP address the BBB acquired by dhcp.

I would have thought you could just leave the IP address as the default ( and set the gateway as and configure a DNS server which is how it is done when connecting via Linux. However I don’t use Window and I don’t know how well ICS works. I know people have problems with it.

The second set of commands is to configure a Linux computer to forward traffic from the USB connection and setup some simple IPtable rules.

By far the easiest way to connect a BBB to the internet is to just use an ethernet cable.
Even when using ethernet, you can still ssh into the BBB using a USB cable, the default address should be

Thanks Benedict for the explanation.
Unfortunatley, my work computer is configured so that I cannot do ICS.

I’m at home with the work computer connected by Wifi. The BBB is connected to the router with an ethernet cable, and via USB to the work computer. I use the USB cable provided with the board (it used to work until I flashed the new version of Linux, and even yesterday evening shortly after flashing)

I can’t SSH. I use Putty, and tried, or the IP address of the BBB provided by the router. None of these work.