TUTORIAL: How to update your GPS maps using a Win10 guest in VirtualBox

Write tutorials for Linux Mint here
More tutorials on https://github.com/orgs/linuxmint/discu ... /tutorials and (archive) on https://community.linuxmint.com/tutorial
Forum rules
Don't add support questions to tutorials; start your own topic in the appropriate sub-forum instead. Before you post read forum rules
Post Reply
Moonstone Man
Level 16
Level 16
Posts: 6054
Joined: Mon Aug 27, 2012 10:17 pm

TUTORIAL: How to update your GPS maps using a Win10 guest in VirtualBox

Post by Moonstone Man »

Many of us don't have the luxury of open source maps or are not prepared to risk wrecking our beloved and often expensive GPS by clobbering the firmware for the sake of freebies. In this simple tutorial I will show you how to connect your GPS to a VirtualBox guest running Windows 10 so that you can update its maps.

My GPS is a NavMan MY670MLT so my first task is to download the Windows-only software to update the maps. My next task is to find a suitable USB cable to connect the NavMan to my Linux host. With both of those tasks done, the fun begins. You can skip any of the instructions that you've done previously.

Install VirtualBox, making sure that you also install the extension pack, then install Windows 10, followed by the guest additions. Test to your satisfaction, not forgetting to install your GPS software. When done, shut down the guest. Don't plug your GPS in just yet; this is important because we need to correctly identify the device in Linux before we do anything beyond setting up VirtualBox to be ready for USB passthrough.

On the Linux host, make sure you are a member of the vboxusers group:

groups $USER

Code: Select all

boot@akhenaten:~$ groups $USER
boot : boot adm cdrom sudo dip plugdev lpadmin sambashare
If you aren't a member of the group, enter this command then repeat the previous command:

sudo gpasswd -a $USER vboxusers

Code: Select all

boot@akhenaten:~$ groups $USER
boot : boot adm cdrom sudo dip plugdev lpadmin sambashare vboxusers
While still in the terminal:

lsusb

The list will look like this, sans your GPS:

Code: Select all

boot@akhenaten:~$ lsusb
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 0c45:7403 Microdia Foot Switch
Bus 003 Device 009: ID 1b1c:1b89 Corsair 
Bus 003 Device 008: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 002: ID 8087:0029 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0b0e:0305 GN Netcom 
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 048d:8297 Integrated Technology Express, Inc. ITE Device(8595)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Now, plug in your GPS and wait a few seconds. I'm using a USB 3.0 port, and I suggest you do too. My GPS was late for the party and I had to wait around 20 to 40 seconds before the lsusb output changed, and it's the change that we need to see:

Code: Select all

Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 006: ID 0c45:7403 Microdia Foot Switch
Bus 003 Device 009: ID 1b1c:1b89 Corsair Mio USB Sync
Bus 003 Device 008: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 007: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 003 Device 004: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 003 Device 002: ID 8087:0029 Intel Corp. 
Bus 003 Device 019: ID 3340:ffff Yakumo Mio USB Sync
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 0b0e:0305 GN Netcom 
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 048d:8297 Integrated Technology Express, Inc. ITE Device(8595)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Looking through the lists and comparing them, I can see that one device has changed how it is reported by the kernel, and I can also see that a new device has been added:

Code: Select all

Bus 003 Device 019: ID 3340:ffff Yakumo Mio USB Sync
So, now I have the clues I need to add the correct device in VirtualBox.

Start the VirtualBox Manager if it isn't already running.

Select settings for the VM that contains your Windows 10 guest.

Click the USB item in the left panel, making sure that USB 3.0 (xHCI) Controller is selected.

On the right-hand side of the USB settings is a little blue USB plug with a green plus symbol. Click it. A list of devices that you can pass through to the guest is shown. Now, it got a little tricky here for me. Above, the Linux kernel reports the new device as 3340:ffff Yakumo Mio USB Sync, and as you can see in the image below, there is no Yakumo Mio USB Sync device, but there is a Mitac Mio USB Sync device. Mousing over the items will reveal some metadata about the device, and as you can see in the image, the Mitac Mio USB Sync has a vendor ID of 3340, and a Product ID of FFFF. We have a match. Simply click the matching device and you're done.

Screenshot_20210307_193007.jpg


Start your guest VM and run your GPS software. It should detect your GPS and allow you to update your maps. Again, it may take 20 to 40 seconds or more for the device to become active. Update your maps and drive safely.


Screenshot_20210307_194557.jpg

Screenshot_20210307_215335.jpg
Last edited by Moonstone Man on Sun Mar 07, 2021 6:39 pm, edited 2 times in total.
ajgreeny
Level 7
Level 7
Posts: 1662
Joined: Mon Nov 19, 2007 3:27 pm

Re: TUTORIAL: How to update your GPS maps using a Win10 guest in VirtualBox

Post by ajgreeny »

Interestingly, I used to update my TomTom Start25 SatNav device using the update application for that on a VM of Windows XP orignally, then Windows 7, and finally Windows 10.

I found it very easy to attach the USB device to the VM by attaching it, using the USB menu in the VM but apart from keyboard and mouse there was noting else attached by USB so it was very obvious; it was listed as tomtom and a device string.
I have now given up using that SatNav and use one or other of two free GPS navigation apps on my Android phone which use openstreetmaps rather than paid for updates; it means maps are much more recent, and free to update as soon as they are released, usually monthly.
I have used the second one in many countries in the days when foreign travel was possible at no cost, as openstreetmaps seems to have maps available for just about every country I have visited.
I use either
Waze
https://play.google.com/store/apps/deta ... n_GB&gl=US
This needs a data connection for best use though can be used offline if you setup the journey before travelling using wifi
or
Mapfactor Navigator
https://play.google.com/store/apps/deta ... .navigator
This is an offline app but I think as good as or better than my TomTom as it is always using more up to date maps.
Post Reply

Return to “Tutorials”