Yet another blog (hopefully a useful one though)
MeeGo
A look back at MeeGo Conference, Dublin 2010
Dec 20th
MS Internet MD Martin Saunders attended this year’s MeeGo conference in Dublin, along with Senior Developer Tom Clayson. The conference took place in the city’s newly redeveloped Aviva Stadium, and brought together digital experts from across the world. We asked Tom Clayson to tell us more about this exciting event:
What is MeeGo?
Meego is a new Linux operating system for digital devices. The newly developed software is the result of collaboration between Nokia and Intel merging their Maemo and Moblin platforms. An easy way to explain the operating system is to say that MeeGo is to mobiles what Windows is to computers.
Can MeeGo only be used on mobile devices?
No, the really clever thing about the software is that much of its core functionality is shared between different applications, which means that you can use the same software on different devices such as on smart TVs and in-car infotainment systems.
What devices can use MeeGo?
Meego will be available on smart phones, netbooks, tablets, media-phones, connected TV’s and in-vehicle infotainment systems.
What does this mean for the future of digital devices?
MeeGo will allow users to switch between different digital devices made by different manufacturers. So you can go from using an app on a Nokia phone, to an in-vehicle infotainment system made by another manufacturer.
Why choose MeeGo?
MeeGo is the first operating system to target multiple platforms right from the start, which will give it the edge over other software development. The great thing about MeeGo is that it’s an open source project which encourages community contributions. Often this is the best way to ensure that an operating system continues to innovate.
Will MS Internet be using MeeGo?
MS Internet plan to be one of the first agencies to develop apps specifically for the MeeGo platform. We plan to produce apps that will be compatible with mobile devices, netbooks, TV’s, in-vehicle infotainment systems and more in the very near future.
How to (properly) install the MeeGo SDK and Emulator in Ubuntu and Debian Linux
Nov 14th
If you have any trouble, or need any more info then get in contact on twitter: @tclayson or @msinternet and we’ll do what we can to help you.
For the moment the MeeGo wiki and the documentation are surprisingly difficult to navigate and there is a lot of wrong and outdated information on there. Things are changing so fast I’m sure even this will be outdated very soon, but for the time being here is the information you need to get MeeGo SDK and emulator running on Ubuntu and Debian Linux.
Some things you need to know before continuing. At the time of writing the SDK does NOT work on Ubuntu 10.10 or on 64bit systems. Obviously this will change, probably very quickly, but as of today its not the case.
The first thing to do is to enable “virtualisation”. This can be done in your BIOS. I have a Dell Studio laptop and on starting I had to press F2 to enter BIOS. Then navigate down to “POST Behavior”. Expand this by pressing enter. Again navigate down this sublist to “Virtualization”. Press enter, right (to make sure “Enabled” is chosen) and then ESC and remember to save and exit. Other BIOSs might be different.
This allows the QEMU emulator to run the MeeGo Emulator in your Ubuntu installation.
Once Ubuntu or Debian have loaded, the next step is to start downloading the MeeGo SDK. To do this you need to add a repo to your list of sources. Log in to terminal as root user by typing:
$ sudo -i
Now you need to add a line to your sources.list file. So:
# gedit /etc/apt/sources.list
Now add this line at the very end:
deb http://repo.meego.com/MeeGo/sdk/host/repos/${distribution}/${version}/ /
Where ${distribution}/${version} is “debian/5.0″, “ubuntu/09.10″ or “ubuntu/10.04″ depending on what Linux you are using. Save and exit back to terminal.
Now you need to add the “public repo key”. All this does is allow you access to the repo you just added above. So in terminal again write:
# gpg –keyserver pgpkeys.mit.edu –recv 0BC7BEC479FC1F8A# gpg –export –armor 0BC7BEC479FC1F8A | sudo apt-key add -
That will do the trick. The last step of this section is to run an update on apt. This will download the packages needed to get madde (the MeeGo SDK managing program) to install. So just type in:
# apt-get update
There are several points in this tutorial where a lot of information will be downloaded. I think it works out to about 2gig altogether, so it might take quite a long time to download. When you think its finished type:# apt-cache policy maddeThis should print the details of the madde package. If it doesn’t, or if it throws an error message then you’ve done something wrong and you’d best just start again.Now you need to install the MeeGo SDK. This downloads a lot of data again and will probably take quite a while to do. (You should still be in root here. If you are then the character before you start typing should be a # and not a $. If you are not in root then you will need to type sudo -i again and put in your password).
# apt-get install meego-sdk
Once that finishes you need to create your targets. This is one of the bits that I find the most complicated on the wiki page. If you followed the last instruction you will have downloaded both the arm and the ia32 targets ready for creating. This means that there are a total of THREE targets to install. You can check this by running sudo mad-admin list. You will see in that list: meego-core-arm7l-1.1, meego-handset-ia32-1.1 and meego-notebook-ia32-1.1; These are the targets you will need to create. Now this process takes a very long time too. Each target is a few hundred mbs large and (unfortunately) you have to download them one at a time, so if you were thinking of going for the “leave it overnight” solution this will take you three nights to complete. So to create each of the targets you need to run these three lines:This creates the first target:
# mad-admin create -f meego-core-arm7l-1.1
This creates the second one:
# mad-admin create -f meego-handset-ia32-1.1
And then the third and final one:
# mad-admin create -f meego-notebook-ia32-1.1
At that point, if you are trying to install this on a 64 bit system it will fall over. You can test to see if its worked. The first thing is that it took ages to download. This is always a good indicator that it worked. The second is to try and build against a target. Lets choose the meego-handset-ia32-1.1 target:
# mad -t <target> pscreate -t qt-simple qthello
# cd qthello
# mad -t <target> qmake
# mad -t <target> make
# file build/qmake
You should get an output like this when you run the last line:
build/qthello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.25, not stripped
If you get something drastically different then there is a problem. However if you have followed these instructions you shouldn’t have a problem at all.
Now we are going to add the targets to QT Creator. Go Applications -> Programming -> QT Creator (in my Ubuntu this didn’t appear straight away and I had to go into the Menu Manager in the System -> Preferences menu and uncheck & recheck “QT Creator” from the Programming menu).
You need to now select Tools -> Options -> QT 4 -> QT Versions (tab) and press the + button on the right hand side to create a new target. The name doesn’t matter and the QMake location is usr/lib/madde/linux-i686/targets/<target>/bin/qmake. You need to do this for each of the three targets above, substituting in the correct target each time. So here are my names and targets for you. Each time you enter a new one click on rebuild before you press apply and move onto the next one. There is a little red X next to the label Debugging Helper which will go green when you’ve done this.
If you just copy those into your version of QT Creator then this will work.
You can now build against these targets (as you will see later on after we’ve installed the simulator). But for now lets get on with installing the simulator.
Ok open Terminal again. This time you want to log in as root again. Thats
$ sudo -i
and put in your password.
Now we’re going to install the MeeGo simulator images. You can see these by typing mad-admin list in the command line. Right at the bottom of the list you should see:
meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime (installable)
meego-netbook-ia32-qemu-1.1.20101031.2037-sda-runtime (installable)
These are the images we need to install to use within QEMU emulator. So lets install them:
# mad-admin create -f -e meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime
# mad-admin create -f -e meego-netbook-ia32-qemu-1.1.20101031.22037-sda-runtime
That will have created the images for you. Now you can make sure they have been installed by running mad-admin list again from the command line and the (installable) after the two simulator images we just installed should have changed to (installed).
You can start the handset runtime image by running this command from the Terminal:
# mad remote -r meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime poweron
Or to open the netbook runtime image just substitute meego-handset-ia32-qemu-1.1.20101031.2201-sda-runtime for meego-netbook-ia32-qemu-1.1.20101031.22037-sda-runtime.
Last stretch now, I promise! All you need to do is allow QT Creator to access this emulator. Open QT Creator and go to Tools -> Options -> Projects -> MeeGo Device Configurations (tab).
In the dialog box, create a new Device Configuration by clicking on Add, give the new Device Configuration a name in the Configuration Name text field (I called mine MeeGo Emulator), and add the following settings in the other test fields:
- Device type: choose MeeGo emulator
- Authentication type: Password
- Host name: 127.0.0.1
- Ports, SSH: 6666
- Note that the emulator is setup with a redirect from port 6666 on localhost to the SSH port (22) of the emulated device.
- Ports, Gdb Server: 13219 (the default)
- Note: If this port is not free, you can select another one.
- Connection Timeout: 30
- User Name: root
- Password: meego
Click Apply. You can test these settings by choosing the device you just created from the drop down menu and clicking Test to the right. If successful, you’ll see a dialog box with the message “Device configuration successful”. If the message “Could not connect to host” is displayed, check your setting selections and make sure that the network is connected.
Now you should be able to run the emulator from QT. To do this start a new QT Project. It needs to be a Mobile QT Application and it needs to build against all the MeeGo targets. All the other options just leave at default for now. They don’t matter for us. You should notice (as long as the correct project is selected) that there is now a small device-style icon above the hammer icon in the bottom left of the screen. This has a small green circle on it which looks like a smaller “build” icon. Clicking this should open the emulator for you. This is what you will get:


