# AMD64 e chroot a 32bit: la mia soluzione

## ic

AMD64 e chroot a 32bit: la mia soluzione

Perché una chroot?

Preparare la chroot

Automatizzare l'entrata e l'uscita dalla chroot

Eseguire programmi all'interno della chroot

Perché una chroot?

Se si ha un sistema a 64bit ci si sente abbastanza velocemente "troppo avanti" rispetto al resto del mondo (soprattutto closed source).

In parole povere se volete usare il plugin Flash di Adobe per Firefox (edit: ora Adobe ha rilasciato il plugin a 64bit!), alcuni simpatici emulatori di rinomate console (Nintendo64, Playstation) o il mitico programma di televisione via internet Zattoo dovrete "retrocedere" al mondo 32bits, dato che questi programmi o sono rilasciati solamente in questo formato o il supporto 64bit non è ancora abbastanza maturo.

Certo, su gentoo-amd64 esistono le emul-linux-x86, librerie a 32bits che convivono perfettamente nel nostro ambiente a 64bits. In alcuni casi però abbiamo bisogno di librerie o di versioni che non sono presenti nei pacchetti emul-linux-x86 di gentoo. Se è il tuo caso o ti sti annoiando moltissimo e non hai niente di meglio da fare, continua a leggere!

Preparare la chroot

La cosa migliore è riferirsi alla guida ufficiale: http://www.gentoo.org/proj/it/base/amd64/howtos/chroot.xml

In pratica quello che devi fare (cito a memoria) è:

  * creare una directory in cui installare la chroot (una partizione è ancora meglio)

  * scompattarci dentro uno stage3 a 32bits (i686 o x86 per intenderci)

  * montare proc e dev nella chroot

  * fare il chroot come per una normale installazione

  * fare una configurazione minima, come per una normale installazione (puoi benissimo copiare i file di config dal tuo sistema)

  * _non_ installare un kernel o un bootloader, ovviamente

Automatizzare l'entrata e l'uscita dalla chroot

Se hai giocato un po' con la tua chroot ti sarai accorto che devi montare un sacco di directory prima di dare il comando chroot. La stessa quantità di umount quando si esce (se si vuole lasciare un sistema pulito). Tra l'altro, per esperienza personale so che è MOLTO MALE lasciare delle directory montante con -o bind perchè in caso di shutdown poco urbano, l'fsck della/e partizione/i sarà molto lungo (e si rischia di perdere dati).

Veniamo al dunque, ecco la prima versione di /etc/init.d/gentoo32 uno script che funziona come un servizio:

/etc/init.d/gentoo32:

```

#!/sbin/runscript

depend() {

   need localmount

   need bootmisc

}

start() {

    ebegin "Mounting 32bits chroot dirs"

    mount -o bind /dev $GENTOO32/dev

    mount -o bind /dev/pts $GENTOO32/dev/pts 

    mount -o bind /dev/shm $GENTOO32/dev/shm 

    mount -o bind /proc $GENTOO32/proc

    mount -o bind /proc/bus/usb $GENTOO32/proc/bus/usb 

    mount -o bind /sys $GENTOO32/sys 

    mount -o bind /tmp $GENTOO32/tmp 

    mount -o bind /usr/portage $GENTOO32/usr/portage/ 

    mount -o bind /var/lib/dbus $GENTOO32/var/lib/dbus 

    mount -o bind /home $GENTOO32/home 

    eend $? "An error occured while attempting to mount 32bit chroot directories"

    ebegin "Copying 32bits chroot files"

    cp -pf /etc/mtab $GENTOO32/etc 

    cp -pf /etc/resolv.conf $GENTOO32/etc 

    cp -pf /etc/passwd $GENTOO32/etc 

    cp -pf /etc/shadow $GENTOO32/etc 

    cp -pf /etc/group $GENTOO32/etc 

    cp -pf /etc/gshadow $GENTOO32/etc 

    cp -pf /etc/localtime $GENTOO32/etc

    eend $? "An error occured while attempting to copy 32 bits chroot files."

}

stop() {

    ebegin "Unmounting 32bits chroot dirs"

    umount -f $GENTOO32/usr/portage/

    umount -f $GENTOO32/sys

    umount -f $GENTOO32/proc/bus/usb

    umount -f $GENTOO32/var/lib/dbus

    umount -f $GENTOO32/home

    umount -f $GENTOO32/dev/pts

    umount -f $GENTOO32/dev/shm

    umount -f $GENTOO32/proc

    umount -f $GENTOO32/tmp

    umount -f $GENTOO32/dev

    eend $? "An error occured while attempting to unmount 32bits chroot directories"

}

```

La variabile $GENTOO32 è definita in /etc/conf.d/gentoo32:

/etc/conf.d/gentoo32:

```

GENTOO32=/home/gentoo32

```

Nel mio caso la chroot si trova in /home/gentoo32.

Vediamo un po' cosa fa questo script: durante la fase di start ci sono due "blocchi", uno in cui vengono montati dei filesystem o delle directory e l'altro in cui vengono copiati dei file di configurazione.

I mounts:

  * /dev : usiamo la directory /dev del sistema principale nella chroot. Ciò ci permette di avere accesso a tutte i devices presenti nel sistema principale senza dover ricorrere a un secondo udev nel sistema a 32bits (probabilmente non funzionerebbe nemmeno troppo bene)

  * /dev/pts : visto che senza GNU Screen non vivo, ho bisogno anche le pts (servono a screen per i file descriptor dei pseudo terminals). La tua chroot può benissimo sopravvivere senza questa directory.

  * /dev/shm : leggere il proprio /etc/fstab per capire perché questa directory è piuttosto importante

  * /proc : qui risiede il pseudo filesystem esportato dal kernel, è necessario al buon funzionamento del sistema

  * /proc/bus/usb : non mi ricordo più perchè ho messo anche questa directory, però mi ha risolto un problema strano una volta (ovviamente con un device USB). Male non fa  :Smile: 

  * /sys : anche questo è un pseudo filesystem esportato dal kernel. Alcune nuove applicazioni dipendono da esso.

  * /tmp : sembra una directory inutile vero? Errore: qui dentro ci stanno tutti i socket Unix e il file FIFO utilizzati da alcuni programmi per la comunicazione interprocesso. Se vuoi usare XOrg senza dover aprire porte TCP e soprattutto se vuoi usare il mio mitico script che seguirà fai meglio a condividere questa directory tra i due sistemi!

  * /usr/portage : mi sembra chiaro, non vogliamo mica avere un secondo portage (identico) sui nostri dischi, sarebbe uno spreco di tempo e spazio

  * /var/lib/dbus : lo stesso discorso che con tmp, solo che questa directory serve per comunicare con il dbus del sistema principale.

  * /home : la mia configurazione di screen e vim e i miei files stanno qui, perchè privarsene?

I files copiati:

  * /etc/mtab : è letto dal comando mount per sapere cosa è montato a un dato momento

  * /etc/resolv.conf : la configurazione dei DNS, prendiamo quella del sistema principale, se lui ha la rete allora l'avrà anche la chroot

  * /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow : non stiamo a creare utenti, gestire password: usiamo direttaemnte quelle del sistema principale.

  * /etc/localtime : configurazione del fuso orario.

Probabilmente questi files devono essere copiati solo la prima volta o solo dopo aver operato dei cambiamenti. Il tempo speso nella copia è tendente al nulla, quindi io lascio lo script così com'è.

La fase di stop serve a rimettere tutto com'era prima.

Bene, adesso possiamo usare

```
sudo /etc/init.d/gentoo32 start
```

per preparare la chroot e

```
sudo /etc/init.d/gentoo32 stop
```

per rimettere tutto a posto.

Eseguire programmi all'interno della chroot

Ok, ti sei divertito nella tua bella chroot? Hai installato tutti i programmini che non funzionano a 64bits o con le emul-linux-x86? Bene.

Non vorrai mica anche _eseguirli_ vero? Ovviamente sì.

Normalmente per eseguire un programma dalla chroot bisogna:

  * preparare la chroot (facile: sudo /etc/init.d/gentoo32 start)

  * entrare nella chroot: sudo chroot $GENTOO32 /bin/bash -

  * aggiustare due o tre cosine (env-update && source /etc/profile)

  * cambiare utente: su - utente

  * giocare con xauth/xhost e controllare la variabile DISPLAY se il programma usa X

     Nota: se avete montato /tmp e /home e usate lo stesso utente che ha lanciato Xorg non avete bisogno di trafficare con xauth/xhost

Un po' PESANTE no?

Ecco perché ho preferito scrivere una "fifo shell" in ruby per passare i comandi tramite fifo direttamente all'interno della chroot. Detto così sembra molto oscuro, ma il concetto non è complicato.

Prima di tutto entrate nella chroot e installate ruby (o potete tradurre il mio script in bash, non è difficile):

```
emerge ruby
```

Sempre dentro la chroot create il seguente script, /usr/local/bin/g32_init.sh:

```

#!/bin/sh

env-update

source /etc/profile

rm -rf /tmp/g32_fifo

exec su - METTETE_IL_VOSTRO_UTENTE_NORMALE_QUI -c "/usr/local/bin/g32_shell.rb"

```

L'utente normale da mettere lì è l'utente che usate tutti i giorni, meglio conosciuto come "colui che probabilmente avrà lanciato Xorg quando voglio usare i programmi della chroot".

Ciò che viene fatto da questo script salta agli occhi vero? Ok, fa le "cosine" da fare quando si entra in una chroot (env-update && source /etc/profile), pulisce un eventuale vecchio FIFO (lo faccio qui perchè l'utente è ancora root, quindi qualsiasi cosa succeda il FIFO verrà rimosso), infine diventiamo utenti comuni ed eseguiamo la fifo shell.

Script in ruby, la "fifo shell" vera e propria, sempre dentro la chroot, nominato /usr/local/bin/g32_shell.rb:

```

#!/usr/bin/env ruby

programs = {

   "zattoo"            => "/usr/local/bin/g32_zattoo.sh",

   "firefox"            => "/usr/bin/firefox-bin",

   "mupen64"        => "/usr/games/bin/mupen64",

   "pcsx"               => "/usr/games/bin/pcsx",

   "warzone2100"  => "/usr/games/bin/warzone2100"

}

FIFO_FILE="/tmp/g32_fifo"

`mkfifo "#{FIFO_FILE}"`

ENV['DISPLAY'] = ":0.0"

$verbose = ARGV.first

def log(string)

   if $verbose then

      printf string

      $stdout.flush

   end

end

File.open(FIFO_FILE, IO::NONBLOCK | IO::RDONLY) { |file|

   log("> FIFO is open (#{FIFO_FILE}) and listening\n")

   while true

      line = file.gets("\n")

      if (line && cmd = programs[line.chomp]) then

         log("\n> exec #{line}")

         fork { `"#{cmd}"` }

      elsif (line == "exit\n") then

         break

      else

         log(".")

         sleep 2

      end

   end

   log("> FIFO is closing\n")

}

```

Lo script inizializza un Hash dei programmi disponibili: "nomeprogramma" => "eseguibile", in seguito crea un file FIFO e lo apre in sola lettura (/tmp/g32_fifo) e imposta la variabile di ambiente DISPLAY (nel caso in cui non sia impostata) per poter utilizzare il server grafico del sistema principale. Ovviamente dovrete personalizzare la varibile programs. 

Se diamo un argomento a g32_shell.rb (ARGV.first) allora la funzione log stamperà a schermo, se non diamo alcun argomento il programma resterà quieto.

Eccoci alla parte centrale:

Apriamo il file FIFO in sola lettura e in modalità non bloccante (probabilmente funziona anche in modalità bloccante, magari pure meglio). Il file rimane aperto finchè rimaniamo nel loop while, esso legge una linea alla volta dal fifo, se la linea non è vuota guarda nell'hash programs in cerca dell'eseguibile corrispondente; se lo trova l'eseguibile verrà lanciato in background (fork { `"#{cmd}"` } ). Se invece riceve la stringa "exit" il loop while viene interrotto, il file chiuso e il programma termina.

Benissimo, adesso un po' di colla e mettiamo tutto insieme:

modifichiamo /etc/init.d/gentoo32 come segue:

```

#!/sbin/runscript

depend() {

   need localmount

   need bootmisc

}

start() {

    ebegin "Mounting 32bits chroot dirs"

    mount -o bind /dev $GENTOO32/dev

    mount -o bind /dev/pts $GENTOO32/dev/pts

    mount -o bind /dev/shm $GENTOO32/dev/shm

    mount -o bind /proc $GENTOO32/proc

    mount -o bind /proc/bus/usb $GENTOO32/proc/bus/usb

    mount -o bind /sys $GENTOO32/sys

    mount -o bind /tmp $GENTOO32/tmp

    mount -o bind /usr/portage $GENTOO32/usr/portage/

    mount -o bind /var/lib/dbus $GENTOO32/var/lib/dbus

    mount -o bind /home $GENTOO32/home

    eend $? "An error occured while attempting to mount 32bit chroot directories"

    ebegin "Copying 32bits chroot files"

    cp -pf /etc/mtab $GENTOO32/etc

    cp -pf /etc/resolv.conf $GENTOO32/etc

    cp -pf /etc/passwd $GENTOO32/etc

    cp -pf /etc/shadow $GENTOO32/etc

    cp -pf /etc/group $GENTOO32/etc

    cp -pf /etc/gshadow $GENTOO32/etc

    cp -pf /etc/localtime $GENTOO32/etc

    eend $? "An error occured while attempting to copy 32 bits chroot files."

    ebegin "Launching G32 shell..."

    chroot $GENTOO32 /usr/local/bin/g32_init.sh &

    eend $? "An error occured while attempting to launch G32 shell."

}

stop() {

    ebegin "Stopping G32 Shell..."

    echo "exit" > /tmp/g32_fifo &

    sleep 3

    eend $? "An error occured while stopping G32 shell."

    ebegin "Unmounting 32bits chroot dirs"

    umount -f $GENTOO32/usr/portage/

    umount -f $GENTOO32/sys

    umount -f $GENTOO32/proc/bus/usb

    umount -f $GENTOO32/var/lib/dbus

    umount -f $GENTOO32/home

    umount -f $GENTOO32/dev/pts

    umount -f $GENTOO32/dev/shm

    umount -f $GENTOO32/proc

    umount -f $GENTOO32/tmp

    umount -f $GENTOO32/dev

    eend $? "An error occured while attempting to unmount 32bits chroot directories"

}

```

Ora lanciare /etc/init.d/gentoo32 start preparerà l'ambiente chroot e metterà la fifo shell in ascolto sul file /tmp/g32_fifo. Quindi possiamo lanciare un qualsiasi programma presente nella chroot 32bit (e nella variabile programs di g32_shell.rb) con il semplice comando:

```

echo "nomeprogramma" > /tmp/g32_fifo

```

dal terminale. Possiamo anche configurare le icone e i menu del nostro ambiente grafico per eseguire echo "nomeprogramma" > /tmp/g32_fifo e il programma verrà eseguito dentro la chroot e mostrato sul nostro caro Xorg a 64bits.

Spero che questo accrocchio di roba possa servire a qualcuno. Buona continuazione e happy hacking!

----------

## cloc3

bellissimo.

ma c'è una cosa che non capisco.

ho seguito le tue istruzioni alla lettera, tranne un passaggio: il mounting della cartella /home.

ho invece definito come una cartella utente, con i permessi corretti, dentro la home a 32 bit.

e ho anche lanciato il chroot premettendo il comando linux32:

```

s939 ~ # linux32 chroot $GENTOO32 /usr/local/bin/g32_init.sh &

```

da utente normale, ho lanciato uno gnome terminal.

se faccio un ls, i file contenuti sono quelli dell'ambiente a 64 bit e se faccio un uname -m, risponde x86_64.

con ciò non voglio dire che il tuo sistema non funzioni, perché firefox è davvero la versione vecchia 2.* e non la nuova 3.*, presente solo a 64 bit.

se da firefox metto l'indirizzo /home/cloc3, vedo la cartella a 32bit e on quella a 64.

cosa vuol dire questa roba?

edit: non so bene quale sia la causa, perché sto applicando il tuo

metodo passivamente, senza preoccuparmi di capire i dettagli, ma ho trovato un

sistema per usare correttamente gnome-terminal: mantenere separate le /tmp dei

due sistemi, evitando il mount di tmp:

```

    #mount -o bind /tmp $GENTOO32/tmp 

```

in questo però, sorgono dei problemi (banali) relativi all'avvio delle applicazioni

grafiche. per usare gnome-terminal ho dovuto:

1. lanciare X senza l'opzione -nolisten tcp (settato di default in

kdrmc).

2. utilizzare xhost da utente normale prima di avviare:

```

cloc3@s939 ~ $ xhost +

cloc3@s939 ~ $ echo "gnome-terminal" >/mnt/raid5/root32/tmp/g32_fifo 

```

----------

## Cazzantonio

Io ho risolto il tutto con questo semplice script.

Basta lanciare ./Gentoo_chroot per aprire automaticamente una shell bash nella chroot. Una volta usciti basta lanciare ./Gentoo_chroot stop per smontare automaticamente le directory della chroot (oppure aggiungere il comando a .bash_logout del root nella chroot.

```
#!/bin/sh

CHROOT_DIR="/mnt/gentoo"

TO_MOUNT="/dev /dev/pts /proc /sys"

TO_COPY="/etc/mtab /etc/resolv.conf"

LISTA_PARAMETRI="start stop"

mount_chroot(){

#mount directories

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR"|wc -l` -eq 0 ] && mount $CHROOT_DIR

    for i in $TO_MOUNT; do

        [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR$i"|wc -l` -eq 0 ] && mount -o bind $i $CHROOT_DIR$i

    done

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR/var/portage"|wc -l` -eq 0 ] && mount -t tmpfs -o mode=1775 tmpfs $CHROOT_DIR/var/portage

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR/dev/shm"|wc -l` -eq 0 ] && mount -t tmpfs -o noexec,nodev,nosuid,mode=1777 tmpfs $CHROOT_DIR/dev/shm

#copy files

    for i in $TO_COPY; do

        cp -pf $i $CHROOT_DIR$i

    done

}

umount_chroot(){

#umount directories

    for i in $TO_MOUNT; do

        [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR$i"|wc -l` -eq 1 ] && umount -f $CHROOT_DIR$i

    done

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR/dev/shm"|wc -l` -eq 1 ] && umount $CHROOT_DIR/dev/shm

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR/dev"|wc -l` -eq 1 ] && umount $CHROOT_DIR/dev

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR/var/portage"|wc -l` -eq 1 ] && umount $CHROOT_DIR/var/portage

    [ `/bin/cat /proc/mounts |grep "$CHROOT_DIR"|wc -l` -eq 1 ] && umount $CHROOT_DIR

}

start(){

    mount_chroot

    export gentoo_chroot="(chroot) "

    chroot $CHROOT_DIR /bin/bash    

}

stop(){

    umount_chroot

}

if [ ${#@} -gt 0 ]; then

  if [ `echo $LISTA_PARAMETRI|grep -e $1|wc -l` -gt 0 ]; then

    $1

  else

    echo "parametro '$1' sconosciuto"

    echo "Lista dei parametri accettati:"

    echo $LISTA_PARAMETRI

    exit 0

  fi

else

  start

fi
```

Per aggiornare automaticamente le variabili di ambiente basta mettere in /root/.bashrc (della chroot) questa riga:

```
[ "$gentoo_chroot" != "" ] && env-update && source /etc/profile
```

Infine con queste ultime righe (sempre in .bashrc) si ottiene anche una shell carina  :Smile: 

```
if [[ ${EUID} == 0 ]] ; then

  PS1='${gentoo_chroot}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '

else

  PS1='${gentoo_chroot}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '

fi
```

----------

## cloc3

 *Cazzantonio wrote:*   

> Io ho risolto il tutto con questo semplice script.
> 
> 

 

è molto bello, ma, così a prima vista, non mi sembra equivalente a quello di ic.

lui non si  limita a creare un chroot, ma apre all'interno una fifo in ascolto per acquisire comandi che vengono eseguiti in chroot.

in pratica, il bello sta nella riga finale:

 *ic wrote:*   

> 
> 
> ```
> 
> echo "nomeprogramma" > /tmp/g32_fifo
> ...

 

in questo momento sto utilizzando il sistema di ic nel modo opposto a quello previsto da lui, per far girare una virtualbox a 64 bit in un ambiente con kernel a 64 ma applicazioni a 32 (che risparmiano ram).

riesco a lanciare la virtualbox con uno script di init che praticamente fa solo l'echo. ti assicuro che è spettacolare.

----------

## Cazzantonio

Anche io sto usando un ambiente a 32 con kernel a 64 (e un ambiente a 64 in chroot). Siccome non ho bisogno di aprire fifo e altre cose esotiche mi basta uno script molto più semplice   :Smile: 

----------

## lucapost

ho preso spunto da questo thread per creare un chroot a 32bit nella mia gentoo no-multilib. tutto per avere skype funzionante!

nel chroot se eseguo un semplice xterm questo parte correttamente, ed infatti se faccio un ls vedo in contenuto della cartella root nel sistema a 32bit, ma se lancio skype ricevo un bel Aborted.

qualcuno ha fatto qualche prova ed ottenuto risultati milgiori dei miei?

----------

## cloc3

 *lucapost wrote:*   

> 
> 
> qualcuno ha fatto qualche prova ed ottenuto risultati milgiori dei miei?

 

io in questo modo ci fatto girare windows in emulazione con virtualbox.

bisogna far molta attenzione a caricare nel modo giusto tutti i dispositivi necessari. per esempio la /proc/bus/usb se stai usando una webcam usb.

bisogna fare anche attenzione ai permessi. posso immaginare, ad esempio, che skype attivi alcuni processi come utente skype e che il numero utente definito in /etc/{passwd,group} dai due sistemi non quagli, generando blocchi nell'accesso ai dispositivi.

ma il modo migliore per individuare il tuo problema specifico dovrebbe essere quello di lanciare strace e guardare dove si pianta.

----------

## lucapost

io non so da cosa incominciare, questo è l'output di strace skype:

```

jarod / # strace skype 

execve("/usr/bin/skype", ["skype"], [/* 30 vars */]) = 0

brk(0)                                  = 0x8108000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=19503, ...}) = 0

mmap2(NULL, 19503, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7fcc000

close(3)                                = 0

open("/lib/libncurses.so.5", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\7\1\0004\0\0\0\260"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=286616, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7fcb000

mmap2(NULL, 291780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7f83000

mmap2(0xf7fc1000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3d) = 0xf7fc1000

mmap2(0xf7fca000, 964, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7fca000

close(3)                                = 0

open("/lib/libdl.so.2", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\n\0\0004\0\0\0$"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9604, ...}) = 0

mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7f7f000

mmap2(0xf7f81000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xf7f81000

close(3)                                = 0

open("/lib/libc.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200h\1\0004\0\0\0\244"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1311004, ...}) = 0

mmap2(NULL, 1316464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7e3d000

mmap2(0xf7f79000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13c) = 0xf7f79000

mmap2(0xf7f7c000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7f7c000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7e3c000

set_thread_area({entry_number:-1 -> 12, base_addr:0xf7e3c6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xf7f79000, 8192, PROT_READ)   = 0

mprotect(0xf7f81000, 4096, PROT_READ)   = 0

mprotect(0xf7fc1000, 32768, PROT_READ)  = 0

mprotect(0x80fd000, 4096, PROT_READ)    = 0

mprotect(0xf7fed000, 4096, PROT_READ)   = 0

munmap(0xf7fcc000, 19503)               = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3

close(3)                                = 0

brk(0)                                  = 0x8108000

brk(0x8129000)                          = 0x8129000

open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=80539456, ...}) = 0

mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7c3c000

mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0xbb5) = 0xf7fd0000

close(3)                                = 0

getuid32()                              = 0

getgid32()                              = 0

geteuid32()                             = 0

getegid32()                             = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

time(NULL)                              = 1257608105

open("/proc/meminfo", O_RDONLY)         = 3

fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7fcf000

read(3, "MemTotal:        1798476 kB\nMemFr"..., 1024) = 930

close(3)                                = 0

munmap(0xf7fcf000, 4096)                = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigaction(SIGQUIT, {0x1, [], 0}, {SIG_DFL, [], 0}, 8) = 0

uname({sys="Linux", node="jarod", ...}) = 0

stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

stat64(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

getpid()                                = 26680

open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=26048, ...}) = 0

mmap2(NULL, 26048, PROT_READ, MAP_SHARED, 3, 0) = 0xf7c35000

close(3)                                = 0

getppid()                               = 26679

gettimeofday({1257608105, 95407}, NULL) = 0

getpgrp()                               = 26679

rt_sigaction(SIGCHLD, {0x8082d40, [], 0}, {SIG_DFL, [], 0}, 8) = 0

getrlimit(RLIMIT_NPROC, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

open("/usr/bin/skype", O_RDONLY|O_LARGEFILE) = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xfff6ce48) = -1 ENOTTY (Inappropriate ioctl for device)

_llseek(3, 0, [0], SEEK_CUR)            = 0

read(3, "#!/bin/sh\ncd \"/opt/skype\"\nif [ -n"..., 80) = 80

_llseek(3, 0, [0], SEEK_SET)            = 0

getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0

fcntl64(255, F_GETFD)                   = -1 EBADF (Bad file descriptor)

dup2(3, 255)                            = 255

close(3)                                = 0

fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0

fcntl64(255, F_GETFL)                   = 0x8000 (flags O_RDONLY|O_LARGEFILE)

fstat64(255, {st_mode=S_IFREG|0755, st_size=239, ...}) = 0

_llseek(255, 0, [0], SEEK_CUR)          = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

read(255, "#!/bin/sh\ncd \"/opt/skype\"\nif [ -n"..., 239) = 239

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

stat64("/opt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

stat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

chdir("/opt/skype")                     = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0

rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_DFL, [], 0}, {0x1, [], 0}, 8) = 0

rt_sigaction(SIGCHLD, {SIG_DFL, [], 0}, {0x8082d40, [], 0}, 8) = 0

execve("/opt/skype/skype", ["/opt/skype/skype"], [/* 31 vars */]) = 0

brk(0)                                  = 0x93f4000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7fa9000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/opt/skype/tls/i686/sse2/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/tls/i686/sse2", 0xffed003c) = -1 ENOENT (No such file or directory)

open("/opt/skype/tls/i686/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/tls/i686", 0xffed003c) = -1 ENOENT (No such file or directory)

open("/opt/skype/tls/sse2/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/tls/sse2", 0xffed003c) = -1 ENOENT (No such file or directory)

open("/opt/skype/tls/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/tls", 0xffed003c)    = -1 ENOENT (No such file or directory)

open("/opt/skype/i686/sse2/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/i686/sse2", 0xffed003c) = -1 ENOENT (No such file or directory)

open("/opt/skype/i686/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/i686", 0xffed003c)   = -1 ENOENT (No such file or directory)

open("/opt/skype/sse2/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype/sse2", 0xffed003c)   = -1 ENOENT (No such file or directory)

open("/opt/skype/libasound.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

stat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

open("/etc/ld.so.cache", O_RDONLY)      = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=19503, ...}) = 0

mmap2(NULL, 19503, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7fa4000

close(3)                                = 0

open("/usr/lib/libasound.so.2", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\371\1\0004\0\0\0\234"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=749524, ...}) = 0

mmap2(NULL, 748392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7eed000

mmap2(0xf7fa0000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb3) = 0xf7fa0000

close(3)                                = 0

open("/opt/skype/libXv.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXv.so.1", O_RDONLY)   = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\16\0\0004\0\0\0\210"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=17776, ...}) = 0

mmap2(NULL, 20704, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ee7000

mmap2(0xf7eeb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xf7eeb000

close(3)                                = 0

open("/opt/skype/libXss.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXss.so.1", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\n\0\0004\0\0\0\210"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9584, ...}) = 0

mmap2(NULL, 12512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ee3000

mmap2(0xf7ee5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xf7ee5000

close(3)                                = 0

open("/opt/skype/libSM.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libSM.so.6", O_RDONLY)   = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\30\0\0004\0\0\0D"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=29956, ...}) = 0

mmap2(NULL, 32944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7eda000

mmap2(0xf7ee1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xf7ee1000

close(3)                                = 0

open("/opt/skype/libICE.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libICE.so.6", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@>\0\0004\0\0\0\254"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=88212, ...}) = 0

mmap2(NULL, 98480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ec1000

mmap2(0xf7ed6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xf7ed6000

mmap2(0xf7ed8000, 4272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7ed8000

close(3)                                = 0

open("/opt/skype/libXi.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXi.so.6", O_RDONLY)   = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\26\0\0004\0\0\0\210"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=34160, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7ec0000

mmap2(NULL, 37248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7eb6000

mmap2(0xf7ebe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7) = 0xf7ebe000

close(3)                                = 0

open("/opt/skype/libXrender.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXrender.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\27\0\0004\0\0\0@"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=34304, ...}) = 0

mmap2(NULL, 37292, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7eac000

mmap2(0xf7eb4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7) = 0xf7eb4000

close(3)                                = 0

open("/opt/skype/libXrandr.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXrandr.so.2", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \26\0\0004\0\0\0p"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=29960, ...}) = 0

mmap2(NULL, 32992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ea3000

mmap2(0xf7eaa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xf7eaa000

close(3)                                = 0

open("/opt/skype/libXfixes.so.3", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXfixes.so.3", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\21\0\0004\0\0\0\10"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=17568, ...}) = 0

mmap2(NULL, 20600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7e9d000

mmap2(0xf7ea1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xf7ea1000

close(3)                                = 0

open("/opt/skype/libXcursor.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXcursor.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20$\0\0004\0\0\0\34"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=38364, ...}) = 0

mmap2(NULL, 37256, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7e93000

mmap2(0xf7e9b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xf7e9b000

close(3)                                = 0

open("/opt/skype/libXinerama.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXinerama.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\t\0\0004\0\0\0h"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9552, ...}) = 0

mmap2(NULL, 12480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7e8f000

mmap2(0xf7e91000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xf7e91000

close(3)                                = 0

open("/opt/skype/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libfreetype.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\207\0\0004\0\0\0\340"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=546760, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7e8e000

mmap2(NULL, 549676, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7e07000

mmap2(0xf7e89000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x81) = 0xf7e89000

close(3)                                = 0

open("/opt/skype/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 N\0\0004\0\0\0\30"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=178944, ...}) = 0

mmap2(NULL, 182500, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7dda000

mmap2(0xf7e05000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2a) = 0xf7e05000

close(3)                                = 0

open("/opt/skype/libXext.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXext.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2201\0\0004\0\0\0("..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=59920, ...}) = 0

mmap2(NULL, 63168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7dca000

mmap2(0xf7dd8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd) = 0xf7dd8000

close(3)                                = 0

open("/opt/skype/libX11.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libX11.so.6", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220c\1\0004\0\0\0\274"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1157796, ...}) = 0

mmap2(NULL, 1161908, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7cae000

mmap2(0xf7dc6000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x117) = 0xf7dc6000

close(3)                                = 0

open("/opt/skype/librt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/lib/librt.so.1", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\31\0\0004\0\0\0\200"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=30552, ...}) = 0

mmap2(NULL, 33392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ca5000

mmap2(0xf7cac000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6) = 0xf7cac000

close(3)                                = 0

open("/opt/skype/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/lib/libdl.so.2", O_RDONLY)       = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\n\0\0004\0\0\0$"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9604, ...}) = 0

mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7ca1000

mmap2(0xf7ca3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xf7ca3000

close(3)                                = 0

open("/opt/skype/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/lib/libpthread.so.0", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@H\0\0004\0\0\0X"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=118981, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7ca0000

mmap2(NULL, 94688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7c88000

mmap2(0xf7c9c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13) = 0xf7c9c000

mmap2(0xf7c9e000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7c9e000

close(3)                                = 0

open("/opt/skype/libstdc++.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libstdc++.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340A\4\0004\0\0\0\300"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=942152, ...}) = 0

mmap2(NULL, 964844, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7b9c000

mmap2(0xf7c7d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe1) = 0xf7c7d000

mmap2(0xf7c82000, 22764, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7c82000

close(3)                                = 0

open("/opt/skype/libm.so.6", O_RDONLY)  = -1 ENOENT (No such file or directory)

open("/lib/libm.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@4\0\0004\0\0\0000"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=149256, ...}) = 0

mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7b76000

mmap2(0xf7b9a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xf7b9a000

close(3)                                = 0

open("/opt/skype/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_s.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\34\0\0004\0\0\0t"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0644, st_size=50564, ...}) = 0

mmap2(NULL, 53768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7b68000

mmap2(0xf7b74000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb) = 0xf7b74000

close(3)                                = 0

open("/opt/skype/libc.so.6", O_RDONLY)  = -1 ENOENT (No such file or directory)

open("/lib/libc.so.6", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200h\1\0004\0\0\0\244"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=1311004, ...}) = 0

mmap2(NULL, 1316464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7a26000

mmap2(0xf7b62000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13c) = 0xf7b62000

mmap2(0xf7b65000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7b65000

close(3)                                = 0

open("/opt/skype/libuuid.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/lib/libuuid.so.1", O_RDONLY)     = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\21\0\0004\0\0\0\230"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=13816, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7a25000

mmap2(NULL, 16604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7a20000

mmap2(0xf7a23000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2) = 0xf7a23000

close(3)                                = 0

open("/opt/skype/libxcb.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libxcb.so.1", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\220\0\0004\0\0\0T"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=103996, ...}) = 0

mmap2(NULL, 106976, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7a05000

mmap2(0xf7a1e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18) = 0xf7a1e000

close(3)                                = 0

open("/opt/skype/libXau.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXau.so.6", O_RDONLY)  = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\v\0\0004\0\0\0("..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9448, ...}) = 0

mmap2(NULL, 12428, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7a01000

mmap2(0xf7a03000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xf7a03000

close(3)                                = 0

open("/opt/skype/libXdmcp.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libXdmcp.so.6", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\21\0\0004\0\0\0 "..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=17632, ...}) = 0

mmap2(NULL, 20604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf79fb000

mmap2(0xf79ff000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xf79ff000

close(3)                                = 0

open("/opt/skype/libz.so.1", O_RDONLY)  = -1 ENOENT (No such file or directory)

open("/lib/libz.so.1", O_RDONLY)        = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\30\0\0004\0\0\0\254"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=75156, ...}) = 0

mmap2(NULL, 78072, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf79e7000

mmap2(0xf79f9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11) = 0xf79f9000

close(3)                                = 0

open("/opt/skype/libexpat.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/lib/libexpat.so.1", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200%\0\0004\0\0\0\30"..., 512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=152872, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf79e6000

mmap2(NULL, 155736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf79bf000

mmap2(0xf79e3000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xf79e3000

close(3)                                = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf79be000

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf79bd000

set_thread_area({entry_number:-1 -> 12, base_addr:0xf79bd700, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0

mprotect(0xf79e3000, 8192, PROT_READ)   = 0

mprotect(0xf79f9000, 4096, PROT_READ)   = 0

mprotect(0xf79ff000, 4096, PROT_READ)   = 0

mprotect(0xf7a03000, 4096, PROT_READ)   = 0

mprotect(0xf7a1e000, 4096, PROT_READ)   = 0

mprotect(0xf7a23000, 4096, PROT_READ)   = 0

mprotect(0xf7b62000, 8192, PROT_READ)   = 0

mprotect(0xf7b74000, 4096, PROT_READ)   = 0

mprotect(0xf7b9a000, 4096, PROT_READ)   = 0

mprotect(0xf7c7d000, 16384, PROT_READ)  = 0

mprotect(0xf7c9c000, 4096, PROT_READ)   = 0

mprotect(0xf7ca3000, 4096, PROT_READ)   = 0

mprotect(0xf7cac000, 4096, PROT_READ)   = 0

mprotect(0xf7dc6000, 4096, PROT_READ)   = 0

mprotect(0xf7dd8000, 4096, PROT_READ)   = 0

mprotect(0xf7e05000, 4096, PROT_READ)   = 0

mprotect(0xf7e89000, 16384, PROT_READ)  = 0

mprotect(0xf7e91000, 4096, PROT_READ)   = 0

mprotect(0xf7e9b000, 4096, PROT_READ)   = 0

mprotect(0xf7ea1000, 4096, PROT_READ)   = 0

mprotect(0xf7eaa000, 4096, PROT_READ)   = 0

mprotect(0xf7eb4000, 4096, PROT_READ)   = 0

mprotect(0xf7ebe000, 4096, PROT_READ)   = 0

mprotect(0xf7ed6000, 4096, PROT_READ)   = 0

mprotect(0xf7ee1000, 4096, PROT_READ)   = 0

mprotect(0xf7ee5000, 4096, PROT_READ)   = 0

mprotect(0xf7eeb000, 4096, PROT_READ)   = 0

mprotect(0xf7fa0000, 12288, PROT_READ)  = 0

mprotect(0xf7fc6000, 4096, PROT_READ)   = 0

munmap(0xf7fa4000, 19503)               = 0

set_tid_address(0xf79bd748)             = 26680

set_robust_list(0xf79bd750, 0xc)        = 0

futex(0xffed0700, FUTEX_WAKE_PRIVATE, 1) = 0

rt_sigaction(SIGRTMIN, {0xf7c8c300, [], SA_SIGINFO}, NULL, 8) = 0

rt_sigaction(SIGRT_1, {0xf7c8c730, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0

rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0

getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0

uname({sys="Linux", node="jarod", ...}) = 0

brk(0)                                  = 0x93f4000

brk(0x9415000)                          = 0x9415000

futex(0xf7c8273c, FUTEX_WAKE_PRIVATE, 2147483647) = 0

brk(0x9437000)                          = 0x9437000

gettimeofday({1257608106, 276282}, NULL) = 0

gettimeofday({1257608106, 276336}, NULL) = 0

gettimeofday({1257608106, 276382}, NULL) = 0

gettimeofday({1257608106, 276428}, NULL) = 0

gettimeofday({1257608106, 276482}, NULL) = 0

rt_sigaction(SIGTERM, {0x8055130, [TERM], SA_RESTART}, {SIG_DFL, [], 0}, 8) = 0

futex(0x93d4708, FUTEX_WAKE_PRIVATE, 2147483647) = 0

brk(0x9459000)                          = 0x9459000

open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=80539456, ...}) = 0

mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf77bd000

mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0xbb5) = 0xf7fa8000

close(3)                                = 0

clock_getres(CLOCK_MONOTONIC, {0, 1})   = 0

clock_gettime(CLOCK_MONOTONIC, {6258, 216199364}) = 0

pipe([3, 4])                            = 0

fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0

fcntl64(3, F_GETFL)                     = 0 (flags O_RDONLY)

fcntl64(3, F_SETFL, O_RDONLY|O_NONBLOCK) = 0

fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0

fcntl64(4, F_GETFL)                     = 0x1 (flags O_WRONLY)

fcntl64(4, F_SETFL, O_WRONLY|O_NONBLOCK) = 0

open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 5

fstat64(5, {st_mode=S_IFREG|0644, st_size=26048, ...}) = 0

mmap2(NULL, 26048, PROT_READ, MAP_SHARED, 5, 0) = 0xf77b6000

close(5)                                = 0

futex(0xf7b64a4c, FUTEX_WAKE_PRIVATE, 2147483647) = 0

open("/usr/lib/gconv/UTF-16.so", O_RDONLY) = 5

read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \4\0\0004\0\0\0\334"..., 512) = 512

fstat64(5, {st_mode=S_IFREG|0755, st_size=9412, ...}) = 0

mmap2(NULL, 12328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 5, 0) = 0xf77b2000

mmap2(0xf77b4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x1) = 0xf77b4000

close(5)                                = 0

mprotect(0xf77b4000, 4096, PROT_READ)   = 0

stat64("/proc/26680/exe", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

lstat64("/proc/26680/exe", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0

getcwd("/opt/skype"..., 4096)           = 11

lstat64("/proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0

lstat64("/proc/26680", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0

lstat64("/proc/26680/exe", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0

readlink("/proc/26680/exe", "/opt/skype/skype"..., 4095) = 16

lstat64("/opt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat64("/opt/skype/skype", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

chdir("/opt/skype")                     = 0

stat64("/opt/skype/skype", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

stat64("/opt/skype/qt.conf", 0x94322c8) = -1 ENOENT (No such file or directory)

lstat64("/opt/skype/qt.conf", 0xffed00c0) = -1 ENOENT (No such file or directory)

stat64("/home/builder/qt4-generic-dbusless/plugins", 0x94322b8) = -1 ENOENT (No such file or directory)

lstat64("/home/builder/qt4-generic-dbusless/plugins", 0xffed0290) = -1 ENOENT (No such file or directory)

stat64("/proc/26680/exe", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

lstat64("/proc/26680/exe", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0

getcwd("/opt/skype"..., 4096)           = 11

lstat64("/proc", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0

lstat64("/proc/26680", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0

lstat64("/proc/26680/exe", {st_mode=S_IFLNK|0777, st_size=0, ...}) = 0

readlink("/proc/26680/exe", "/opt/skype/skype"..., 4095) = 16

lstat64("/opt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat64("/opt/skype/skype", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

chdir("/opt/skype")                     = 0

stat64("/opt/skype/skype", {st_mode=S_IFREG|0755, st_size=20356964, ...}) = 0

getcwd("/opt/skype"..., 4096)           = 11

lstat64("/opt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

lstat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

chdir("/opt/skype")                     = 0

stat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

stat64("/opt/skype", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

pipe([5, 6])                            = 0

fcntl64(5, F_SETFD, FD_CLOEXEC)         = 0

fcntl64(6, F_SETFD, FD_CLOEXEC)         = 0

fcntl64(5, F_GETFL)                     = 0 (flags O_RDONLY)

fcntl64(5, F_SETFL, O_RDONLY|O_NONBLOCK) = 0

fcntl64(6, F_GETFL)                     = 0x1 (flags O_WRONLY)

fcntl64(6, F_SETFL, O_WRONLY|O_NONBLOCK) = 0

rt_sigaction(SIGCHLD, {0x8e4ee50, [], SA_NOCLDSTOP}, {SIG_DFL, [], 0}, 8) = 0

time(NULL)                              = 1257608106

access("/etc/fonts/fonts.conf", R_OK)   = 0

stat64("/etc/fonts/fonts.conf", {st_mode=S_IFREG|0644, st_size=5251, ...}) = 0

open("/etc/fonts/fonts.conf", O_RDONLY) = 7

read(7, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 5251

access("/etc/fonts/conf.d", R_OK)       = 0

stat64("/etc/fonts/conf.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

open("/etc/fonts/conf.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 8

fstat64(8, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

fcntl64(8, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)

getdents(8, /* 18 entries */, 4096)     = 524

getdents(8, /* 0 entries */, 4096)      = 0

access("/etc/fonts/conf.d/20-fix-globaladvance.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/20-fix-globaladvance.conf", {st_mode=S_IFREG|0644, st_size=912, ...}) = 0

open("/etc/fonts/conf.d/20-fix-globaladvance.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 912

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/20-unhint-small-vera.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/20-unhint-small-vera.conf", {st_mode=S_IFREG|0644, st_size=1157, ...}) = 0

open("/etc/fonts/conf.d/20-unhint-small-vera.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 1157

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/30-metric-aliases.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/30-metric-aliases.conf", {st_mode=S_IFREG|0644, st_size=4107, ...}) = 0

open("/etc/fonts/conf.d/30-metric-aliases.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 4107

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/30-urw-aliases.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/30-urw-aliases.conf", {st_mode=S_IFREG|0644, st_size=1290, ...}) = 0

open("/etc/fonts/conf.d/30-urw-aliases.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 1290

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/40-nonlatin.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/40-nonlatin.conf", {st_mode=S_IFREG|0644, st_size=2069, ...}) = 0

open("/etc/fonts/conf.d/40-nonlatin.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 2069

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/45-latin.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/45-latin.conf", {st_mode=S_IFREG|0644, st_size=1806, ...}) = 0

open("/etc/fonts/conf.d/45-latin.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 1806

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/49-sansserif.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/49-sansserif.conf", {st_mode=S_IFREG|0644, st_size=545, ...}) = 0

open("/etc/fonts/conf.d/49-sansserif.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 545

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/50-user.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/50-user.conf", {st_mode=S_IFREG|0644, st_size=188, ...}) = 0

open("/etc/fonts/conf.d/50-user.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 188

access("/root/.fonts.conf", R_OK)       = -1 ENOENT (No such file or directory)

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/51-local.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/51-local.conf", {st_mode=S_IFREG|0644, st_size=189, ...}) = 0

open("/etc/fonts/conf.d/51-local.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 189

access("/etc/fonts/local.conf", R_OK)   = -1 ENOENT (No such file or directory)

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/60-latin.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/60-latin.conf", {st_mode=S_IFREG|0644, st_size=1669, ...}) = 0

open("/etc/fonts/conf.d/60-latin.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 1669

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/65-fonts-persian.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/65-fonts-persian.conf", {st_mode=S_IFREG|0644, st_size=10524, ...}) = 0

open("/etc/fonts/conf.d/65-fonts-persian.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 8192

read(9, "lias our fonts to common families"..., 8192) = 2332

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/65-nonlatin.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/65-nonlatin.conf", {st_mode=S_IFREG|0644, st_size=6552, ...}) = 0

open("/etc/fonts/conf.d/65-nonlatin.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 6552

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/69-unifont.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/69-unifont.conf", {st_mode=S_IFREG|0644, st_size=672, ...}) = 0

open("/etc/fonts/conf.d/69-unifont.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 672

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/80-delicious.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/80-delicious.conf", {st_mode=S_IFREG|0644, st_size=388, ...}) = 0

open("/etc/fonts/conf.d/80-delicious.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 388

read(9, ""..., 8192)                    = 0

close(9)                                = 0

access("/etc/fonts/conf.d/90-synthetic.conf", R_OK) = 0

stat64("/etc/fonts/conf.d/90-synthetic.conf", {st_mode=S_IFREG|0644, st_size=1754, ...}) = 0

open("/etc/fonts/conf.d/90-synthetic.conf", O_RDONLY) = 9

read(9, "<?xml version=\"1.0\"?>\n<!DOCTYPE f"..., 8192) = 1754

read(9, ""..., 8192)                    = 0

close(9)                                = 0

close(8)                                = 0

read(7, ""..., 8192)                    = 0

close(7)                                = 0

stat64("/usr/share/fonts", 0xffecfc64)  = -1 ENOENT (No such file or directory)

open("/usr/share/fonts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

stat64("/usr/local/share/fonts", 0xffecfc64) = -1 ENOENT (No such file or directory)

open("/usr/local/share/fonts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

stat64("/root/.fonts", 0xffecfc64)      = -1 ENOENT (No such file or directory)

open("/root/.fonts", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

socket(PF_FILE, SOCK_STREAM, 0)         = 7

connect(7, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"...}, 20) = 0

getpeername(7, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"...}, [20]) = 0

uname({sys="Linux", node="jarod", ...}) = 0

access("/root/.xauth1vgBX4", R_OK)      = -1 ENOENT (No such file or directory)

fcntl64(7, F_GETFL)                     = 0x2 (flags O_RDWR)

fcntl64(7, F_SETFL, O_RDWR|O_NONBLOCK)  = 0

fcntl64(7, F_SETFD, FD_CLOEXEC)         = 0

poll([{fd=7, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=7, revents=POLLOUT}])

writev(7, [{"l\0\v\0\0\0\0\0\0\0\0\0"..., 12}, {""..., 0}], 2) = 12

read(7, "\0\26\v\0\0\0\6\0"..., 8)      = 8

read(7, "No protocol specified\n\0\0"..., 24) = 24

write(2, "No protocol specified\n"..., 22No protocol specified

) = 22

close(7)                                = 0

write(6, "@"..., 1)                     = 1

close(6)                                = 0

close(5)                                = 0

gettimeofday({1257608106, 297356}, NULL) = 0

gettimeofday({1257608106, 297407}, NULL) = 0

exit_group(1)                           = ?
```

----------

## cloc3

 *lucapost wrote:*   

> io non so da cosa incominciare, questo è l'output di strace skype:
> 
> ```
> 
> access("/root/.xauth1vgBX4", R_OK)      = -1 ENOENT (No such file or directory)
> ...

 

in effetti è un casino.

un modo leggermente più efficace di usare strace è abbinare le opzioni -f e -e.

```

cloc3@gentoo-live ~ $ strace -f -e access ps|grep strace

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

 3002 pts/3    00:00:00 strace

cloc3@gentoo-live ~ $ strace -f -e open ps 2>&1|grep uptime

open("/proc/uptime", O_RDONLY)          = 3

```

ho selezionato quell'access perché mi fa strano che cerchi un'autorizzazione nella cartella di root.

se hai fatto le cose bene, il programma dovrebbe partire con l'envinronment dell'utente locale.

----------

## lucapost

alla fine ho desistito, per avere skype funzionante forse faccio prima con virtualbox ed una distro binaria minimale

----------

## publiosulpicio

Non ho capito quasi nulla di quello che avete detto, ma io ho gentoo amd64 e skype funziona. Senza fare nulla tranne emerge skype.

----------

## lucapost

ho risolto, ho skype funzionante nel chroot.

ho seguito la guida http://www.gentoo.org/proj/en/base/amd64/howtos/chroot.xml ed installato skype, xterm e font-misc-misc.

----------

## darkmanPPT

Io abbastanza dubbioso su 'sto fatto del chroot a 32.

Cioè, mi chiedo.. ma ne vale la pena per una sola applicazione?

quantitativamente parlando...

quanto spazio vai ad occupare?

Se ho ben capito, è come se ti installassi una gentoo a 32 bit. Questo significa portarsi dietro le glibc, gcc, portage e un sacco di altre cose.

----------

## lucapost

 *darkmanPPT wrote:*   

> quantitativamente parlando...
> 
> quanto spazio vai ad occupare?

 

Intorno al 1GB. 

Utilizzo questa soluzione anche per creare i binari per una maccchina molto meno performante, stà anche qui il vantaggio...

----------

## darkmanPPT

 *lucapost wrote:*   

> 
> 
> Intorno al 1GB. 
> 
> Utilizzo questa soluzione anche per creare i binari per una maccchina molto meno performante, stà anche qui il vantaggio...

 

ah, ok.

per me 1GB per un programmino non ne vale la pena, anche perchè non ho necessità di creare binari per altre macchine. Sarebbero solo 1GB di roba per un programmino di qualche mb.....

ok, cmq, grazie per l'informazione. Ora sono sicuro al 100% che questa non è la strada che fa per me.  :Wink: 

----------

## cloc3

 *lucapost wrote:*   

> ho risolto, ho skype funzionante nel chroot.
> 
> ho seguito la guida http://www.gentoo.org/proj/en/base/amd64/howtos/chroot.xml 

 

bene. ma cosa hai cambiato, rispetto a prima, quando non andava?

il problema stava nel fatto che lanciavi skype come superutente o nel fatto che non avevi montato qualche dispositivo in /dev/* ?

inoltre, quella guida non dice molto di più, rispetto a questo topic.

anzi: ignora del tutto il trucchetto della fifo, che è il contributo veramente originale di ic.

tu riesci a far funzionare skype con quel trucchetto?

----------

## lucapost

 *cloc3 wrote:*   

> bene. ma cosa hai cambiato, rispetto a prima, quando non andava?
> 
> 

 

Penso sia stato più che altro un problema di font mancanti...

 *cloc3 wrote:*   

> tu riesci a far funzionare skype con quel trucchetto?

 

Non ho provato con il giochetto della fifo. Magari se un giorno installerò ruby ci farò un pensierino...

----------

