Meego Wiki
From MeeGo wiki
Revision as of 03:47, 17 August 2010 by Ali1234 (Talk | contribs)
Jump to: navigation, search

Contents

Finding SSSE3 Instructions in a Binary

I came up with this using http://en.wikipedia.org/wiki/SSSE3#New_Instructions

objdump --disassemble-all <binary> | grep " \(psign[bwd]\|pabs[bwd]\|palignr\|pshufb\|pmulhrsw\|pmaddubsw\|phsub[wd]\|phsubsw\|phadd[wd]\|phaddsw\) "

Emulating Missing Instructions in the Kernel

arjan: you can emulate instructions your cpu does not have quite well
ali1234: i didn't know there was such a patch... link please?
arjan: either via a kernel hack or an ld preload library
arjan: http://lkml.indiana.edu/hypermail/linux/kernel/0206.3/0631.html  <-- old kernel hack that google found for me
arjan: doing it as ld preload isn't too hard .. SIGILL is sent when an instruction is executed that the cpu does not grok
ali1234: ah so you don't know that it exists specifically for ssse3?
arjan: for ssse3? not that I know of
arjan: but you could add the ssse3 instructions if you want
arjan: shouldn't be too hard

Notes on Setting Up Private OBS (WIP)

Install OBS Appliance inside a VM

VM Config

Configure VM with two virtual disks. Primary 20GB for the appliance image and /home, secondary 100GB for OBS LVM partitions.

Install Appliance

Boot it with your favourite Linux live CD and write the appliance image to the first virtual disk:

wget http://download.opensuse.org/repositories/openSUSE:/Tools/images/obs-server.x86_64-2.0.5-Build1.8.raw.bz2
bunzip2 -c obs-server.x86_64-2.0.5-Build1.8.raw.bz2 > /dev/sda

Configure LVM

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.

Use fdisk to make one big partition on /dev/sdb, type 8e:

fdisk /dev/sdb

Make LVM partition for server:

pvcreate /dev/sdb1
vgcreate "OBS" /dev/sdb1
lvcreate -L 70G -n "server" /dev/OBS
vgscan
mkfs /dev/OBS/server

For cache:

lvcreate -L 20G -n "cache" /dev/OBS
vgscan
mkfs /dev/OBS/cache

For two workers:

lvcreate -L 4G -n "worker_root_1" /dev/OBS
lvcreate -L 512M -n "worker_swap_1" /dev/OBS
lvcreate -L 4G -n "worker_root_2" /dev/OBS
lvcreate -L 512M -n "worker_swap_2" /dev/OBS
vgscan
mkfs /dev/OBS/worker_root_1
mkfs /dev/OBS/worker_root_2

Now eject the virtual CD device and reboot the VM into the appliance system.

Customize the Appliance System

To login to the appliance hit enter on the console. Login is root, no password.

Install a sensible editor:

zypper in nano

Enable sshd:

chkconfig --add sshd

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.

Set Up OBS

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.

Log in to the OBS web interface running on port 80. Login is Admin, password is opensuse. Click "Setup OBS" to connect your OBS to the openSUSE public build service.

Personal tools