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

	<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-09-04T08:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: Note about RPM keys.&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;
&lt;br /&gt;
== Building your package using 'build' ==&lt;br /&gt;
&lt;br /&gt;
=== Install '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;
* If your host is MeeGo, you need to install one more package 'perl-XML-Parser'&lt;br /&gt;
&lt;br /&gt;
  zypper install build perl-XML-Parser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Setup ===	&lt;br /&gt;
&lt;br /&gt;
After you install it, you can run “build –help” to get help info. You need to run 'build' as root. &lt;br /&gt;
&lt;br /&gt;
* Proxy&lt;br /&gt;
If your network needs proxy, please export proxy environment variables, for example:&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;
&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;
* Conf file&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;
* GPG Key&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;
If you are building MeeGo packages on same MeeGo version you may already have the key, in which case importing will fail.&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;
=== Build a package ===	&lt;br /&gt;
&lt;br /&gt;
* Build from src [[rpm]]&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;
* Build from Spec file&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 with multiple repository&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;
* Specify cache dir&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;
&lt;br /&gt;
== Development your package using build ==&lt;br /&gt;
&lt;br /&gt;
=== Unpack &amp;amp; make change ===&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;
&lt;br /&gt;
=== Build the package ===&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;
&lt;br /&gt;
==  Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== rpm verify failed ===&lt;br /&gt;
&lt;br /&gt;
If you meet below error, please import GPG key first, if the issue still exist and you are using Ubuntu10.04, 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;
Steps to fix:&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;
=== Exec format error ===&lt;br /&gt;
&lt;br /&gt;
You may have such issue when using 'build' to create a armv7l rpm package, please see detailed solution for the distro&lt;br /&gt;
&lt;br /&gt;
* Fedora13&lt;br /&gt;
Try command:'file /usr/bin/qemu-arm', and its output should show &amp;quot;statically linked&amp;quot;, if not, you can re-install the qemu package(the package maybe changes, you can go the web address to get it, then install it).&lt;br /&gt;
 $file /usr/bin/qemu-arm&lt;br /&gt;
 $sudo rpm -i http://download.opensuse.org/repositories/home:/dl9pf:/qemu/Fedora_12/i386/qemu-devel-0.13git2010.06.24.1826-8.1.i386.rpm  &lt;br /&gt;
&lt;br /&gt;
* Ubuntu10.04&lt;br /&gt;
Please install 'qemu-arm-static'&lt;br /&gt;
 $sudo apt-get install qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
* Debian&lt;br /&gt;
Please install 'qemu-user-static' from Squeeze (Debian 6.0) and later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rpm error ===&lt;br /&gt;
&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;
&lt;br /&gt;
=== Nothing Provides ===&lt;br /&gt;
&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;
&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;
===RPM key import failed===&lt;br /&gt;
&lt;br /&gt;
If you are running the instructions on same version of MeeGo as the repository you are trying to build from, you probably already have the GPG key. In this case trying to import it again will fail but won't say why.&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>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2011-02-26T17:45:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Set Up OBS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot;\(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= The Rules =&lt;br /&gt;
&lt;br /&gt;
* Rule 1. You cannot use any MeeGo binary RPM&lt;br /&gt;
* Rule 2. You can use any binary RPM from any other distro you want&lt;br /&gt;
* Rule 3. You cannot edit anything on the OBS server after the build starts. The build must be completely automated from start to finish.&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0</id>
		<title>Talk:Quality/Compliance primer 1.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0"/>
				<updated>2011-02-20T20:06:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Community hardware adaptations are not mentioned here at all. It is all &amp;quot;products, products, products&amp;quot;. Although I do not argue with the fact that products and their compliance should be a primary concern for MeeGo, community hardware adaptations and the community in general should not be ignored. It just leads to problems, frustration, misunderstandings or in the worst case lawsuits and I hope we all can agree that this is not a desireable outcome.&lt;br /&gt;
&lt;br /&gt;
There has to be a common roof under which community work can happen and that does address the specific needs of community work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Dm8tbr|Dm8tbr]] 10:59, 12 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''Response:'''&lt;br /&gt;
Dm8tbr, can you please define what you mean by hardware adaptation?  Can you provide some concrete examples?&lt;br /&gt;
&lt;br /&gt;
--[[User:Bdub|Bdub]] 21:22, 14 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Bdub, see http://wiki.meego.com/ARM/MSMQSD and http://codex.xiaoka.com/wiki/meego:archos&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 01:18, 15 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
@[[User:Dm8tbr]]:  There are 2 levels of compliance:&lt;br /&gt;
&lt;br /&gt;
* Device &amp;amp; stack compliance (&amp;quot;I can put a MeeGo sticker on my device&amp;quot;, or &amp;quot;I have respun the MeeGo stack to include some extra stuff, to cater to a new UX, etc, and I want to call it MeeGo School Edition&amp;quot; (or whatever)) - this is roughly equivalent to Android platform compliance. This is where Suse MeeGo would fit in, and potentially (when they conform to the compliance requirements) Linpus. This is also where Smeagol and Debian MeeGo port have trouble.&lt;br /&gt;
* Application compliance (&amp;quot;My app is a MeeGo application&amp;quot;) - this is an application bundle that is certified for a given version of MeeGo, and installs stand-alone, like a Mac app or an Android package. And this is where community apps that want to pull in upstream dependencies have trouble.&lt;br /&gt;
&lt;br /&gt;
So a community hardware adaptation should install a MeeGo compliant stack to be able to call itself a MeeGo device. If there are any compliance rules preventing me from (say) installing the MeeGo stack on an N900 or an O2 Joggler and having that be called the MeeGo Joggler edition or whatever, then I would say that that's a bug in the compliance rules &amp;amp; needs to be fixed.&lt;br /&gt;
&lt;br /&gt;
Can you give an example of a situation where the current compliance rules would prevent a community hardware adaption from using the MeeGo name?&lt;br /&gt;
&lt;br /&gt;
--[[User:Dneary|Dneary]] 13:44, 15 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Example: When a community hardware adaptation has just begun, and has not yet achieved compliance, it cannot use the MeeGo trademark on development versions of it's software, because they are not compliant. Therefore it won't be able to distribute testing versions to developers and beta testers, or possibly even tell anyone about the goals of the project. This will make it impossible for a community project to attract any developers and so compliance is unlikely to ever be achieved. The only legal and realistic option is to strip all references to MeeGo from the code - essentially creating an unencumbered fork (like CentOS) - before beginning any adaption work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 20:28, 17 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
see also: https://bugs.meego.com/show_bug.cgi?id=13516&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 20:06, 20 February 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0</id>
		<title>Talk:Quality/Compliance primer 1.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0"/>
				<updated>2011-02-17T20:28:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Community hardware adaptations are not mentioned here at all. It is all &amp;quot;products, products, products&amp;quot;. Although I do not argue with the fact that products and their compliance should be a primary concern for MeeGo, community hardware adaptations and the community in general should not be ignored. It just leads to problems, frustration, misunderstandings or in the worst case lawsuits and I hope we all can agree that this is not a desireable outcome.&lt;br /&gt;
&lt;br /&gt;
There has to be a common roof under which community work can happen and that does address the specific needs of community work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Dm8tbr|Dm8tbr]] 10:59, 12 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''Response:'''&lt;br /&gt;
Dm8tbr, can you please define what you mean by hardware adaptation?  Can you provide some concrete examples?&lt;br /&gt;
&lt;br /&gt;
--[[User:Bdub|Bdub]] 21:22, 14 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Bdub, see http://wiki.meego.com/ARM/MSMQSD and http://codex.xiaoka.com/wiki/meego:archos&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 01:18, 15 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
@[[User:Dm8tbr]]:  There are 2 levels of compliance:&lt;br /&gt;
&lt;br /&gt;
* Device &amp;amp; stack compliance (&amp;quot;I can put a MeeGo sticker on my device&amp;quot;, or &amp;quot;I have respun the MeeGo stack to include some extra stuff, to cater to a new UX, etc, and I want to call it MeeGo School Edition&amp;quot; (or whatever)) - this is roughly equivalent to Android platform compliance. This is where Suse MeeGo would fit in, and potentially (when they conform to the compliance requirements) Linpus. This is also where Smeagol and Debian MeeGo port have trouble.&lt;br /&gt;
* Application compliance (&amp;quot;My app is a MeeGo application&amp;quot;) - this is an application bundle that is certified for a given version of MeeGo, and installs stand-alone, like a Mac app or an Android package. And this is where community apps that want to pull in upstream dependencies have trouble.&lt;br /&gt;
&lt;br /&gt;
So a community hardware adaptation should install a MeeGo compliant stack to be able to call itself a MeeGo device. If there are any compliance rules preventing me from (say) installing the MeeGo stack on an N900 or an O2 Joggler and having that be called the MeeGo Joggler edition or whatever, then I would say that that's a bug in the compliance rules &amp;amp; needs to be fixed.&lt;br /&gt;
&lt;br /&gt;
Can you give an example of a situation where the current compliance rules would prevent a community hardware adaption from using the MeeGo name?&lt;br /&gt;
&lt;br /&gt;
--[[User:Dneary|Dneary]] 13:44, 15 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Example: When a community hardware adaptation has just begun, and has not yet achieved compliance, it cannot use the MeeGo trademark on development versions of it's software, because they are not compliant. Therefore it won't be able to distribute testing versions to developers and beta testers, or possibly even tell anyone about the goals of the project. This will make it impossible for a community project to attract any developers and so compliance is unlikely to ever be achieved. The only legal and realistic option is to strip all references to MeeGo from the code - essentially creating an unencumbered fork (like CentOS) - before beginning any adaption work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 20:28, 17 February 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0</id>
		<title>Talk:Quality/Compliance primer 1.0</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Talk:Quality/Compliance_primer_1.0"/>
				<updated>2011-02-15T01:18:57Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Community hardware adaptations are not mentioned here at all. It is all &amp;quot;products, products, products&amp;quot;. Although I do not argue with the fact that products and their compliance should be a primary concern for MeeGo, community hardware adaptations and the community in general should not be ignored. It just leads to problems, frustration, misunderstandings or in the worst case lawsuits and I hope we all can agree that this is not a desireable outcome.&lt;br /&gt;
&lt;br /&gt;
There has to be a common roof under which community work can happen and that does address the specific needs of community work.&lt;br /&gt;
&lt;br /&gt;
--[[User:Dm8tbr|Dm8tbr]] 10:59, 12 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
'''Response:'''&lt;br /&gt;
Dm8tbr, can you please define what you mean by hardware adaptation?  Can you provide some concrete examples?&lt;br /&gt;
&lt;br /&gt;
--[[User:Bdub|Bdub]] 21:22, 14 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Bdub, see http://wiki.meego.com/ARM/MSMQSD and http://codex.xiaoka.com/wiki/meego:archos&lt;br /&gt;
&lt;br /&gt;
--[[User:Ali1234|Ali1234]] 01:18, 15 February 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_Desktop/Changing_Desktops</id>
		<title>MeeGo Desktop/Changing Desktops</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_Desktop/Changing_Desktops"/>
				<updated>2011-01-05T02:52:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Assumptions */ - just adding a link to the ideapad page...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Background==&lt;br /&gt;
At the 2010 MeeGo Conference in Dublin, the question of how to switch from the Netbook to the Handset desktop was asked during the MeeGo Handset UX Roadmap session.  The context of the question had to do with using the Lenovo S10-3t Netbooks given away at the conference as platforms for MeeGo Handset development.  [[User:Sabotage|Sabotage]] pipped up and offered up his experience as proof that it can be done, and some '''very''' basic instructions on how to do so.  Since the question continues to come up in Mailing lists and IRC, the specifics on how to switch between desktops are being documented for ongoing reference.&lt;br /&gt;
&lt;br /&gt;
If it proves useful and interesting to others, maybe these will spawn the development of a desktop &amp;quot;switcher&amp;quot; applet/tool... hint, hint ;)&lt;br /&gt;
&lt;br /&gt;
==Pre-work==&lt;br /&gt;
===Assumptions===&lt;br /&gt;
# Using a supported Netbook, such at the [[Devices/Ideapad|Lenovo S10-3t]] that was given away at the 2010 MeeGo Conference&lt;br /&gt;
# You have root and/or sudo rights on the above device&lt;br /&gt;
# You have an installed and running MeeGo 1.1 or later Netbook image ([http://download.meego.com/trunk-daily/builds/trunk/ Daily images])&lt;br /&gt;
&lt;br /&gt;
===Install Handset Packages===&lt;br /&gt;
====Add the Handset repos====&lt;br /&gt;
You need to add the appropriate repos to your zypper configs so you can install the Handset packages.  This will be different depending on:&lt;br /&gt;
# Your architecture (ARM, ia32, etc.)&lt;br /&gt;
# Your desired stability (Daily vs. Weekly vs. Release repos)&lt;br /&gt;
So, for example, to add the daily handset repos for the ia32 architecture, you could do this as root:&lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF &amp;gt; /etc/zypp/repos.d/handset.repo&lt;br /&gt;
 [handset]&lt;br /&gt;
 name=handset&lt;br /&gt;
 enabled=1&lt;br /&gt;
 autorefresh=0&lt;br /&gt;
 baseurl=http://repo.meego.com/MeeGo/builds/trunk/daily/handset/repos/ia32/packages/&lt;br /&gt;
 type=rpm-md&lt;br /&gt;
 gpgcheck=1&lt;br /&gt;
 gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-meego&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====Refresh the packages list====&lt;br /&gt;
 sudo zypper refesh&lt;br /&gt;
====Install the Handset Desktop packages====&lt;br /&gt;
 sudo zypper in -t pattern meego-handset-base-support meego-handset-desktop&lt;br /&gt;
==How-To==&lt;br /&gt;
Now that you have the needed packages installed, we must tell uxlaunch (process that controls the user session startup environment and auto starts configured user session daemons and apps)&lt;br /&gt;
===Change uxlaunch configuration===&lt;br /&gt;
Edit the /etc/sysconfig/uxlaunch file and comment out the following, existing, entry&lt;br /&gt;
 sudo sed -i.BAK -ne 's/\(^#\)\(session=.*mcompositor.*$\)/\2/g; s/\(^session=.*mutter.*$\)/#\1/g; p' /etc/sysconfig/uxlaunch&lt;br /&gt;
Add a new, Handset specific, entry that will start the windomanager used (mcompositor)&lt;br /&gt;
 sudo sh -c &amp;quot;echo 'session=/usr/bin/mcompositor' &amp;gt;&amp;gt; /etc/sysconfig/uxlaunch&amp;quot;&lt;br /&gt;
===Restart user session===&lt;br /&gt;
# $ sudo reboot&lt;br /&gt;
#: OR&lt;br /&gt;
# $ sudo telinit 3; sleep 3; sudo telinit 5;&lt;br /&gt;
===Get correct resolution on IdeaPad===&lt;br /&gt;
Change the default target configuration by editing a gconf key:&lt;br /&gt;
 gconftool-2 --set /meegotouch/target/name --type=string &amp;quot;slate&amp;quot;&lt;br /&gt;
The reset session as above&lt;br /&gt;
&lt;br /&gt;
==TODO==&lt;br /&gt;
* Development of a single, cross-MeeGo, desktop switcher?&lt;br /&gt;
*: This would need to be Qt/Gnome agnostic or independent, since, today at least, the Netbook desktop is Gnome based, while the Handset one is Qt based.&lt;br /&gt;
*: Here's a simple script for starters that simply toggles between the Netbook and Handset desktops:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 NETBOOK_CMD=&amp;quot;/usr/bin/mutter&amp;quot;&lt;br /&gt;
 HANDSET_CMD=&amp;quot;/usr/bin/mcompositor&amp;quot;&lt;br /&gt;
 UXLAUNCH_CONF=&amp;quot;/etc/sysconfig/uxlaunch&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 CURRENT=$(grep -e &amp;quot;^session=&amp;quot; ${UXLAUNCH_CONF}|cut -d' ' -f1|sed -ne &amp;quot;s/^session=\(.*\)$/\1/p&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 function sethandset {&lt;br /&gt;
 	sudo sed -i -ne 's/\(^#\)\(session=.*mcompositor.*$\)/\2/g; s/\(^session=.*mutter.*$\)/#\1/g; p' ${UXLAUNCH_CONF}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 function setnetbook {&lt;br /&gt;
 	sudo sed -i -ne 's/\(^#\)\(session=.*mutter.*$\)/\2/g; s/\(^session=.*mcompositor.*$\)/#\1/g; p' ${UXLAUNCH_CONF}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 [ $nocasematch ] || nocasematch=1&lt;br /&gt;
 case &amp;quot;${CURRENT}&amp;quot; in&lt;br /&gt;
 	&amp;quot;${NETBOOK_CMD}&amp;quot; )&lt;br /&gt;
                echo &amp;quot;Switching to Handset Desktop&amp;quot;&lt;br /&gt;
 		sethandset&lt;br /&gt;
 		;;&lt;br /&gt;
 	&amp;quot;${HANDSET_CMD}&amp;quot; )&lt;br /&gt;
                echo &amp;quot;Switching to Netbook Desktop&amp;quot;&lt;br /&gt;
 		setnetbook&lt;br /&gt;
 		;; &lt;br /&gt;
 	*)&lt;br /&gt;
                echo &amp;quot;Unknown desktop: \&amp;quot;$CURRENT\&amp;quot;&amp;quot;&lt;br /&gt;
         	exit&lt;br /&gt;
 		;;&lt;br /&gt;
 esac&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/Ideapad</id>
		<title>Devices/Ideapad</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/Ideapad"/>
				<updated>2010-12-01T18:46:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Accelerometer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lenovo S10-3t IdeaPads were given to attendees of the [[MeeGo Conference 2010]] (Thanks Intel and Nokia!). This page aims to collect issues, solutions and hacks by the MeeGo Community for this device. It is mostly collected from the [http://forum.meego.com/showthread.php?t=1995 Lenovo S10-3t improvements] thread on MeeGo Forums.&lt;br /&gt;
&lt;br /&gt;
== Major issues ==&lt;br /&gt;
&lt;br /&gt;
It seems that some users get their wifi (and bluetooth) disabled and/or the battery status. There is some talk going on these two links, with work around that may or may not work. For the atheros folks it worked but the ones with broadcom it didn't.&lt;br /&gt;
&lt;br /&gt;
* Problem: BROADCOM based wifi: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://www.proli.net/2010/11/19/hidden-wifi-switches/&lt;br /&gt;
** Workaround: boot, BIOS setup, Load factory defaults, Save and exit&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: ATHEROS workaround: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://forum.meego.com/showthread.php?p=13321&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: [http://bugs.meego.com/show_bug.cgi?id=3276 Resume from suspend to RAM does not work every time]&lt;br /&gt;
** Workaround:&lt;br /&gt;
** Solution:&lt;br /&gt;
&lt;br /&gt;
== Minor issues ==&lt;br /&gt;
* Headphone jack doesn't work [http://bugs.meego.com/show_bug.cgi?id=10289 Bug report]&lt;br /&gt;
** Workaround: Add &amp;lt;code&amp;gt;options snd-hda-intel model=&amp;quot;olpc-xo-1_5&amp;quot;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/etc/modprobe.d/alsa-base.conf&amp;lt;/code&amp;gt; and reboot&lt;br /&gt;
** Solution: none yet&lt;br /&gt;
&lt;br /&gt;
== Using the Ideapad with MeeGo ==&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Chromium ===&lt;br /&gt;
&lt;br /&gt;
The [https://chrome.google.com/extensions/detail/ncegfehgjifmmpnjaihnjpbpddjjebme ChromeTouch] extension enables kinetic scrolling with the browser and the touch screen.&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefox has a similar add-on: [http://addons.mozilla.org/firefox/addon/1250/ Grab and Drag]&lt;br /&gt;
&lt;br /&gt;
=== On-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
See the following resources&lt;br /&gt;
* [[Input Method Framework/MeeGo 1.1]]&lt;br /&gt;
* [http://blog.neteril.org/2010/11/19/turning-your-meego-lenovo-s10-3t-into-a-real-slate/ Turn your Lenovo into a real slate] &lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=1803 forum thread]&lt;br /&gt;
&lt;br /&gt;
=== Software Setup ===&lt;br /&gt;
&lt;br /&gt;
The [[MeeGo 1.0 Netbook FAQ]] has resources on&lt;br /&gt;
* Application installation&lt;br /&gt;
* Dropbox&lt;br /&gt;
* Skype&lt;br /&gt;
* Codecs&lt;br /&gt;
* Changing keyboard layout post-install (since some of us accidently set it to US rather than UK)&lt;br /&gt;
&lt;br /&gt;
*fennec-qt (Firefox Mobile)&lt;br /&gt;
** For fullscreen run: &amp;lt;code&amp;gt;fennec -target slate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware Configuration ==&lt;br /&gt;
&lt;br /&gt;
[http://consumersupport.lenovo.com/ie/en/DriversDownloads/drivers_list.aspx?CategoryID=45252 Chipset listing (for Windows Drivers)]&lt;br /&gt;
&lt;br /&gt;
=== Touchpad ===&lt;br /&gt;
&lt;br /&gt;
Taps are accepted as mouse presses but not the bottom left and right clicks, see [http://bugs.meego.com/show_bug.cgi?id=4807 bug report]&lt;br /&gt;
&lt;br /&gt;
To enable RMB in the RightBottom corner of the touchpad issue the following command:&lt;br /&gt;
 synclient RBCornerButton=3&lt;br /&gt;
&lt;br /&gt;
To make it permanent edit /etc/X11/xorg.conf.d/10-input-synaptics.conf to:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     MatchIsTouchpad &amp;quot;true&amp;quot;&lt;br /&gt;
     Driver &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     Option &amp;quot;RBCornerButton&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
=== Accelerometer ===&lt;br /&gt;
&lt;br /&gt;
The Ideapad has a two axis accelerometer located in the keyboard part. Under Windows it is accessed through the APS software and used for screen rotation and parking the hard-drive under shock conditions. APS is widely used on Thinkpads and the Ideapad appears to have the same type of accelerometer. Accelerometer values are read through an &amp;quot;embedded controller&amp;quot; interface. Linux support for this device is normally provided by the [http://www.thinkwiki.org/wiki/Tp_smapi tp_smapi] driver, however, it has [http://www.thinkwiki.org/wiki/Tp_smapi#SL_series_and_IdeaPad no support for the Ideapad embedded controller].&lt;br /&gt;
&lt;br /&gt;
=== 3G ===&lt;br /&gt;
&lt;br /&gt;
[http://www.netbooks.ph/forums/viewtopic.php?f=56&amp;amp;t=2220 See this article about adding a 3G modem.]&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/Ideapad</id>
		<title>Devices/Ideapad</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/Ideapad"/>
				<updated>2010-12-01T18:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lenovo S10-3t IdeaPads were given to attendees of the [[MeeGo Conference 2010]] (Thanks Intel and Nokia!). This page aims to collect issues, solutions and hacks by the MeeGo Community for this device. It is mostly collected from the [http://forum.meego.com/showthread.php?t=1995 Lenovo S10-3t improvements] thread on MeeGo Forums.&lt;br /&gt;
&lt;br /&gt;
== Major issues ==&lt;br /&gt;
&lt;br /&gt;
It seems that some users get their wifi (and bluetooth) disabled and/or the battery status. There is some talk going on these two links, with work around that may or may not work. For the atheros folks it worked but the ones with broadcom it didn't.&lt;br /&gt;
&lt;br /&gt;
* Problem: BROADCOM based wifi: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://www.proli.net/2010/11/19/hidden-wifi-switches/&lt;br /&gt;
** Workaround: boot, BIOS setup, Load factory defaults, Save and exit&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: ATHEROS workaround: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://forum.meego.com/showthread.php?p=13321&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: [http://bugs.meego.com/show_bug.cgi?id=3276 Resume from suspend to RAM does not work every time]&lt;br /&gt;
** Workaround:&lt;br /&gt;
** Solution:&lt;br /&gt;
&lt;br /&gt;
== Minor issues ==&lt;br /&gt;
* Headphone jack doesn't work [http://bugs.meego.com/show_bug.cgi?id=10289 Bug report]&lt;br /&gt;
** Workaround: Add &amp;lt;code&amp;gt;options snd-hda-intel model=&amp;quot;olpc-xo-1_5&amp;quot;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/etc/modprobe.d/alsa-base.conf&amp;lt;/code&amp;gt; and reboot&lt;br /&gt;
** Solution: none yet&lt;br /&gt;
&lt;br /&gt;
== Using the Ideapad with MeeGo ==&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Chromium ===&lt;br /&gt;
&lt;br /&gt;
The [https://chrome.google.com/extensions/detail/ncegfehgjifmmpnjaihnjpbpddjjebme ChromeTouch] extension enables kinetic scrolling with the browser and the touch screen.&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefox has a similar add-on: [http://addons.mozilla.org/firefox/addon/1250/ Grab and Drag]&lt;br /&gt;
&lt;br /&gt;
=== On-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
See the following resources&lt;br /&gt;
* [[Input Method Framework/MeeGo 1.1]]&lt;br /&gt;
* [http://blog.neteril.org/2010/11/19/turning-your-meego-lenovo-s10-3t-into-a-real-slate/ Turn your Lenovo into a real slate] &lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=1803 forum thread]&lt;br /&gt;
&lt;br /&gt;
=== Software Setup ===&lt;br /&gt;
&lt;br /&gt;
The [[MeeGo 1.0 Netbook FAQ]] has resources on&lt;br /&gt;
* Application installation&lt;br /&gt;
* Dropbox&lt;br /&gt;
* Skype&lt;br /&gt;
* Codecs&lt;br /&gt;
* Changing keyboard layout post-install (since some of us accidently set it to US rather than UK)&lt;br /&gt;
&lt;br /&gt;
*fennec-qt (Firefox Mobile)&lt;br /&gt;
** For fullscreen run: &amp;lt;code&amp;gt;fennec -target slate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware Configuration ==&lt;br /&gt;
&lt;br /&gt;
[http://consumersupport.lenovo.com/ie/en/DriversDownloads/drivers_list.aspx?CategoryID=45252 Chipset listing (for Windows Drivers)]&lt;br /&gt;
&lt;br /&gt;
=== Touchpad ===&lt;br /&gt;
&lt;br /&gt;
Taps are accepted as mouse presses but not the bottom left and right clicks, see [http://bugs.meego.com/show_bug.cgi?id=4807 bug report]&lt;br /&gt;
&lt;br /&gt;
To enable RMB in the RightBottom corner of the touchpad issue the following command:&lt;br /&gt;
 synclient RBCornerButton=3&lt;br /&gt;
&lt;br /&gt;
To make it permanent edit /etc/X11/xorg.conf.d/10-input-synaptics.conf to:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     MatchIsTouchpad &amp;quot;true&amp;quot;&lt;br /&gt;
     Driver &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     Option &amp;quot;RBCornerButton&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
=== Accelerometer ===&lt;br /&gt;
&lt;br /&gt;
The Ideapad has a two axis accelerometer located in the keyboard part. Under Windows it is accessed through the APS software and used for screen rotation and parking the hard-drive under shock conditions. APS is widely used on Thinkpads and the Ideapad appears to have the same type of accelerometer. Accelerometer values are read through an ACPI/BIOS interface. Linux support for this device is normally provided by the [http://www.thinkwiki.org/wiki/Tp_smapi tp_smapi] driver, however, it has [http://www.thinkwiki.org/wiki/Tp_smapi#SL_series_and_IdeaPad no support for the Ideapad BIOS].&lt;br /&gt;
&lt;br /&gt;
=== 3G ===&lt;br /&gt;
&lt;br /&gt;
[http://www.netbooks.ph/forums/viewtopic.php?f=56&amp;amp;t=2220 See this article about adding a 3G modem.]&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/Ideapad</id>
		<title>Devices/Ideapad</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/Ideapad"/>
				<updated>2010-12-01T18:30:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Lenovo S10-3t IdeaPads were given to attendees of the [[MeeGo Conference 2010]] (Thanks Intel and Nokia!). This page aims to collect issues, solutions and hacks by the MeeGo Community for this device. It is mostly collected from the [http://forum.meego.com/showthread.php?t=1995 Lenovo S10-3t improvements] thread on MeeGo Forums.&lt;br /&gt;
&lt;br /&gt;
== Major issues ==&lt;br /&gt;
&lt;br /&gt;
It seems that some users get their wifi (and bluetooth) disabled and/or the battery status. There is some talk going on these two links, with work around that may or may not work. For the atheros folks it worked but the ones with broadcom it didn't.&lt;br /&gt;
&lt;br /&gt;
* Problem: BROADCOM based wifi: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://www.proli.net/2010/11/19/hidden-wifi-switches/&lt;br /&gt;
** Workaround: boot, BIOS setup, Load factory defaults, Save and exit&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: ATHEROS workaround: No way to enable WiFi after switching it off using the switch&lt;br /&gt;
** Workaround: http://forum.meego.com/showthread.php?p=13321&lt;br /&gt;
** Solution: Waiting for some help from Intel or BIOS updates from Lenovo.&lt;br /&gt;
* Problem: [http://bugs.meego.com/show_bug.cgi?id=3276 Resume from suspend to RAM does not work every time]&lt;br /&gt;
** Workaround:&lt;br /&gt;
** Solution:&lt;br /&gt;
&lt;br /&gt;
== Minor issues ==&lt;br /&gt;
* Headphone jack doesn't work [http://bugs.meego.com/show_bug.cgi?id=10289 Bug report]&lt;br /&gt;
** Workaround: Add &amp;lt;code&amp;gt;options snd-hda-intel model=&amp;quot;olpc-xo-1_5&amp;quot;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/etc/modprobe.d/alsa-base.conf&amp;lt;/code&amp;gt; and reboot&lt;br /&gt;
** Solution: none yet&lt;br /&gt;
&lt;br /&gt;
== Using the Ideapad with MeeGo ==&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Chromium ===&lt;br /&gt;
&lt;br /&gt;
The [https://chrome.google.com/extensions/detail/ncegfehgjifmmpnjaihnjpbpddjjebme ChromeTouch] extension enables kinetic scrolling with the browser and the touch screen.&lt;br /&gt;
&lt;br /&gt;
=== Finger scrolling with Firefox ===&lt;br /&gt;
&lt;br /&gt;
Firefox has a similar add-on: [http://addons.mozilla.org/firefox/addon/1250/ Grab and Drag]&lt;br /&gt;
&lt;br /&gt;
=== On-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
See the following resources&lt;br /&gt;
* [[Input Method Framework/MeeGo 1.1]]&lt;br /&gt;
* [http://blog.neteril.org/2010/11/19/turning-your-meego-lenovo-s10-3t-into-a-real-slate/ Turn your Lenovo into a real slate] &lt;br /&gt;
* [http://forum.meego.com/showthread.php?t=1803 forum thread]&lt;br /&gt;
&lt;br /&gt;
=== Software Setup ===&lt;br /&gt;
&lt;br /&gt;
The [[MeeGo 1.0 Netbook FAQ]] has resources on&lt;br /&gt;
* Application installation&lt;br /&gt;
* Dropbox&lt;br /&gt;
* Skype&lt;br /&gt;
* Codecs&lt;br /&gt;
* Changing keyboard layout post-install (since some of us accidently set it to US rather than UK)&lt;br /&gt;
&lt;br /&gt;
*fennec-qt (Firefox Mobile)&lt;br /&gt;
** For fullscreen run: &amp;lt;code&amp;gt;fennec -target slate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware Configuration ==&lt;br /&gt;
&lt;br /&gt;
[http://consumersupport.lenovo.com/ie/en/DriversDownloads/drivers_list.aspx?CategoryID=45252 Chipset listing (for Windows Drivers)]&lt;br /&gt;
&lt;br /&gt;
=== Touchpad ===&lt;br /&gt;
&lt;br /&gt;
Taps are accepted as mouse presses but not the bottom left and right clicks, see [http://bugs.meego.com/show_bug.cgi?id=4807 bug report]&lt;br /&gt;
&lt;br /&gt;
To enable RMB in the RightBottom corner of the touchpad issue the following command:&lt;br /&gt;
 synclient RBCornerButton=3&lt;br /&gt;
&lt;br /&gt;
To make it permanent edit /etc/X11/xorg.conf.d/10-input-synaptics.conf to:&lt;br /&gt;
 Section &amp;quot;InputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     MatchIsTouchpad &amp;quot;true&amp;quot;&lt;br /&gt;
     Driver &amp;quot;synaptics&amp;quot;&lt;br /&gt;
     Option &amp;quot;RBCornerButton&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
=== Accelerometer ===&lt;br /&gt;
&lt;br /&gt;
The Ideapad has a two axis accelerometer located in the keyboard part. Under Windows it is accessed through the APS software and used for screen rotation and parking the hard-drive under shock conditions. APS is widely used on Thinkpads and the Ideapad appears to have the same type of accelerometer. Accelerometer values are read through an ACPI/BIOS interface. Linux support for this device is normally provided by the [http://www.thinkwiki.org/wiki/Tp_smapi tp_smapi] driver, however, it has [http://www.thinkwiki.org/wiki/Tp_smapi#SL_series_and_IdeaPad no support for the  Ideapad BIOS].&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_Conference_2010/Unconference/ARM</id>
		<title>MeeGo Conference 2010/Unconference/ARM</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_Conference_2010/Unconference/ARM"/>
				<updated>2010-11-09T12:12:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== When ==&lt;br /&gt;
&lt;br /&gt;
This will happen as a BoF at http://conference2010.meego.com/session/bof-meego-arm&lt;br /&gt;
&lt;br /&gt;
== Intents &amp;amp; Purposes ==&lt;br /&gt;
&lt;br /&gt;
I plan to get together with like minded individuals at the unconference part of the MeeGo conference 2010 and talk about [[ARM|MeeGo on ARM]]. The idea is to sit down and discuss current state of the port of the MeeGo platform to the ARM architecture, problems, lessons learnt and future directions of MeeGo ARM and everything surrounding it (tool support, ecosystem, quality, documentation, etc.)&lt;br /&gt;
&lt;br /&gt;
Chipset and SoC vendors, hobbyists, end-user product developers, OEM, ODMs, ISVs, porting engineers, toolchain engineers - everyone with an interest is more than welcome. - indicate your interest below!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Like Minded Individuals ==&lt;br /&gt;
&lt;br /&gt;
(Form: Name, IRC nickname if any, Affiliation, discussion topic)&lt;br /&gt;
&lt;br /&gt;
* Carsten Munk, Stskeeps, Imogen Software - MeeGo Nokia N900 hardware adaptation team member - Topics: The above!&lt;br /&gt;
* Tomasz Sterna, smoku, hobbyist - MSM/QSD adaptation team member&lt;br /&gt;
* Randall Arnold, texrat - General interest in broad platform support&lt;br /&gt;
* Till Harbaum, harbaum - MeeGo on Beagleboard and similar plattforms&lt;br /&gt;
* George Ioakimedes, GeorgeIoak - Mostly TI OMAP based boards but open to other ARM solutions&lt;br /&gt;
* Jeremiah C. Foster, jeremiah, Pelagicore / GENIVI - ARM and Qemu, Integrating Linaro bits, integrating MeeGo IVI, GENIVI, etc.&lt;br /&gt;
* Timo Härkönen, timoph, Digia Plc - MeeGo QA-tools team member, general interest&lt;br /&gt;
* Jari Palojärvi, jpal, Nokia, MeeGo Porting Guide&lt;br /&gt;
* Jan-Simon Möller, dl9pf, The Linux Foundation, Toolchain/Qemu/OBS, broad platform support.&lt;br /&gt;
* Christian Daudt, csdb, Broadcom, ARM &amp;amp; MeeGo overall.&lt;br /&gt;
* Sivan Greenberg, sivang - Toolchain, quality, cross OS porting and general interest.&lt;br /&gt;
* Tero Kojo, tekojo, Nokia - Community interest, general interest&lt;br /&gt;
* Marko Saukko, Sage, Cybercom - MeeGo Nokia N900 hardware adaptation team member&lt;br /&gt;
* Mats Bergström, MatsBergstrom, ST-Ericsson, Community interest&lt;br /&gt;
* Tony Månsson, ST-Ericsson, MeeGo on ARM interest.&lt;br /&gt;
* Alison Chaiken, Alison_Chaiken, soon-to-be-Nokia, interests same as Möller&lt;br /&gt;
* Alistair Buxton, ali1234, - N900 adaption (dual boot etc) and broad platform support&lt;br /&gt;
&amp;lt;add your indication of interest here&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-09-26T02:48:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* MeeGo Proper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot;\(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= The Rules =&lt;br /&gt;
&lt;br /&gt;
* Rule 1. You cannot use any MeeGo binary RPM&lt;br /&gt;
* Rule 2. You can use any binary RPM from any other distro you want&lt;br /&gt;
* Rule 3. You cannot edit anything on the OBS server after the build starts. The build must be completely automated from start to finish.&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-09-26T02:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Bootstrap MeeGo Toolchain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot;\(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= The Rules =&lt;br /&gt;
&lt;br /&gt;
* Rule 1. You cannot use any MeeGo binary RPM&lt;br /&gt;
* Rule 2. You can use any binary RPM from any other distro you want&lt;br /&gt;
* Rule 3. You cannot edit anything on the OBS server after the build starts. The build must be completely automated from start to finish.&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Proper ==&lt;br /&gt;
&lt;br /&gt;
Create a new Project at home:Admin:MeeGo and check it out. Load in *all* the MeeGo source rpms. Tell it to use the home:Admin:bootstrap project as build repository. Now let the OBS do it's stuff. A long while later everything should have built. (In theory.)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-20T16:40:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot;\(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= The Rules =&lt;br /&gt;
&lt;br /&gt;
* Rule 1. You cannot use any MeeGo binary RPM&lt;br /&gt;
* Rule 2. You can use any binary RPM from any other distro you want&lt;br /&gt;
* Rule 3. You cannot edit anything on the OBS server after the build starts. The build must be completely automated from start to finish.&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== Bootstrap MeeGo Toolchain ==&lt;br /&gt;
&lt;br /&gt;
Create a new project under your home: project called &amp;quot;bootstrap&amp;quot; and check it out using osc:&lt;br /&gt;
&lt;br /&gt;
 osc -A http://localhost:81 co home:Admin:bootstrap&lt;br /&gt;
 cd home\:Admin\:bootstrap/&lt;br /&gt;
&lt;br /&gt;
Import toolchain source rpms:&lt;br /&gt;
&lt;br /&gt;
 osc importsrcpkg -c ../binutils-2.20.51.0.2-17.2.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../gcc-4.4.2-12.8.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../glibc-2.11.90-18.7.src.rpm&lt;br /&gt;
&lt;br /&gt;
Back on the OBS webpage, add Fedora_13 to &amp;quot;build repositories&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The OBS will think for a while, and then decide to compile binutils and gcc, and then glibc (hopefully) using the binutils and gcc it just built. But note that the gcc and binutils are still linked against the Fedora_13 glibc, so we rebuild them in the next step.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Proper ==&lt;br /&gt;
&lt;br /&gt;
Create a new Project at home:Admin:MeeGo and check it out. Load in *all* the MeeGo source rpms. Tell it to use the home:Admin:bootstrap project as build repository. Now let the OBS do it's stuff. A long while later everything should have built. (In theory.)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-20T14:17:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= The Rules =&lt;br /&gt;
&lt;br /&gt;
* Rule 1. You cannot use any MeeGo binary RPM&lt;br /&gt;
* Rule 2. You can use any binary RPM from any other distro you want&lt;br /&gt;
* Rule 3. You cannot edit anything on the OBS server after the build starts. The build must be completely automated from start to finish.&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== Bootstrap MeeGo Toolchain ==&lt;br /&gt;
&lt;br /&gt;
Create a new project under your home: project called &amp;quot;bootstrap&amp;quot; and check it out using osc:&lt;br /&gt;
&lt;br /&gt;
 osc -A http://localhost:81 co home:Admin:bootstrap&lt;br /&gt;
 cd home\:Admin\:bootstrap/&lt;br /&gt;
&lt;br /&gt;
Import toolchain source rpms:&lt;br /&gt;
&lt;br /&gt;
 osc importsrcpkg -c ../binutils-2.20.51.0.2-17.2.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../gcc-4.4.2-12.8.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../glibc-2.11.90-18.7.src.rpm&lt;br /&gt;
&lt;br /&gt;
Back on the OBS webpage, add Fedora_13 to &amp;quot;build repositories&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The OBS will think for a while, and then decide to compile binutils and gcc, and then glibc (hopefully) using the binutils and gcc it just built. But note that the gcc and binutils are still linked against the Fedora_13 glibc, so we rebuild them in the next step.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Proper ==&lt;br /&gt;
&lt;br /&gt;
Create a new Project at home:Admin:MeeGo and check it out. Load in *all* the MeeGo source rpms. Tell it to use the home:Admin:bootstrap project as build repository. Now let the OBS do it's stuff. A long while later everything should have built. (In theory.)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-18T20:31:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Bootstrap MeeGo Toolchain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== Bootstrap MeeGo Toolchain ==&lt;br /&gt;
&lt;br /&gt;
Create a new project under your home: project called &amp;quot;bootstrap&amp;quot; and check it out using osc:&lt;br /&gt;
&lt;br /&gt;
 osc -A http://localhost:81 co home:Admin:bootstrap&lt;br /&gt;
 cd home\:Admin\:bootstrap/&lt;br /&gt;
&lt;br /&gt;
Import toolchain source rpms:&lt;br /&gt;
&lt;br /&gt;
 osc importsrcpkg -c ../binutils-2.20.51.0.2-17.2.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../gcc-4.4.2-12.8.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../glibc-2.11.90-18.7.src.rpm&lt;br /&gt;
&lt;br /&gt;
Back on the OBS webpage, add Fedora_13 to &amp;quot;build repositories&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The OBS will think for a while, and then decide to compile binutils and gcc, and then glibc (hopefully) using the binutils and gcc it just built. But note that the gcc and binutils are still linked against the Fedora_13 glibc, so we rebuild them in the next step.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Proper ==&lt;br /&gt;
&lt;br /&gt;
Create a new Project at home:Admin:MeeGo and check it out. Load in *all* the MeeGo source rpms. Tell it to use the home:Admin:bootstrap project as build repository. Now let the OBS do it's stuff. A long while later everything should have built. (In theory.)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-17T04:54:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== Bootstrap MeeGo Toolchain ==&lt;br /&gt;
&lt;br /&gt;
Create a new project under your home: project called &amp;quot;bootstrap&amp;quot; and check it out using osc:&lt;br /&gt;
&lt;br /&gt;
 osc -A http://localhost:81 cs home:Admin:bootstrap&lt;br /&gt;
 cd home\:Admin\:bootstrap/&lt;br /&gt;
&lt;br /&gt;
Import toolchain source rpms:&lt;br /&gt;
&lt;br /&gt;
 osc importsrcpkg -c ../binutils-2.20.51.0.2-17.2.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../gcc-4.4.2-12.8.src.rpm&lt;br /&gt;
 osc importsrcpkg -c ../glibc-2.11.90-18.7.src.rpm&lt;br /&gt;
&lt;br /&gt;
Back on the OBS webpage, add Fedora_13 to &amp;quot;build repositories&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The OBS will think for a while, and then decide to compile binutils and gcc, and then glibc (hopefully) using the binutils and gcc it just built. But note that the gcc and binutils are still linked against the Fedora_13 glibc, so we rebuild them in the next step.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Proper ==&lt;br /&gt;
&lt;br /&gt;
Create a new Project at home:Admin:MeeGo and check it out. Load in *all* the MeeGo source rpms. Tell it to use the home:Admin:bootstrap project as build repository. Now let the OBS do it's stuff. A long while later everything should have built. (In theory.)&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-17T03:54:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Notes on Setting Up Private OBS (WIP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Compile MeeGo's gcc and binutils against openSUSE&lt;br /&gt;
* Compile MeeGo's libc, gcc, binutils with the toolchain made in the previous step&lt;br /&gt;
* Compile all the rest of MeeGo against the packages created in the previous step&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-17T03:47:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Install Appliance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-17T00:22:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Configure LVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
The Appliance system will search for OBS volumes, and if found it will use them for server storage and cache. If you create volumes for the workers, it will start worker processes too, all on the same system.&lt;br /&gt;
&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-16T23:16:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Set Up OBS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. In theory you would be able to use the MeeGo repositories when they go public. However, you won't be able to use them unless your OBS server is Core 2 or better. In any case, since we need to bootstrap everything from scratch, it does not matter what we use for the initial builds. The simplest way to get started is to link to the openSUSE build service.&lt;br /&gt;
&lt;br /&gt;
Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public build service.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-16T23:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Notes on Setting Up Private OBS (WIP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;br /&gt;
&lt;br /&gt;
== Set Up OBS ==&lt;br /&gt;
&lt;br /&gt;
In order to build anything in OBS you need packages to build against. Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click &amp;quot;Setup OBS&amp;quot; to connect your OBS to the openSUSE public repository.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-16T22:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Notes on Setting Up Private OBS (WIP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;br /&gt;
&lt;br /&gt;
== Customize the Appliance System ==&lt;br /&gt;
&lt;br /&gt;
To login to the appliance hit enter on the console. Login is root, no password.&lt;br /&gt;
&lt;br /&gt;
Install a sensible editor:&lt;br /&gt;
&lt;br /&gt;
 zypper in nano&lt;br /&gt;
&lt;br /&gt;
Enable sshd:&lt;br /&gt;
&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
&lt;br /&gt;
Tip: Don't bother trying to set the server to use a static IP address, it won't work. You have to set a static lease in your DHCP server instead.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-16T21:16:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Notes on Setting Up Private OBS (WIP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install OBS Appliance inside a VM ==&lt;br /&gt;
=== VM Config ===&lt;br /&gt;
Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions. &lt;br /&gt;
&lt;br /&gt;
=== Install Appliance ===&lt;br /&gt;
Boot it with your favourite Linux live CD and write the appliance image to the virtual disk:&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2&lt;br /&gt;
 bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 &amp;gt; /dev/sda&lt;br /&gt;
&lt;br /&gt;
=== Configure LVM ===&lt;br /&gt;
Use fdisk to make one big partition on /dev/sdb, type 8e:&lt;br /&gt;
 fdisk /dev/sdb&lt;br /&gt;
Make LVM partition for server:&lt;br /&gt;
 pvcreate /dev/sdb1&lt;br /&gt;
 vgcreate &amp;quot;OBS&amp;quot; /dev/sdb1&lt;br /&gt;
 lvcreate -L 70G -n &amp;quot;server&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/server&lt;br /&gt;
For cache:&lt;br /&gt;
 lvcreate -L 20G -n &amp;quot;cache&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/cache&lt;br /&gt;
For two workers:&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_1&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 4G -n &amp;quot;worker_root_2&amp;quot; /dev/OBS&lt;br /&gt;
 lvcreate -L 512M -n &amp;quot;worker_swap_2&amp;quot; /dev/OBS&lt;br /&gt;
 vgscan&lt;br /&gt;
 mkfs /dev/OBS/worker_root_1&lt;br /&gt;
 mkfs /dev/OBS/worker_root_2&lt;br /&gt;
&lt;br /&gt;
Now eject the virtual CD device and reboot the VM into the appliance system.&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-16T02:07:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Finding SSSE3 Instructions in a Binary =&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Emulating Missing Instructions in the Kernel =&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;br /&gt;
&lt;br /&gt;
= Notes on Setting Up Private OBS (WIP) =&lt;br /&gt;
== Install openSUSE 11.3 inside a VM ==&lt;br /&gt;
* yast2 - set static IP, DNS, default route and disable firewall (in Security)&lt;br /&gt;
* Enable sshd:&lt;br /&gt;
 chkconfig --add sshd&lt;br /&gt;
== Install OBS Packages ==&lt;br /&gt;
 cd /etc/zypp/repos.d&lt;br /&gt;
 wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.3/openSUSE:Tools.repo&lt;br /&gt;
 zypper ref&lt;br /&gt;
 zypper in obs-server&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Ali1234</id>
		<title>User:Ali1234</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Ali1234"/>
				<updated>2010-08-14T22:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: Created page with &amp;quot;== Finding SSSE3 Instructions in a Binary ==  I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions   objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Finding SSSE3 Instructions in a Binary ==&lt;br /&gt;
&lt;br /&gt;
I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions&lt;br /&gt;
&lt;br /&gt;
 objdump --disassemble-all &amp;lt;binary&amp;gt; | grep &amp;quot; \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) &amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Emulating Missing Instructions in the Kernel ==&lt;br /&gt;
&lt;br /&gt;
 arjan: you can emulate instructions your cpu does not have quite well&lt;br /&gt;
 ali1234: i didn't know there was such a patch... link please?&lt;br /&gt;
 arjan: either via a kernel hack or an ld preload library&lt;br /&gt;
 arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  &amp;lt;-- old kernel hack that google found for me&lt;br /&gt;
 arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok&lt;br /&gt;
 ali1234: ah so you don't know that it exists specifically for ssse3?&lt;br /&gt;
 arjan: for ssse3? not that I know of&lt;br /&gt;
 arjan: but you could add the ssse3 instructions if you want&lt;br /&gt;
 arjan: shouldn't be too hard&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Build_Infrastructure/Sysadmin_Distro/OBS1.8_setup_openSUSE112</id>
		<title>Build Infrastructure/Sysadmin Distro/OBS1.8 setup openSUSE112</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Build_Infrastructure/Sysadmin_Distro/OBS1.8_setup_openSUSE112"/>
				<updated>2010-08-13T01:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: Add missing &amp;quot;&amp;gt;&amp;quot; in example command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;&lt;br /&gt;
These steps are to setup Open Build Service 1.8 on an openSuSE 11.2 installation.  Currently this document describes how to setup an evaluation/test setup and is not meant as a production setup.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Most users won't need to install their own OBS and can just use an account on a publicly accessible OBS.  Once public access is allowed to the global MeeGo OBS, there will be a link to obtain access.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
There are cases where vendors may rather have full control of their builds and keep source private due to licensing restrictions, etc.  These instructions are for these special cases.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
MeeGo will switch to [http://lists.opensuse.org/opensuse-buildservice/2010-05/msg00094.html version 1.8] of the Build Service which is now released. These instructions cover the new 1.8 release.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Add Repositories&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, we have to add the openSUSE:Tools and OpenSUSE:Tools:Meego repository to zypper.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      cd /etc/zypp/repos.d/;&lt;br /&gt;
      wget http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_11.2/openSUSE:Tools.repo&lt;br /&gt;
      wget http://download.opensuse.org/repositories/openSUSE:/Tools:/MeeGo/openSUSE_11.2/openSUSE:Tools:MeeGo.repo &lt;br /&gt;
      zypper ref&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Accept the trust key.&lt;br /&gt;
change priority to avoid installing obs 2.0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      zypper mr -p 60 openSUSE_Tools_MeeGo&lt;br /&gt;
      zypper mr -r openSUSE_Tools_MeeGo&lt;br /&gt;
      zypper ref&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Setup the Client&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Install the Client Packages&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For obs worker:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      zypper in obs-worker qemu-devel mount-static bash-static&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Point To The Server&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Edit the file /etc/sysconfig/obs-worker in order to point to correct repository server. (The example server is 192.168.1.1)&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      # vi /etc/sysconfig/obs-worker&lt;br /&gt;
      OBS_SRC_SERVER=&amp;quot;192.168.1.1:5352&amp;quot;&lt;br /&gt;
      OBS_REPO_SERVERS=&amp;quot;192.168.1.1:5252&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Start the Client&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Start the worker service&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      chkconfig --add obsworker&lt;br /&gt;
      rcobsworker start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
This is enough to build packages, but there are security concerns of running just qemu for builds.  You can setup the build machines to use either KVM or Xen.  Chose one and follow the instructions below.  Most people use KVM.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       # yast2&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Within YaST2 Control Center, there is a &amp;lt;b&amp;gt;Virtualization&amp;lt;/b&amp;gt; option on the left which makes available an &amp;lt;b&amp;gt;Install Hypervisor and Tools&amp;lt;/b&amp;gt; option on the right.  Install the tools and setup a bridge ethernet device.  Be suer to change the default route to use br0.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;KVM&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Only install KVM or Xen, not both.  Only one will be used at a time.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       # yast -i kvm virt-manager&lt;br /&gt;
       # chkconfig libvirtd on&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Reboot.  If you run &amp;lt;b&amp;gt;ps aux|grep bs_worker&amp;lt;/b&amp;gt;, the worker should now have a &amp;lt;i&amp;gt;--kvm&amp;lt;/i&amp;gt; option within the command.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Xen&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Only install KVM or Xen, not both.  Only one will be used at a time.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Reboot the machine and be sure to select the Xen kernel in the grub menu. If you run &amp;lt;b&amp;gt;ps aux|grep bs_worker&amp;lt;/b&amp;gt;, the worker should now have a &amp;lt;i&amp;gt;--xen&amp;lt;/i&amp;gt; option within the command.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Setup the server&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Install the Server packages&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*For server:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      zypper in obs-server obs-signer obs-utils createrepo nfs-client obs-api memcached lighttpd&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;MySQL Setup&amp;lt;/h3&amp;gt;&lt;br /&gt;
Start daemon by default:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      chkconfig --add mysql&lt;br /&gt;
      rcmysql start&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secure the installation&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      /usr/bin/mysql_secure_installation&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create the databases:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      mysql -u root -p&lt;br /&gt;
      mysql&amp;gt; create database api_production;&lt;br /&gt;
      mysql&amp;gt; create database webui_production;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the obs user for these databases (substitute the correct password in):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      GRANT all privileges&lt;br /&gt;
            ON api_production.* &lt;br /&gt;
            TO 'obs'@'%', 'obs'@'localhost' IDENTIFIED BY '************';&lt;br /&gt;
      GRANT all privileges&lt;br /&gt;
            ON webui_production.* &lt;br /&gt;
            TO 'obs'@'%', 'obs'@'localhost' IDENTIFIED BY '************';&lt;br /&gt;
      FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, configure OBS to use MySQL, first the API server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      vi /srv/www/obs/api/config/database.yml&lt;br /&gt;
      #change the production section&lt;br /&gt;
      production:&lt;br /&gt;
        adapter: mysql&lt;br /&gt;
        database: api_production&lt;br /&gt;
        username: obs&lt;br /&gt;
        password: ************&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
And setup the webui to use MySQL...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      vi /srv/www/obs/webui/config/database.yml&lt;br /&gt;
      #change the production section&lt;br /&gt;
      production:&lt;br /&gt;
        adapter: mysql&lt;br /&gt;
        database: webui_production&lt;br /&gt;
        username: obs&lt;br /&gt;
        password: ************&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Populate the database&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      cd /srv/www/obs/api/&lt;br /&gt;
      RAILS_ENV=&amp;quot;production&amp;quot; rake db:migrate&lt;br /&gt;
 &lt;br /&gt;
      cd /srv/www/obs/webui/&lt;br /&gt;
      RAILS_ENV=&amp;quot;production&amp;quot; rake db:migrate&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
If this fails, check /srv/www/obs/api/config/environments/production.rb and /srv/www/obs/webui/config/environments/production.rb for configuration of the SOURCE_HOST and FRONTEND_HOST.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Setup lighttpd for webui&amp;lt;/h3&amp;gt;&lt;br /&gt;
Make sure vhosts are enabled by uncommenting the following line:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       # vi /etc/lighttpd/lighttpd.conf&lt;br /&gt;
       include_shell &amp;quot;cat /etc/lighttpd/vhosts.d/*.conf&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Setup the regular webui on 80, api on 81, and 82 is the repository.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       vi /etc/lighttpd/vhosts.d/obs.conf&lt;br /&gt;
       $SERVER[&amp;quot;socket&amp;quot;] == &amp;quot;:80&amp;quot; {&lt;br /&gt;
         rails_app   = &amp;quot;webui&amp;quot;&lt;br /&gt;
         rails_root  = &amp;quot;/srv/www/obs/webui&amp;quot;&lt;br /&gt;
         rails_procs = 3&lt;br /&gt;
         # production/development are typical values here&lt;br /&gt;
         rails_mode  = &amp;quot;production&amp;quot;&lt;br /&gt;
         log_root = &amp;quot;/srv/www/obs/webui/log&amp;quot;&lt;br /&gt;
         include &amp;quot;vhosts.d/rails.inc&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
       $SERVER[&amp;quot;socket&amp;quot;] == &amp;quot;:81&amp;quot; {&lt;br /&gt;
         rails_app   = &amp;quot;api&amp;quot;&lt;br /&gt;
         rails_root  = &amp;quot;/srv/www/obs/api&amp;quot;&lt;br /&gt;
         rails_procs = 3&lt;br /&gt;
         # production/development are typical values here&lt;br /&gt;
         rails_mode  = &amp;quot;production&amp;quot;&lt;br /&gt;
         log_root = &amp;quot;/srv/www/obs/api/log&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
         include &amp;quot;vhosts.d/rails.inc&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
       $SERVER[&amp;quot;socket&amp;quot;] == &amp;quot;:82&amp;quot; {&lt;br /&gt;
         server.name = &amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
         server.document-root = &amp;quot;/srv/obs/repos/&amp;quot;&lt;br /&gt;
         dir-listing.activate = &amp;quot;enable&amp;quot;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
lighttpd requires some extra modules to be enabled: mod_access, mod_rewrite, mod_magnet, and mod_fastcgi. Do so by editing /etc/lighttpd/modules.conf:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      # vi /etc/lighttpd/modules.conf&lt;br /&gt;
    server.modules = (&lt;br /&gt;
      &amp;quot;mod_access&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_alias&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_auth&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_evasive&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_redirect&amp;quot;,&lt;br /&gt;
      &amp;quot;mod_rewrite&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_setenv&amp;quot;,&lt;br /&gt;
    #  &amp;quot;mod_usertrack&amp;quot;,&lt;br /&gt;
    )&lt;br /&gt;
 &lt;br /&gt;
    ##&lt;br /&gt;
    ## mod_magnet&lt;br /&gt;
    ##&lt;br /&gt;
    include &amp;quot;conf.d/magnet.conf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    ##&lt;br /&gt;
    ## FastCGI (mod_fastcgi)&lt;br /&gt;
    ##&lt;br /&gt;
    include &amp;quot;conf.d/fastcgi.conf&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
You need also to configure /srv/www/obs/webui/config/environments/production.rb to point to correct server names:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      # vi /srv/www/obs/webui/config/environments/production.rb&lt;br /&gt;
      FRONTEND_HOST = &amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
      FRONTEND_PORT = 81&lt;br /&gt;
      FRONTEND_PROTOCOL = 'http'&lt;br /&gt;
      BUGZILLA_HOST = nil&lt;br /&gt;
      DOWNLOAD_URL = &amp;quot;http://192.168.1.1:82&amp;quot;&lt;br /&gt;
      ICHAIN_MODE = &amp;quot;off&amp;quot;&lt;br /&gt;
      BASE_NAMESPACE = nil&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Do the same for /srv/www/obs/api/config/environments/production.rb. As soon your backend is not on the same machine as the api (frontend), change the following:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      # vi /srv/www/obs/api/config/environments/production.rb&lt;br /&gt;
      SOURCE_HOST = &amp;quot;192.168.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Add the server to start by default.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      chkconfig --add memcached&lt;br /&gt;
      chkconfig --add lighttpd&lt;br /&gt;
      chkconfig --add obsapidelayed&lt;br /&gt;
      chkconfig --add obswebuidelayed&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
ligthttpd user and group need to be the onwer of api and webui dirs (as well as log and tmp):&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      chown -R lighttpd.lighttpd /srv/www/obs/{api,webui}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;BSConfig.pm&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The file &amp;lt;i&amp;gt;/usr/lib/obs/server/BSConfig.pm&amp;lt;/i&amp;gt; is used to configure several settings for the Build Service.  One of the major components is setting up the $hostname variable to the correct value.  Currently I have this set to the IP address of the server.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       my $hostname = '192.168.1.1';&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The list of directories in /srv/obs/repos/ is the repositories, so I changed the $repodownload:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       our $repodownload = &amp;quot;http://$hostname:82/&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Verification&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Start the lighttpd server.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       rclighttpd start       &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
At this point you should be able to open a browser and go to your server and login to OBS.  Port 80 should be the webui, port 81 should be the api, and port 82 should be the repository directory.  The default username/password is Admin/opensuse.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Start By Default&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The OBS should start automatically, so they should be added to chkconfig to do so:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       chkconfig --add obsrepserver obssrcserver obsscheduler obsdispatcher obspublisher obswarden obssigner obsapidelayed obswebuidelayed&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Setting up Cross Compile&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Configure build types&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To setup cross compile, add the appropriate machine types to /etc/sysconfig/obs-server.  For example, the following will enable ARM builds.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
       # vi /etc/sysconfig/obs-server&lt;br /&gt;
       OBS_SCHEDULER_ARCHITECTURES=&amp;quot;i586 armv5el armv7el“&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Cloning Repositories&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;prj and prjconf&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The project settings and the project config is an important part of the project and should be copied to the local project setup.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
The prj and prjconf settings are available from [http://meego.gitorious.org/meego-developer-tools/obs-project-config the git tree] or directly from the OBS server:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      osc -A &amp;lt;remote API URL&amp;gt; meta prj &amp;lt;repository name&amp;gt; &amp;gt; prj.txt&lt;br /&gt;
      osc -A &amp;lt;remote API URL&amp;gt; meta prjconf &amp;lt;repository name&amp;gt; &amp;gt; prjconf.txt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
To clone Trunk off MeeGo's api server: &amp;lt;remote API URL&amp;gt; is http://api.meego.com and &amp;lt;repositor name&amp;gt; is Trunk, for example.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Modify the prj.txt file to name valid users in the userid fields.  Once modified, the settings and configuration can be applied to the local project.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      osc -A &amp;lt;local API URL&amp;gt; meta prj &amp;lt;repository name&amp;gt; -F prj.txt&lt;br /&gt;
      osc -A &amp;lt;local API URL&amp;gt; meta prjconf &amp;lt;repository name&amp;gt; -F prjconf.txt&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
In this setup page, the &amp;lt;local API URL&amp;gt; is http://192.168.1.1:81.  Continuing on with the previous example, the &amp;lt;repository name&amp;gt; would be Trunk again.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Mirror&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
obs_mirror_project (/usr/sbin/obs_mirror_project) is used to copy an external OBS project.  The script needed to be modified to use build.meego.com as apposed to the hard coded download.opensuse.org site. You need an login to build.meego.com to execute this script.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/usr/sbin/obs_mirror_project &amp;lt;repository name&amp;gt; &amp;lt;type&amp;gt; &amp;lt;arch&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Rescan Repository&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Once the download of the project is complete, you have to rescan the local repository.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
/usr/lib/obs/server/bs_admin --rescan-repository &amp;lt;repository name&amp;gt; &amp;lt;type&amp;gt; &amp;lt;arch&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Here are common issues that have been seen and how to resolve them.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;HTTP Error 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Check &amp;lt;b&amp;gt;/srv/www/obs/api/config/environments/production.rb&amp;lt;/b&amp;gt;&lt;br /&gt;
 and &amp;lt;b&amp;gt;/srv/www/obs/webui/config/environments/production.rb&amp;lt;/b&amp;gt; for configuration of the &lt;br /&gt;
&amp;lt;b&amp;gt;SOURCE_HOST&amp;lt;/b&amp;gt; and &amp;lt;b&amp;gt;FRONTEND_HOST&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Cannot load person data for Admin in application_helper&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Make sure you set the permissions on the api and webui directories.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      chown -R lighttpd.lighttpd /srv/www/obs/{api,webui}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
If this doesn't work then try to recreate the databases:&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      # mysql -u root -p&lt;br /&gt;
      mysql&amp;gt; drop database api_production;&lt;br /&gt;
      mysql&amp;gt; drop database webui_production;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Rerun the mysql database setup from above and re-run rake.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;h2&amp;gt;External Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[http://wiki.maemo.org/OpenSuse_Build_Service/Installation Maemo OBS Installation]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
[http://wiki.maemo.org/OpenSuse_Build_Service/Fremantle_Setup Maemo Fremantel Setup]&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[User:Liam | Liam]]&lt;br /&gt;
&lt;br /&gt;
[[User:Dl9pf | Dl9pf]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Build Infrastructure]]&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Devices/nonSSSE3</id>
		<title>Devices/nonSSSE3</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Devices/nonSSSE3"/>
				<updated>2010-08-12T15:06:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ali1234: /* Interested Parties */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=MeeGo on nonSSSE3 x86 Hardware=&lt;br /&gt;
&lt;br /&gt;
This page was inspired by a discussion on #meego ([http://mg.pov.lt/meego-irclog/%23meego.2010-08-11.log.html#t2010-08-11T21:17:58 log@21:17]) regarding MeeGo support of nonSSSE3 based hardware. &lt;br /&gt;
&lt;br /&gt;
lbt added to the discussions with a timely blog post he had been working on http://mer-l-in.blogspot.com/2010/08/are-intel-subverting-meegocom.html.&lt;br /&gt;
&lt;br /&gt;
=Tasks=&lt;br /&gt;
&lt;br /&gt;
* Requirements&lt;br /&gt;
** Proof of concept - create prjconf on maemo OBS to build gcc,binutils, rest of core and bring up on x86 hw/vbox/vmware&lt;br /&gt;
** Build daily, weekly, release builds of MeeGo core,netbook,extra packages for nonSSSE3 based hardware&lt;br /&gt;
** Create repos of the built packages&lt;br /&gt;
** Generate kickstart file for common x86 target(s)&lt;br /&gt;
** Generate images from kickstart files &lt;br /&gt;
** Create a repository in OBS for appdevs to build against&lt;br /&gt;
* Implementation&lt;br /&gt;
** OBS&lt;br /&gt;
** IMG&lt;br /&gt;
** BOSS&lt;br /&gt;
* Testing&lt;br /&gt;
** http://wiki.meego.com/Quality/NetbookTestReport/NetbookSanity20100810&lt;br /&gt;
&lt;br /&gt;
=Release Kickstart Files=&lt;br /&gt;
&lt;br /&gt;
*Links to kickstart files &lt;br /&gt;
**Daily&lt;br /&gt;
**Weekly&lt;br /&gt;
**Releases&lt;br /&gt;
&lt;br /&gt;
=Release Images=&lt;br /&gt;
&lt;br /&gt;
*Links to images for x86 target(s)&lt;br /&gt;
**Daily&lt;br /&gt;
**Weekly&lt;br /&gt;
**Releases&lt;br /&gt;
&lt;br /&gt;
=Interested Parties=&lt;br /&gt;
&lt;br /&gt;
Add your #meego IRC nick below :-&lt;br /&gt;
&lt;br /&gt;
*vgrade&lt;br /&gt;
*lcuk&lt;br /&gt;
*CosmoHill&lt;br /&gt;
*slaine&lt;br /&gt;
*lbt&lt;br /&gt;
*w00t/w00t_&lt;br /&gt;
*jmc93739653&lt;br /&gt;
*ali1234&lt;/div&gt;</summary>
		<author><name>Ali1234</name></author>	</entry>

	</feed>