This area is under construction - This page is for shared development purposes: I guarantee that nothing here works yet.
The in-vehicle segment of MeeGo needs development platforms which are more convenient and less expensive than an actual car console. While there are a number of attractive development board options available, as of this writing (July 21, 2011), hardfp GPU drivers needed to run MeeGo 1.2 are lacking for ARMv7 hardware. While there are some development boards available with x86 Atom processors, the ExoPC tablet that has been widely distributed in the MeeGo community offers an attractive alternative. Intel's Tablet UX release targeted the ExoPC, so software support for the device is superior to that for the raw-board options. While the ExoPC does not offer the automotive-relevant hardware extensions (e.g. CAN bus, internal GPS) that some of the development boards do, the functionality can be added via USB or bluetooth.
The installation can conveniently be bootstrapped by using a chroot method like that previously employed by N900 and Pandaboard MeeGo-porting efforts. The basic idea is to install two images, one a stable, software-complete image like Tablet UX 1.2 for Atom, and the image to be adapted to the hardware, like IVI UX 1.2. The developer boots the stable image into a text console, then uses chroot to switch to the second image's userland. Subsequently the applications of the second image can be invoked using its own libraries and settings, but on top of the first image's kernel and virtual filesystems.
Install the Tablet UX from the USB. On the ExoPC screen, wipe the "BBS" soft button back and forth during boot, and choose to boot from the USB device using the arrow keys on the attached keyboard. Also check out these detailed instructions from Intel.
In the installer's partition tool, choose "custom layout" and set the following partition table to preserve Windows but leave room for IVI:
Disk /dev/sda: 64.0 GB, 64023257088 bytes 255 heads, 63 sectors/track, 7783 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x3da06da4 Device Boot Start End Blocks Id System /dev/sda1 1 13 102400 7 HPFS/NTFS Partition 1 does not end on cylinder boundary. /dev/sda2 13 2563 20480000 7 HPFS/NTFS /dev/sda3 * 2563 2595 256001 83 Linux /dev/sda4 2595 7783 41677522+ 5 Extended /dev/sda5 2595 5077 19937281 83 Linux /dev/sda6 5077 7559 19938003 83 Linux /dev/sda7 7559 7783 1802237 82 Linux swap / Solaris
Here /dev/sda1 and /dev/sda2 belong to Windows pre-install, /dev/sda3 is /boot created by Tablet installer, /dev/sda5 isTablet UX and /dev/sda6 will be IVI UX. Note that the filesystems must be ext3. (Default btrfs does not work with partition resizing tool yet.)
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway. See "Known Problems" below.
parted /dev/sda p (prints partition table; see /dev/sda6 has boot flag) set 5 boot p (check that /dev/sda5 now has boot flag) q
Now booting from SSD (/dev/sda) should work again.
# extlinux.conf prompt 1 timeout 20 default vesamenu.c32 menu autoboot Starting Tablet #menu hidden menu resolution 1366 768 #menu background splash.jpg menu title Welcome to Tablet 22.214.171.124.0.20110517.1 menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color timeout_msg 0 #ffffffff #00000000 menu color timeout 0 #ffffffff #00000000 menu color cmdline 0 #ffffffff #00000000 label tablet menu label Tablet_126.96.36.199.0 (188.8.131.52-8.12-adaptation-pinetrail) kernel vmlinuz-184.108.40.206-8.12-adaptation-pinetrail # append ro root=/dev/sda5 quiet vga=current append ro root=/dev/sda5 vga=current menu default label ivi menu label IVI_1.2.0 (220.127.116.11-10.5-adaptation-intel-automotive) kernel chain.c32 append boot 6 label Other menu label Other kernel chain.c32 append boot 1
mkdir /IVI mount /dev/sda6 /IVI ls /IVI
IVI filesystem should appear. Verify that what you expect is there. For example, /etc/init.d for IVI has bluetooth-ivi and speech-dispatcherd, while /etc/init.d for Tablet does not.
openvt /bin/bash chvt 3
Now you should have a shell prompt in a new VT. Login at vt3 and chroot to IVI there:
chroot /IVI /bin/bash
Now "ls /et/init.d" will show what's in /IVI, not what's in Tablet's root partition. Change back to Tablet UX user filesystem just by switching virtual terminals.
Having the IVI text console is a first step, but the whole purpose of the exercise is to get its GUI up and running. To do so, there is some more housekeeping needed, as detailed in this File:ExoPC chroot setup.txt, which is modified from one at ARM/N900/Install/chroot. Nasa's instructions regarding graphics drivers at mp3car.com may also be helpful.
Note that the script must be run from a Tablet text console and that the Tablet UX's GUI must not be running. In order to boot the Tablet image into text-only mode, append the character "3" to the bootargs command line as shown in the image above. If you allow the Tablet GUI to come up, the method described below to start IVI UX will fail even if you try to do so from a text console. The reason is that a given login can run only one instance of X11. Before starting uxlaunch to run the IVI GUI apps, we must perform several more housekeeping tasks:
mkdir /IVI/root/bin mv Make_GL_links.txt /IVI/root/bin/Make_GL_links chmod a+x /IVI/root/bin/Make_GL_links
Take note of the ampersand to run uxlaunch in background. Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.
To build an image which can be booted from a flash key using the mic tool (Image_Creation) download the following kick start file :-
Create an image using the following command :-
sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum
Burn to usb stick :-
sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)
Boot from stick in device
Boot takes sometime. I've not tried installing to internal flash and you may need a keyboard to configure wireless as onscreen kb is not working. I need to add something to Xorg.conf.d to stop the accelerometer being picked up as an input device, you may notice the mouse pointer dancing.