#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 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
Hors ligne