Maintaining a BMW G 650 Xchallenge with ChromeOS

I own a 2007 BMW G 650 Xchallenge. This motorcycle was short-lived and not particularly common. Keeping it running these days requires knowing how to repair it.

BMW G 650 Xchallenge motorcycle idles on the side of an off-road motorcycle trail at at Metcalf Motorcycle County Park, Santa Clara County, California
Riding the Xchallenge at Metcalf Motorcycle County Park

For BMW motorcycles of this era, the best available repair manual is a Windows program called RepROM which displays repair procedures and allows for searching the manual.

RepROM user interface for the G 650 Xchallenge displaying the main menu and a list of construction groups for repair

My model’s RepROM is a circa 2006 program which runs on Windows XP. For many years I kept around an old HP Compaq nc6220 laptop just for the purpose of running RepROM.1

A few months ago, I created a dedicated garage workstation to make it easier to look up repair information for my motorcycles and other things around the house. The computer is a Dell Optiplex 9020, picked up from the Silicon Valley Electronics Flea Market after its retirement from a cafeteria at Stanford University.

Computer in my garage displaying neofetch under Haiku OS
While the computer is a Dell, the monitor is a 23” Apple Cinema HD Display A1082 found for $50 on Craigslist. Photo from when I experimented with Haiku on a similar Optiplex.

After trying Haiku for a while, I found ChromeOS Flex makes for a very fast and drama-free Linux workstation for looking up things online. ChromeOS supports PWAs, 1Password, and even Linux apps like Beeper.

Today I figured out how I can run my old version of RepROM on ChromeOS so I can easily look up repair guides without hauling out the Windows XP laptop. If you want to do the same, read on.

Screenshot of RepROM user interface and search tool running under modern ChromeOS Flex

First, install the Linux development environment for ChromeOS.

Next, install Wine in the Linux environment. You can use these commands to install Wine:

# From https://github.com/cknermann/WINE-on-ChromeOS
sudo dpkg --add-architecture i386

# Prepare temp directory
sudo mkdir /root/.gnupg
sudo chmod 700 /root/.gnupg

# Import repository keys
wget -O- https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor | sudo tee /usr/share/keyrings/winehq.gpg

# Add repository
printf "deb [signed-by=/usr/share/keyrings/winehq.gpg] https://dl.winehq.org/wine-builds/debian/ bullseye main" | sudo tee -a /etc/apt/sources.list

# Update, install and configure
sudo apt update
sudo apt install --yes --install-recommends winehq-stable

Before starting anything else, be sure to specify a 32-bit Wine configuration. RepROM needs old versions of Internet Explorer to render the XML repair documents which requires 32-bit Wine.

WINEARCH=win32 winecfg

You will need msxml3 and ie6 DLLs to properly run RepROM of this vintage. If you do not, Wine will helpfully try to download HTML support using modern Gecko; however, Gecko cannot parse RepROM’s Microsoft-specific XML documents.

You can easily install these DLLs with Winetricks. While the installation is easy, watching IE 6 download and extract on ChromeOS in 2023 is a bit unsettling.

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo apt install cabextract # Required for next step
./winetricks dlls ie6
./winetricks dlls msxml3

Next, place the RepROM files into a directory in the Linux files section of the ChromeOS Files app.

You can now run RepROM.

cd RepROM
wine RepROM.exe

RepROM can be placed as a menu item in the ChromeOS Launcher to make it easier to start. For this, you will need Menulibre.

sudo apt install menulibre

In the Menulibre GUI, select Add Launcher and use the following values:

Commandwine RepROM.exe
Working directorySelect the directory which contains RepROM.exe
Screenshot of Menulibre with the required values for launching RepROM shown earlier in this blog post

Close Menulibre and you should find RepROM in the ChromeOS Launcher.

ChromeOS Launcher showing RepROM in the Linux apps folder

Happy wrenching.

Screenshot of the RepROM user interface running on ChromeOS displaying a procedure for oil change with filter
  1. A bit of Yahoo Alumni trivia: This HP Compaq nc6220 was gifted to me during an employee lottery giveaway of surplus laptops and servers. I entered the laptop lottery and got this around 2009 during what I believe was the last time Yahoo ever did these giveaways. I brought it back to Yahoo Sunnyvale to run the vinyl cutter in the Makerspace until 2020. ↩︎