-
Notifications
You must be signed in to change notification settings - Fork 54
LibnlOnQemu
Javier Cardona edited this page Mar 6, 2012
·
2 revisions
You will need libnl installed correctly on your guest in order to run iw, wpa_supplicant, etc. What worked for me:
- Install gcc'' and ''make on your guest
Halt qemu and then:
mount -t ext3 /dev/loop0 /mnt/qemu-rootfs/
chroot /mnt/qemu-rootfs/ /bin/bash
apt-get install gcc make
- Build libnl on your host
git clone git://git.kernel.org/pub/scm/libs/netlink/libnl.git
cd libnl; ./configure; make
- Install on your guest
Lunch qemu, cd /path/to/mounted/libnl/dir
./configure --prefix=/usr
make install
Hmmm... apparently this needs to recompile a bunch of files and is taking a long time. Well, this is a one time step so we can live with it.
- Seems to be a bug in libnl... If you get nl_sock redefinition errors,
In file included from /usr/include/netlink/handlers.h:19,
from /usr/include/netlink/netlink.h:32,
from /usr/include/netlink/genl/genl.h:15,
from netlink.h:21,
from main.c:18:
/usr/include/netlink/netlink-kernel.h:9: error: redefinition of ‘struct sockaddr_nl’
/usr/include/netlink/netlink-kernel.h:33: error: redefinition of ‘struct nlmsghdr’
/usr/include/netlink/netlink-kernel.h:173: error: redefinition of ‘struct nlmsgerr’
/usr/include/netlink/netlink-kernel.h:182: error: redefinition of ‘struct nl_pktinfo’
/usr/include/netlink/netlink-kernel.h:229: error: redefinition of ‘struct nlattr’
this is how to fix:
sudo echo "#include " > /usr/include/netlink/netlink-kernel.h