I have done a fairly extensive post about how to use BMAP properly so here is a link to my post. You should probably read this to know that the true benefits of speed from Bmap tools comes from following the instructions in my other blog. Otherwise, you might as well just use ‘dd’ or other flashing techniques. Bmap is indeed faster!
I tried with Etcher and had problems booting (not sure this was actually the cause) so now I’m trying with a tool recommended bmap-tools by someone in the Pinephone Telegram group. This tutorial includes instructions for getting set up and using this bmap tools tool.
This tutorial assumes you are running Ubuntu on your desktop/pc/laptop…
It’s a command line tool, it seems so yeah. No GUI. Hopefully my commands and instructions will remove the CLI mystique…
Apparently bmap-tools also automatically unzips/uncompresses your ubuntu-touch-pinephone.img.xz image as well, so you don’t have to do that step before.
- Get Ubuntu Touch image currently here
- Install to ubuntu:
sudo apt install bmap-tools
- Confirm the source of your
ubuntu-touch-pinephone.img.xzfile which you have on your computer from this instructional page your source and destination addresses. In my case it’s coming from my download directory and going to my SD card so my source location looks like this:
- Confirm the destination path of your SD card. This step is important because if you goof this you risk (probably) writing your image to the wrong drive and killing it. How I do this is
a) Hit the super key to the left of the space bar
b) Type ‘disks’ to open the Disks utility
c) Click my SD card on the left pane (graphically)
d) Take the path from the ‘Device’ path. In my case it looks like this “Device dev/mmcblk0p1” You can actually just highlight it and copy it from there
- path: /dev/mmcblk0
Important note on this last step: I had a lot of annoyances in the terminal related to ‘memory errors’ and it was because I had copied the entire item. In my case it looked like this: mmcblk0p1. Make sure that you do not have anything like ‘p1’ or ‘p2’ on the end of your destination path. These are for ‘partitions’ and is the incorrect path. should be just :
/dev/mmcblk0 – not something like this –> /dev/mmcblk0p1. If you run it with the latter you will get those memory errors like me.
Just to leave it as reference the errors caused by the mistake above look like this:
bmaptool: info: no bmap given, copy entire image to '/dev/mmcblk0' bmaptool: WARNING: failed to enable I/O optimization, expect suboptimal speed (reason: cannot switch to the 'noop' I/O scheduler: [Errno 22] Invalid argument) / bmaptool: info: synchronizing '/dev/mmcblk0' bmaptool: info: copying time: 17m 13.1s, copying speed 13.5 MiB/sec
- Run the command
Pre-cautionary step 1: remove all external drives before doing any of this.
Pre-cautionary step 2: Other tutorials I read did not explain that you should unmount your drive before beginning. So in your Nautilus just go through and ‘eject’ anything showing up as ‘ejectable’.
As a reference, this tutorial was helpful for tool usage but still not quite clear enough so I’ll go even slower…
EDIT 20/06/14 – Apparently this next bit of my advice is bad and slows down the process. Apparently you should just make sure you run the command in the same directory as the image, and then it will work faster and without the need for the –nobmap tag. I will leave this here as a reference just in case you need it but as of today it was advised to not follow it:
With bmaptool when you are doing straight flashing you can just add the
--nobmap tag to the command, which I think means ‘just do this thing without routing through other specific instruction file’. So that’s what I’m going to do.
I am still not 100% sure if this step is required, but it helped me so I’m leaving it as a reference: I also got some ‘no space left on device’ errors so I decided to first format the drive with Disk tools before trying again. I did this by opening the ‘Disks’ graphical utility again by clicking the SD card I wanted to format and then selecting ‘format disk’ from the top right hamburger menu. Takes about 2 seconds to wipe whatever is on there… after doing this step everything finally started working better. I created a linux ext4 partition next to see if that helped. I made the first partition with 21GB (for the image) and then a trailing 10GB for ‘whatever’. These were just choices I made thinking that I could maybe use the trailing 10GB for phone storage.
Here are, therefore, the steps, assuming you have done all of the above:
- Open the terminal
- Make sure you have navigated (with terminal commands) to the directory where your image is
- Type the following command replacing the source and path with whatever is correct from your device as per instructions above:
bmaptool -E copy /path/to/ubuntu-touch-pinephone.img.xz /path/to/SD/card
My example that finally worked looked like this for your reference:
sudo -E bmaptool copy ~/Downloads/ubuntu-touch-pinephone.img.xz /dev/mmcblk0
Apparently just inserting the SD card and turning the power on should do it, but yeah. Depends on a ‘few things’ as to whether this will be your experience 😉
This was actually harder than I thought. I’m not sure if this was the cause of my pain but I’m going to list it anyways. I had to do about 100 reboots and it still wasn’t working. I couldn’t seem to get past the ubuntu purple splash startup screen. I ‘think’ I had interrupted a process the first time so i did all of the above steps againb but this time I held down the power button until the green indicator light came on and then everything started as expected and I was able to start using Ubuntu Touch. Members of the community indicated it may be related to a faulty build and to try other build numbers to see if that helps. We shall see.
Issues flashing cards
I had an interesting issue where I couldn’t unmount a card. System said ‘not mounted’ when I tried umount command. Amazingly, just a reboot of computer allowed the ‘Disks’ utility to start working again as normal. Others were reporting that one should consider using gparted tools instead of Disks utility just as another related tip if you are interested.
I hope this helps and have a great day
Pinephone images for Ubuntu Touch here
How to telnet into the device here
My bmap tools tutorial here