airspy_in_nspawn_chroot
Table of Contents
systemd-nspawn - Airspy Mini (USB) in container
Prerequisites
- Fedora 26 host (Debian in container).
- Find USB device and alias:
# Bus and device number lsusb |grep Airspy Bus 001 Device 002: ID 1d50:60a1 OpenMoko, Inc. Airspy # Get device alias file /dev/bus/usb/001/002 /dev/bus/usb/001/002: character special (189/1) grep 189 /proc/devices 189 usb_device
- Create
plugdev
group on host, GID must be the same on host and within container (ex. GID 46). - Create udev rule on host for USB device:
cat /etc/udev/rules.d/airspy.rules ATTR{idVendor}=="1d50", ATTR{idProduct}=="60a1", SYMLINK+="airspy-%k", MODE="660", GROUP="plugdev"
Create container
- Disable SELinux… yeah I know, but: https://bugzilla.redhat.com/show_bug.cgi?id=1416540
- Also systemd-nspawn doesn't integrate well with FirewallD, therefore we use the libvirt bridge, already configured per default.
- Install debootstrap:
sudo dnf install debootstrap
- Install Debian in container:
sudo debootstrap --arch=amd64 stable /var/lib/machines/debian
- Create user, set root password and install dbus:
sudo systemd-nspawn -D /var/lib/machines/debian user=airspyuser useradd -d /home/$user -m -s /bin/bash $user passwd $user passwd root apt install dbus exit # or ctr-]]]
- Enable systemd machines service:
sudo systemctl enable machines.target
- Edit service:
sudo systemctl edit systemd-nspawn@debian.service ExecStart= ExecStart=/usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --bind=/dev/bus --network-veth --network-bridge=virbr0 -U --settings=override --private-users=0 --private-users-chown --machine=%i DeviceAllow=char-usb_device rwm
- Start container:
sudo systemctl start systemd-nspawn@debian.service
- Log in as root:
sudo machinectl login debian
Configure Debian
- Configure networking:
cat << EOF > /etc/network/interfaces.d/host0 auto host0 allow-hotplug host0 iface host0 inet dhcp EOF echo "debian" /etc/hostname ifup host0
- Install Airspy library and tools:
su - user=<username> apt install usbutils git cmake libusb-1.0 libusb-dev g++ pkg-config sudo man less usermod -a -G plugdev,dialout,sudo $user exit # Log in as user git clone https://github.com/airspy/airspyone_host.git cd airspyone_host/ mkdir build cd build cmake ../ -DINSTALL_UDEV_RULES=ON make sudo make install sudo ldconfig $ /usr/local/bin/airspy_info airspy_lib_version: 1.0.9 Found AirSpy board 1 Board ID Number: 0 (AIRSPY) Firmware Version: AirSpy MINI v1.0.0-rc9-0-ga56adfd 2016-06-12 Part ID Number: 0x6906002B 0x00000030 Serial Number: 0x04A464C83729260B Supported sample rates: 6.000000 MSPS 3.000000 MSPS Close board 1
airspy_in_nspawn_chroot.txt · Last modified: 2021/10/09 15:14 by 127.0.0.1