Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/02/2014, à 12:20

zodd

chroot dans file system armhf avec qemu et connexion réseau

Bonjour,

j'essaie de cross compiler Qt avec support X11 pour une Beaglebone black à base arm.


Hors j'ai besoin de ces lib "version arm" pour pouvoir le faire:
libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev


donc là j'ai deux solutions, récupérer les sources de ces libs et les cross compiler , ou alors faire un chroot dans un filesystem arm , installer ces paquet dans ce file system et "linker" vers ces lib lors de ma compilation.
J'ai choisi cette deuxième solution qui me semble plus pratique.

donc j'ai télécharger le  FS pour armhf ici:

$mkdir chroot-armhf
$cd chroot-armhf
$wget -c http://s3.armhf.com/debian/precise/bone/ubuntu-precise-12.04.3-armhf-3.8.13-bone30.img.xz
$xz -cd ubuntu-precise-12.04.3-armhf-3.8.13-bone30.img.xz > armhf.img

ensuite j'ai monter mon file system dans un device loop:

$mkdir fs
$file armhf.img 
armhf.img: x86 boot sector; partition 1: ID=0x1, active, starthead 32, startsector 2048, 2048 sectors; partition 2: ID=0x83, starthead 65, startsector 4096, 3747840 sectors, code offset 0x0

$sudo mount -t ext4 -o loop,offset=2097152 armhf.img fs
$cd fs && ls 
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var
$sudo mount --bind /dev dev
$sudo mount --bind /proc proc

installation de qemu...

$sudo apt--get install qemu-user-static
$cp /usr/bin/qemu-arm-static usr/bin/

EDIT:
copie du fichier /etc/resolv.conf de l'hote dans le guest

$cp /etc/resolv.conf etc/

voilà, à ce stade je peux chrooter dans mon file system:

$sudo chroot .
root@VB:/# cd /home && ls
ubuntu

c'est bon j'y suis  ^^

donc il ne me reste plus qu'à installer les paquets nécessaires sur lesquels je "linkerai" plus tard
et là j'ai un problème..
je n'arrive pas à me connecter aux dépôts:

apt-get update
Err [url]http://ports.ubuntu.com[/url] precise Release.gpg
  Temporary failure resolving 'ports.ubuntu.com'
0% [Connecting to ports.ubuntu.com]

si je fais un ifconfig:

ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:ab:54:15  
          inet addr:192.168.0.130  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feab:5415/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:136688 errors:0 dropped:0 overruns:0 frame:0
          TX packets:52990 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:136074230 (136.0 MB)  TX bytes:3821146 (3.8 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:3796 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3796 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:304817 (304.8 KB)  TX bytes:304817 (304.8 KB)

et voilà mon sources.list:

cd /etc/apt
root@VB:/etc/apt# cat sources.list
# See [url]http://help.ubuntu.com/community/UpgradeNotes[/url] for how to upgrade to
# newer versions of the distribution.

deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise main restricted
deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-updates main restricted
deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-updates main restricted

## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise universe
deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise universe
deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-updates universe
deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-updates universe

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-backports main restricted
# deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-backports main restricted

deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security main restricted
deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security main restricted
# deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security universe
# deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security universe
# deb [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security multiverse
# deb-src [url]http://ports.ubuntu.com/ubuntu-ports/[/url] precise-security multiverse

Des idées? ^^

Edit:
un ping sur la box (du réseau) me donne ça ou un wget sur une image sur internet:

ping -c 4 192.168.0.1
Unsupported setsockopt level=255 optname=1
WARNING: setsockopt(ICMP_FILTER): Protocol not available
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
Unsupported ancillary data: 1/29
64 bytes from 0.0.0.0: icmp_req=1 ttl=64 time=10.8 ms
Unsupported ancillary data: 1/29
Unsupported setsockopt level=1 optname=26
WARNING: failed to install socket filter
: Protocol not available
Unsupported ancillary data: 1/29
64 bytes from 0.0.0.0: icmp_req=2 ttl=64 time=1.13 ms
Unsupported ancillary data: 1/29
64 bytes from 0.0.0.0: icmp_req=3 ttl=64 time=1.10 ms
Unsupported ancillary data: 1/29
64 bytes from 0.0.0.0: icmp_req=4 ttl=64 time=0.986 ms

--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.986/3.515/10.834/4.225 ms

/home/ubuntu# wget http://upload.wikimedia.org/wikipedia/commons/3/3e/Tux-G2.png
--2014-02-12 10:57:44--  http://upload.wikimedia.org/wikipedia/commons/3/3e/Tux-G2.png
Resolving upload.wikimedia.org (upload.wikimedia.org)... failed: Temporary failure in name resolution.
wget: unable to resolve host address `upload.wikimedia.org'

Dernière modification par zodd (Le 13/02/2014, à 15:09)

Hors ligne

#2 Le 13/02/2014, à 01:36

jacobus77

Re : chroot dans file system armhf avec qemu et connexion réseau

Plutôt que de chrooter, je lancerais une machine virtuelle sous qemu : il te faut juste une machine virtuelle avec ton modèle de proc arm, mais on dirait que tu as trouvé.
Au point de vue performance tu ne perdras pas des tonnes et point de vue configuration tu n'auras pas à te prendre la tête, mais bon c'est pluôt une histoire de goût.
Pour ton pb, tu peux essayer de copier ton /etc/resolv.conf de ton système hote vers ton guest, ça fera peut-être l'affaire.

Hors ligne

#3 Le 13/02/2014, à 11:19

zodd

Re : chroot dans file system armhf avec qemu et connexion réseau

Merci pour ta réponse wink je vais tester déjà ta solution avec le fichier resolv.conf  ..

Par contre je n'ai jamais fait de machine virtuelle sous qemu, c'est pour ça qu'un chroot avec qemu m'a parut plus "naturel" car je ne cherche pas à avoir de performances particulièrement élevées..
Je vais me renseigner dans la doc comment faire ça aussi, ça me servira forcément un jour^^

Hors ligne

#4 Le 13/02/2014, à 12:56

zodd

Re : chroot dans file system armhf avec qemu et connexion réseau

c'est bon c'était bien me fichier resolv.conf qu'il fallait copier de mon système hôte vers mon guest .. merci beaucoup ^^ je vais voir le comment du pourquoi dans la doc wink

Hors ligne