===== 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= 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 {{tag>[hardware airspy nspawn linux]}}