<?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/Yyin2&amp;feed=atom&amp;limit=50&amp;target=Yyin2&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/Yyin2&amp;feed=atom&amp;limit=50&amp;target=Yyin2&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Yyin2"/>
		<updated>2013-05-22T16:45:47Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-14T09:27:46Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        cd /etc/zypper/repos.d&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) Install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) Setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) Setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) Run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) Run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) Now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration [http://lists.meego.com/pipermail/meego-sdk/2010-September/000301.html], you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization with Acer Aspire One (Pinetrail based netbook).&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-05T01:59:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) Install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) Setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) Setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) Run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) Run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) Now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration [http://lists.meego.com/pipermail/meego-sdk/2010-September/000301.html], you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization with Acer Aspire One (Pinetrail based netbook).&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-05T01:59:34Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) Install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) Setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) Setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) Run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) Run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) Now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration ([http://lists.meego.com/pipermail/meego-sdk/2010-September/000301.html]), you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization with Acer Aspire One (Pinetrail based netbook).&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:36:53Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) Install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) Setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) Setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) Run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) Run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) Now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization with Acer Aspire One (Pinetrail based netbook).&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:33:40Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization with Acer Aspire One (Pinetrail based netbook).&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        cd /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-12-02T08:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
* [[Distribution]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
* [[Meego IT]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
* [[Enable Multiseat support in MeeGo]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
* [[Brief_git_guide|Brief git guide]] - An overview of git as well as an example about how to use gitorious to do a merge request.&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], [[Gitorious_guidelines|Gitorious guidelines]] and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
* Be a part of the [[MeeGoVerse]]&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Structure and Governance ==&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-12-02T08:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
* [[Distribution]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
* [[Meego IT]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
* [[Enable Multiseat in MeeGo]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
* [[Brief_git_guide|Brief git guide]] - An overview of git as well as an example about how to use gitorious to do a merge request.&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], [[Gitorious_guidelines|Gitorious guidelines]] and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
* Be a part of the [[MeeGoVerse]]&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Structure and Governance ==&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:30:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable '''Multiseat'''[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with '''Xfce'''[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on '''Xephyr'''[http://en.wikipedia.org/wiki/Xephyr] and '''XRandR'''[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:28:48Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 10) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:28:28Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 8) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 9) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:27:33Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel, mdm from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr xfce-panel mdm&lt;br /&gt;
&lt;br /&gt;
* 6) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 7) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 9) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 10) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 11) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T08:00:30Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr &lt;br /&gt;
        zypper install xfce4-panel &lt;br /&gt;
&lt;br /&gt;
* 6) compile &amp;amp; install mdm&lt;br /&gt;
        git-clone http://git.c3sl.ufpr.br/pub/scm/multiseat/mdm.git&lt;br /&gt;
        zypper install gcc make  libX11-devel cairo-devel gettext-devel&lt;br /&gt;
        cd mdm/mdm; make; &lt;br /&gt;
        cp tree/usr/sbin/seat-parent-window /usr/sbin/&lt;br /&gt;
&lt;br /&gt;
* 7) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 8) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 9) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 10) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 11) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T07:59:54Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
* 1) Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
* 2) A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
* 3) All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr &lt;br /&gt;
        zypper install xfce4-panel &lt;br /&gt;
&lt;br /&gt;
* 6) compile &amp;amp; install mdm&lt;br /&gt;
        git-clone http://git.c3sl.ufpr.br/pub/scm/multiseat/mdm.git&lt;br /&gt;
        zypper install gcc make  libX11-devel cairo-devel gettext-devel&lt;br /&gt;
        cd mdm/mdm; make; &lt;br /&gt;
        cp tree/usr/sbin/seat-parent-window /usr/sbin/&lt;br /&gt;
&lt;br /&gt;
* 7) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 8) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 9) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 10) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 11) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T07:56:49Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
NOTE 1: Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
&lt;br /&gt;
NOTE 2: A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
&lt;br /&gt;
NOTE 3: All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr &lt;br /&gt;
        zypper install xfce4-panel &lt;br /&gt;
&lt;br /&gt;
* 6) compile &amp;amp; install mdm&lt;br /&gt;
        git-clone http://git.c3sl.ufpr.br/pub/scm/multiseat/mdm.git&lt;br /&gt;
        zypper install gcc make  libX11-devel cairo-devel gettext-devel&lt;br /&gt;
        cd mdm/mdm; make; &lt;br /&gt;
        cp tree/usr/sbin/seat-parent-window /usr/sbin/&lt;br /&gt;
&lt;br /&gt;
* 7) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 8) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 9) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 10) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 11) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo</id>
		<title>Enable Multiseat support in MeeGo</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Enable_Multiseat_support_in_MeeGo"/>
				<updated>2011-12-02T07:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: Created page with &amp;quot;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] des...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a step-by-step guide to enable Multiseat[http://en.wikipedia.org/wiki/Multiseat_configuration] on '''single video card''' with Xfce[http://en.wikipedia.org/wiki/Xfce] desktop environment, based on Xephyr[http://en.wikipedia.org/wiki/Xephyr] and XRandR[http://en.wikipedia.org/wiki/RandR].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
NOTE 1: Xfce desktop environment is enabled, Mutter based desktop environment doesn't work per testing.&lt;br /&gt;
NOTE 2: A lot of integration work needs to be done with uxlaunch/ConsoleKit/etc.&lt;br /&gt;
NOTE 3: All below commands are assumed to run with &amp;quot;root&amp;quot;, you'd better &amp;quot;ssh&amp;quot; to the netbook to copy/paste some of those commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 1) Install MeeGo 1.2.0 for Netbook, image is here [http://repo.meego.com/MeeGo/releases/1.2.0/images/meego-netbook-ia32/meego-netbook-ia32-1.2.0.img].&lt;br /&gt;
&lt;br /&gt;
* 2) Edit /etc/inittab, change default runlevel from 5 to 3, then reboot&lt;br /&gt;
&lt;br /&gt;
* 3) Setup Proxy&lt;br /&gt;
        export http_proxy=http://&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
        export no_proxy=.intel.com,10.0.0.0/8&lt;br /&gt;
&lt;br /&gt;
* 4) Setup Repo&lt;br /&gt;
        wget http://download.meego.com/live/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss:/Update:/Testing/MeeGo_1.2.0/home:yyin2:branches:MeeGo:1.2.0:oss:Update:Testing.repo&lt;br /&gt;
        wget http://download.meego.com/live/home:/yyin2:/branches:/MeeGo:/1.2.0:/oss/standard/home:yyin2:branches:MeeGo:1.2.0:oss.repo&lt;br /&gt;
        zypper refresh&lt;br /&gt;
&lt;br /&gt;
* 5) install modified xorg-xephyr, xfce4-panel from &amp;quot;yyin2&amp;quot; repo&lt;br /&gt;
        zypper install xorg-x11-server-Xephyr &lt;br /&gt;
        zypper install xfce4-panel &lt;br /&gt;
&lt;br /&gt;
* 6) compile &amp;amp; install mdm&lt;br /&gt;
        git-clone http://git.c3sl.ufpr.br/pub/scm/multiseat/mdm.git&lt;br /&gt;
        zypper install gcc make  libX11-devel cairo-devel gettext-devel&lt;br /&gt;
        cd mdm/mdm; make; &lt;br /&gt;
        cp tree/usr/sbin/seat-parent-window /usr/sbin/&lt;br /&gt;
&lt;br /&gt;
* 7) setup kebyoard/mouse&lt;br /&gt;
        mkdir -p /etc/mdm/devices&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx keyboard2&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse1&lt;br /&gt;
        ln -sf /dev/input/by-id/xxxx mouse2&lt;br /&gt;
&lt;br /&gt;
* 8) setup X&lt;br /&gt;
        xrandr -q  # there should be at least two monitors listed out, e.g. &amp;quot;LVDS1&amp;quot;, &amp;quot;VGA1&amp;quot;, or else STOP here.&lt;br /&gt;
        Xorg -configure&lt;br /&gt;
        cp /root/xorg.conf.new /etc/mdm/xorg.conf.mdm&lt;br /&gt;
        &amp;lt;add lines &amp;quot;Virtual 2048 2048&amp;quot; to /etc/mdm/xorg.conf.mdm Display section, this is the key &amp;quot;magic&amp;quot; of this guide, a big Virtual Screen will be assembled by LVDS1+VGA1, the width (or the height) should be bigger than the sum of width (or height) of LVDS1+VGA1&amp;gt;&lt;br /&gt;
        nohup /usr/bin/X -config /etc/mdm/xorg.conf.mdm vt08 -logfile /etc/mdm/xorg.mdm.log -dpms -s 0 :0 &amp;gt;/dev/null 2&amp;gt;/dev/null &amp;amp;&lt;br /&gt;
&lt;br /&gt;
* 9) run Xephyr&lt;br /&gt;
        xrandr --output LVDS1 --mode 1024x600&lt;br /&gt;
        xrandr --output VGA1 --mode 1024x768  &lt;br /&gt;
        xrandr --output VGA1 --right-of LVDS1&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0&lt;br /&gt;
        seat-parent-window 1024x600+0+0 seat-parent-window0-LVDS1 &amp;amp; &lt;br /&gt;
        seat-parent-window 1024x768+1024+0 seat-parent-window0-VGA1 &amp;amp;&lt;br /&gt;
	&lt;br /&gt;
        xwininfo -name seat-parent-window0-LVDS1 (get the window id, e.g. 0x200001)&lt;br /&gt;
        xwininfo -name seat-parent-window0-VGA1  (get the window id, e.g. 0x400001)&lt;br /&gt;
	&lt;br /&gt;
        export DISPLAY=:0; Xephyr :1  -dpms -s 0 -br :1 -parent 0x200001 -mouse evdev,,device=/etc/mdm/devices/mouse1 -keybd evdev,,device=/etc/mdm/devices/keyboard1,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:1; xterm &amp;amp;  #test the keyboard/mouse of 1st seat in the terminal&lt;br /&gt;
		&lt;br /&gt;
        export DISPLAY=:0; Xephyr :2  -dpms -s 0 -br :2 -parent 0x400001 -mouse evdev,,device=/etc/mdm/devices/mouse2 -keybd evdev,,device=/etc/mdm/devices/keyboard2,xkbmodel=evdev,xkblayout=us -nolisten tcp vt9 &amp;amp;	&lt;br /&gt;
        export DISPLAY=:2; xterm &amp;amp;  #test the keyboard/mouse of 2nd seat in the terminal&lt;br /&gt;
	&lt;br /&gt;
* 10) run xfwm4, xfce4-panel, xfce4-session&lt;br /&gt;
        zypper install xfce4-settings xfce4-taskmanager xfce4-mixer xfce4-battery-plugin  xfce-utils  xfce4-appfinder  Thunar thunar-vfs thunar-volman  &lt;br /&gt;
        export DISPLAY=:1; xfwm4; xfce4-session&lt;br /&gt;
        export DISPLAY=:2; xfwm4; xfce4-session&lt;br /&gt;
	&lt;br /&gt;
* 11) now you should have two seats setup, each one has its own keyboard/mouse/monitor, and you can play different videos in two seats concurrently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
* Xehpyr for MeeGo has been enhanced for GL acceleration, you can simply compare the 3D performance by run the &amp;quot;glxgears&amp;quot; in native X, one Xephyr instance, two Xephyr instances. In my testing, the data are 70 FPS, 70 FPS, 50(x2) FPS respectively, no dramatic performance drop.&lt;br /&gt;
* Xvideo extension works in both Xephyr instances, in my testing to playing 2x480p ogv video (no hardware decoding) in two seats concurrently, it will cost about 85% CPU utilization.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Limitation ==&lt;br /&gt;
* The audio output are now mixed when playing two videos/audio streams concurrently, if you have another bluetooth headset, you can run &amp;quot;pacmd&amp;quot; and move one audio stream to the bluetooth sink, so that two audio streams are separated.&lt;br /&gt;
* The Chromium browser will always open a new &amp;quot;Tab&amp;quot; in the 1st seat if you launch it in the 2nd seat, probably some setting in Chromium says &amp;quot;Always start a new '''Tab''' instead of a new '''Window'''&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-12-02T06:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
* [[Distribution]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
* [[Meego IT]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
* [[Enable Multiseat support in MeeGo]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
* [[Brief_git_guide|Brief git guide]] - An overview of git as well as an example about how to use gitorious to do a merge request.&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], [[Gitorious_guidelines|Gitorious guidelines]] and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
* Be a part of the [[MeeGoVerse]]&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Structure and Governance ==&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/How_to_development_with_multiple_packages_with_dependencies</id>
		<title>How to development with multiple packages with dependencies</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/How_to_development_with_multiple_packages_with_dependencies"/>
				<updated>2011-07-05T10:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customers, who need to develop their own packages, including libraries and applications, which are not included in MeeGo official repo. In this seriono, the customers need create/maintain their own repo for their own packages, below script shows how to build multiple packages with dependcies, and how to create a repo to feed the MIC (MeeGo Image Creator). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# mkdir -p localbuild/{repo,src} &lt;br /&gt;
# put all src.rpm (or source code package with *.spec) in src/&lt;br /&gt;
# cd localbuild/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# NOTE: pacakges sequence is IMPORTANT, check *.spec and put &amp;quot;BuildRequires&amp;quot; package in the front, for example:&lt;br /&gt;
# libplatform_config-20.0.3-1.4.src.rpm requires libhtuple-devel and kernel-headers-cetv to finish build.&lt;br /&gt;
&lt;br /&gt;
PACKAGES=&amp;quot;&lt;br /&gt;
kernel-headers-cetv-20.0.1-1.2.src.rpm&lt;br /&gt;
libhtuple-20.0.1-1.2.src.rpm&lt;br /&gt;
libplatform_config-20.0.3-1.4.src.rpm&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for package in $PACKAGES&lt;br /&gt;
do&lt;br /&gt;
        echo &amp;quot;build package=[$package]&amp;quot;&lt;br /&gt;
        sudo build --repository  http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --rpms $PWD/repo  --arch i686 src/$package&lt;br /&gt;
        echo &amp;quot;copy over...&amp;quot;&lt;br /&gt;
        find  /var/tmp/build-root/home/abuild/rpmbuild/ -name *.rpm -exec cp {} $PWD/repo/ \;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
sudo createrepo $PWD/repo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$PWD/repo can be then added to the *.ks file for MIC, something like &amp;quot;repo --name=local --baseurl=file:///path/to/local/repo/ --save&amp;quot;&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/How_to_development_with_multiple_packages_with_dependencies</id>
		<title>How to development with multiple packages with dependencies</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/How_to_development_with_multiple_packages_with_dependencies"/>
				<updated>2011-07-05T10:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for customers, who need to develop their own packages, including libraries and applications, which are not included in MeeGo official repo. In this seriono, the customers need create/maintain their own repo for their own packages, below script shows how to build multiple packages with dependcies, and how to create a repo to feed the MIC (MeeGo Image Creator). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# mkdir -p localbuild/{repo,src} &lt;br /&gt;
# put all src.rpm (or source code package with *.spec) in src/&lt;br /&gt;
# cd localbuild/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# NOTE: pacakges sequence is IMPORTANT, check *.spec and put &amp;quot;BuildRequires&amp;quot; package in the front, for example:&lt;br /&gt;
# libplatform_config-20.0.3-1.4.src.rpm requires libhtuple-devel and kernel-headers-cetv to finish build.&lt;br /&gt;
&lt;br /&gt;
PACKAGES=&amp;quot;&lt;br /&gt;
kernel-headers-cetv-20.0.1-1.2.src.rpm&lt;br /&gt;
libhtuple-20.0.1-1.2.src.rpm&lt;br /&gt;
libplatform_config-20.0.3-1.4.src.rpm&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for package in $PACKAGES&lt;br /&gt;
do&lt;br /&gt;
        echo &amp;quot;build package=[$package]&amp;quot;&lt;br /&gt;
        sudo build --repository  http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --rpms $PWD/repo  --arch i686 src/$package&lt;br /&gt;
        echo &amp;quot;copy over...&amp;quot;&lt;br /&gt;
        find  /var/tmp/build-root/home/abuild/rpmbuild/ -name *.rpm -exec cp {} $PWD/repo/ \;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
sudo createrepo $PWD/repo/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$PWD/repo can be then added to the *.ks file for MIC.&lt;br /&gt;
repo --name=local --baseurl=file:///path/to/local/repo/ --save&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:07:14Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
'Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory'&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:05:53Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* rpm verify failed in Ubuntu 10.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* rpm verify failed in Ubuntu 10.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
# deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
# deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* rpm verify failed in Ubuntu 10.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted &lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:03:17Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* rpm verify failed in Ubuntu 10.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:02:56Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* rpm verify failed in Ubuntu 10.04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&lt;br /&gt;
3. comment out 10.10 repo to avoid upgrade other packages to 10.10&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T08:01:55Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Troubleshooting (ARM) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed in Ubuntu 10.04 ===&lt;br /&gt;
If you meet below error, you may have a try to workaround the issue by installing the &amp;quot;rpm&amp;quot; package for 10.10, there seems to be a bug for &amp;quot;rpm&amp;quot; in 10.04 which fails to verify package signature.&lt;br /&gt;
&amp;quot;downloading http://linux-ftp.jf.intel.com/pub/mirrors/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/autoconf-2.68-1.3.noarch.rpm ... &lt;br /&gt;
rpm verify failed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
1. add 10.10 repo to /etc/apt/sources.list&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick  main restricted&lt;br /&gt;
deb http://cn.archive.ubuntu.com/ubuntu/ maverick-updates  main restricted&lt;br /&gt;
&lt;br /&gt;
2. remove old rpm and install new one&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get remove rpm&lt;br /&gt;
$ sudo apt-get install rpm&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Local_Build_Without_OBS_Needed</id>
		<title>Local Build Without OBS Needed</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Local_Build_Without_OBS_Needed"/>
				<updated>2011-07-05T07:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Yyin2: /* Building your package using build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is for people who want to avoid any connection with any OBS backend - ie &amp;quot;as raw as possible&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you simply want to do a local build then you probably want &amp;quot;osc build&amp;quot; which does almost everything for you.&lt;br /&gt;
see [[Build_Infrastructure/Packagers_Developers]]&lt;br /&gt;
&lt;br /&gt;
== Building your package using build ==&lt;br /&gt;
&lt;br /&gt;
A more convenient package build way is to use 'build' which is a project from OpenSUSE, MeeGo build infrastructure used it.&lt;br /&gt;
&lt;br /&gt;
You can get build binary package from http://repo.meego.com/MeeGo/tools/repos/ per your Linux distribution, if your Linux distribution isn't there, you can get build source package from http://www.gitorious.org/opensuse/build to build it yourself manually.&lt;br /&gt;
	&lt;br /&gt;
After you install it ( I suppose you know how to install a package on your Linux), you can run “build –help” to get help info.&lt;br /&gt;
&lt;br /&gt;
You must run build as root. If your network needs proxy, please export proxy environment variables, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export http_proxy=http://proxy.yourcompany.com:8080/&lt;br /&gt;
export no_proxy=localhost,127.0.0.0/8,.yourcompany.com, 172.16.0.0/16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
If you used to run “sudo build …” and your network needs proxy, please ensure sudo to inherit proxy environment variables, you can do this by adding the below line to /etc/sudoers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Defaults    env_keep += &amp;quot;http_proxy no_proxy HTTP_PROXY NO_PROXY&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to set correct default distro target, or use the &amp;quot;build --dist=/usr/lib/build/configs/meego-1.1.conf&amp;quot; option:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /usr/lib/build/configs&lt;br /&gt;
sudo ln -sf meego-1.2.conf default.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build also will check rpm package signature, so you must import public key of repository you're using, for example:&lt;br /&gt;
&lt;br /&gt;
For http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages&lt;br /&gt;
&lt;br /&gt;
You can get its public key for http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wget http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/noarch/meego-release-1.2.0-2.1.noarch.rpm&lt;br /&gt;
$ rpm2cpio meego-release-1.2.0-2.1.noarch.rpm | cpio -idmv&lt;br /&gt;
$ rpm --import ./etc/pki/rpm-gpg/RPM-GPG-KEY-meego02&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
This command will build a cpio binary package for MeeGo.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio-2.11-2.6.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Optionally, you also can use spec file to build it, for this case, build will find your source tar ball and patches under current work dir.&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/ --arch i686 cpio.spec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build will base your repo URL to cache your repo, so please use the same URL string for the same repo every time (URL with / at the end of it and the same URL without / at the end of it will result in different cache dirs), you can use multiple --repository options to specify multiple repos, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
build --repository http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/ia32/packages/ \&lt;br /&gt;
    --repository http://repo.meego.com/MeeGo/builds/trunk/preview/netbook/repos/ia32/packages/ \&lt;br /&gt;
    --arch i686 cpio-2.11-2.meego.src.rpm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
The default cache dir is /var/cache/build, you can use option –cachedir to set to other dir.&lt;br /&gt;
	&lt;br /&gt;
The default BUILDROOT dir is /var/tmp/build-root, you can use --root option to specify one more dir, once build is done, you can get your binary package in BUILDROOT, for example:&lt;br /&gt;
	 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/SRPMS/cpio-2.11-2.meego.src.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-2.11-2.meego.i586.rpm&lt;br /&gt;
Wrote: /home/abuild/rpmbuild/RPMS/i586/cpio-debuginfo-2.11-2.meego.i586.rpm&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
Your cpio binary package is /var/tmp/build-root/home/abuild/rpmbuild/RPMS/i586/2.11-2.meego.i586.rpm&lt;br /&gt;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
If you want to modify packages, such as add/modify/remove patches, you need unpack src.rpm first. Then development can be based on source code.&lt;br /&gt;
&lt;br /&gt;
This command would unpack src.rpm to current directory, and your work can be in this directory.&lt;br /&gt;
&lt;br /&gt;
  rpm2cpio XXX.src.rpm | cpio -idmv&lt;br /&gt;
&lt;br /&gt;
#If you want to add a patch, you just need copy the patch to current directory and add this patch in spec file.&lt;br /&gt;
#If you wan to remove patches, you just need to remove them in spec file.&lt;br /&gt;
#If you want to modify exist patch, you can modify the special patch and spec file need not to modify.&lt;br /&gt;
&lt;br /&gt;
Once you development work is done, you can use ‘build’ command to generate new RPM based on you changes. Command as follows:&lt;br /&gt;
&lt;br /&gt;
  build --repository http://YYY/repos/oss/ia32/packages/ --arch i686 XXX.spec&lt;br /&gt;
&lt;br /&gt;
binary RPM package can be found in  /var/tmp/build-root/home/abuild/rpmbuild/RPMS/.&lt;br /&gt;
&lt;br /&gt;
==  Troubleshooting (ARM) ==&lt;br /&gt;
&lt;br /&gt;
=== Exec format error ===&lt;br /&gt;
Meet this problem :&lt;br /&gt;
&lt;br /&gt;
on fedora13 when  using 'build' to create a armv7l rpm package.&lt;br /&gt;
one of reasons: maybe 'qemu-arm' is not right set.&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm' ,and if its output show 'dynamically linked',and the problem maye is here,and it should be  'statically linked'.you can use commands 'rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm' (the package maybe changes,so you can go the web address to get it ,then install it  )to reinstall this part, and maybe you will meet some problem because of its dependencies ,and  you can uninstall all of them first.&lt;br /&gt;
  &lt;br /&gt;
on ubuntu10.04,you should install 'qemu-arm-static',use command:apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
On Debian, you should install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
This problem on ubuntu 10.04 when using 'build' to create a i686 rpm package.&lt;br /&gt;
''Error:rpm: error while loading shared libraries: liblua-5.1.so: cannot open shared object file: No such file or directory''&lt;br /&gt;
Please modify the '''/usr/lib/build/configs/default.conf''' in preinstall section add liblua.--[[User:Kismeter|Kismeter]] 15:02, 2 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
This problem on Ubuntu 10.04 when using 'build' to create a i586 package. Please Use ''build --repository http://repo.meego.com/MeeGo/builds/xxx/core/repos/ia32/packages/ --arch i686 xxxx.src.rpm''&lt;br /&gt;
The arch must be '''i686'''.&lt;br /&gt;
&lt;br /&gt;
===chroot: cannot run command `rpm'===&lt;br /&gt;
&lt;br /&gt;
when build a armv7l rpm,modify /usr/lib/build/build and /usr/lib/build/configs/meego-1.0.conf ,change armv7el to armv7l in these files,maybe /usr/lib/build/Build.pm also need change.&lt;br /&gt;
If problem persist, see [https://bugs.meego.com/show_bug.cgi?id=18905 bug 18905]&lt;br /&gt;
&lt;br /&gt;
== Another language version of this page ==&lt;br /&gt;
&lt;br /&gt;
* [[不需要obs的本地build-_简体中文]]&lt;/div&gt;</summary>
		<author><name>Yyin2</name></author>	</entry>

	</feed>