<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Alison&amp;feed=atom&amp;limit=50&amp;target=Alison&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Alison&amp;feed=atom&amp;limit=50&amp;target=Alison&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Alison"/>
		<updated>2013-06-18T21:19:47Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Devices</id>
		<title>Devices</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices"/>
				<updated>2011-09-25T23:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Tablets/Slates */ Correcting ExoPC link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below, you find devices where MeeGo was used successfully. The list is not complete and waits for your input.&lt;br /&gt;
&lt;br /&gt;
For info: [[wikipedia:List_of_Intel_Atom_microprocessors|Wikipedia Atom list]] &lt;br /&gt;
&lt;br /&gt;
==Devices compatible with MeeGo==&lt;br /&gt;
''sorted alphabetically''&lt;br /&gt;
&lt;br /&gt;
=== Released devices ===&lt;br /&gt;
Meego devices, which are released and you can actually buy.&lt;br /&gt;
*September 2011: [http://forum.meego.com/showthread.php?t=4382 Acer Aspire 5749] Intel Core i3 2310M (Sandy Bridge) laptop&lt;br /&gt;
*August 2011: [http://forum.meego.com/showthread.php?t=4285 Acer Aspire One D257] with the dual-core Atom N570, the best netbook on the market&lt;br /&gt;
*August 2011: [http://newsroom.intel.com/community/intel_newsroom/blog/2011/05/31/chip-shot-meego-netbooks-based-on-intel-atom-arrive-at-computex Atom N435 netbooks]&lt;br /&gt;
** Acer Aspire One Happy 2: TBA &lt;br /&gt;
** [http://www.asus.com/Eee/Eee_PC/Eee_PC_X101/ Asus Eee PC X101] Atom N435 or N455&lt;br /&gt;
** [http://www.tcmagazine.com/tcm/news/hardware/40280/meego-powered-lenovo-ideapad-s100-gets-listed-europe Lenovo IdeaPad S100]&lt;br /&gt;
** [http://forum.meego.com/showthread.php?t=3922 Samsung N100]&lt;br /&gt;
*[http://www.evolvethree.com.au/ Evolve III Maestro] Atom Z670 Oak Trail tablet&lt;br /&gt;
* [http://www.linuxfordevices.com/c/a/News/WePad-and-NFS-NPad/ WeTab], 11.6-inch, Atom N450 tablet; [http://wetab.mobi/developers/ SDK] available; [http://www.wetab-community.com/ Forum]&lt;br /&gt;
** [[ Installing MeeGo Tablet Developer Preview on WeTab Tablet ]] &lt;br /&gt;
** [[ Installing MeeGo 1.1 Pinetrail Image on WeTab Tablet ]]&lt;br /&gt;
** See also [ http://edc.intel.com/Software/Installation-Guides/Meego/ Intel's instructions. ] They look out of date (note screenshot of 1.0).&lt;br /&gt;
** Review in Nixu open -blog: [https://www.nixuopen.org/blog/2010/10/meego-unboxing/ Part1] [https://www.nixuopen.org/blog/2010/11/meego-unboxing-part-2/ Part2]&lt;br /&gt;
* [http://www.solidblogger.com/fujitsu-lifebook-mh330-netbook-specifications/ Fujitsu LifeBook MH330] Atom N450 netbook &lt;br /&gt;
* [http://www.linuxfordevices.com/c/a/News/Trinity-Audio-Group-Indamixx-2-ships/ Trinity Audio's Indamixx 2], Atom N450 audio tablet for musicians.&lt;br /&gt;
* Amino and [http://www.aminocom.com/what-we-offer/amino-and-meego/ MeeGo TV]&lt;br /&gt;
**[http://www.aminocom.com/what-we-offer/hybridott/ Amino Freedom STB]&lt;br /&gt;
&lt;br /&gt;
===Handsets===&lt;br /&gt;
General information user and developers for [[Handsets]].&lt;br /&gt;
* September 2011: [http://www.meegoexperts.com/2011/06/nokia-n9-announced-nokia-connections-nokiacnxn/ Nokia N9]&lt;br /&gt;
*[[Devices/Aava|Aava]] ([[Developing_With_The_Aava|Tips for developing with the Aava]])&lt;br /&gt;
*[[Devices/N900|Nokia N900]] (see install instructions at: [[ARM]])&lt;br /&gt;
&lt;br /&gt;
[[Devices/Unlisted_Handsets|Unlisted Handsets]]&lt;br /&gt;
&lt;br /&gt;
===Tablets/Slates===&lt;br /&gt;
* Q3 2011: Atom Oak Trail tablets: [http://newsroom.intel.com/docs/DOC-1976 Atom Z670 (1.5GHz) and Z650 (1.2GHz), GMA 600] &lt;br /&gt;
** August 2011: The [http://tablets-planet.com/2011/04/13/first-intel-atom-z670-based-windows-tablet-pc-lands-at-fcc/ ECS ElitePad S10] is MeeGo's reference Oak Trail platform. Other tablets are not supported atm.&lt;br /&gt;
*[http://exocommunity.com/forum/viewforum.php?f=110 ExoPC Slate] Atom N450, Broadcom Crystal HD&lt;br /&gt;
** [http://appdeveloper.intel.com/en-us/blog/2011/07/14/update-your-exopc-part-1 Update your ExoPC]&lt;br /&gt;
** [[MeeGo_IVI_on_ExoPC|Installing MeeGo on ExoPC]]&lt;br /&gt;
*[http://forum.meego.com/showthread.php?t=3148 Viewsonic Viewpad 10] Atom N455&lt;br /&gt;
*[http://www.jogglerwiki.com/wiki/MeeGo Joggler] Atom Z520, GMA500 &lt;br /&gt;
** See [http://www.youtube.com/watch?v=vnwfVtHuhoI Joggler running Meego 1.0 Netbook UX]&lt;br /&gt;
** See [http://www.youtube.com/watch?v=JVL8I1B6uPs Joggler running Meego 1.0.1 IVI UX]&lt;br /&gt;
*[http://www.openaos.org/ Archos]&lt;br /&gt;
**[http://forum.meego.com/showthread.php?t=1133 Archos 9] Atom Z515, GMA500&lt;br /&gt;
* [http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html Linux touchscreen support]&lt;br /&gt;
&lt;br /&gt;
===Netbooks===&lt;br /&gt;
* If you have a netbook that you have confirmed works with MeeGo, please add it below.&lt;br /&gt;
&lt;br /&gt;
*[[wikipedia:Acer Aspire One|Acer Aspire]]&lt;br /&gt;
** One AO532-h; [http://forum.meego.com/showthread.php?t=436 memory card reader]&lt;br /&gt;
** One A110L&lt;br /&gt;
** One A150L and A150X&lt;br /&gt;
** One D250&lt;br /&gt;
** One ZG5&lt;br /&gt;
 &lt;br /&gt;
*[[wikipedia:Asus Eee PC|Asus EeePC]]&lt;br /&gt;
** 701 (root partition formatted with ext3)&lt;br /&gt;
** 900 (root partition formatted with ext3)&lt;br /&gt;
** 900A (wireless works only with MeeGo 1.0.90+)&lt;br /&gt;
** 900HA&lt;br /&gt;
** 901&lt;br /&gt;
** 901 Go (3G not supported yet)&lt;br /&gt;
** s101&lt;br /&gt;
** 1000&lt;br /&gt;
** 1000H &lt;br /&gt;
** 1002H (not yet tested for wireless etc)&lt;br /&gt;
** 1005HA &lt;br /&gt;
** 1005PE (Atom N450)&lt;br /&gt;
** 1008HA ([http://forum.meego.com/showthread.php?p=1330#post1330 well tested])&lt;br /&gt;
* Dell&lt;br /&gt;
** Latitude 2100 (including optional touchscreen)&lt;br /&gt;
** Inspiron Mini 9 ([http://forum.meego.com/showthread.php?t=287 some issues])&lt;br /&gt;
** Vostro A90 (same issues as Mini 9)&lt;br /&gt;
*[[wikipedia:eMachines_Netbook|eMachines]]&lt;br /&gt;
** eM350 (Atom N450 )&lt;br /&gt;
*Fujitsu&lt;br /&gt;
** M2010&lt;br /&gt;
* Gigabyte&lt;br /&gt;
** Q1000C (see [[Devices#Known_problems|Known problems]] below; Realtek 8172 wifi does not work)&lt;br /&gt;
* HERCULES&lt;br /&gt;
** EC-900 (wireless works only with MeeGo 1.0.90+)&lt;br /&gt;
* HP&lt;br /&gt;
** [http://forum.meego.com/showthread.php?t=4073 Mini 110]&lt;br /&gt;
** Mini 210 1022eo,1030-NR,1024LA, others ([http://forum.meego.com/showthread.php?t=328 Broadcom WiFi needs to be compiled separately])&lt;br /&gt;
** Mini 5101 HD ([http://forum.meego.com/showthread.php?t=328 Broadcom WiFi needs to be compiled separately])&lt;br /&gt;
* Lenovo&lt;br /&gt;
** [[Devices/Ideapad|S10-3t IdeaPad]]&lt;br /&gt;
* Medion&lt;br /&gt;
** Akoya Mini E1210&lt;br /&gt;
** Akoya Mini E1222 ([http://wiki.meego.com/Installation_of_MeeGo_on_notebook#Wireless_Drivers Realtek WiFi needs to be compiled separately])&lt;br /&gt;
*[[wikipedia:MSI_Wind_Netbook|MSI Wind]]&lt;br /&gt;
** U90/U90x&lt;br /&gt;
** U100&lt;br /&gt;
** U130&lt;br /&gt;
** L1350&lt;br /&gt;
* Nokia&lt;br /&gt;
** [http://www.meegoexperts.com/2011/06/nokia-booklet-3g-running-meego/ Booklet 3G] (Atom Z530)&lt;br /&gt;
* Packard Bell&lt;br /&gt;
** dot S2 &lt;br /&gt;
* Samsung&lt;br /&gt;
** N130&lt;br /&gt;
** N140&lt;br /&gt;
** Q328 i3 (Duel chips Nvidia Optimus/Intel)&lt;br /&gt;
** N150 (except for some hotkeys (2010-11-20))&lt;br /&gt;
** [[wikipedia:Samsung NC10|NC10]]&lt;br /&gt;
** N210 Plus (except for some hotkeys. Broadcom WiFi needs to be compiled separately)&lt;br /&gt;
* [[wikipedia:VAIO|Sony VAIO]]&lt;br /&gt;
** VPCW211AX (Atom N450)&lt;br /&gt;
** VGN-TX3XP (Intel Core Solo 1.2GHz, Intel 945GMS video card)&lt;br /&gt;
** VGN-TX5MN (Intel Core Solo U1400 / 1.2 GHz, Intel GMA 950 video card, 1GB RAM)&lt;br /&gt;
* Toshiba Mini&lt;br /&gt;
** NB100&lt;br /&gt;
** NB200&lt;br /&gt;
** NB205&lt;br /&gt;
** NB305&lt;br /&gt;
** NB505 ([http://www.meabi.com/meego-wirelesswifi-configuration/ Realtek WiFi needs to be compiled separately])&lt;br /&gt;
&lt;br /&gt;
===Nettops===&lt;br /&gt;
*Acer&lt;br /&gt;
**[[wikipedia:Acer Aspire Revo|Revo]] GN40 &lt;br /&gt;
**eMachine EZ1601 and KAV60&lt;br /&gt;
*Asus&lt;br /&gt;
**[[wikipedia:ASUS Eee Box|Eeebox]] B202 &lt;br /&gt;
**[[wikipedia:ASUS Eee Box|Eeebox]] EB1007 (It has no KVM support to develep MeeGo through QEMU) &lt;br /&gt;
**[[wikipedia:ASUS Eee Top|Eeetop]] ET1602&lt;br /&gt;
*[[wikipedia:Micro-Star International|MSI]]&lt;br /&gt;
**AE1900&lt;br /&gt;
*Samsung&lt;br /&gt;
**[[wikipedia:Samsung N130|n130]]&lt;br /&gt;
&lt;br /&gt;
*Intel Desktop Board&lt;br /&gt;
**D410PT&lt;br /&gt;
**D510MO&lt;br /&gt;
**D945GCLF2 (Should work on near-identical D945GCLF as well)&lt;br /&gt;
&lt;br /&gt;
===Notebooks===&lt;br /&gt;
* Acer Travelmate 6292&lt;br /&gt;
* Asus F2F (Celeron M)&lt;br /&gt;
* Asus U1F (Core Duo)&lt;br /&gt;
* Dell Inspiron 1525 (without wireless networking) [http://forum.meego.com/showthread.php?t=371]&lt;br /&gt;
* Dell Latitude D630 (Broadcom [http://slaine.org/_slaine/Meego_1.0_Wifi.html] wifi driver might be needed)&lt;br /&gt;
* Dell Latitude E6400 (Broadcom [http://slaine.org/_slaine/Meego_1.0_Wifi.html] wifi driver might be needed)&lt;br /&gt;
* Dell XPS M1210 CoreDuo T2400, Intel 950GM, Intel Wireless 3945abg, Linksys Webcam. [http://forum.meego.com/showthread.php?t=433]&lt;br /&gt;
* Fujitsu Lifebook P1610: Working: wifi, sound, screen brightness/sound volume via function keys, SD card reader, trackpoint. Not Working: touchscreenn  [--[[User:Rokky|Rokky]] 22:17, 2 June 2010 (UTC)]&lt;br /&gt;
* Lenovo IdeaPad Y450 [http://forum.meego.com/showthread.php?t=265]&lt;br /&gt;
* Lenovo T60 / T61 [http://forum.meego.com/showthread.php?t=323]&lt;br /&gt;
* Lenovo ThinkPad R500 [http://forum.meego.com/showthread.php?t=371]&lt;br /&gt;
* Panasonic CF-52 (Centrino2)&lt;br /&gt;
* Toshiba L500 Satellite low-end Notebook (needs rtl8192se driver from RealTek for wireless)&lt;br /&gt;
* Toshiba Satellite U305 S5077 &lt;br /&gt;
* Wipro WNB7PBC4830R (needs wireless driver code compilation)&lt;br /&gt;
&lt;br /&gt;
===Developer Boards===&lt;br /&gt;
* July 2011: ST-Ericsson's dual-core [[ARM/Snowball]]&lt;br /&gt;
* October 2010: [[wikipedia:PandaBoard|Panda Board]], see [[ARM/OMAP4_Panda]]&lt;br /&gt;
*[[wikipedia:Beagle Board|Beagle Board]], see [[ARM/Meego on the Beagle]]&lt;br /&gt;
&lt;br /&gt;
==Known problems==&lt;br /&gt;
*Netbooks requiring GMA500 drivers: [http://www.meegoexperts.com/2011/06/nokia-booklet-3g-running-meego/ Booklet 3G], as an exemple &lt;br /&gt;
** Try this Poulsbo/GMA500 Netbook Kickstart [[User:vgrade]]&lt;br /&gt;
** July 2011 [http://www.phoronix.com/scan.php?page=news_item&amp;amp;px=OTY2Mg GMA500 driver improvements]&lt;br /&gt;
*'MeeGo will not work on non-SSSE3 CPUs'&lt;br /&gt;
** Community page to try and rectify this [[Devices/nonSSSE3|nonSSSE3]]&lt;br /&gt;
*'USB booting issues due to ISOLinux/EFI BIOS bug' [http://bugs.meego.com/show_bug.cgi?id=11181|Bug 11181 - Failed to boot from USB on Positivo Mobo Black] (Affects HP Mini, Positive Mobo Black, Gigabyte Q1000C amongst others)&lt;br /&gt;
*Backlight brightnes changes randomly on some Asus eeePc's when trying to adjust it:&lt;br /&gt;
** Open /boot/extlinux/extlinux.conf and add &amp;quot;acpi_osi=Linux&amp;quot; to the line &amp;quot;append&amp;quot; in the entry labelled &amp;quot;meego&amp;quot; (eventually you might have to add &amp;quot;acpi_backlight=vendor&amp;quot; as well)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/In-vehicle/IVI_for_users_and_developers</id>
		<title>In-vehicle/IVI for users and developers</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/In-vehicle/IVI_for_users_and_developers"/>
				<updated>2011-09-25T23:42:23Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Developers */ New ExoPC page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Users ==&lt;br /&gt;
&lt;br /&gt;
List of MeeGo compatible [[Devices]]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
*Instructions for [[ARM|N900 / ARM based devices]]&lt;br /&gt;
*Instructions for [[IVI-LenovoS10-3t|Lenovo S10-3t]]&lt;br /&gt;
*Instructions for [[MeeGo_IVI_on_ExoPC|ExoPC]]&lt;br /&gt;
&lt;br /&gt;
=== Advanced Topics ===&lt;br /&gt;
&lt;br /&gt;
==== Car PC Hobbyist Challenge ====&lt;br /&gt;
&lt;br /&gt;
#Hardware support&lt;br /&gt;
#* Intel ITX motherboards: Most widely spread in the existing community&lt;br /&gt;
#Installation&lt;br /&gt;
#* Power - How much? How to switch it on?&lt;br /&gt;
#* Placement - Where are the components located?, Heating/Cooling&lt;br /&gt;
#Interfacing with system&lt;br /&gt;
#* startup solutions&lt;br /&gt;
#* Volume control&lt;br /&gt;
#* Touchscreen navigating/button placement&lt;br /&gt;
#Capabilities/Functions &lt;br /&gt;
#* Large Music libraries&lt;br /&gt;
#* Navigation&lt;br /&gt;
#* phone syncing&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
[[Developer Guide]]&lt;br /&gt;
&lt;br /&gt;
*Instructions for [[ARM|N900 / ARM based devices]]&lt;br /&gt;
*Instructions for [[IVI-LenovoS10-3t|Lenovo S10-3t]]&lt;br /&gt;
*Instructions for [[MeeGo_IVI_on_ExoPC|ExoPC]]&lt;br /&gt;
&lt;br /&gt;
{{Developer pages}}&lt;br /&gt;
&lt;br /&gt;
== Resource ==&lt;br /&gt;
*[http://www.mp3car.com/vbulletin/meego-vehicle/ MP3Car Forum MeeGo section]&lt;br /&gt;
&lt;br /&gt;
[[Category:IVI]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/In-vehicle/IVI_for_users_and_developers</id>
		<title>In-vehicle/IVI for users and developers</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/In-vehicle/IVI_for_users_and_developers"/>
				<updated>2011-09-25T23:40:24Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Installation */ Adding ExoPC link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Users ==&lt;br /&gt;
&lt;br /&gt;
List of MeeGo compatible [[Devices]]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
*Instructions for [[ARM|N900 / ARM based devices]]&lt;br /&gt;
*Instructions for [[IVI-LenovoS10-3t|Lenovo S10-3t]]&lt;br /&gt;
*Instructions for [[MeeGo_IVI_on_ExoPC|ExoPC]]&lt;br /&gt;
&lt;br /&gt;
=== Advanced Topics ===&lt;br /&gt;
&lt;br /&gt;
==== Car PC Hobbyist Challenge ====&lt;br /&gt;
&lt;br /&gt;
#Hardware support&lt;br /&gt;
#* Intel ITX motherboards: Most widely spread in the existing community&lt;br /&gt;
#Installation&lt;br /&gt;
#* Power - How much? How to switch it on?&lt;br /&gt;
#* Placement - Where are the components located?, Heating/Cooling&lt;br /&gt;
#Interfacing with system&lt;br /&gt;
#* startup solutions&lt;br /&gt;
#* Volume control&lt;br /&gt;
#* Touchscreen navigating/button placement&lt;br /&gt;
#Capabilities/Functions &lt;br /&gt;
#* Large Music libraries&lt;br /&gt;
#* Navigation&lt;br /&gt;
#* phone syncing&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
&lt;br /&gt;
[[Developer Guide]]&lt;br /&gt;
&lt;br /&gt;
*Instructions for [[ARM|N900 / ARM based devices]]&lt;br /&gt;
*Instructions for [[IVI-LenovoS10-3t|Lenovo S10-3t]]&lt;br /&gt;
&lt;br /&gt;
{{Developer pages}}&lt;br /&gt;
&lt;br /&gt;
== Resource ==&lt;br /&gt;
*[http://www.mp3car.com/vbulletin/meego-vehicle/ MP3Car Forum MeeGo section]&lt;br /&gt;
&lt;br /&gt;
[[Category:IVI]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:21:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Modifying the WeTab's bootloader */ A few missing details.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt.bin .&lt;br /&gt;
      sudo cp -p extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf_dist /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
At the top of the file, change the lines that set &amp;quot;prompt&amp;quot; and &amp;quot;timeout&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
''&lt;br /&gt;
      prompt 1&lt;br /&gt;
      timeout 15''&lt;br /&gt;
&lt;br /&gt;
Remove &amp;quot;quiet&amp;quot; where is appears on &amp;quot;append&amp;quot; lines and comment out &amp;quot;menu hidden&amp;quot;.   Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plp&lt;br /&gt;
      linux plpbt.bin''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Check that the file permissions of the new extlinux.conf match those of extlinux.conf_dist.    Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp -p /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
''Note:'' The following procedure did not work well with a USB hub, probably because plpbt comes with an old version of the EHCI drivers.    For best results, insert USB drives into the WeTab's top connector and plug the keyboard directly into the bottom one.    Keyboard functionality in plpbt is hit-or-miss, but the soft button always works.&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.    &lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard (or soft button) to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.    Once MeeGo (or WeTab OS) comes up, devices plugged into a USB hub will function once more.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Handset_image_on_WeTab_Tablet</id>
		<title>Installing MeeGo Handset image on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Handset_image_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: moved Installing MeeGo Handset image on WeTab Tablet to Installing MeeGo Images on WeTab Tablet: There are now several MeeGo images that run on the Pinetrail/Pineview processor, so their is no reason to restrict the title any more.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Installing MeeGo Images on WeTab Tablet]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:09:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: moved Installing MeeGo Handset image on WeTab Tablet to Installing MeeGo Images on WeTab Tablet: There are now several MeeGo images that run on the Pinetrail/Pineview processor, so their is no reason to restrict the title any more.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt.bin .&lt;br /&gt;
      sudo cp -p extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf_dist /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plp&lt;br /&gt;
      linux plpbt.bin''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Check that the file permissions of the new extlinux.conf match those of extlinux.conf_dist.    Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp -p /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
''Note:'' The following procedure did not work well with a USB hub, probably because plpbt comes with an old version of the EHCI drivers.    For best results, insert USB drives into the WeTab's top connector and plug the keyboard directly into the bottom one.    Keyboard functionality in plpbt is hit-or-miss, but the soft button always works.&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.    &lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard (or soft button) to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.    Once MeeGo (or WeTab OS) comes up, devices plugged into a USB hub will function once more.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:07:59Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Install MeeGo onto the WeTab */ Clarification.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt.bin .&lt;br /&gt;
      sudo cp -p extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf_dist /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plp&lt;br /&gt;
      linux plpbt.bin''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Check that the file permissions of the new extlinux.conf match those of extlinux.conf_dist.    Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp -p /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
''Note:'' The following procedure did not work well with a USB hub, probably because plpbt comes with an old version of the EHCI drivers.    For best results, insert USB drives into the WeTab's top connector and plug the keyboard directly into the bottom one.    Keyboard functionality in plpbt is hit-or-miss, but the soft button always works.&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.    &lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard (or soft button) to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.    Once MeeGo (or WeTab OS) comes up, devices plugged into a USB hub will function once more.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:03:10Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Modifying the WeTab's bootloader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt.bin .&lt;br /&gt;
      sudo cp -p extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf_dist /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plp&lt;br /&gt;
      linux plpbt.bin''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Check that the file permissions of the new extlinux.conf match those of extlinux.conf_dist.    Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp -p /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.&lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-21T15:02:32Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Modifying the WeTab's bootloader */ Updated plpbt instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt.bin .&lt;br /&gt;
      sudo cp -p extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf_dist /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plp&lt;br /&gt;
	linux plpbt.bin''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Check that the file permissions of the new extlinux.conf match those of extlinux.conf_dist.    Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp -p /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.&lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet</id>
		<title>Installing MeeGo Images on WeTab Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Installing_MeeGo_Images_on_WeTab_Tablet"/>
				<updated>2011-09-20T16:48:07Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Modifying the WeTab's bootloader */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Warning:''' the Pinetrail image running on the WeTab has some problems as&lt;br /&gt;
of 1/6/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
== What is needed ==&lt;br /&gt;
&lt;br /&gt;
1. A WeTab with power cable&lt;br /&gt;
2. sudo/root access on the WeTab&lt;br /&gt;
3. Two USB flash drives, one with a mountable filesystem already on it&lt;br /&gt;
4. A USB keyboard and mouse&lt;br /&gt;
5. Another Linux system for writing to the USB drives&lt;br /&gt;
&lt;br /&gt;
== Creating a bootable MeeGo drive ==&lt;br /&gt;
&lt;br /&gt;
1. Plug the WeTab into the mains.   You do not want the unit powering&lt;br /&gt;
off or sleeping while you are reflashing!&lt;br /&gt;
&lt;br /&gt;
2. Download pinetrail image from the [ http://repo.meego.com/MeeGo/builds/ repo ].    I used &lt;br /&gt;
meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://repo.meego.com/MeeGo/builds/1.1.80/1.1.80.13.20110105.1/handset/images/meego-handset-ia32-pinetrail-mtf/meego-handset-ia32-pinetrail-mtf-1.1.80.13.20110105.1.img''&lt;br /&gt;
&lt;br /&gt;
3. Follow [ http://meego.com/devices/netbook/installing-meego-your-netbook instructions ]&lt;br /&gt;
for using image-writer to create a bootable image on one of the USB drives (Drive 1 hereafter).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Modifying the WeTab's bootloader ==&lt;br /&gt;
&lt;br /&gt;
References: [ http://digitalorchard.blogspot.com/2010/12/wetabos-to-pure-meego.html 1]&lt;br /&gt;
[ http://wetabz.blogspot.com/2010/10/using-plop-boot-manager.html 2 ]&lt;br /&gt;
&lt;br /&gt;
4. Now that you have a bootable image on Drive 1, you need to modify the WeTab's&lt;br /&gt;
bootloader to boot from USB.   First download the latest version of plpbt.&lt;br /&gt;
I used plpbt-5.0.11:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      wget http://download.plop.at/files/bootmngr/plpbt-5.0.13.zip''&lt;br /&gt;
&lt;br /&gt;
5. Unzip the archive and copy the resulting files plpbt.bin and plpbt.img to the second&lt;br /&gt;
FLASH drive (hereafter called Drive 2).&lt;br /&gt;
&lt;br /&gt;
6. Plug Drive 2 into the WeTab.    From the WeTab's application&lt;br /&gt;
launcher screen, choose the terminal window icon.   Then:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cd /boot/extlinux&lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/plpbt* .&lt;br /&gt;
      sudo cp extlinux.conf extlinux.conf_dist&lt;br /&gt;
      cp extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
7. Remove Drive 2 and plug it into the second Linux system.  Then&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /tmp&lt;br /&gt;
      &amp;lt;text editor of your choice&amp;gt; /tmp/extlinux.conf''&lt;br /&gt;
&lt;br /&gt;
Insert the following text at the top of the list of bootable images:&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      label plop&lt;br /&gt;
      menu label ^plpbt&lt;br /&gt;
      KERNEL memdisk&lt;br /&gt;
      INITRD plpbt.img&lt;br /&gt;
      menu default''&lt;br /&gt;
&lt;br /&gt;
Note that the exact syntax may change (the names of files may change, for example) as plpbt releases new versions.   Save the extlinux.conf file and&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /tmp/extlinux.conf /media/&amp;lt;your drive name&amp;gt;&lt;br /&gt;
      eject /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
8. Plug Drive 2 into the WeTab, and from its shell prompt type&lt;br /&gt;
&lt;br /&gt;
''    &lt;br /&gt;
      sudo cp /media/&amp;lt;your drive name&amp;gt;/extlinux.conf /boot/extlinux&lt;br /&gt;
      umount /media/&amp;lt;your drive name&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
Remove Drive 2.   You are finished with it.&lt;br /&gt;
&lt;br /&gt;
== Install MeeGo onto the WeTab ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Plug Drive 1 with the Pinetrail image into the USB drive.&lt;br /&gt;
&lt;br /&gt;
10. Power the WeTab off.   Power on, and while the blue LED is&lt;br /&gt;
flashing, cover the soft button (circular sensor in upper left-hand corner&lt;br /&gt;
of the surface to the left of the blue LED).&lt;br /&gt;
&lt;br /&gt;
11. The plop bootloader with its green 1970s-era font will display.&lt;br /&gt;
Tap the soft button to advance downward.   Hold the soft button to&lt;br /&gt;
select &amp;quot;USB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
12. The system should now come up in the MeeGo installer.    Plug in&lt;br /&gt;
the USB keyboard.&lt;br /&gt;
&lt;br /&gt;
13. Choose &amp;quot;installation&amp;quot; or &amp;quot;live-boot&amp;quot; as suits you.   Use the USB&lt;br /&gt;
keyboard to make selections, as the touchscreen is not working!&lt;br /&gt;
Sometimes it's possible to advance screens with carriage-return; at&lt;br /&gt;
other places Alt-F will move Forward.   Follow the installation instructions.&lt;br /&gt;
&lt;br /&gt;
If the USB keyboard does not work, you can still use the soft button, just as&lt;br /&gt;
in the plop bootloader. Tap it to highlight the next item. Hold it down to boot.&lt;br /&gt;
'''Be careful though: unlike in the plop bootmenu, once you select the bottom-most item, you cannot go back up!'''&lt;br /&gt;
&lt;br /&gt;
14. If you have installed MeeGo, you'll reach a screen which tells you&lt;br /&gt;
to remove the flash drive and reboot.   After removing the flash&lt;br /&gt;
drive, plug in the USB mouse.   At this point I got an X11 error indicating that the screen settings weren't detected; just ignore it, as the problem is temporary.&lt;br /&gt;
&lt;br /&gt;
15. Reboot the system.  You should now see the MeeGo UX launcher.&lt;br /&gt;
Congratulations, you have installed MeeGo!&lt;br /&gt;
&lt;br /&gt;
== Problems ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. The touchscreen is unresponsive.    (Presumably this is a driver problem. See also [http://bugs.meego.com/show_bug.cgi?id=9524 bug 9524] )&lt;br /&gt;
&lt;br /&gt;
2. The UX launcher image does not utilize the whole display, which is&lt;br /&gt;
unsurprising since Pinetrail is a handset image.   (Presumably this&lt;br /&gt;
problem is fixable with xrandr.)&lt;br /&gt;
&lt;br /&gt;
3. The build comes with the ath3k driver rather than the [http://wetabz.blogspot.com/2010/10/multitouch-driver-on-wetab.html ath9k one] that the modem requires.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* [http://wetab-community.de/forum/viewtopic.php?f=62&amp;amp;t=2502 Discussion in the WeTab Community Forum]&lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=2320 Discussion in the official Meego Forum]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-12T04:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Video screenshot.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg|400px|thumb|center|nobdy in IVI scrollwheel menu]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg|400px|thumb|center|nobdy in IVI home screen &amp;quot;Top applications&amp;quot; tray]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[[File:Nobdy_qmlviewer_screenshot.jpeg|600px|thumb|left|Watch the  [[Media:Nobdy_qmlviewer.mp4‎|'''two-minute video''']] of nobdy running in xterm and displaying data in qmlviewer via D-bus.]]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[http://she-devel.com/MeeGo_Meetup_Sep7_2011.pdf slides] from nobdy on ExoPC talk, September 6, 2011.&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Nobdy_qmlviewer_screenshot.jpeg</id>
		<title>File:Nobdy qmlviewer screenshot.jpeg</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Nobdy_qmlviewer_screenshot.jpeg"/>
				<updated>2011-09-12T04:23:45Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Screenshot from nobdy data conveyed to D-bus and displayed via qmlviewer on ExoPC running Tablet Preview.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot from nobdy data conveyed to D-bus and displayed via qmlviewer on ExoPC running Tablet Preview.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-12T04:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Captions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg|400px|thumb|center|nobdy in IVI scrollwheel menu]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg|400px|thumb|center|nobdy in IVI home screen &amp;quot;Top applications&amp;quot; tray]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[[Media:Nobdy_qmlviewer.mp4‎|Video]] of nobdy running in xterm and displaying data in qmlviewer via D-bus.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[http://she-devel.com/MeeGo_Meetup_Sep7_2011.pdf slides] from nobdy on ExoPC talk, September 6, 2011.&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-12T04:11:17Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Link to better video.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[[Media:Nobdy_qmlviewer.mp4‎|Video]] of nobdy running in xterm and displaying data in qmlviewer via D-bus.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[http://she-devel.com/MeeGo_Meetup_Sep7_2011.pdf slides] from nobdy on ExoPC talk, September 6, 2011.&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Nobdy_qmlviewer.mp4</id>
		<title>File:Nobdy qmlviewer.mp4</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Nobdy_qmlviewer.mp4"/>
				<updated>2011-09-12T03:03:37Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Nobdy running with dbussimple subscriber on ExoPC Tablet Preview image and collecting data via an OBDLink scanner.   The data is presented by qmlviewer using tripzero's GuagesExample.qml file.   

More info about nobdy: http://wiki.openice.org/index.php?t&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nobdy running with dbussimple subscriber on ExoPC Tablet Preview image and collecting data via an OBDLink scanner.   The data is presented by qmlviewer using tripzero's GuagesExample.qml file.   &lt;br /&gt;
&lt;br /&gt;
More info about nobdy: http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-11T07:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Miscellany */ Link to talk slides.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6135604624/in/set-72157627642835378 Flickr video] of nobdy running in xterm and displaying data in qmlviewer via D-bus.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[http://she-devel.com/MeeGo_Meetup_Sep7_2011.pdf slides] from nobdy on ExoPC talk, September 6, 2011.&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-11T07:19:50Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Link to better video.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6135604624/in/set-72157627642835378 Flickr video] of nobdy running in xterm and displaying data in qmlviewer via D-bus.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-11T07:18:43Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ nobdy in IVI &amp;quot;top applications&amp;quot; image.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI top applications.jpg]]&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-11T07:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ new image of IVI scroll list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
[[File:Nobdy IVI scroll list.jpg]]&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Nobdy_IVI_scroll_list.jpg</id>
		<title>File:Nobdy IVI scroll list.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Nobdy_IVI_scroll_list.jpg"/>
				<updated>2011-09-11T07:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: nobdy in IVI home screen's application scroll list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;nobdy in IVI home screen's application scroll list.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Nobdy_IVI_top_applications.jpg</id>
		<title>File:Nobdy IVI top applications.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Nobdy_IVI_top_applications.jpg"/>
				<updated>2011-09-11T07:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: nobdy icon appearing in MeeGo IVI 1.2's &amp;quot;top applications&amp;quot; bar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;nobdy icon appearing in MeeGo IVI 1.2's &amp;quot;top applications&amp;quot; bar.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Terminator_qmlviewer_IVI_chooser.jpg</id>
		<title>File:Terminator qmlviewer IVI chooser.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Terminator_qmlviewer_IVI_chooser.jpg"/>
				<updated>2011-09-11T07:14:02Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Terminator and qmlviewer in IVI's app chooser menu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Terminator and qmlviewer in IVI's app chooser menu.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-11T07:13:00Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ nobdy and qmlviewer instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].   So far, OBD scanning with OBDLink works with Tablet Preview with examplesubscriber and dbussimple subscribers receiving data from genericobd2 provider, but the invocations don't work on the IVI UX.    It's not yet clear whether the problem on the IVI UX is due to incomplete configuration or a differing versions of Qt Mobility between Tablet Preview and IVI UX.&lt;br /&gt;
&lt;br /&gt;
In order to view OBD data with qmlviewer, first plug the OBDLink scanner into USB.   Make sure that the corresponding /dev/ttyUSB* file is world-readable and writable.   After copying [[File:Plugins.xml_dbus.txt|dbus config file]] to /etc/nobdy/plugins.xml, start nobdy in an xterm as &amp;quot;nobdy.&amp;quot;    Crank the ignition.   You should see messages appear like 'Connected to ELM version &amp;quot;ELM327 v1.3a&amp;quot;' if all is working.   Invoke qmlviewer with &lt;br /&gt;
    &lt;br /&gt;
   qmlviewer -opengl -qmlbrowser&lt;br /&gt;
&lt;br /&gt;
When the browser opens, choose tripzero's GuagesExample.qml.    Some of the fields should live-update and respond to the car's accelerator, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T06:44:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ plugins.xml examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
To test nobdy with a USB-connected OBD scanner, use a config file invoking [[File:Plugins.xml_examplesubscriber.txt|examplesubscriber]], but to view live OBD data with a GUI, use a config file that supports a [[File:Plugins.xml_dbus.txt|dbus subscriber]].&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Plugins.xml_examplesubscriber.txt</id>
		<title>File:Plugins.xml examplesubscriber.txt</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Plugins.xml_examplesubscriber.txt"/>
				<updated>2011-09-09T06:40:40Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Basic plugins.xml file for testing nobdy.   Rename to &amp;quot;plugins.xml&amp;quot; and move to /etc/nobdy, or invoke nobdy with -c &amp;lt;yourconfigfilename&amp;gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Basic plugins.xml file for testing nobdy.   Rename to &amp;quot;plugins.xml&amp;quot; and move to /etc/nobdy, or invoke nobdy with -c &amp;lt;yourconfigfilename&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Plugins.xml_dbus.txt</id>
		<title>File:Plugins.xml dbus.txt</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Plugins.xml_dbus.txt"/>
				<updated>2011-09-09T06:39:15Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: plugins.xml file for viewing nobdy data stream with qmlviewer.   Rename to plugins.xml and put in /etc/nobdy, or invoke nobdy with -c &amp;lt;yourconfigfilename&amp;gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;plugins.xml file for viewing nobdy data stream with qmlviewer.   Rename to plugins.xml and put in /etc/nobdy, or invoke nobdy with -c &amp;lt;yourconfigfilename&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T06:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ More about making nobdy work.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy qt-qmlviewer&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
The IVI launcher/chooser will only offer to switch among programs have .desktop files in /usr/share/applications/ and icon images in /usr/share/themes/1024-600-10/icons/ and /usr/share/themes/1024-600-10/icons/launchers.   For qmlviewer, I copied a random small PNG image from one of the Qt4 directories into the icon directories, renaming it &amp;quot;qmlviewer.png&amp;quot; and added a reference to it in a qmlviewer.desktop file I created by editing one of the existing files in /usr/share/applications/.    For nobdy, I did the same, but first I created an icon by using a program to write &amp;quot;nobdy&amp;quot; in a box.   The resulting icons in the chooser show up in the video linked below.&lt;br /&gt;
&lt;br /&gt;
Nobdy is more useful with the [http://www.linux-magazine.com/Issues/2011/126/Charly-s-Column-Terminator Terminator multi-xterm-on-screen] application.    Follow the posted instructions to [http://www.tenshu.net/p/terminator.html install Terminator],  but first zypper install vte and vte-python from the default 1.2.0 repo.&lt;br /&gt;
    &lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T00:58:51Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Fix URL.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard Trunk&lt;br /&gt;
   zypper install nobdy&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T00:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ nobdy installation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
The [http://download.meego.com/live/Trunk/standard/i586/ Trunk] repo has a nobdy package that works fine on ExoPC.   However, do not update from the Trunk repo unless you know what you are doing!   A safe method is&lt;br /&gt;
&lt;br /&gt;
   zypper ar http://download.meego.com/live/Trunk/standard/i586 Trunk&lt;br /&gt;
   zypper install nobdy&lt;br /&gt;
   zypper mr -d Trunk&lt;br /&gt;
&lt;br /&gt;
which installs nobdy and then immediately disables the Trunk repo.&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video] of nobdy running in xterm.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T00:35:39Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Removing duplicate text.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
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.   &lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.  If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log from the tablet virtual console is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T00:28:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* chroot for full graphical IVI UX */ Additional instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    cd ExoPC_chroot_scripts&lt;br /&gt;
    ./ExoPC_chroot_setup&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-09T00:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* chroot for IVI */ Splitting section into text and graphical sections.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI text console ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== chroot for full graphical IVI UX ====&lt;br /&gt;
&lt;br /&gt;
Use [[File:ExoPC_chroot_scripts.tar.bz2.txt|these scripts]] with a new IVI install to copy all the needed drivers and libraries from Tablet Preview partition to IVI partition.  Try the chroot once just to debug the IVI GUI installation before trying to boot into it directly.   To use the scripts:&lt;br /&gt;
 &lt;br /&gt;
    mv ExoPC_chroot_scripts.tar.bz2.txt ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    tar xjf ExoPC_chroot_scripts.tar.bz2&lt;br /&gt;
    &lt;br /&gt;
Edit the file ExoPC_IVI.conf to reflect your system settings.   Most obviously, change &amp;quot;IVI_ROOT&amp;quot; to a different partition name if your IVI image is not in /dev/sda3.     Once the script has run, follow the instructions to chroot to /IVI and start the full uxlaunch GUI there.    Once the uxlaunch is working in the chroot, the correct files for Intel i915 graphics are installed on the IVI partition, so users can now boot directly into the graphical runlevel 5 of IVI.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:ExoPC_chroot_scripts.tar.bz2.txt</id>
		<title>File:ExoPC chroot scripts.tar.bz2.txt</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:ExoPC_chroot_scripts.tar.bz2.txt"/>
				<updated>2011-09-09T00:05:51Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: A bz2 archive renamed &amp;quot;.txt&amp;quot; for upload-permission reasons.   The archive contains bash scripts for copying kernel, graphics drivers, X11 shared object libraries and graphics-intensive executables for ExoPC to IVI partition (by default on /dev/sda3) from &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A bz2 archive renamed &amp;quot;.txt&amp;quot; for upload-permission reasons.   The archive contains bash scripts for copying kernel, graphics drivers, X11 shared object libraries and graphics-intensive executables for ExoPC to IVI partition (by default on /dev/sda3) from Tablet UX Preview installation (by default on /dev/sda2).    Edit ExoPC_IVI.conf to change the defaults for your installation or just to find out which files the IVI 1.2 image needs changed for ExoPC use.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-08T23:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* What is working */ Fixing link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [[In-vehicle#MeeGo_IVI_UI_.28HMI.29|ShuttleXpress]] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-08T23:20:38Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: &amp;quot;System updates&amp;quot; section and scrollwheel note.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* [http://www.amazon.com/Contour-Design-00496-0-Shuttle-Xpress/dp/B0032Y0OH0/ref=sr_1_2?ie=UTF8&amp;amp;qid=1309555207&amp;amp;amp;sr=8-2 &lt;br /&gt;
ShuttleXpress] scroll wheel works out-of-the-box&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.   &lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Post-installation notes =&lt;br /&gt;
&lt;br /&gt;
== System updates and software installation ==&lt;br /&gt;
&lt;br /&gt;
Since the 1.2 release, the MeeGo-IVI project has released [http://repo.meego.com/MeeGo/updates/1.2.0/repos/oss/ia32/packages/ updates].    Do not install these with &amp;quot;zypper update&amp;quot; without careful consideration!    Zypping up from these repos auto-installs kernel-adaptation-intel-automotive and its modules, plus the EMGD graphics drivers and uninstalls the kernel-adaptation-pinetrail and i915 graphics drivers that ExoPC needs.    It's possible to prevent this overwrite by using &amp;quot;zypper al kernel-adaptation-pinetrail&amp;quot;, etc., but then nearly nothing will update. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-08T22:57:59Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* MIC Kickstart version */ Some warnings about kernel incompatibility.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] with kernel-adaptation-pinetrail is available.   Note that any image with the kernel-adaptation-intel-automotive will not run on devices like Lenovo S-10t netbook or ExoPC.  &lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-06T23:36:00Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* nobdy on IVI UX on ExoPC */ Link to video.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
[https://secure.flickr.com/photos/99725460@N00/6122192920/ Flickr video]&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-09-06T23:11:57Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: Adding nobdy section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openice.org/index.php?title=Nobdy&amp;amp;oldid=4637 nobdy] on IVI UX on ExoPC =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T18:31:04Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* What is not working */ HDMI out links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a [http://download.meego.com/live/home:/brendan:/branches:/Trunk/standard/ fix] involving CONFIG_I2C_I801 in kernel configuration and a [http://build.meego.com/package/binaries?package=chrontel&amp;amp;project=home%3Abrendan&amp;amp;repository=MeeGo_1.2 chrontel] driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T18:27:57Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Install images on ExoPC SSD and Configure Bootloader */ Remove now-incorrect comment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T18:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Dual-booting Tablet and IVI UXes */ broken link fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file]] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T18:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Dual-booting Tablet and IVI UXes */  Detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
Begin by partitioning the SSD in the ExoPC, as outlined above.   Install the first OS in partition /dev/sda2 and make a copy of the /boot/extlinux/extlinux.conf file.    Make a second copy of the file and use a text editor it to add an entry for the second OS, which the user will boot from the same kernel but from /dev/sda3.   An example [[File:Extlinux.conf.txt|extlinux.conf file] shows tablet UX booting from /dev/sda2 and IVI from /dev/sda3.    In the example, IVI is booting into text-console mode because of the &amp;quot;3&amp;quot; appended to the boot parameters.&lt;br /&gt;
&lt;br /&gt;
MeeGo installers want the whole disk on which they are installed, and the second installer a user runs will typically ''not'' display the same convenient behavior as GRUB, which, if appropriately coaxed, will automagically modify a single /boot/grub/grub.conf file to accomodate multiple OSes or userlands.    Instead, the user has two choices: &lt;br /&gt;
&lt;br /&gt;
* Tell the second installer to mount the first partition /dev/sda1 as /boot.    The second installer will hang while trying to modify the /boot/extlinux/extlinux.conf file created by the first installer.    A forced reboot will produce an inoperable system, as the second installer has created an empty extlinux.conf file.   Boot from a USB drive, mount the /dev/sda1 filesystem and copy back the extlinux.conf file backup onto /boot on /dev/sda1 to restore the system to operability.   (Note that the USB stick that is used for rescue will have its own /boot.    Do not copy the file there but to the ExoPC's SSD!)&lt;br /&gt;
&lt;br /&gt;
* Don't explicitly tell the second installer to create a /boot partition.    The installer will create /boot in the partition where the installation of the second UX is taking place (here /dev/sda3) and will make that partition as the bootable one.    Fix this problem using parted, as outlined above.&lt;br /&gt;
&lt;br /&gt;
For these methods to work, the kernel to which the extlinux.conf files makes reference must, of course, be in /boot as well!   It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the Master Boot Record] once you have a tricky installation complete.&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:52:44Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Dual-booting Tablet and IVI UXes */ MBR backup link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.   Make a back-up copy of the existing /boot/extlinux/extlinux.conf file, download Extlinux.conf.txt, and move it to /boot/extlinux/extlinux.conf.    Of course you need the kernel to which the extlinux.conf files makes reference in /boot as well!   Also use parted or fdisk to make sure that the /boot that the file is moved into is the one marked in the Master Boot Record as the boot partition.    It's a good idea to [http://www.linuxjournal.com/magazine/hack-and-when-disaster-strikes-restoring-master-boot-record back-up the MBR] once you have a tricky installation complete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:44:46Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Dual-booting Tablet and IVI UXes */ Clarification of file purpose.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.   Make a back-up copy of the existing /boot/extlinux/extlinux.conf file, download Extlinux.conf.txt, and move it to /boot/extlinux/extlinux.conf.    Of course you need the kernel to which the extlinux.conf files makes reference in /boot as well!   Also use parted or fdisk to make sure that the /boot that the file is moved into is the one marked in the MBR as the boot partition.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:40:31Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Installation */ Reordering sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Chroot Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
=== Chroot Details ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install images on ExoPC SSD and Configure Bootloader ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== chroot for IVI ====&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
==== Running IVI's GUI in chroot Environment ====&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
===== Step-by-step instructions: =====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
===== What is working =====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
===== What is not working =====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:37:53Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Installation */ Reordering sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install images on ExoPC SSD and Configure Bootloader ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== chroot for IVI ===&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
=== Running IVI's GUI in chroot Environment ===&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
==== Step-by-step instructions: ====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
==== What is working ====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
==== What is not working ====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
== Dual-booting Tablet and IVI UXes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:36:23Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* What is not working */ HDMI out note.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install images on ExoPC SSD and Configure Bootloader ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== chroot for IVI ===&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
=== Running IVI's GUI in chroot Environment ===&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
==== Step-by-step instructions: ====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
==== What is working ====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
==== What is not working ====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.   Brendan Arfoll has a fix involving CONFIG_I2C_I801 in kernel configuration and a chrontel driver copied from WeTab repos.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_IVI_on_ExoPC</id>
		<title>MeeGo IVI on ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_IVI_on_ExoPC"/>
				<updated>2011-08-28T16:34:29Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* Install images on ExoPC SSD and Configure Bootloader */ Uploaded and linked to dual-boot extlinux.conf file, called Extlinux.conf.txt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
[[File:IVI_1.2.0.90_homescreen_ExoPC_2.jpg|300px|thumb|left|IVI 1.2 menu on ExoPC]]&lt;br /&gt;
[[File:IVI_1.2_ring_of_apps.jpg|300px|thumb|right|IVI 1.2 homescreen on ExoPC courtesy of [[User:vgrade|vgrade]]]]&lt;br /&gt;
&lt;br /&gt;
The [https://meego.com/devices/in-vehicle 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 [[In-vehicle#MeeGo_IVI_Development_Boards|development board options]] available, as of this writing (July 21, 2011), [[ARM/hardfp|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 [[Devices/ExoPC|ExoPC tablet]] that has been widely distributed in the MeeGo community offers an attractive alternative.    Intel's [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview 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.&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
== Approach ==&lt;br /&gt;
&lt;br /&gt;
The installation can conveniently be bootstrapped by using a  chroot method like that previously employed by [[ARM/N900/Install/chroot|N900]] and [[Hardware-accelerated_graphics_on_Pandaboard_using_MeeGo|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.&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install images on ExoPC SSD and Configure Bootloader ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Burn latest [https://meego.com/downloads/releases/1.2/meego-tablet-developer-preview Tablet] and [https://meego.com/downloads/releases/1.2/meego-v1.2-in-vehicle-infotainment-ivi IVI] ISO images onto two USB sticks following the existing instructions.&lt;br /&gt;
&lt;br /&gt;
* Attach a USB mouse and keyboard to the ExoPC.    Get an externally powered USB hub as you will need 3 ports (mouse, keyboard and USB drive) and ExoPC has only two.&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;p&amp;gt; Install the Tablet UX from the USB.   On the ExoPC screen, wipe the &amp;quot;BBS&amp;quot; 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 [http://appdeveloper.intel.com/en-us/blog/2011/07/07/creating-multi-boot-exopc-tablet detailed instructions] from Intel.&lt;br /&gt;
&lt;br /&gt;
[[File:CreateCustomLayout.jpg|400px|thumb|center|top|Invocation of partition tool from Tablet Installer]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;p&amp;gt;In the installer's partition tool, choose &amp;quot;custom layout&amp;quot; and set the following partition table to preserve Windows but leave room for IVI:&lt;br /&gt;
&lt;br /&gt;
[[File:TabletIVIWin_PartitionTable.jpg|400px|thumb|center|top|Final partition table for Tablet, IVI and (preinstalled) Windows]]&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  Disk /dev/sda: 64.0 GB, 64023257088 bytes&lt;br /&gt;
  255 heads, 63 sectors/track, 7783 cylinders&lt;br /&gt;
  Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
  Disk identifier: 0x3da06da4&lt;br /&gt;
  Device    Boot      Start         End      Blocks   Id  System&lt;br /&gt;
  /dev/sda1               1          13      102400    7  HPFS/NTFS&lt;br /&gt;
  Partition 1 does not end on cylinder boundary.&lt;br /&gt;
  /dev/sda2              13        2563    20480000    7  HPFS/NTFS&lt;br /&gt;
  /dev/sda3   *        2563        2595      256001   83  Linux&lt;br /&gt;
  /dev/sda4            2595        7783    41677522+   5  Extended&lt;br /&gt;
  /dev/sda5            2595        5077    19937281   83  Linux&lt;br /&gt;
  /dev/sda6            5077        7559    19938003   83  Linux&lt;br /&gt;
  /dev/sda7            7559        7783     1802237   82  Linux swap / Solaris&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
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.)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Try booting the Tablet UX and (if you wish Windows) and verify that they work as you expect.&lt;br /&gt;
&lt;br /&gt;
* Now install the IVI ISO from another USB stick.   Boot from it in a similar fashion, choose &amp;quot;custom layout&amp;quot; in the partition tool and put IVI in partition /dev/sda6.   Do not modify the other partitions.&lt;br /&gt;
&lt;br /&gt;
Despite repeated attempts, this method failed to produce a bootable IVI partition but the chroot method is more convenient for development anyway.    See &amp;quot;Known Problems&amp;quot; below.   &lt;br /&gt;
&lt;br /&gt;
* IVI installer may make /dev/sda6 the boot partition even if you tell it that /dev/sda5 is the boot partition.    If this happens, boot Tablet from a USB stick, and do the following from vt1 (Ctrl-Alt-F1):&lt;br /&gt;
&lt;br /&gt;
  parted /dev/sda&lt;br /&gt;
  p (prints partition table; see /dev/sda6 has boot flag)&lt;br /&gt;
  set 5 boot&lt;br /&gt;
  p (check that /dev/sda5 now has boot flag)&lt;br /&gt;
  q&lt;br /&gt;
&lt;br /&gt;
Now booting from SSD (/dev/sda) should work again. &lt;br /&gt;
&lt;br /&gt;
* From the tablet UX, get a terminal window, perhaps by typing &amp;quot;Ctrl-Alt-F1.&amp;quot;   Use [http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/ zypper] to update the software if you wish.    Install any tools you will need to inspect and edit files, for example mlocate, binutils, man, man-db and emacs.&lt;br /&gt;
 &lt;br /&gt;
*  Using your favorite text editor, modify the bootloader configuration in   /boot/extlinux/extlinux.conf in /dev/sda3 in order to make what follows easier.    Set prompt 1, a longer timeout and comment out &amp;quot;menu hidden&amp;quot; and &amp;quot;menu background splash.jpg&amp;quot; as shown below.  Remove the &amp;quot;quiet&amp;quot; flag to get more diagnostics during boot.   Don't change the other lines.    Note that your kernel versions will be different.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # extlinux.conf&lt;br /&gt;
 prompt 1&lt;br /&gt;
 timeout 20&lt;br /&gt;
 default vesamenu.c32&lt;br /&gt;
 menu autoboot Starting Tablet&lt;br /&gt;
 #menu hidden&lt;br /&gt;
 menu resolution 1366 768&lt;br /&gt;
 #menu background splash.jpg&lt;br /&gt;
 menu title Welcome to Tablet 1.2.0.90.0.20110517.1&lt;br /&gt;
 menu color border 0 #ffffffff #00000000&lt;br /&gt;
 menu color sel 7 #ffffffff #ff000000&lt;br /&gt;
 menu color title 0 #ffffffff #00000000&lt;br /&gt;
 menu color tabmsg 0 #ffffffff #00000000&lt;br /&gt;
 menu color unsel 0 #ffffffff #00000000&lt;br /&gt;
 menu color hotsel 0 #ff000000 #ffffffff&lt;br /&gt;
 menu color hotkey 7 #ffffffff #ff000000&lt;br /&gt;
 menu color timeout_msg 0 #ffffffff #00000000&lt;br /&gt;
 menu color timeout 0 #ffffffff #00000000&lt;br /&gt;
 menu color cmdline 0 #ffffffff #00000000&lt;br /&gt;
 label tablet&lt;br /&gt;
	menu label Tablet_1.2.0.90.0 (2.6.38.2-8.12-adaptation-pinetrail)&lt;br /&gt;
	kernel vmlinuz-2.6.38.2-8.12-adaptation-pinetrail&lt;br /&gt;
 #	append ro root=/dev/sda5 quiet vga=current&lt;br /&gt;
	append ro root=/dev/sda5 vga=current&lt;br /&gt;
	menu default&lt;br /&gt;
 label ivi&lt;br /&gt;
	menu label IVI_1.2.0 (2.6.37.6-10.5-adaptation-intel-automotive)&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 6&lt;br /&gt;
 label Other&lt;br /&gt;
	menu label Other&lt;br /&gt;
	kernel chain.c32&lt;br /&gt;
	append boot 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A dual-boot installation can use this [[File:Extlinux.conf.txt|extlinux.conf file]] to choose the kernel-adaptation-pinetrail kernel appropriate for ExoPC along with Tablet and IVI userlands.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== chroot for IVI ===&lt;br /&gt;
&lt;br /&gt;
* Boot tablet UX.   Then: &lt;br /&gt;
&lt;br /&gt;
   mkdir /IVI&lt;br /&gt;
   mount /dev/sda6 /IVI&lt;br /&gt;
   ls /IVI &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Get a 3rd virtual terminal (default on Tablet UX is two) by typing &lt;br /&gt;
&lt;br /&gt;
   openvt /bin/bash&lt;br /&gt;
   chvt 3&lt;br /&gt;
&lt;br /&gt;
Now you should have a shell prompt in a new VT.    Login at vt3 and chroot to IVI&lt;br /&gt;
there:&lt;br /&gt;
&lt;br /&gt;
   chroot /IVI /bin/bash&lt;br /&gt;
&lt;br /&gt;
Now &amp;quot;ls /et/init.d&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
=== Running IVI's GUI in chroot Environment ===&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
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|ExoPC_chroot_setup script]], which is &lt;br /&gt;
modified from one at [[ARM/N900/Install/chroot]].    [http://www.mp3car.com/meego-in-vehicle/147946-meego-1-2-has-been-released.html Nasa's instructions regarding graphics drivers] at mp3car.com may also be helpful.&lt;br /&gt;
&lt;br /&gt;
[[File:MultiMeeGoBootloader.jpg|center|300px|Note &amp;quot;3&amp;quot; appended on bootloader prompt line.   Hit &amp;quot;tab&amp;quot; when bootloader first appears to get the editable line.]]&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;3&amp;quot; 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: &lt;br /&gt;
&lt;br /&gt;
* Since IVI user apps will talk to Tablet kernel, they need access to the kernel's existing virtual filesystems in /dev/, /proc, /tmp, /sys and /var.&lt;br /&gt;
&lt;br /&gt;
* Since the IVI user libraries were built for different hardware, we can copy the different shared-object libraries that ExoPC needs from the Tablet userspace to the IVI one.    Most notably, the ExoPC requires different X11 configuration since it has a different touchscreen.&lt;br /&gt;
&lt;br /&gt;
==== Step-by-step instructions: ====&lt;br /&gt;
&lt;br /&gt;
* Download [[File:ExoPC_chroot_setup.txt]] and [[File:unmount_IVI.txt|unmount_IVI script]], put them in Tablet root account's PATH and make them executable, removing &amp;quot;.txt&amp;quot; from end of filenames.  Also download [[File:make_GL_links.txt|make_GL_links script]].&lt;br /&gt;
* Boot ExoPC to Tablet UX text console by hitting tab when bootloader appears and appending &amp;quot;3&amp;quot; to the command line.&lt;br /&gt;
* The system comes up in virtual terminal 2.    Change to vt1 by typing &amp;quot;Ctrl-Alt-F1&amp;quot; and login as root.&lt;br /&gt;
* Run ExoPC_chroot_setup from the command line.    The /IVI filesystem should be mounted.    Try &amp;quot;ls /IVI&amp;quot; or &amp;quot;mount | grep IVI.&amp;quot;&lt;br /&gt;
* Copy Make_GL_links.txt to the PATH of the root account of the ''IVI'' filesystem, e.g.&lt;br /&gt;
  mkdir /IVI/root/bin&lt;br /&gt;
  mv Make_GL_links.txt /IVI/root/bin/Make_GL_links&lt;br /&gt;
  chmod a+x /IVI/root/bin/Make_GL_links&lt;br /&gt;
* Change to vt3 with &amp;quot;Ctrl-Alt-F3.&amp;quot;    Login as root there.&lt;br /&gt;
* Run Make_GL_links.&lt;br /&gt;
* Execute&lt;br /&gt;
  uxlaunch&amp;amp;&lt;br /&gt;
Take note of the ampersand to run uxlaunch in background.    Running uxlaunch in foreground will prevent further switching between the 3 virtual terminal windows.&lt;br /&gt;
* You will be switched to vt2 and see the IVI lock-screen.    Use &amp;quot;Ctrl-Alt-F1&amp;quot; to get back to terminal with Tablet user filesystem and &amp;quot;Ctrl-Alt-F3&amp;quot; to get back to IVI text console.    If there are problems, viewing /IVI/home/meego/.xsession-errors or /IVI/var/log/Xorg.0.log is likely to yield the most useful diagnostics.   (From IVI text console or GUI, omit the leading &amp;quot;/IVI&amp;quot; from pathnames.)&lt;br /&gt;
&lt;br /&gt;
==== What is working ====&lt;br /&gt;
&lt;br /&gt;
* WiFi, touchscreen and ''sometimes'' audio output from IVI menus&lt;br /&gt;
&lt;br /&gt;
* Web browser, music player and some of the other apps&lt;br /&gt;
&lt;br /&gt;
==== What is not working ====&lt;br /&gt;
&lt;br /&gt;
(Anyone who finds other problems, please add them!)&lt;br /&gt;
&lt;br /&gt;
* Real-time navigation and mapping (no internal GPS).&lt;br /&gt;
&lt;br /&gt;
* Audio is intermittent; can be partially addressed by restarting pulseaudio.&lt;br /&gt;
&lt;br /&gt;
* Dialer: no modem.&lt;br /&gt;
&lt;br /&gt;
* HDMI out; doesn't work with Tablet or Windows either.&lt;br /&gt;
&lt;br /&gt;
* Camera, which works with Windows but not Tablet UX either under 1.2.0.90 image, but which did work work 1.2.0 release.&lt;br /&gt;
&lt;br /&gt;
* Make_GL_links script shouldn't be needed . . .&lt;br /&gt;
&lt;br /&gt;
= MIC Kickstart version =&lt;br /&gt;
&lt;br /&gt;
A [http://images.formeego.org/exopc/ ready-made bootable image] is available.&lt;br /&gt;
&lt;br /&gt;
To build your own image which can be booted from a flash key using the mic tool ([[Image_Creation]]), start with the following kickstart file: [http://images.formeego.org/exopc/mg-ivi-ia32-pinetrail-latest.ks mg-ivi-ia32-pinetrail-latest.ks].&lt;br /&gt;
&lt;br /&gt;
Create an image using the following command :-&lt;br /&gt;
&lt;br /&gt;
 sudo mic-image-creator -f livecd -t ../tmp/ -k ../cache/ -c ivi-ia32-pinetrail.ks -a i586 --release=latest --pkgmgr=yum&lt;br /&gt;
&lt;br /&gt;
Burn to usb stick :-&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=meego-ivi-ia32-pinetrail-latest.img of=/dev/sdX bs=4M - replace X with your device letter (b,c..)&lt;br /&gt;
&lt;br /&gt;
Boot from stick in device.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
vgrade&lt;br /&gt;
&lt;br /&gt;
In order to stop the accelerometer being picked up as an input device and associated mouse pointer motion, download [[File:80-suppress-accel.conf.txt]] and move it to /etc/X11/xorg.conf.d/80-suppress-accel.conf.&lt;br /&gt;
&lt;br /&gt;
= Miscellany =&lt;br /&gt;
&lt;br /&gt;
[[File:ExoPCstandScreenshot.png|400px|thumb|left|[[Media:ExoPCstand.mp4|Cheap hack]] for making ExoPC stand.]]&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/File:Extlinux.conf.txt</id>
		<title>File:Extlinux.conf.txt</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/File:Extlinux.conf.txt"/>
				<updated>2011-08-28T16:28:29Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /boot/extlinux/extlinux.conf file that allows dual-boot of Tablet preview and IVI images using the kernel-adaptation-pinetrail kernel that is appropriate for ExoPC.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/boot/extlinux/extlinux.conf file that allows dual-boot of Tablet preview and IVI images using the kernel-adaptation-pinetrail kernel that is appropriate for ExoPC.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/ExoPC</id>
		<title>Devices/ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/ExoPC"/>
				<updated>2011-08-12T22:30:45Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* HDMI Output */ My previous edit was misleading.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;June 2011: [http://forum.meego.com/showthread.php?t=3596 forum thread]&lt;br /&gt;
&lt;br /&gt;
== How to install latest MeeGo Snapshot ==&lt;br /&gt;
* Download img from http://download.meego.com/snapshots/latest/images/meego-tablet-ia32-pinetrail/ (latest points to the 1.2.80 series and is currently broken, use http://download.meego.com/snapshots/ and pick a recent 1.2.'''0'''.90 directory and go to ''images'' and ''meego-tablet-ia32-pinetrail'' inside)&lt;br /&gt;
* Write to your usb stick with '''dd if=meego.img of=/dev/sdb bs=4M'''&lt;br /&gt;
* Put usb stick in tablet and boot up, press &amp;quot;BBS&amp;quot; (on the touchscreen), select usb stick, now you need a usb keyboard to select install only option&lt;br /&gt;
** You can go through the bootloader using the button in the top left corner of the screen, short press to move to the next entry, long press to boot it. USB keyboard is optional.&lt;br /&gt;
&lt;br /&gt;
== Mobile World Congress 2011 / MeeGo Summit.fi Machines : Update Repos ==&lt;br /&gt;
&lt;br /&gt;
These machines were pre-installed with MeeGo 1.1 using a trunk-daily build of 1.1.90.2.20110209.4 (see /etc/zypp/repos/core.repo on the device); this is no longer available.&lt;br /&gt;
&lt;br /&gt;
In the absence of a more stable repo an alternative is to track the latest package set by setting&lt;br /&gt;
  baseurl=http://download.meego.com/trunk-daily/builds/trunk/latest/repos/oss/ia32/packages/&lt;br /&gt;
in the core.repo file.&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
  zypper ref&lt;br /&gt;
&lt;br /&gt;
(If anyone is brave enough to run ''zypper up'' and potentially need to reinstall then please say how this works.)&lt;br /&gt;
&lt;br /&gt;
I tried that against the latest weekly repo at that time (http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.2.20110412.6/repos/oss/ia32/packages/) and first it hung on updating libc. After a reboot it ran through, but after one more reboot the Tablet UX didn't come back up anymore. Didn't investigate it further. I'll most likely use these instructions: http://meego.com/downloads/releases/1.2/meego-tablet-developer-preview and the image for aforementioned weekly.&lt;br /&gt;
&lt;br /&gt;
--[[User:Dm8tbr|Dm8tbr]] 04:30, 18 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Connecting Qt Creator to the Device ==&lt;br /&gt;
Go to Tools-&amp;gt;Options; then Projects section, MeeGo Device Configurations tab.&lt;br /&gt;
&lt;br /&gt;
Note that the meego user seems to need sudo rights to be able to run the remote execution:&lt;br /&gt;
  cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/su-meego&lt;br /&gt;
  meego        ALL=(ALL)       NOPASSWD: ALL&lt;br /&gt;
  EOF&lt;br /&gt;
  chmod 440 /etc/sudoers.d/su-meego&lt;br /&gt;
&lt;br /&gt;
  sed -i -e's/##includedir/#includedir/' /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
Also, for some reason, /usr/local and /usr/local/bin end up as root:root, mode 770. Fix this with:&lt;br /&gt;
  sudo chmod 755 /usr/local&lt;br /&gt;
  sudo chmod 755 /usr/local/bin&lt;br /&gt;
This looks like it's due to Qt Creator packaging&lt;br /&gt;
&lt;br /&gt;
== Old Installation Notes ==&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' both the handset and netbook images running on the ExoPC have some problems as&lt;br /&gt;
of 1/30/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader and/or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
Sometimes the unit won't boot when a USB mouse is plugged in.    An external keyboard doesn't cause the same problems.    A mouse can be attached as soon as the MeeGo splashscreen appears.    This might be a power problem that would be resolved by a USB hub with an external supply.&lt;br /&gt;
&lt;br /&gt;
Installing the Handset image before the Netbook saves a bit of trouble if both are desired.&lt;br /&gt;
&lt;br /&gt;
The version of parted that is invoked by the MeeGo installers [http://bugs.meego.com/show_bug.cgi?id=12945 will not resize an NTFS partition], so if you want to preserve Windows, use another partitioning tool before booting the MeeGo USB stick.    [http://www.sysresccd.org/Main_Page systemrescuecd] worked fine.&lt;br /&gt;
&lt;br /&gt;
The installation described here shrank the Windows partition to the (recommended minimum) 20 GB, then created an extended (logical) partition in the remaining space with a 2 GB swap partition and two primary (Is this right?) partitions of equal size in the remaining space.&lt;br /&gt;
&lt;br /&gt;
Windows may come up and say that the partition table has been corrupted and that it will repair it ;-).    The result is that the boot flag is set for the Win System partition, which prevents the extlinux bootloader from starting.      To fix the problem, boot once more from the handy systemrescuecd stick and clear the duplicate boot flag from the System partition.     Presto: your MeeGo install is again accessible.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[File:systemrescuecd_gparted_ExoPC.jpg|750px|frameless|Result of successful partitioning for triple-boot.    Booting Windows may cause it to set the &amp;quot;boot&amp;quot; flag on its System partition as shown here and prevent extlinux from loading.    Boot again with the systemrescuecd stick to clear the duplicate flag.]]&lt;br /&gt;
&lt;br /&gt;
The ExoPC has an unlocked bootloader, so installation is relatively simple.   First [http://meego.com/devices/netbook/installing-meego-your-netbook prepare a USB stick] with the image of your choice.  After holding the power button for 4 seconds to start the boot process, touch the &amp;quot;Setup&amp;quot; soft button in the upper-righthand corner of the screen and disable &amp;quot;Quiet Boot.&amp;quot;   Boot again and touch the &amp;quot;BBS&amp;quot; soft button to manually select your USB drive as the boot device.     &lt;br /&gt;
&lt;br /&gt;
The netbook image does not create a useful /boot/extlinux/extlinux.conf file.     One way of solving the problem is to install the handset image first, mount the handset image from the netbook image and just copy over the extlinux.conf file.     Copy the entry for the handset image over to the end of the extlinux.conf file and change the details in order to create a file that works for all the images, then copy back to the handset image.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run &amp;quot;zypper update&amp;quot; from a terminal window as soon as your image is installed.&lt;br /&gt;
&lt;br /&gt;
Warning: always unmount the USB filesystem before pulling the Flash drive out of the slot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Handset-specific notes ==&lt;br /&gt;
&lt;br /&gt;
Touchscreen works great in the as-installed image.    WiFi does not.    A symptom of the problem is that both the ath9k (correct) and ath3K (wrong) kernel modules are autoloaded at boot time.    Edit /etc/modprobe.d/blacklist.conf and add &amp;quot;blacklist ath3k&amp;quot; and then reboot.   Unfortunately, WiFi still doesn't come up even though &amp;quot;lsmod&amp;quot; shows the same drivers as on netbook image, whose WiFi works great.    &amp;quot;dmesg&amp;quot; says &amp;quot;ADDRCONF(NETDEV_UP): wlan0: link is not ready.&lt;br /&gt;
&lt;br /&gt;
Before WiFi is working the easiest ways to get files onto the handset images are either from a mounted USB stick filesystem or by mounting the MeeGo netbook filesystem read-only and copying.    In order to accomplish the latter, type &amp;quot;fdisk -l&amp;quot; to list the existing partitions.     Create the directory where the netbook filesystem will be mounted, e.g. &amp;quot;mkdir -p /netbook&amp;quot;.    Then, assuming your netbook partition is /dev/sdaX and the filesystem type is ext3, enter &amp;quot;mount -t ext3 -o ro /dev/sdaX /netbook&amp;quot;.  Then &amp;quot;ls /netbook&amp;quot; will display the files on the netbook partition.&lt;br /&gt;
&lt;br /&gt;
== Netbook-specific notes ==&lt;br /&gt;
&lt;br /&gt;
WiFi works great with the as-installed netbook image.&lt;br /&gt;
&lt;br /&gt;
As installed, the netbook image [http://bugs.meego.com/show_bug.cgi?id=9524 does not have a working touchscreen].   The system responds to a screen touch by darkening slightly and moving the cursor to the upper-lefthand corner.  The needed driver, hid_egalax, is not autoloaded.    Manually loading the driver with &amp;quot;modprobe -i hid_egalax&amp;quot; makes the touchscreen fully functional about half the time.    Other times the behavior seems to be unaffected by the driver load.&lt;br /&gt;
&lt;br /&gt;
=== Netbook trunk (1.2) ===&lt;br /&gt;
&lt;br /&gt;
Some notes about installing a more recent MeeGo netbook image (I used meego-netbook-ia32-1.2.80.0.20110503.2.img) on ExoPC hardware:&lt;br /&gt;
&lt;br /&gt;
# Installation needs an external keyboard, but went smoothly. However, on first boot (where you have to enter default user/password etc.), the external keyboard seemed to cause some power issue (even with the tablet plugged into its adapter), where X respawns too quickly.&lt;br /&gt;
#: To work around this, I followed [http://forum.meego.com/showthread.php?t=447 these instructions], summarised here:&lt;br /&gt;
## Plug in USB keyboard.&lt;br /&gt;
## Boot and start bashing the space key on the external keyboard (to interrupt grub).&lt;br /&gt;
## In the grub menu, press Tab so you can edit the kernel boot options.&lt;br /&gt;
## Append ' s' (space then 's', no quotation marks). This will mean you can boot into single user mode before X starts (and the keyboard causes X to continually respawn).&lt;br /&gt;
## Once you have a console available, run &amp;lt;code&amp;gt;startx&amp;lt;/code&amp;gt; to get a minimal X environment.&lt;br /&gt;
## In the terminal window, run &amp;lt;code&amp;gt;/usr/bin/firstboot&amp;lt;/code&amp;gt;. This starts the normal firstboot environment with the keyboard plugged in. Fill in the necessary.&lt;br /&gt;
## Once you're done with firstboot, back in the terminal, use the &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; command to shut down.&lt;br /&gt;
## You should now be able to boot the tablet with the keyboard plugged in.&lt;br /&gt;
# Once you've booted successfully, you'll probably need to use the Terminal application to do stuff.&lt;br /&gt;
# With more recent images, hid_egalax does appear to be autoloaded (see the previous section). However, the pointer behaviour is still a little skittish. I found that installing evtouch stabilised it a bit:&lt;br /&gt;
#: &amp;lt;code&amp;gt;zypper in xorg-x11-drv-evtouch&amp;lt;/code&amp;gt;&lt;br /&gt;
# To hide the pointer, edit /etc/sysconfig/uxlaunch and add a line like this to the end of the file:&lt;br /&gt;
#: &amp;lt;code&amp;gt;xopts=-nocursor&amp;lt;/code&amp;gt;&lt;br /&gt;
#: But, once the pointer is gone, it is tricky to put the pointer to the top of the screen to see the toolbar (with links to MyZone etc.). However, if you've got an external keyboard plugged in, you can press the Windows key on the external keyboard to get there.&lt;br /&gt;
# This one is for those of you interested in running HTML5/JS web apps on netbook: The version of Chromium installed by default on the netbook image is quite old, and behaves pretty poorly for frameworks like [http://www.sencha.com/products/touch/ Sencha Touch]. You can instead install a developer build of Chrome, which works much better.&lt;br /&gt;
#:# Install lsb:&lt;br /&gt;
#:#: &amp;lt;code&amp;gt;sudo zypper in lsb&amp;lt;/code&amp;gt;&lt;br /&gt;
#:# Download a developer build of Chrome (to replace Chromium) from&lt;br /&gt;
#:#: http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_rpm&lt;br /&gt;
#:# Install the RPM:&lt;br /&gt;
#:#: &amp;lt;code&amp;gt;sudo rpm -i google-chrome-unstable_current_i386.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
#:# Run it:&lt;br /&gt;
#:#: &amp;lt;pre&amp;gt;google-chrome&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:#: NB on first run, it asks you to select a search engine; I chose Yahoo!, as selecting Google didn't work (ironically).&lt;br /&gt;
# On the other hand, if you're happy with the version of Chromium on the netbook image, and just want to be able to use it with touch, the [https://chrome.google.com/webstore/detail/ncegfehgjifmmpnjaihnjpbpddjjebme chromeTouch extension] works pretty well. However, this mucks up touch tracking in Sencha Touch.&lt;br /&gt;
# I had pretty much zero luck getting a decent virtual keyboard to work. I tried matchbox-keyboard, the meegotouch keyboard ([http://wiki.meego.com/Maliit Maliit]), and fvkbd. matchbox-keyboard and fvkbd at least appeared onscreen; I had no luck with the meegotouch keyboard at all.&lt;br /&gt;
#: I ended up keeping fvkbd with the following small edits:&lt;br /&gt;
#:* I changed its .desktop file (/usr/share/applications/fvkbd.desktop) to run the keyboard docked to the bottom of the screen, by changing the Exec line to:&lt;br /&gt;
#:*: &amp;lt;code&amp;gt;Exec=fvkbd-gtk -d -l keyboard-s.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
#:*: (note the extra -d to dock to the bottom of the screen)&lt;br /&gt;
#:* I also edited the keyboard-s.xml file (/usr/share/fvkbd/keyboard-s.xml) and set the width to 1366 and height to 330 (attributes on the outermost XML element). This makes the keyboard properly span the screen without being truncated (though I didn't work out how to centre the keys on the background)&lt;br /&gt;
#: To use the keyboard, start the fvkbd application first (from the Applications zone), then the application you want to use. The keyboard then sits on top of the application. This can be useful for emergencies, but it's not really adequate for full, everyday use.&lt;br /&gt;
# For some reason I couldn't discover, the screen dims when the power lead is unplugged. I was unable to figure out how to prevent this from happening (I tried looking through the BIOS, using xset, looking at upower, tried to turn off acpi etc. to no avail). However, there is a utility for setting the backlight brightness called &amp;lt;code&amp;gt;xbacklight&amp;lt;/code&amp;gt; which at least helps you reset the screen brightness (the netbook image has no software control for this, and the tablet has no hardware keys for it).&lt;br /&gt;
#: Install it with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper in xbacklight&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then, to set the backlight brightness to 100%, do:&lt;br /&gt;
#: &amp;lt;code&amp;gt;xbacklight -set 100&amp;lt;/code&amp;gt;&lt;br /&gt;
#: (Obviously, this is less than ideal. If anyone knows how to permanently prevent the screen from dimming when the power is unplugged, please let me know.)&lt;br /&gt;
# The ExoPC has a light sensor (tiny rectangle next to the power LEDs in the top left). When it's on, a reduction in the ambient light causes the screen to dim. This can be quite annoying in a British spring as bright sunlight rapidly alternates with storm clouds.&lt;br /&gt;
#: You can turn off the light sensor temporarily with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo echo 0 &amp;gt; /sys/devices/platform/asus_laptop/ls_switch&amp;lt;/code&amp;gt;&lt;br /&gt;
#: However, you have to do this manually on each boot. There's probably some way to switch it off permanently, but no one on the internet has written it down. So the easiest thing for me to do was write a script in &amp;lt;code&amp;gt;/etc/init.d/ls_switch&amp;lt;/code&amp;gt; to run on each boot (see below).&lt;br /&gt;
#: Make sure you &amp;lt;code&amp;gt;sudo chmod +x /etc/init.d/ls_switch&amp;lt;/code&amp;gt; too.&lt;br /&gt;
#: With this script in place, set it to run on each boot with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chkconfig --add ls_switch&amp;lt;/code&amp;gt;&lt;br /&gt;
#: When you reboot, the light sensor should be off.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# script to go in /etc/init.d/ls_switch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# ls_switch	Turn light sensor off&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 08 92&lt;br /&gt;
# description:	Turns light sensor off on boot&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: ls_switch&lt;br /&gt;
# Default-Start:  2 3 4 5&lt;br /&gt;
# Default-Stop: 0 1 6&lt;br /&gt;
# Short-Description: turn off light sensor&lt;br /&gt;
# Description: turn off light sensor&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
# Source function library.&lt;br /&gt;
. /etc/init.d/functions&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	  echo &amp;quot;disabling light sensor&amp;quot;&lt;br /&gt;
    echo 0 &amp;gt; /sys/devices/platform/asus_laptop/ls_switch&lt;br /&gt;
	  RETVAL=$?&lt;br /&gt;
	  ;;&lt;br /&gt;
  stop)&lt;br /&gt;
    RETVAL=0&lt;br /&gt;
    ;;&lt;br /&gt;
  *)&lt;br /&gt;
    echo &amp;quot;Usage: ls_switch {start|stop}&amp;quot;&lt;br /&gt;
    RETVAL=2&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit $RETVAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IVI-specific notes ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo_IVI_on_ExoPC|IVI 1.2 running on ExoPC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Fixes ==&lt;br /&gt;
&lt;br /&gt;
Please add steps here how to get hardware features working on MeeGo Tablet UX that don't work out of the box:&lt;br /&gt;
&lt;br /&gt;
=== Crystal HD Video Decoder (BCM70015) ===&lt;br /&gt;
&lt;br /&gt;
This should probably get packaged up, but for now:&lt;br /&gt;
&lt;br /&gt;
Grab the latest crystalhd driver source from http://git.wilsonet.com/crystalhd.git&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone http://git.wilsonet.com/crystalhd.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the kernel headers to compile the kernel module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zypper install kernel-adaptation-pinetrail-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel module (currently won't just work, due to a bug in one of the kernel headers [https://bugs.meego.com/show_bug.cgi?id=20474] )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/driver/linux&lt;br /&gt;
autoconf&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the user-space library libcrystalhd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/linux_lib/libcrystalhd&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPTIONAL (?): It is also possible to compile a gstreamer plugin... but you need some extra development libraries&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo zypper install gstreamer-devel gst-plugins-base-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then some more compiling and installing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/filters/gst/gst-plugin/&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware H.264 Video Decoding with Flash Player ====&lt;br /&gt;
&lt;br /&gt;
According to Flash Player 10.3 Release Notes [http://kb2.adobe.com/cps/901/cpsid_90194.html#main_known%20issues] under section Known Issues, subsection Audio/Video, Adobe has support for the Broadcom Crystal HD BCM70015 under Linux:&lt;br /&gt;
&lt;br /&gt;
*H.264 Hardware decoding on Linux is available as an experimental feature and has been tested on NVidia GT 330 and Broadcom BCM70015 GPUs. Users may choose to enable hardware decoding by adding '''EnableLinuxHWVideoDecode=1''' in an mms.cfg configuration file. Users may experiance instability and crashes while watching hardware accelerated video. Please report any issues to http://bugs.adobe.com/flashplayer.&lt;br /&gt;
&lt;br /&gt;
*H.264 Video Hardware acceleration is not available for DRM-protected content on Broadcom graphics chips. &lt;br /&gt;
&lt;br /&gt;
The mms.cfg file mentioned should be created in /etc/adobe/mms.cfg&lt;br /&gt;
&lt;br /&gt;
=== HDMI Output ===&lt;br /&gt;
&lt;br /&gt;
This can be enabled by copying the following two files from a WeTab OS installation ([http://www.wetab-community.com/index.php?/topic/12074-hdmi-ausgang/ source link]) or from [http://repo.pub.meego.com/home:/arfoll:/utils/meego_1.1_core/i586/ MeeGo 1.1 repos] chrontel-1.0-11212.1.i586.rpm package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -qpl /tmp/chrontel-1.0-11212.1.i586.rpm &lt;br /&gt;
/etc/xdg/autostart/tiitoo-hdmi.desktop&lt;br /&gt;
/lib/firmware/chrontel/fw7036.bin&lt;br /&gt;
/usr/bin/tiitoo-hdmi-daemon&lt;br /&gt;
/usr/bin/tiitoo-hdmi.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you have copied the files, you need to load two kernel modules and start the HDMI Daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe i2c-i801&lt;br /&gt;
sudo modprobe i2c-dev&lt;br /&gt;
sudo tiitoo-hdmi-daemon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accelerometer ===&lt;br /&gt;
&lt;br /&gt;
The fix to [http://bugs.meego.com/10886 bug 10886] was to remove the MeeGo Sensors module in the kickstart file of the Tablet Image. This, however, causes the sensor to not be accessible to Qt Mobility ([http://bugs.meego.com/17461 bug 17461]). The workaround as described in [http://bugs.meego.com/17461 bug 17461] is as follows:&lt;br /&gt;
&lt;br /&gt;
* Download the RPM: [http://download.meego.com/snapshots/1.2.0.90.1.20110525.2/repos/oss/ia32/packages/i586/libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm]&lt;br /&gt;
* Extract it: &amp;lt;code&amp;gt;rpm2cpio libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm | cpio -idv&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy the module (as root): &amp;lt;code&amp;gt;cp usr/lib/qt4/plugins/sensors/libqtsensors_meego.so  /usr/lib/qt4/plugins/sensors/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To test, you can install the '''qt-mobility-examples''' package (using &amp;lt;code&amp;gt;zypper install qt-mobility-examples&amp;lt;/code&amp;gt;) and run one of the examples:&lt;br /&gt;
&lt;br /&gt;
 $ /usr/lib/qtmobility/examples/accel&lt;br /&gt;
 loaded the Generic plugin &lt;br /&gt;
 loaded the grue plugin &lt;br /&gt;
 Loaded the MeeGo sensor plugin &lt;br /&gt;
 New sensor &amp;quot;accelerometersensor&amp;quot; interface created with session id 10 ... &lt;br /&gt;
 acceleration:  &amp;quot;0.12 0.27 2.35&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.12 0.29 2.39&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.10 0.29 2.39&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.11 0.30 2.33&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Display brightness ===&lt;br /&gt;
&lt;br /&gt;
If for some reason the display backlight becomes too dark, you can use the following command as root to set the brightness:&lt;br /&gt;
&lt;br /&gt;
 echo 15 &amp;gt;/sys/devices/virtual/backlight/acpi_video0/brightness&lt;br /&gt;
&lt;br /&gt;
The value 15 has been obtained from the file &amp;lt;code&amp;gt;/sys/devices/virtual/backlight/acpi_video0/max_brightness&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to install xbacklight (available in the MeeGo repos) and run:&lt;br /&gt;
&lt;br /&gt;
 xbacklight -set 100&lt;br /&gt;
&lt;br /&gt;
You don't need to be root to do this.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/ExoPC</id>
		<title>Devices/ExoPC</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/ExoPC"/>
				<updated>2011-08-12T22:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;Alison: /* HDMI Output */ Better continuity.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;June 2011: [http://forum.meego.com/showthread.php?t=3596 forum thread]&lt;br /&gt;
&lt;br /&gt;
== How to install latest MeeGo Snapshot ==&lt;br /&gt;
* Download img from http://download.meego.com/snapshots/latest/images/meego-tablet-ia32-pinetrail/ (latest points to the 1.2.80 series and is currently broken, use http://download.meego.com/snapshots/ and pick a recent 1.2.'''0'''.90 directory and go to ''images'' and ''meego-tablet-ia32-pinetrail'' inside)&lt;br /&gt;
* Write to your usb stick with '''dd if=meego.img of=/dev/sdb bs=4M'''&lt;br /&gt;
* Put usb stick in tablet and boot up, press &amp;quot;BBS&amp;quot; (on the touchscreen), select usb stick, now you need a usb keyboard to select install only option&lt;br /&gt;
** You can go through the bootloader using the button in the top left corner of the screen, short press to move to the next entry, long press to boot it. USB keyboard is optional.&lt;br /&gt;
&lt;br /&gt;
== Mobile World Congress 2011 / MeeGo Summit.fi Machines : Update Repos ==&lt;br /&gt;
&lt;br /&gt;
These machines were pre-installed with MeeGo 1.1 using a trunk-daily build of 1.1.90.2.20110209.4 (see /etc/zypp/repos/core.repo on the device); this is no longer available.&lt;br /&gt;
&lt;br /&gt;
In the absence of a more stable repo an alternative is to track the latest package set by setting&lt;br /&gt;
  baseurl=http://download.meego.com/trunk-daily/builds/trunk/latest/repos/oss/ia32/packages/&lt;br /&gt;
in the core.repo file.&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
  zypper ref&lt;br /&gt;
&lt;br /&gt;
(If anyone is brave enough to run ''zypper up'' and potentially need to reinstall then please say how this works.)&lt;br /&gt;
&lt;br /&gt;
I tried that against the latest weekly repo at that time (http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.2.20110412.6/repos/oss/ia32/packages/) and first it hung on updating libc. After a reboot it ran through, but after one more reboot the Tablet UX didn't come back up anymore. Didn't investigate it further. I'll most likely use these instructions: http://meego.com/downloads/releases/1.2/meego-tablet-developer-preview and the image for aforementioned weekly.&lt;br /&gt;
&lt;br /&gt;
--[[User:Dm8tbr|Dm8tbr]] 04:30, 18 April 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Connecting Qt Creator to the Device ==&lt;br /&gt;
Go to Tools-&amp;gt;Options; then Projects section, MeeGo Device Configurations tab.&lt;br /&gt;
&lt;br /&gt;
Note that the meego user seems to need sudo rights to be able to run the remote execution:&lt;br /&gt;
  cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/sudoers.d/su-meego&lt;br /&gt;
  meego        ALL=(ALL)       NOPASSWD: ALL&lt;br /&gt;
  EOF&lt;br /&gt;
  chmod 440 /etc/sudoers.d/su-meego&lt;br /&gt;
&lt;br /&gt;
  sed -i -e's/##includedir/#includedir/' /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
Also, for some reason, /usr/local and /usr/local/bin end up as root:root, mode 770. Fix this with:&lt;br /&gt;
  sudo chmod 755 /usr/local&lt;br /&gt;
  sudo chmod 755 /usr/local/bin&lt;br /&gt;
This looks like it's due to Qt Creator packaging&lt;br /&gt;
&lt;br /&gt;
== Old Installation Notes ==&lt;br /&gt;
&lt;br /&gt;
'''Warning:''' both the handset and netbook images running on the ExoPC have some problems as&lt;br /&gt;
of 1/30/2011.    See below.&lt;br /&gt;
'''Warning:''' as with any other device, if you incorrectly reflash the bootloader and/or kernel, you may '''brick''' your system.&lt;br /&gt;
&lt;br /&gt;
Sometimes the unit won't boot when a USB mouse is plugged in.    An external keyboard doesn't cause the same problems.    A mouse can be attached as soon as the MeeGo splashscreen appears.    This might be a power problem that would be resolved by a USB hub with an external supply.&lt;br /&gt;
&lt;br /&gt;
Installing the Handset image before the Netbook saves a bit of trouble if both are desired.&lt;br /&gt;
&lt;br /&gt;
The version of parted that is invoked by the MeeGo installers [http://bugs.meego.com/show_bug.cgi?id=12945 will not resize an NTFS partition], so if you want to preserve Windows, use another partitioning tool before booting the MeeGo USB stick.    [http://www.sysresccd.org/Main_Page systemrescuecd] worked fine.&lt;br /&gt;
&lt;br /&gt;
The installation described here shrank the Windows partition to the (recommended minimum) 20 GB, then created an extended (logical) partition in the remaining space with a 2 GB swap partition and two primary (Is this right?) partitions of equal size in the remaining space.&lt;br /&gt;
&lt;br /&gt;
Windows may come up and say that the partition table has been corrupted and that it will repair it ;-).    The result is that the boot flag is set for the Win System partition, which prevents the extlinux bootloader from starting.      To fix the problem, boot once more from the handy systemrescuecd stick and clear the duplicate boot flag from the System partition.     Presto: your MeeGo install is again accessible.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[File:systemrescuecd_gparted_ExoPC.jpg|750px|frameless|Result of successful partitioning for triple-boot.    Booting Windows may cause it to set the &amp;quot;boot&amp;quot; flag on its System partition as shown here and prevent extlinux from loading.    Boot again with the systemrescuecd stick to clear the duplicate flag.]]&lt;br /&gt;
&lt;br /&gt;
The ExoPC has an unlocked bootloader, so installation is relatively simple.   First [http://meego.com/devices/netbook/installing-meego-your-netbook prepare a USB stick] with the image of your choice.  After holding the power button for 4 seconds to start the boot process, touch the &amp;quot;Setup&amp;quot; soft button in the upper-righthand corner of the screen and disable &amp;quot;Quiet Boot.&amp;quot;   Boot again and touch the &amp;quot;BBS&amp;quot; soft button to manually select your USB drive as the boot device.     &lt;br /&gt;
&lt;br /&gt;
The netbook image does not create a useful /boot/extlinux/extlinux.conf file.     One way of solving the problem is to install the handset image first, mount the handset image from the netbook image and just copy over the extlinux.conf file.     Copy the entry for the handset image over to the end of the extlinux.conf file and change the details in order to create a file that works for all the images, then copy back to the handset image.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run &amp;quot;zypper update&amp;quot; from a terminal window as soon as your image is installed.&lt;br /&gt;
&lt;br /&gt;
Warning: always unmount the USB filesystem before pulling the Flash drive out of the slot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Handset-specific notes ==&lt;br /&gt;
&lt;br /&gt;
Touchscreen works great in the as-installed image.    WiFi does not.    A symptom of the problem is that both the ath9k (correct) and ath3K (wrong) kernel modules are autoloaded at boot time.    Edit /etc/modprobe.d/blacklist.conf and add &amp;quot;blacklist ath3k&amp;quot; and then reboot.   Unfortunately, WiFi still doesn't come up even though &amp;quot;lsmod&amp;quot; shows the same drivers as on netbook image, whose WiFi works great.    &amp;quot;dmesg&amp;quot; says &amp;quot;ADDRCONF(NETDEV_UP): wlan0: link is not ready.&lt;br /&gt;
&lt;br /&gt;
Before WiFi is working the easiest ways to get files onto the handset images are either from a mounted USB stick filesystem or by mounting the MeeGo netbook filesystem read-only and copying.    In order to accomplish the latter, type &amp;quot;fdisk -l&amp;quot; to list the existing partitions.     Create the directory where the netbook filesystem will be mounted, e.g. &amp;quot;mkdir -p /netbook&amp;quot;.    Then, assuming your netbook partition is /dev/sdaX and the filesystem type is ext3, enter &amp;quot;mount -t ext3 -o ro /dev/sdaX /netbook&amp;quot;.  Then &amp;quot;ls /netbook&amp;quot; will display the files on the netbook partition.&lt;br /&gt;
&lt;br /&gt;
== Netbook-specific notes ==&lt;br /&gt;
&lt;br /&gt;
WiFi works great with the as-installed netbook image.&lt;br /&gt;
&lt;br /&gt;
As installed, the netbook image [http://bugs.meego.com/show_bug.cgi?id=9524 does not have a working touchscreen].   The system responds to a screen touch by darkening slightly and moving the cursor to the upper-lefthand corner.  The needed driver, hid_egalax, is not autoloaded.    Manually loading the driver with &amp;quot;modprobe -i hid_egalax&amp;quot; makes the touchscreen fully functional about half the time.    Other times the behavior seems to be unaffected by the driver load.&lt;br /&gt;
&lt;br /&gt;
=== Netbook trunk (1.2) ===&lt;br /&gt;
&lt;br /&gt;
Some notes about installing a more recent MeeGo netbook image (I used meego-netbook-ia32-1.2.80.0.20110503.2.img) on ExoPC hardware:&lt;br /&gt;
&lt;br /&gt;
# Installation needs an external keyboard, but went smoothly. However, on first boot (where you have to enter default user/password etc.), the external keyboard seemed to cause some power issue (even with the tablet plugged into its adapter), where X respawns too quickly.&lt;br /&gt;
#: To work around this, I followed [http://forum.meego.com/showthread.php?t=447 these instructions], summarised here:&lt;br /&gt;
## Plug in USB keyboard.&lt;br /&gt;
## Boot and start bashing the space key on the external keyboard (to interrupt grub).&lt;br /&gt;
## In the grub menu, press Tab so you can edit the kernel boot options.&lt;br /&gt;
## Append ' s' (space then 's', no quotation marks). This will mean you can boot into single user mode before X starts (and the keyboard causes X to continually respawn).&lt;br /&gt;
## Once you have a console available, run &amp;lt;code&amp;gt;startx&amp;lt;/code&amp;gt; to get a minimal X environment.&lt;br /&gt;
## In the terminal window, run &amp;lt;code&amp;gt;/usr/bin/firstboot&amp;lt;/code&amp;gt;. This starts the normal firstboot environment with the keyboard plugged in. Fill in the necessary.&lt;br /&gt;
## Once you're done with firstboot, back in the terminal, use the &amp;lt;code&amp;gt;halt&amp;lt;/code&amp;gt; command to shut down.&lt;br /&gt;
## You should now be able to boot the tablet with the keyboard plugged in.&lt;br /&gt;
# Once you've booted successfully, you'll probably need to use the Terminal application to do stuff.&lt;br /&gt;
# With more recent images, hid_egalax does appear to be autoloaded (see the previous section). However, the pointer behaviour is still a little skittish. I found that installing evtouch stabilised it a bit:&lt;br /&gt;
#: &amp;lt;code&amp;gt;zypper in xorg-x11-drv-evtouch&amp;lt;/code&amp;gt;&lt;br /&gt;
# To hide the pointer, edit /etc/sysconfig/uxlaunch and add a line like this to the end of the file:&lt;br /&gt;
#: &amp;lt;code&amp;gt;xopts=-nocursor&amp;lt;/code&amp;gt;&lt;br /&gt;
#: But, once the pointer is gone, it is tricky to put the pointer to the top of the screen to see the toolbar (with links to MyZone etc.). However, if you've got an external keyboard plugged in, you can press the Windows key on the external keyboard to get there.&lt;br /&gt;
# This one is for those of you interested in running HTML5/JS web apps on netbook: The version of Chromium installed by default on the netbook image is quite old, and behaves pretty poorly for frameworks like [http://www.sencha.com/products/touch/ Sencha Touch]. You can instead install a developer build of Chrome, which works much better.&lt;br /&gt;
#:# Install lsb:&lt;br /&gt;
#:#: &amp;lt;code&amp;gt;sudo zypper in lsb&amp;lt;/code&amp;gt;&lt;br /&gt;
#:# Download a developer build of Chrome (to replace Chromium) from&lt;br /&gt;
#:#: http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_rpm&lt;br /&gt;
#:# Install the RPM:&lt;br /&gt;
#:#: &amp;lt;code&amp;gt;sudo rpm -i google-chrome-unstable_current_i386.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
#:# Run it:&lt;br /&gt;
#:#: &amp;lt;pre&amp;gt;google-chrome&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:#: NB on first run, it asks you to select a search engine; I chose Yahoo!, as selecting Google didn't work (ironically).&lt;br /&gt;
# On the other hand, if you're happy with the version of Chromium on the netbook image, and just want to be able to use it with touch, the [https://chrome.google.com/webstore/detail/ncegfehgjifmmpnjaihnjpbpddjjebme chromeTouch extension] works pretty well. However, this mucks up touch tracking in Sencha Touch.&lt;br /&gt;
# I had pretty much zero luck getting a decent virtual keyboard to work. I tried matchbox-keyboard, the meegotouch keyboard ([http://wiki.meego.com/Maliit Maliit]), and fvkbd. matchbox-keyboard and fvkbd at least appeared onscreen; I had no luck with the meegotouch keyboard at all.&lt;br /&gt;
#: I ended up keeping fvkbd with the following small edits:&lt;br /&gt;
#:* I changed its .desktop file (/usr/share/applications/fvkbd.desktop) to run the keyboard docked to the bottom of the screen, by changing the Exec line to:&lt;br /&gt;
#:*: &amp;lt;code&amp;gt;Exec=fvkbd-gtk -d -l keyboard-s.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
#:*: (note the extra -d to dock to the bottom of the screen)&lt;br /&gt;
#:* I also edited the keyboard-s.xml file (/usr/share/fvkbd/keyboard-s.xml) and set the width to 1366 and height to 330 (attributes on the outermost XML element). This makes the keyboard properly span the screen without being truncated (though I didn't work out how to centre the keys on the background)&lt;br /&gt;
#: To use the keyboard, start the fvkbd application first (from the Applications zone), then the application you want to use. The keyboard then sits on top of the application. This can be useful for emergencies, but it's not really adequate for full, everyday use.&lt;br /&gt;
# For some reason I couldn't discover, the screen dims when the power lead is unplugged. I was unable to figure out how to prevent this from happening (I tried looking through the BIOS, using xset, looking at upower, tried to turn off acpi etc. to no avail). However, there is a utility for setting the backlight brightness called &amp;lt;code&amp;gt;xbacklight&amp;lt;/code&amp;gt; which at least helps you reset the screen brightness (the netbook image has no software control for this, and the tablet has no hardware keys for it).&lt;br /&gt;
#: Install it with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo zypper in xbacklight&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Then, to set the backlight brightness to 100%, do:&lt;br /&gt;
#: &amp;lt;code&amp;gt;xbacklight -set 100&amp;lt;/code&amp;gt;&lt;br /&gt;
#: (Obviously, this is less than ideal. If anyone knows how to permanently prevent the screen from dimming when the power is unplugged, please let me know.)&lt;br /&gt;
# The ExoPC has a light sensor (tiny rectangle next to the power LEDs in the top left). When it's on, a reduction in the ambient light causes the screen to dim. This can be quite annoying in a British spring as bright sunlight rapidly alternates with storm clouds.&lt;br /&gt;
#: You can turn off the light sensor temporarily with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo echo 0 &amp;gt; /sys/devices/platform/asus_laptop/ls_switch&amp;lt;/code&amp;gt;&lt;br /&gt;
#: However, you have to do this manually on each boot. There's probably some way to switch it off permanently, but no one on the internet has written it down. So the easiest thing for me to do was write a script in &amp;lt;code&amp;gt;/etc/init.d/ls_switch&amp;lt;/code&amp;gt; to run on each boot (see below).&lt;br /&gt;
#: Make sure you &amp;lt;code&amp;gt;sudo chmod +x /etc/init.d/ls_switch&amp;lt;/code&amp;gt; too.&lt;br /&gt;
#: With this script in place, set it to run on each boot with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chkconfig --add ls_switch&amp;lt;/code&amp;gt;&lt;br /&gt;
#: When you reboot, the light sensor should be off.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# script to go in /etc/init.d/ls_switch&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# ls_switch	Turn light sensor off&lt;br /&gt;
#&lt;br /&gt;
# chkconfig: 2345 08 92&lt;br /&gt;
# description:	Turns light sensor off on boot&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides: ls_switch&lt;br /&gt;
# Default-Start:  2 3 4 5&lt;br /&gt;
# Default-Stop: 0 1 6&lt;br /&gt;
# Short-Description: turn off light sensor&lt;br /&gt;
# Description: turn off light sensor&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
# Source function library.&lt;br /&gt;
. /etc/init.d/functions&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
  start)&lt;br /&gt;
	  echo &amp;quot;disabling light sensor&amp;quot;&lt;br /&gt;
    echo 0 &amp;gt; /sys/devices/platform/asus_laptop/ls_switch&lt;br /&gt;
	  RETVAL=$?&lt;br /&gt;
	  ;;&lt;br /&gt;
  stop)&lt;br /&gt;
    RETVAL=0&lt;br /&gt;
    ;;&lt;br /&gt;
  *)&lt;br /&gt;
    echo &amp;quot;Usage: ls_switch {start|stop}&amp;quot;&lt;br /&gt;
    RETVAL=2&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
exit $RETVAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IVI-specific notes ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo_IVI_on_ExoPC|IVI 1.2 running on ExoPC]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Fixes ==&lt;br /&gt;
&lt;br /&gt;
Please add steps here how to get hardware features working on MeeGo Tablet UX that don't work out of the box:&lt;br /&gt;
&lt;br /&gt;
=== Crystal HD Video Decoder (BCM70015) ===&lt;br /&gt;
&lt;br /&gt;
This should probably get packaged up, but for now:&lt;br /&gt;
&lt;br /&gt;
Grab the latest crystalhd driver source from http://git.wilsonet.com/crystalhd.git&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone http://git.wilsonet.com/crystalhd.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the kernel headers to compile the kernel module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zypper install kernel-adaptation-pinetrail-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel module (currently won't just work, due to a bug in one of the kernel headers [https://bugs.meego.com/show_bug.cgi?id=20474] )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/driver/linux&lt;br /&gt;
autoconf&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the user-space library libcrystalhd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/linux_lib/libcrystalhd&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OPTIONAL (?): It is also possible to compile a gstreamer plugin... but you need some extra development libraries&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo zypper install gstreamer-devel gst-plugins-base-devel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then some more compiling and installing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/crystalhd/filters/gst/gst-plugin/&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hardware H.264 Video Decoding with Flash Player ====&lt;br /&gt;
&lt;br /&gt;
According to Flash Player 10.3 Release Notes [http://kb2.adobe.com/cps/901/cpsid_90194.html#main_known%20issues] under section Known Issues, subsection Audio/Video, Adobe has support for the Broadcom Crystal HD BCM70015 under Linux:&lt;br /&gt;
&lt;br /&gt;
*H.264 Hardware decoding on Linux is available as an experimental feature and has been tested on NVidia GT 330 and Broadcom BCM70015 GPUs. Users may choose to enable hardware decoding by adding '''EnableLinuxHWVideoDecode=1''' in an mms.cfg configuration file. Users may experiance instability and crashes while watching hardware accelerated video. Please report any issues to http://bugs.adobe.com/flashplayer.&lt;br /&gt;
&lt;br /&gt;
*H.264 Video Hardware acceleration is not available for DRM-protected content on Broadcom graphics chips. &lt;br /&gt;
&lt;br /&gt;
The mms.cfg file mentioned should be created in /etc/adobe/mms.cfg&lt;br /&gt;
&lt;br /&gt;
=== HDMI Output ===&lt;br /&gt;
&lt;br /&gt;
This can be enabled by copying the following two files from a WeTab OS installation ([http://www.wetab-community.com/index.php?/topic/12074-hdmi-ausgang/ source link]) or from [http://repo.pub.meego.com/home:/arfoll:/utils/meego_1.1_core/i586/ MeeGo 1.1 repos] chrontel-1.0-11212.1.i586.rpm package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rpm -qpl /tmp/chrontel-1.0-11212.1.i586.rpm &lt;br /&gt;
/etc/xdg/autostart/tiitoo-hdmi.desktop&lt;br /&gt;
/lib/firmware/chrontel/fw7036.bin&lt;br /&gt;
/usr/bin/tiitoo-hdmi-daemon&lt;br /&gt;
/usr/bin/tiitoo-hdmi.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then run the included scripts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/bin/tiitoo-hdmi-daemon&lt;br /&gt;
/lib/firmware/chrontel/fw7036.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you have copied the files, you need to load two kernel modules and start the HDMI Daemon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo modprobe i2c-i801&lt;br /&gt;
sudo modprobe i2c-dev&lt;br /&gt;
sudo tiitoo-hdmi-daemon&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Accelerometer ===&lt;br /&gt;
&lt;br /&gt;
The fix to [http://bugs.meego.com/10886 bug 10886] was to remove the MeeGo Sensors module in the kickstart file of the Tablet Image. This, however, causes the sensor to not be accessible to Qt Mobility ([http://bugs.meego.com/17461 bug 17461]). The workaround as described in [http://bugs.meego.com/17461 bug 17461] is as follows:&lt;br /&gt;
&lt;br /&gt;
* Download the RPM: [http://download.meego.com/snapshots/1.2.0.90.1.20110525.2/repos/oss/ia32/packages/i586/libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm]&lt;br /&gt;
* Extract it: &amp;lt;code&amp;gt;rpm2cpio libqtsensors1-1.2.0~beta0+git2726-10.11.i586.rpm | cpio -idv&amp;lt;/code&amp;gt;&lt;br /&gt;
* Copy the module (as root): &amp;lt;code&amp;gt;cp usr/lib/qt4/plugins/sensors/libqtsensors_meego.so  /usr/lib/qt4/plugins/sensors/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To test, you can install the '''qt-mobility-examples''' package (using &amp;lt;code&amp;gt;zypper install qt-mobility-examples&amp;lt;/code&amp;gt;) and run one of the examples:&lt;br /&gt;
&lt;br /&gt;
 $ /usr/lib/qtmobility/examples/accel&lt;br /&gt;
 loaded the Generic plugin &lt;br /&gt;
 loaded the grue plugin &lt;br /&gt;
 Loaded the MeeGo sensor plugin &lt;br /&gt;
 New sensor &amp;quot;accelerometersensor&amp;quot; interface created with session id 10 ... &lt;br /&gt;
 acceleration:  &amp;quot;0.12 0.27 2.35&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.12 0.29 2.39&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.10 0.29 2.39&amp;quot; &lt;br /&gt;
 acceleration:  &amp;quot;0.11 0.30 2.33&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Display brightness ===&lt;br /&gt;
&lt;br /&gt;
If for some reason the display backlight becomes too dark, you can use the following command as root to set the brightness:&lt;br /&gt;
&lt;br /&gt;
 echo 15 &amp;gt;/sys/devices/virtual/backlight/acpi_video0/brightness&lt;br /&gt;
&lt;br /&gt;
The value 15 has been obtained from the file &amp;lt;code&amp;gt;/sys/devices/virtual/backlight/acpi_video0/max_brightness&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Another option is to install xbacklight (available in the MeeGo repos) and run:&lt;br /&gt;
&lt;br /&gt;
 xbacklight -set 100&lt;br /&gt;
&lt;br /&gt;
You don't need to be root to do this.&lt;/div&gt;</summary>
		<author><name>Alison</name></author>	</entry>

	</feed>