Mer/Documentation/SmartQ Installation for the Windows user

(Shopping List)
Line 209: Line 209:

Revision as of 15:12, 11 February 2010



This page is aimed at people who want to get set up with Mer, but don't necessarily want go around re-flashing firmware and lose the in-built Operating System on the SmartQ.

There are other how-tos on this site for the more experienced user, so this page is aimed at users who may know some stuff about Linux and/or windows, but have never done any embedded-linux stuff and/or really mucked about with memory block devices and so on.

Disclaimer: This may not be the easiest way, but I've used it a couple of times to get Mer set up and booting from the SD card. It really helps to know a bit of linux, or at least know a little about DOS, disks and partitions. Also, having a VMWare linux machine really helps to dig you out of a hole in case you muck up your SD card. :-)

OK, that's the start over, time to get setting up....

What's going to happen?

We're going to set up a 'virtual machine', which will allow us to do all this safely away from Windows. The way the smartq boots is this:-

  • If a particular button is pressed, when the machine is switched on, then the SmartQ will choose to boot from the SD card. It does so by looking at the end of the card (at a particular location) for a 'bootloader'. this bootloader is a small program which hunts for a valid Linux installation on the card, and then starts booting that. So, we have to get this little chain of programs set up just right.

Shopping List

* A SmartQ 5 / 7
* 1 PC running Windows
* A vague knowledge of Linux or DOS and file systems.
** at least 1 Gig RAM (prefer 2)
** at least 5 Gigs of free Disk Space (prefer much more)
** An SD card reader.
** An SD / SDHC Card with at least 6 gigs of space
* About an hour to an hour and a half.

Getting Started


Firstly, get the PC switched on. Ah, I see you've already done that. Good thinking. Use "My Computer" to locate a drive with 5 or more gigs of space on it. Keep a note of that drive. If you can, create a folder on the root of that drive called something like "Virtual Machines".


Right, step 2, download VMWare from []. It's free, but you need to put in some name / country information. You'll have to reboot your PC a few times, but you should be used to that as a Windows owner ;-)


Now, download a ready-to-go Ubuntu "Virtual Appliance". This is a fancy word for a honking-big file which is a snapshot of a Linux PC. Once VMWare is installed, there should be a link on the first window which says 'Download' or 'Get'.

  • Click it, and search for an "Ubuntu 9.04 Desktop with VMWare Tools". You'll get a few hits. One will be by "Chrysaor". That's what I use, and it's fine.
    • Alternatively, and more easily, go to [Chrysaor's Place] and grab one from here directly. Unzip it once it's downloaded. Inside the zip file will be an info.txt with the login credentials.
  • Download it somewhere on your PC with lots of space, preferrably the location you found earlier, in a subfolder called ´Virtual Machines´ and not your desktop. Once it's downloaded it'll create 5 to 10 more files in the same place, so it ´is´ best to stick it in a subdirectory.
  • Once it's downloaded, go back to VMWare and click 'Open', then surf over to the 'vmx' file you just downloaded, and sit back and enjoy the ubuntu loading screen.

´´´ŃOTE´´´ We are NOT going to harm windows. VMWare contains the Linux in a safe harness and does not change or break windows in any way.

  • Once you're into Ubuntu, click on the "Devices v" button at the top, and look for your SD/SDHC card reader. Mine says "Alcor Micro Mass Storage Device". Select it, and click "Connect". Then do it again and select "Show icon in status bar". This'll make it easier to see what's happening.

Using VMWare/Ubuntu to configure the SD card

Installing Mer on the SD Card

Click the Applications>Accessories>Terminal menu inside ubuntu and open up a command prompt. Insert the SD card into your PC's SD reader, and check the little drive icon on the VMWare status bar.. it should flicker in time with the LED on your card reader...

OK, so firstly, we need to get the stuff you're going to install on the SD card. So, click the little Firefox logo at the top of the screen to get a browser.

Important: Before you download anything, it's important that we set the download folder. By default it'll be your desktop, let's change it to your 'home' folder... It'll be less typing.

  • Click Edit, then Preferences, then the Browse button next to Save Files To.
  • In the dialog which appears you'll see three buttons at the top '<','<your username>' and 'Desktop'.
  • Click the < button, and a button will appear with 'home' in it.
  • Click the Home button. In the window you'll see your username now as a folder.
  • Highlight the folder with your username (it may be just 'user', depending on which Ubuntu VM you grabbed).
  • Click open. When you return to the previous screen, the 'save files to' option should now say something like /home/user.
  • Click close.

OK, now we know precisely where Moz will save your downloads, it's time to get those files.

Downloading everything

  • Go to [The releases page] and grab the current stable release for your device. You want the ROOTFS version of the file, NOT the Firmware version. This will go onto the SD card to make Mer.
  • Go to [ZenVoid's Blog] and grab the and qi-smartq-20090612.bin files. These will make the SD card bootable.
  • [Optional] If you're using 0.15testing5, you're also going to need the Marvell Wifi Drivers, so head to [] to get the driver.

All of this should have downloaded to your 'home' folder, or to your desktop. So, at this point we need to go to a prompt and get Mer installed.

So, click Applications>Accessories>Terminal. This will dump you at a command prompt. some useful commands are ls -l cd and sudo. You'll be seeing a lot of these.

Setting up the SD Card

So, firstly, the SD card will have been automounted, probably. Linux assigns a 'device name' to all its disks, and until you're familiar with the system, sometimes it takes a moment to locate a new drive... A quick way to find out the device name (if the drive was auto-mounted), is to run df to see the free space on all mounted disks. One disk should be mounted under /media/disk. Take a note of the disk's name, it should be /dev/sdb1 or /dev/sdc1. the important part is the "sdb" or "sdc". From now on, I'll assume it's /dev/sdb1. If you didn't see one, then you may need to ensure you've added the right drive to VMWare in the steps above.

  • type sudo umount /dev/sdb1 . This will unmount the sd card ready for formatting
  • type sudo fdisk /dev/sdb. this will open the disk for partitioning.
  • in fdisk, type p to print the partition list, there should be one 'sdb1' of type 'FAT32'. This is the current card contents.
  • Press d and hit return. This will delete the partiion. If you are asked for a partition number, enter '1'. If there are more than one partition, repeat until running p shows no partitions left.
  • Press n and hit return to create a new partition.
    • Press p and hit return to crate a primary partition
    • Press 1 and hit return to create it as partition one.
    • Press return to choose block 1 to start the partition
    • Do some mental maths and work out the end block by dividing the size of the disk by the total number of blocks. So if fdisk says your 16Gig card has '1900' blocks, then that's ~8Megs per block, so it's safe to end the partition at the last-block-but-one. (Remember we're leaving at least 1 Mb for the bootloader) (If you want to add a swap partition, then choose a lower number, then repeat the partition-creation step, always remembering to leave at least 1Mb spare at the end of the card (high number).
  • Press a and return to make a partition active, and choose partition 1.
    • If you created a swap partition, press t and choose partition 2, and make it type 82, Linux Swap.
    • Press w and hit return to write the partition table (saving your work).
    • Press q and hit return to exit.

Right, that's the SD card partitioned up nicely. Time to format the partition and put Mer on there. It's likely that Ubuntu in it's ever-friendly way will attempt to re-mount the partition again. So, run sudo umount /dev/sdb1.

    • Type sudo mkfs.ext3 /dev/sdb1 to format the partition ready for Mer. this will take a while, depending on the size / speed of your card.

Install the bootloader

OK, now it's time to install the Bootloader which will allow you to boot to Mer.

  • Type cd and press return to go to your home folder this is where you chose to download all your files to in Mozilla.
  • Type ls -l to list all your files. If you can't see them, go into Mozilla and work out where your files ended up. Repeat the steps above to ensure that files are downloaded to your /home/<user> folder (e.g. /home/nick)
  • Type sudo chmod a+rx - This will make the installer script 'runnable'.
  • Type sudo ./ /dev/sdb qi-smartq-20090612.bin - This will install the boot loader onto the SD card for you.

Install Mer

Ok, now it's time to install mer on the SD card. So we need to 'mount' the card, and move some files about. The easiest way to do this is unplug the sd card, and re-plug it, and let Ubuntu automount it. If you'd prefer to do it manually, here are some commands:-

  • Type sudo mkdir /media/disk
  • Type sudo mount /dev/sdb1 /media/disk

Once it's mounted, all you have to do is untar the rootfs... so assuming you have a SmartQ7, you downloaded the file mer-armel-smartq7-rootfs-v0.16testing5.tar.gz, or something similar, you should now type:-

  • Type cd (return) to go home, then ls -l (return) to list the files.
  • Type sudo mv *.tar.gz /media/disk . This will move the entire mer installation to the disk (so we can untar it easily).
  • Type cd /media/disk and press return. We will now be 'on' the disk
  • Type sudo tar xzvf *.gz and press return. This will now untar the entire 'rootfs' to the card. (Install Mer).

After a few moments, the scrolling text will finish. We're almost there!!!

Getting the bootloader to 'see' Mer

We're almost home and dry. Just a little housekeeping to do. The bootloader is pretty smart, but it needs the 'kernel file' to have a special name so that it can find it on boot.

  • Type cd /media/disk/boot
  • Type ls -l and note that there's a file called 'zImage' somthing. That's the kernel file. I'll assume it's 'zImage-smartq-200932'
  • Type sudo cp zImage-smartq-200932 linux-SMDK6410.bin

Getting the wifi working

The SmartQs need to have a set of drivers installed to make their wifi work. It's a fairly painless operation. You should already have downloaded the file... With the SD-card mounted in /media/disk, copy the driver file to the 'media' directory on the SD card. (i.e. /media/disk/media).

  • Type cd (and press return) to return home . Type ls -l (and press return). You should see the file in the listing now.
  • Type cp SD-8686*.zip /media/disk/media

I would give you these instructions by using the UI, but it requires root privileges to copy a lot of these files.. and it's easier to use sudo for that.

OK. The File should be in place. You'll find installation instructions elsewhere on this site for unpacking the zip. However, when you first start Mer, the kind developers have created installation scripts so when Mer first starts, it'll find this zip file and unpack it for you.

Right, we're pretty much ready to get this baby up and running.

Booting Into Mer

Bye bye PC, hello SmartQ

Unmount the card (right-click on the icon on the desktop and select unmount, or type the following. Ensure that you've closed all open windows which show the card's contents (Ubuntu may open a file browser if you chose to automount the card).

  • cd (return)
  • sudo umount /dev/sdb1

Pull the card out of your PC, and insert it into the Q5 / Q7 (upside down!). It will need to be pushed in quite far until it clicks home. Then:-

  • Q5
    • Hold down the "move"/fullscreen button, and switch on the device, either using the power button, or plugging in the power. The LED should flash green, and perhaps red for a moment.
  • Q7
    • Hold down the right-hand-most button on the top of the device (looks like a little target), and press the left-hand-most button (the power), or plug in the power supply. The LED should flash red, and perhaps green for a brief instant

.. After a moment, the screen should go white. You can let go of the button and enjoy Mer in all its glory.

Currently, to switch off a Q5/7, you have to press the 'reset' button on the bottom. S'why we formatted the disk with ext3, and not ext2 ;-)

NOTE: when you first start Mer, it's possible the on-screen keyboard may be 'missing' a few keys. They're where they should be on a normal keyboard. backspace is the gold key at top-right, return is the one below it, and shift is at the bottom. Once you learn the layout, typing gets rather quick.


Where to from here?

Using VMWare

Well, in the words of Ben Kenobi, youve taken your first step into a wiser world. You have a nice fresh Linux install to play with.

VMWare is very fault tolerant, so when you want to put Linux away, just close the window. When you want to resume, just open VMWare again, and Linux will auto-resume from where you left off.

It is very quick and quite safe. If the Linux gets completely broken, just delete the virtual machine, re-download it, and start again, without having to muck about with installation CDs.

Recreating the card

Well, now that you've had a play with installing Mer, you should be able to set the card up for other installations, like WinCE, etc. So, keep the VMWare console around.

Reading the card

Don't unplug the card when the SmartQ is switched on, it'll cause you pain. However, if you want to install stuff onto the card from the PC, you'll need your VMWare (or ext2fs tools for windows), to mount the card and copy files on/off.

Downloading applications

Mer is maturing all the time, and new Applications are being developed for it. Check the app manager from time to time to see if there's new apps on the internet.

Developing for Mer

The Mer team uses the "OBS" suite from OpenSuse, a remote-build-farm. You get a username / 'garage ID', download the OBS toolkit inside your Ubuntu Virtual machine, and start coding. the only difference is that you ask the OpenSuse build farm to build your app for you. Once it's built you can install it on a simulated MID (called Scratchbox), or you can install it on the MID itself.


Thanks to lbt, zenvoid, meizirkki for helping me understand what's going on, and of course the whole Mer team for this awesome product, which may just save a good MID from oblivion :). I hope this page proves useful, and allows more people to set up and play with Mer.