Giter VIP home page Giter VIP logo

owl's Introduction

Open Wireless Link

Language grade

Open Wireless Link (OWL) is an open implementation of the Apple Wireless Direct Link (AWDL) ad hoc protocol for Linux and macOS written in C and part of the Open Wireless Link project.

OWL runs in user space and makes use of Linux’s Netlink API for Wi-Fi specific operations such as channel switching and to integrate itself in the Linux networking stack by providing a virtual network interface such that existing IPv6-capable programs can use AWDL without modification.

You can use OWL to in combination with OpenDrop to enable Apple AirDrop functionality on Linux-based systems such as a Raspberry Pi 3.

Disclaimer

OWL is experimental software and is the result of reverse engineering efforts by the Open Wireless Link project. Therefore, it does not support all features of AWDL or might be incompatible with future AWDL versions. OWL is not affiliated with or endorsed by Apple Inc. Use this code at your own risk.

Requirements

Wi-Fi card with active monitor mode. To use OWL, you will need a Wi-Fi card supporting active monitor mode with frame injection. We recommend the Atheros AR9280 chip (IEEE 802.11n) which we used to develop and test this code. Configurations that do not support active monitor mode, i.e., ACK received frames, might suffer from throughput degradation because the sender will re-transmit each frame up to 7 times as per the IEEE 802.11 standard. Have a look at issue #9 if you want to find out whether your card meets the requirements.

No support for virtual machines and WSL. OWL requires direct access to the Wi-Fi card which means that virtualized environments (except with USB or PCIe passthrough) and Windows Subsystem for Linux (WSL, see issue #8), are not supported.

OWL requires libpcap for frame injection and reception, libev for event handling, and libnl (Linux only) for interactions with the system's networking stack which have to be installed on the target system.

On Debian Linux,

sudo apt install libpcap-dev libev-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev

On Fedora Linux,

sudo dnf install libpcap-devel libev-devel libnl3-devel

On macOS, you need to add support for tun/tap devices, e.g., via tuntaposx. You can install everything via Homebrew:

brew install libpcap libev
brew cask install tuntap

Build from source

The project is build using CMake. To build the project, simply clone this repository in <OWLDIR> and run

cd <OWLDIR>
git submodule update --init
mkdir build
cd build
cmake ..
make
sudo make install

Use

Simply run

sudo owl -i <WLAN_IFACE>

You can specify a wireless channel using the -c parameter. Available channels are 6, 44 and 149. Note that only some of these channels may be available for use in your country based on your regulatory domain. OWL will warn you if it is unable to use the specified channel, in which case you will only be able to monitor the network. On Linux, you can check which channels are available for use in your country using iw list in Frequencies section. A channel is not available if it is listed as disabled or no IR.

You may increase the log level with -v and -vv and daemonize the program with -D. For other options, have a look at daemon/owl.c. Warning: do not use the -N flag in setups without Nexmon such as this as it will likely cause several problems.

When started, OWL creates a virtual network interface awdl0 with a link-local IPv6 address. Discovered AWDL peers are automatically added (and removed) to (and from) the system's neighbor table. Run ip n to see a list of all current neighbors.

Architecture

The following figure shows the core structure of OWL.

Overview

Code Structure

We provide a coarse structure of the most important components and files to facilitate navigating the code base.

  • daemon/ Contains the active components that interact with the system.
    • core.{c,h} Schedules all relevant functions on the event loop.
    • io.{c,h} Platform-specific functions to send and receive frames.
    • netutils.{c,h} Platform-specific functions to interact with the system's networking stack.
    • owl.c Contains main() and sets up the core based on user arguments.
  • googletest/ The runtime for running the tests.
  • radiotap/ Library for parsing radiotap headers.
  • src/ Contains platform-independent AWDL code.
    • channel.{c,h} Utilities for managing the channel sequence.
    • election.{c,h} Code for running the election process.
    • frame.{c,h} The corresponding header file contains the definitions of all TLVs.
    • peers.{c,h} Manages the peer table.
    • rx.{c,h} Functions for handling a received data and action frames including parsing TLVs.
    • schedule.{c,h} Functions to determine when and which frames should be sent.
    • state.{c,h} Consolidates the AWDL state.
    • sync.{c,h} Synchronization: managing (extended) availability windows.
    • tx.{c,h} Crafting valid data and action frames ready for transmission.
    • version.{c,h} Parse and create AWDL version numbers.
    • wire.{c,h} Mini-library for safely reading and writing primitives types from and to a frame buffer.
  • tests/ The actual test cases for this repository.
  • README.md This file.

Current Limitations/TODOs

  • OWL uses static election metric and counter values, so it either takes part as a slave (low values) or wins the election (high values). See AWDL_ELECTION_METRIC_INIT and AWDL_ELECTION_COUNTER_INIT and in include/election.h.
  • The channel sequence does not adjust itself automatically to current network load and/or other triggers. This would require a better understanding of Apple's implementation. Currently, the channel sequence is fixed when initializing. See awdl_chanseq_init_static() in src/state.{c,h}.
  • OWL does not allow a concurrent connection to an AP. This means, that when started, the Wi-Fi interface exclusively uses AWDL. To work around this, OWL could create a new monitor interface (instead of making the Wi-Fi interface one) and adjust its channel sequence to include the channel of the AP network.

Our Papers

  • Milan Stute, Sashank Narain, Alex Mariotto, Alexander Heinrich, David Kreitschmann, Guevara Noubir, and Matthias Hollick. A Billion Open Interfaces for Eve and Mallory: MitM, DoS, and Tracking Attacks on iOS and macOS Through Apple Wireless Direct Link. 28th USENIX Security Symposium (USENIX Security ’19), August 14–16, 2019, Santa Clara, CA, USA. Link

  • Milan Stute, David Kreitschmann, and Matthias Hollick. One Billion Apples’ Secret Sauce: Recipe for the Apple Wireless Direct Link Ad hoc Protocol. The 24th Annual International Conference on Mobile Computing and Networking (MobiCom '18), October 29–November 2, 2018, New Delhi, India. ACM. doi:10.1145/3241539.3241566

  • Milan Stute, David Kreitschmann, and Matthias Hollick. Demo: Linux Goes Apple Picking: Cross-Platform Ad hoc Communication with Apple Wireless Direct Link. The 24th Annual International Conference on Mobile Computing and Networking (MobiCom '18), October 29–November 2, 2018, New Delhi, India. ACM. doi:10.1145/3241539.3267716

Contact

owl's People

Contributors

captainstabs avatar curioustommy avatar flying-toast avatar frol avatar schmittner avatar thomasst avatar timgates42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

owl's Issues

Netlink headers not checked by cmake

cmake will check for ev and pcap libs/headers, but it will continue without netlink. That one is detected only when make fails to find netlink/netlink.h.

It would be great if cmake failed with an explicit message earlier.

owl or opendrop

The hardware is macbookpro(10.15.1) and ipad 2018 (ipad OS 13.3.1). At the same time, kali Linux was run in the virtual machine (parallel desktop 15).
1 in the virtual machine kali, follow the steps https://github.com/seemoo-lab/owl ready, but I don't know "what is the < WLAN_IFACE >"! maybe "ifconfig "? i'm confused!
2. I don't quite understand the before-and-after dependency of opendrop and owl. Install owl first and then opendrop? "After exec "owl", then exec "opendrop"? " .
3. In termux app, I installed debian for aarch64 with atilo script, which is for android phone to interact with MAC and ipad directly through airdrop, but I failed.
4 I sincerely hope to have a good tutorial. My English is not very good.

Update googletest

The current version used by owl fails to build on gcc 11. simply removing the version downloaded by git submodules and replacing it with latest googletest git fixes the issue.

Need a reasonable way to uninstall

I installed the program before realizing my card was not supported. I would like to uninstall the program, but currently it seems the only way to know exactly what the installer did is to dig through the makefiles.

Error while receiving via netlink: Operation not permitted

When trying to run owl, using owl -i wlp2s0 -vv, owl fails to put the device in monitor mode.

Here's the output:

19:58:31 TRACE: pcap: unable to open savefile (wlp2s0: No such file or directory)
19:58:31 ERROR: Error while receiving via netlink: Operation not permitted
19:58:31 ERROR: Could not put device in monitor mode: wlp2s0
19:58:31 ERROR: could not initialize core

I believe my WiFi adapter supports monitor mode:

$ sudo ifconfig wlp2s0 down
$ sudo iwconfig wlp2s0 mode monitor
$ sudo iwconfig wlp2s0
wlp2s0    IEEE 802.11  Mode:Monitor  Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          

Background informations:

$ uname -a
Linux arch 5.2.3-arch1-1-ARCH #1 SMP PREEMPT Fri Jul 26 08:13:47 UTC 2019 x86_64 GNU/Linux
$ yaourt -Q libnl
core/libnl 3.4.0-1
$ # .so file
/usr/lib/libnl-3.so.200.26.0

Thanks

ERROR: No such interface exists 8 ERROR: could not initialize core

env

  • OS: 5.10.79-1-MANJARO x86_64
  • Device: Realtek RTL8822CE 802.11ac PCIe Wireless Network Adapter driver: rtw_8822ce

what happend

Run opendrop find tells me that RuntimeError: Interface awdl0 does not have an IPv6 address. Make sure that owlis running. Then I run owl, it just print the error

$ opendrop find
Looking for receivers. Press Ctrl+C to stop ...
Traceback (most recent call last):
    raise RuntimeError(
RuntimeError: Interface awdl0 does not have an IPv6 address. Make sure that `owl` is running.
[kearney@xx ~]$ owl
logo----------
https://owlink.org

22:17:24 ERROR: No such interface exists 8
22:17:24 ERROR: could not initialize core

about monitor model

According to this text, I can put the rtl8822ce in monitor model.

iw info long long output

monitor can be add
$ iw phy  phy0 info
Wiphy phy0
        wiphy index: 0
        max # scan SSIDs: 4
        max scan IEs length: 2243 bytes
        max # sched scan SSIDs: 4
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports T-DLS.
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
                * CCMP-256 (00-0f-ac:10)
                * GCMP-128 (00-0f-ac:8)
                * GCMP-256 (00-0f-ac:9)
                * CMAC (00-0f-ac:6)
                * CMAC-256 (00-0f-ac:13)
                * GMAC-128 (00-0f-ac:11)
                * GMAC-256 (00-0f-ac:12)
        Available Antennas: TX 0x3 RX 0x3
        Configured Antennas: TX 0x3 RX 0x3
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
        Band 1:
                Capabilities: 0x196f
                        RX LDPC
                        HT20/HT40
                        SM Power Save disabled
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 16 usec (0x07)
                HT Max RX data rate: 300 Mbps
                HT TX/RX MCS rate indexes supported: 0-15, 32
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps
                        * 5.5 Mbps
                        * 11.0 Mbps
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (no IR)
                        * 2472 MHz [13] (20.0 dBm) (no IR)
                        * 2484 MHz [14] (20.0 dBm) (no IR)
        Band 2:
                Capabilities: 0x196f
                        RX LDPC
                        HT20/HT40
                        SM Power Save disabled
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 16 usec (0x07)
                HT Max RX data rate: 300 Mbps
                HT TX/RX MCS rate indexes supported: 0-15, 32
                VHT Capabilities (0x03d071b2):
                        Max MPDU length: 11454
                        Supported Channel Width: neither 160 nor 80+80
                        RX LDPC
                        short GI (80 MHz)
                        TX STBC
                        SU Beamformee
                        MU Beamformee
                        +HTC-VHT
                VHT RX MCS set:
                        1 streams: MCS 0-9
                        2 streams: MCS 0-9
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT RX highest supported: 780 Mbps
                VHT TX MCS set:
                        1 streams: MCS 0-9
                        2 streams: MCS 0-9
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT TX highest supported: 780 Mbps
                Bitrates (non-HT):
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 5180 MHz [36] (20.0 dBm) (no IR)
                        * 5200 MHz [40] (20.0 dBm) (no IR)
                        * 5220 MHz [44] (20.0 dBm) (no IR)
                        * 5240 MHz [48] (20.0 dBm) (no IR)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (20.0 dBm) (no IR)
                        * 5765 MHz [153] (20.0 dBm) (no IR)
                        * 5785 MHz [157] (20.0 dBm) (no IR)
                        * 5805 MHz [161] (20.0 dBm)
                        * 5825 MHz [165] (20.0 dBm) (no IR)
        Supported commands:
                 * new_interface
                 * set_interface
                 * new_key
                 * start_ap
                 * new_station
                 * new_mpath
                 * set_mesh_config
                 * set_bss
                 * authenticate
                 * associate
                 * deauthenticate
                 * disassociate
                 * join_ibss
                 * join_mesh
                 * remain_on_channel
                 * set_tx_bitrate_mask
                 * frame
                 * frame_wait_cancel
                 * set_wiphy_netns
                 * set_channel
                 * set_wds_peer
                 * tdls_mgmt
                 * tdls_oper
                 * probe_client
                 * set_noack_map
                 * register_beacons
                 * start_p2p_device
                 * set_mcast_rate
                 * connect
                 * disconnect
                 * set_qos_map
                 * set_multicast_to_unicast
        WoWLAN support:
                 * wake up on disconnect
                 * wake up on magic packet
                 * wake up on pattern match, up to 12 patterns of 1-128 bytes,
                   maximum packet offset 0 bytes
                 * can do GTK rekeying
                 * wake up on GTK rekey failure
                 * wake up on network detection, up to 4 match sets
        software interface modes (can always be added):
                 * AP/VLAN
                 * monitor
        interface combinations are not supported
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing
        Device supports TX status socket option.
        Device supports HT-IBSS.
        Device supports SAE with AUTHENTICATE command
        Device supports low priority scan.
        Device supports scan flush.
        Device supports AP scan.
        Device supports per-vif TX power setting
        Driver supports full state transitions for AP/GO clients
        Driver supports a userspace MPM
        Device supports configuring vdev MAC-addr on create.
        Device supports randomizing MAC-addr in scans.
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported TX frame types:
                 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
        Supported RX frame types:
                 * IBSS: 0x40 0xb0 0xc0 0xd0
                 * managed: 0x40 0xb0 0xd0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * mesh point: 0xb0 0xc0 0xd0
                 * P2P-client: 0x40 0xd0
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * P2P-device: 0x40 0xd0
        Supported extended features:
                * [ RRM ]: RRM
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
                * [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
                * [ CAN_REPLACE_PTK0 ]: can safely replace PTK 0 when rekeying
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

monitor set

Set to monitor but owl still not start
[kearney@xx ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
  
[kearney@xx ~]$ sudo ip link set dev wlp1s0 down
[kearney@xx ~]$ sudo iwconfig wlp1s0 mode monitor
[kearney@xx ~]$ iwconfig
lo        no wireless extensions.

wlp1s0    IEEE 802.11  Mode:Monitor  Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          
[kearney@xx ~]$ owl
logo-------***
            https://owlink.org

22:28:29 ERROR: No such interface exists 8
22:28:29 ERROR: could not initialize core

GTest Dummy Error

Followed the README properly to compile this and I ended up getting this out of it.

In file included from /home/essasetic/owl/googletest/googletest/src/gtest-all.cc:42: /home/essasetic/owl/googletest/googletest/src/gtest-death-test.cc: In function ‘bool testing::internal::StackGrowsDown()’: /home/essasetic/owl/googletest/googletest/src/gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized] 1301 | StackLowerThanAddress(&dummy, &result); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ /home/essasetic/owl/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type ‘const void*’ to ‘void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here 1290 | static void StackLowerThanAddress(const void* ptr, bool* result) { | ^~~~~~~~~~~~~~~~~~~~~ /home/essasetic/owl/googletest/googletest/src/gtest-death-test.cc:1299:7: note: ‘dummy’ declared here 1299 | int dummy; | ^~~~~ cc1plus: all warnings being treated as errors make[2]: *** [googletest/googletest/CMakeFiles/gtest.dir/build.make:76: googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:348: googletest/googletest/CMakeFiles/gtest.dir/all] Error 2 make: *** [Makefile:136: all] Error 2
Distro: Fedora 35

What is active monitor mode?

Hello everyone,

I'm interested in installing OWL on my computer to make my workflow easier, and for that OWL would be a great part of it.
Unfortunately OWL doesn't work on my computer, I tested with two different wifi adapters but it doesn't work. For both I installed drivers.

Here are the errors I get:

sudo owl -i wlx984827d8340a
              .oOXWMMMMWXOx:
         .oOOOx:'''''''''''':OOOx:
      oXOo'      ........      ':OXx.
           .oOOO''''''''''OOOo.
        oXOo'                'oOO:
             :oOOOOXXXXOOOOo:.
          oXO:'            ':OXo
              .:xOXXXXXXOx:.
          .xXMMMMMMMMMMMMMMMMXx.
  'XWWWWWWMMMMMMMMMMMMMMMMMMMMMMWWWWWWX'
    oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo
     OMMMMMMWWMMMMMMMMMMMMMMWWWMMMMMO
    OMMWx'      'xWMMMMWx'      'oXMMO
   :MW:            oMMx            'WM:
   XM'    .xOOo.    :o     .xOOo.    WX
   WX    :MMMMMX          :MMMMMX    xW
   XW    'WMMMMX   .xx.   'WMMMWX    XX
   'Wx    'xWMx'   OMMO    'xWMx'   xM'
    'XX:           'XX'           :XX'
      'xXOx:..................:xXWx'
         'xXMMMMMMMMMMMMMMMMMMWO'

            Open Wireless Link

            https://owlink.org

01:00:32 ERROR: Error while receiving via netlink: Operation not supported
01:00:32 ERROR: Could not put device in monitor mode: wlx984827d8340a
01:00:32 ERROR: could not initialize core

I read the questions here, and apparently the devices have to be in active monitor mode. So I bought the T2U Plus AC600 key from TPLink and I have exactly the same errors. My previous key was a Tp-link N150 but that didn't work either after installing all the drivers.
I know how to put them both in monitor, but not the active mode.

Here is the command to see the capabilities of the key, but I don't see the active mode in it.

iw phy phy0 info
Wiphy phy0
	max # scan SSIDs: 9
	max scan IEs length: 2304 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CMAC (00-0f-ac:6)
	Available Antennas: TX 0x1 RX 0x1
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * monitor
	Band 1:
		Capabilities: 0x1972
			HT20/HT40
			Static SM Power Save
			RX Greenfield
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT Max RX data rate: 150 Mbps
		HT TX/RX MCS rate indexes supported: 0-7
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps
			* 5.5 Mbps
			* 11.0 Mbps
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
			* 2467 MHz [12] (20.0 dBm)
			* 2472 MHz [13] (20.0 dBm)
			* 2484 MHz [14] (20.0 dBm)
	Band 2:
		Capabilities: 0x1972
			HT20/HT40
			Static SM Power Save
			RX Greenfield
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 7935 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 16 usec (0x07)
		HT Max RX data rate: 150 Mbps
		HT TX/RX MCS rate indexes supported: 0-7
		VHT Capabilities (0x03c03122):
			Max MPDU length: 11454
			Supported Channel Width: neither 160 nor 80+80
			short GI (80 MHz)
			SU Beamformee
			+HTC-VHT
		VHT RX MCS set:
			1 streams: MCS 0-9
			2 streams: not supported
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 434 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-9
			2 streams: not supported
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 434 Mbps
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5075 MHz [15] (30.0 dBm)
			* 5080 MHz [16] (30.0 dBm)
			* 5085 MHz [17] (30.0 dBm)
			* 5090 MHz [18] (30.0 dBm)
			* 5100 MHz [20] (30.0 dBm)
			* 5120 MHz [24] (30.0 dBm)
			* 5140 MHz [28] (30.0 dBm)
			* 5160 MHz [32] (30.0 dBm)
			* 5180 MHz [36] (30.0 dBm)
			* 5200 MHz [40] (30.0 dBm)
			* 5220 MHz [44] (30.0 dBm)
			* 5240 MHz [48] (30.0 dBm)
			* 5260 MHz [52] (30.0 dBm)
			* 5280 MHz [56] (30.0 dBm)
			* 5300 MHz [60] (30.0 dBm)
			* 5320 MHz [64] (30.0 dBm)
			* 5340 MHz [68] (30.0 dBm)
			* 5360 MHz [72] (30.0 dBm)
			* 5380 MHz [76] (30.0 dBm)
			* 5400 MHz [80] (30.0 dBm)
			* 5420 MHz [84] (30.0 dBm)
			* 5440 MHz [88] (30.0 dBm)
			* 5460 MHz [92] (30.0 dBm)
			* 5480 MHz [96] (30.0 dBm)
			* 5500 MHz [100] (30.0 dBm)
			* 5520 MHz [104] (30.0 dBm)
			* 5540 MHz [108] (30.0 dBm)
			* 5560 MHz [112] (30.0 dBm)
			* 5580 MHz [116] (30.0 dBm)
			* 5600 MHz [120] (30.0 dBm)
			* 5620 MHz [124] (30.0 dBm)
			* 5640 MHz [128] (30.0 dBm)
			* 5660 MHz [132] (30.0 dBm)
			* 5680 MHz [136] (30.0 dBm)
			* 5700 MHz [140] (30.0 dBm)
			* 5720 MHz [144] (30.0 dBm)
			* 5745 MHz [149] (30.0 dBm)
			* 5765 MHz [153] (30.0 dBm)
			* 5785 MHz [157] (30.0 dBm)
			* 5805 MHz [161] (30.0 dBm)
			* 5825 MHz [165] (30.0 dBm)
			* 5845 MHz [169] (30.0 dBm)
			* 5865 MHz [173] (30.0 dBm)
			* 5885 MHz [177] (30.0 dBm)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * new_station
		 * set_bss
		 * join_ibss
		 * set_pmksa
		 * del_pmksa
		 * flush_pmksa
		 * remain_on_channel
		 * frame
		 * set_wiphy_netns
		 * set_channel
		 * connect
		 * disconnect
	WoWLAN support:
		 * wake up on anything (device continues operating normally)
	software interface modes (can always be added):
		 * monitor
	interface combinations are not supported
	Device supports SAE with AUTHENTICATE command
	Device supports scan flush.
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0xd0
		 * managed: 0x40 0xb0 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
	Supported extended features:

I would like to find a wifi key that supports this mode, but when I type on google "active monitor mode", I can't find ANY information, nothing at all, as if it didn't exist... The only thing I can find is this github. So I have no idea what to look for in the key specs and I'd like to not buy and have to test for hours and then give up again. What to look for? What else is this mode called, on the hardware side for example?

Thanks

Error while receiving via netlink: Operation not supported. Card supports monitor mode

this problem keeps happening and I have no idea why, Details below.

wlx00c0caad6c6e IEEE 802.11 Mode:Monitor Tx-Power=30 dBm Retry short long limit:2 RTS thr:off Fragment thr:off Power Management:off

Command I used: owl -i wlx00c0caad6c6e

output:

14:35:27 ERROR: Error while receiving via netlink: Operation not supported 14:35:27 ERROR: Could not put device in monitor mode: wlx00c0caad6c6e 14:35:27 ERROR: could not initialize core

running Parrot OS. Any help is appreciated.

Specify OWL is not supported under WSL on Homepage

Would it be possible to change the homepage of Owl at
https://owlink.org/code/
to say

OWL is a an open implementation of the Apple Wireless Direct Link (AWDL) protocol written in C. It currently runs on Linux** and macOS and requires a Wi-Fi card with support for monitor mode and frame injection.

With a footnote at the bottom like so

** Windows Subsystem for Linux (WSL) not supported at this time.

That way it's clearer that you mean an installation of Linux and not an instance of Linux running on WSL.

I spent a bunch of time trying OWL in WSL only to discover WSL is not supported :( Perhaps future developers can avoid this.

Nix: Install fails to find pcap

I've installed the deps from the README but I'm still having some issues related to libpcap-dev.

How could I specify an include path to help cmake find it?

❯ cmake ..
CMake Error at daemon/CMakeLists.txt:19 (find_path):
  Could not find pcap_INCLUDE using the following files: pcap.h


-- Configuring incomplete, errors occurred!
See also "/tmp/tmp.4uTXHt7Ecd/owl/CMakeFiles/CMakeOutput.log".
❯ whereis pcap
pcap: /usr/include/pcap.h /usr/include/pcap /usr/share/man/man3/pcap.3pcap.gz

Compilation error on GCC 10 due to multiple definitions of __packed

Starting from the upcoming GCC release 10, the default of -fcommon option will change to -fno-common - this leads to build errors:

[ 51%] Linking C static library libawdl.a
[ 51%] Built target awdl
Scanning dependencies of target owl
[ 54%] Building C object daemon/CMakeFiles/owl.dir/io.c.o
[ 56%] Building C object daemon/CMakeFiles/owl.dir/core.c.o
[ 59%] Building C object daemon/CMakeFiles/owl.dir/netutils.c.o
[ 62%] Building C object daemon/CMakeFiles/owl.dir/owl.c.o
[ 64%] Linking C executable owl
/usr/bin/ld: ../src/libawdl.a(rx.c.o):(.bss+0x0): multiple definition of `__packed'; ../src/libawdl.a(tx.c.o):(.bss+0x0): first defined here
/usr/bin/ld: ../libradiotap.a(radiotap.c.o):(.bss+0x0): multiple definition of `__packed'; ../src/libawdl.a(tx.c.o):(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

See also:
sahlberg/libiscsi#308
https://bugzilla.suse.com/show_bug.cgi?id=1160276
https://bugzilla.suse.com/show_bug.cgi?id=1160244

CMake Error

Following this tutorial, I'm running into the error below after running cmake .. in owl/build.
I'm on a Raspberry Pi 3 Model B V1.2, and it's running Raspberry Pi OS Lite (32-Bit). I'm running cmake version 3.18.4.

root@raspberrypi:/home/pi/owl/build# cmake ..
CMake Error at /usr/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake:49 (message):
  Could not find compiler set in environment variable CC:


  /home/pi/nexmon/buildtools/gcc-arm-none-eabi-5_4-2016q2-linux-armv7l/bin/arm-none-eabi-.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/home/pi/owl/build/CMakeFiles/CMakeOutput.log".

output in CMakeOutput.log:

The system is: Linux - 5.10.92-v7+ - armv7l

Owl don't work with qualcomm chipest

Hello sir
How can I get owl to work on qualcomm chip
It supports monitor mode but not active one
I have seen issue number 9 and you mentioned it could work if I added another ad-hoc network

The problem is to enable monitor mode I have to use the following custom command
echo "4" > /sys/module/wlan/parameters/con_mode

How can I enable monitor mode with Owl to be able to use opendrop
Thanks

Not working on macOS 10.14

When trying to run on macOS 10.14 I get the following errors

16:51:34 TRACE: pcap: unable to open savefile (en0: No such file or directory)
16:51:34 ERROR: tun: cannot open available device
16:51:34 ERROR: Could not open device: awdl0
16:51:34 ERROR: could not initialize core

Looking at the code it seems to be trying to open a /dev/tun0 device that doesn't seem to exist. What am I doing wrong?

Unhandled frame (-1)

I am seeing this Unhandled frame when I run the Owl

killall owl
killall opendrop
iw dev mon0 del
service network-manager stop
killall wpa_supplicant
iw phy phy1 interface add mon0 type monitor
ifconfig mon0 up
iw dev mon0 set freq 2437
owl -i mon0 -N
.oOXWMMMMWXOx:
.oOOOx:'''''''''''':OOOx:
oXOo' ........ ':OXx.
.oOOO''''''''''OOOo.
oXOo' 'oOO:
:oOOOOXXXXOOOOo:.
oXO:' ':OXo
.:xOXXXXXXOx:.
.xXMMMMMMMMMMMMMMMMXx.
'XWWWWWWMMMMMMMMMMMMMMMMMMMMMMWWWWWWX'
oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo
OMMMMMMWWMMMMMMMMMMMMMMWWWMMMMMO
OMMWx' 'xWMMMMWx' 'oXMMO
:MW: oMMx 'WM:
XM' .xOOo. :o .xOOo. WX
WX :MMMMMX :MMMMMX xW
XW 'WMMMMX .xx. 'WMMMWX XX
'Wx 'xWMx' OMMO 'xWMx' xM'
'XX: 'XX' :XX'
'xXOx:..................:xXWx'
'xXMMMMMMMMMMMMMMMMMMWO'

        Open Wireless Link

        https://owlink.org

00:25:39 INFO : WLAN device: mon0 (addr 0:f:2:2:55:fa)
00:25:39 INFO : Host device: awdl0
00:25:39 WARN : unhandled frame (-1)
00:25:39 WARN : unhandled frame (-1)
00:25:40 WARN : unhandled frame (-1)
00:25:40 WARN : unhandled frame (-1)
00:25:40 WARN : unhandled frame (-1)
00:25:40 WARN : unhandled frame (-1)
00:25:40 WARN : unhandled frame (-1)
00:25:41 WARN : unhandled frame (-1)
opendrop receive
00:25:41 WARN : unhandled frame (-1)
00:25:42 WARN : unhandled frame (-1)
Announcing service: host router, address fe80::20f:2ff:fe02:55fa, port 8771
00:25:42 WARN : unhandled frame (-1)
00:25:42 WARN : unhandled frame (-1)
00:25:42 WARN : unhandled frame (-1)
00:25:42 WARN : unhandled frame (-1)
Starting HTTPS server
00:25:43 WARN : unhandled frame (-1)

Could it be the hardware that i use (it is not the Raspberry Pi 3 but instead a fitlet2 -> https://www.compulabnordic.dk/kategori/mini-pc/fitlet2/ and a USB wifi stick supporting 802.11n )

USB Stick:

4378.338861] usb 1-5: New USB device found, idVendor=148f, idProduct=5370, bcdDevice= 1.01
[ 4378.338870] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4378.338876] usb 1-5: Product: 802.11 n WLAN
[ 4378.338880] usb 1-5: Manufacturer: Ralink
[ 4378.338885] usb 1-5: SerialNumber: 1.0
[ 4378.477012] usb 1-5: reset high-speed USB device number 8 using xhci_hcd
[ 4378.638524] ieee80211 phy2: rt2x00_set_rt: Info - RT chipset 5390, rev 0502 detected
[ 4378.658586] ieee80211 phy2: rt2x00_set_rf: Info - RF chipset 5370 detected
[ 4378.659122] ieee80211 phy2: Selected rate control algorithm 'minstrel_ht'

Macbook 2014 with Arch Linux. Can't run OWL

Macbook 2014 with Arch Linux. Can't run OWL with Netlink operation not supported error. Network adapter is BCM4360 802.11ac [14e4:43a0] (rev 03) which works fine in both 2,4 and 5 GHz modes, BT also works ok.

I've discovered on manpage that you CAN enable monitor mode like this:
echo 1 > /proc/brcm_monitor0
(https://wiki.archlinux.org/title/broadcom_wireless#Setting_broadcom-wl_in_monitor_mode)

After this command mew interface prism0 appears in system (with SAME MAC address as BCM4360 interface, usually called wlp2s0), which gives you ability to monitor network. So the question is - how can I tell OWL to use this particular device for monitoring function? Thank you!

Originally posted by @tarkh in #24 (comment)

netlink operation not supported on a macbook.

I am running ubuntu on my macbook which tells me operations is not supported which is weird because on osx somehow the same device could be put in monitor mode.
I believe this is an owl issue rather than a device support issue

Sporadic behavior despite active monitor mode

  • I have the TP-Link Archer T1U V1.0 card using the mt76 kernel module (which is supposed to possibly work as per seemoo-lab/opendrop#24 (comment))
  • According to iw, Device supports active monitor (which will ACK incoming frames), so it should be good to go.
  • To begin, I killed wpa_supplicant, dhclient, NetworkManager, verified the process list, and don’t see anything else that might be otherwise interfering (as per seemoo-lab/opendrop#21 (comment))
  • I set the regulatory domain to US (as per #10 (comment))
  • I started owl with sudo owl -i wlx503eaa31c062 -v (which uses channel 6) and also tried channels 44 and 149. Owl puts the device in monitor mode.
  • There is no activity at all on channel 44, but channels 6 and 149 show activity.
  • When I turn on my iPhone (which appears to be c2:fa:2:66:0:6 here), I see messages like the following:
17:54:04 INFO : WLAN device: wlx503eaa31c062 (addr 50:3e:aa:31:c0:62)
17:54:04 INFO : Host device: awdl0
17:54:04 DEBUG: switch channel to 149 (slot 0)
17:54:08 DEBUG: peer c2:fa:2:66:0:6 () changed channel sequence to 149,149,149,149,0,0,4,4,6,149,149,149,0,0,4,4
17:54:08 INFO : add peer c2:fa:2:66:0:6 ()
17:54:08 DEBUG: new election tree: 50:3e:aa:31:c0:62 -> c2:fa:2:66:0:6 (met 61, ctr 3031)
17:54:10 DEBUG: peer c2:fa:2:66:0:6 () changed channel sequence to 149,149,149,0,0,0,4,4,6,149,149,0,0,0,4,4
17:54:10 DEBUG: peer ca:b:d0:c9:7d:53 () changed channel sequence to 149,149,149,149,149,149,40,40,6,149,149,149,149,149,40,40
17:54:10 INFO : add peer ca:b:d0:c9:7d:53 (3c50842e-9aef-4a36-9453-c0d8d88650c0)
  • My Apple devices appear correctly within AirDrop (and they are set to be discoverable by "Everyone"), but when I run sudo opendrop find -d it will only occasionally find a device, but not usually all devices, and it may take several minutes for any device to appear.
% sudo opendrop find -d
2020-10-27 17:56:11,410 INFO     opendrop.cli: Looking for receivers. Press enter to stop ...
2020-10-27 17:56:31,514 DEBUG    opendrop.client: Add service 0689a66e61bf._airdrop._tcp.local.
2020-10-27 17:56:31,514 DEBUG    opendrop.cli: AirDrop service found: a043b3ce-ee6e-4d40-bcaa-6ce4176845c6.local., fe80::18cc:c0ff:fecf:40e1:8770, ID 0689a66e61bf
2020-10-27 17:56:31,514 DEBUG    opendrop.client: Send /Discover request
/usr/local/lib/python3.6/dist-packages/zeroconf/__init__.py:1541: FutureWarning: <opendrop.client.AirDropBrowser object at 0x7f2a08b0e400> has no update_service method. Provide one (it can be empty if you don't care about the updates), it'll become mandatory.
  FutureWarning,
2020-10-27 17:56:31,665 DEBUG    opendrop.client: /Discover request successful
2020-10-27 17:56:31,666 INFO     opendrop.cli: Found  index 0  ID 0689a66e61bf  name tom’s MacBook Pro
  • When a device is discovered, I can usually send a file over with opendrop send (yay).
  • When I put opendrop in receive mode, it almost never shows up on my iPhone or Mac. I got it to show up on rare occasion after waiting 10 to 15 minutes and managed to do one receive (another one failed).
% sudo opendrop -d receive -d
2020-10-27 17:58:23,292 INFO     opendrop.server: Announcing service: host nuc, address fe80::523e:aaff:fe31:c062, port 8771
2020-10-27 17:58:24,093 INFO     opendrop.server: Starting HTTPS server
  • In the rare occasions I'm able to receive a file in opendrop, I get a many messages like 22:00:23 ERROR: unable to inject packet (send: Resource temporarily unavailable) during the transfer in OWL.

I opened this issue in the owl repository since I believe that the issue lies in the owl implementation and not in the opendrop tool itself, but I can't confirm. What can I do to get this to work or debug this further?

Error inject packet

Good morning, sir,
I managed to get the nexmon / OWL / Opendrop set to work under raspberry pi 4.

But I encounter an error that I don't understand where it came from:

16:53:32 ERROR: unable to inject packet (send: Resource temporarily unavailable)

Could you please tell me where this error could have come from?

Have a nice day.

No such interface exists

I'm using the Alfa AWUS036NHA (Atheros AR9271)
Monitor mode works with airmon-ng, if i try to set owl to use the wlan interface created by airmon-ng I get the

iwconfig:
wlx00c0ca981c63 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off
I've tried it with it in monitor mode already, but I get the same problem

sudo owl -N wlx00c0ca981c63
Gives the same problem of No such interface exists

sudo owl -i wlx00c0ca981c63
outputs:
ERROR: Error while receiving via netlink: Operation not supported ERROR: Could not put device in monitor mode: wlx00c0ca981c63 ERROR: could not initialize core

Error while receiving via netlink: Object busy

Hello,
I am trying to run owl on my raspberry pi. The network card I am using is the TP Link archer T1U which uses the Mediatek 7610U chip.

When I try to run owl (I run it like this: sudo owl -i wlan0) I get this output:

14:15:53 ERROR: Error while receiving via netlink: Object busy
14:15:53 ERROR: Could not put device in monitor mode: wlan0
14:15:53 ERROR: could not initialize core

when I run iw list I get:

Wiphy phy0
max # scan SSIDs: 4
max scan IEs length: 2257 bytes
max # sched scan SSIDs: 0
max # match sets: 0
max # scan plans: 1
max scan plan interval: -1
max scan plan iterations: 0
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Supported Ciphers:
* WEP40 (00-0f-ac:1)
* WEP104 (00-0f-ac:5)
* TKIP (00-0f-ac:2)
* CCMP-128 (00-0f-ac:4)
* CCMP-256 (00-0f-ac:10)
* GCMP-128 (00-0f-ac:8)
* GCMP-256 (00-0f-ac:9)
* CMAC (00-0f-ac:6)
* CMAC-256 (00-0f-ac:13)
* GMAC-128 (00-0f-ac:11)
* GMAC-256 (00-0f-ac:12)
Available Antennas: TX 0 RX 0
Supported interface modes:
* managed
* monitor
Band 1:
Capabilities: 0x17e
HT20/HT40
SM Power Save disabled
RX Greenfield
RX HT20 SGI
RX HT40 SGI
RX STBC 1-stream
Max AMSDU length: 3839 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 2 usec (0x04)
HT TX/RX MCS rate indexes supported: 0-7, 32
Bitrates (non-HT):
* 1.0 Mbps (short preamble supported)
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (20.0 dBm)
* 2472 MHz [13] (20.0 dBm)
* 2484 MHz [14] (disabled)
Band 2:
Capabilities: 0x17e
HT20/HT40
SM Power Save disabled
RX Greenfield
RX HT20 SGI
RX HT40 SGI
RX STBC 1-stream
Max AMSDU length: 3839 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 2 usec (0x04)
HT TX/RX MCS rate indexes supported: 0-7, 32
Bitrates (non-HT):
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 5180 MHz [36] (23.0 dBm)
* 5200 MHz [40] (23.0 dBm)
* 5220 MHz [44] (23.0 dBm)
* 5230 MHz [46] (23.0 dBm)
* 5240 MHz [48] (23.0 dBm)
* 5260 MHz [52] (23.0 dBm) (radar detection)
* 5280 MHz [56] (23.0 dBm) (radar detection)
* 5300 MHz [60] (23.0 dBm) (radar detection)
* 5320 MHz [64] (23.0 dBm) (radar detection)
* 5500 MHz [100] (disabled)
* 5520 MHz [104] (disabled)
* 5540 MHz [108] (disabled)
* 5560 MHz [112] (disabled)
* 5580 MHz [116] (disabled)
* 5600 MHz [120] (disabled)
* 5620 MHz [124] (disabled)
* 5640 MHz [128] (disabled)
* 5660 MHz [132] (disabled)
* 5680 MHz [136] (disabled)
* 5700 MHz [140] (disabled)
Supported commands:
* new_interface
* set_interface
* new_key
* start_ap
* new_station
* new_mpath
* set_mesh_config
* set_bss
* authenticate
* associate
* deauthenticate
* disassociate
* join_ibss
* join_mesh
* set_tx_bitrate_mask
* frame
* frame_wait_cancel
* set_wiphy_netns
* set_channel
* set_wds_peer
* probe_client
* set_noack_map
* register_beacons
* start_p2p_device
* set_mcast_rate
* connect
* disconnect
* set_qos_map
* set_multicast_to_unicast
Supported TX frame types:
* IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
Supported RX frame types:
* IBSS: 0x40 0xb0 0xc0 0xd0
* managed: 0x40 0xd0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* mesh point: 0xb0 0xc0 0xd0
* P2P-client: 0x40 0xd0
* P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* P2P-device: 0x40 0xd0
software interface modes (can always be added):
* monitor
interface combinations are not supported
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
Device supports TX status socket option.
Device supports HT-IBSS.
Device supports SAE with AUTHENTICATE command
Device supports low priority scan.
Device supports scan flush.
Device supports AP scan.
Device supports per-vif TX power setting
Driver supports full state transitions for AP/GO clients
Driver supports a userspace MPM
Device supports active monitor (which will ACK incoming frames)
Device supports configuring vdev MAC-addr on create.
Supported extended features:
* [ RRM ]: RRM
* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211

so I know monitor and active monitor mode is supported.

Any help on getting this to work will be appreciated!

ERROR: Could not add neighbor: Invalid input data or parameter

I'm working through the Use AirDrop on a Raspberry Pi 3 guide using the suggested setup:

  • Raspberry Pi 3 Model B
  • Raspbian Stretch Lite
  • BCM43430A1 Wi-Fi chip

When running owl I encounter the following errors:

01:41:29 ERROR: pcap: unable to open savefile (mon0: No such file or directory)
01:41:29 INFO : WLAN device: mon0 (addr b8:27:eb:b4:a7:88)
01:41:29 DEBUG: switch channel to 6 (slot 0)
01:41:29 DEBUG: peer 76:f6:fb:1d:79:d0 () changed channel sequence to 149,0,0,0,0,0,0,0,6,149,149,0,0,0,0,0
01:41:30 DEBUG: new election tree: b8:27:eb:b4:a7:88 -> 76:f6:fb:1d:79:d0 (met 523, ctr 3741)
01:41:32 INFO : add peer 76:f6:fb:1d:79:d0 (Jordans-MacBook-Pro)
01:41:32 ERROR: Could not add neighbor: Invalid input data or parameter
01:41:38 DEBUG: peer 76:f6:fb:1d:79:d0 (Jordans-MacBook-Pro) changed channel sequence to 149,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0
01:41:44 DEBUG: peer 2e:75:55:5:2d:ec () changed channel sequence to 149,149,149,149,149,149,157,157,6,149,149,149,149,149,157,157
01:41:44 INFO : add peer 2e:75:55:5:2d:ec (iPhone)
01:41:44 ERROR: Could not add neighbor: Invalid input data or parameter
01:41:44 DEBUG: peer 76:f6:fb:1d:79:d0 (Jordans-MacBook-Pro) changed channel sequence to 149,149,149,149,149,149,157,157,6,6,6,6,6,6,157,157
01:41:46 DEBUG: peer 2e:75:55:5:2d:ec (iPhone) changed channel sequence to 149,149,149,0,0,0,0,0,6,149,149,0,0,0,0,0
01:41:46 DEBUG: peer 76:f6:fb:1d:79:d0 (Jordans-MacBook-Pro) changed channel sequence to 149,149,149,0,0,0,0,0,6,6,6,0,0,0,0,0
01:41:51 DEBUG: peer 2e:75:55:5:2d:ec (iPhone) changed channel sequence to 149,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0
01:41:51 DEBUG: peer 76:f6:fb:1d:79:d0 (Jordans-MacBook-Pro) changed channel sequence to 149,0,0,0,0,0,0,0,6,6,6,0,0,0,0,0
01:41:56 INFO : remove peer 2e:75:55:5:2d:ec (iPhone)
01:41:56 ERROR: Could not delete neighbor: Invalid input data or parameter

Devices are being shown in the debug logs, but the awdl0 virtual network interface was not created:

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.7.29  netmask 255.255.255.0  broadcast 192.168.7.255
        inet6 fe80::7a28:e710:5087:7bee  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:e1:f2:dd  txqueuelen 1000  (Ethernet)
        RX packets 3620  bytes 470872 (459.8 KiB)
        RX errors 0  dropped 271  overruns 0  frame 0
        TX packets 1444  bytes 244514 (238.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 19  bytes 2432 (2.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19  bytes 2432 (2.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

mon0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        unspec B8-27-EB-B4-A7-88-30-30-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 852017  bytes 136813541 (130.4 MiB)
        RX errors 0  dropped 240139  overruns 0  frame 0
        TX packets 70817  bytes 25512689 (24.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:b4:a7:88  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 30  bytes 6040 (5.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

I was able to get everything working as expected by reverting back to the initial commit of the repository: git checkout 540cb8b50a22cc9c0e8fefdd8436f1d3f0b22b9a

Program says cannot put device in monitor mode, but it is already in monitor mode.

When I run “sudo owl -i airlink1” (an rtl8812au adapter), I get

ERROR: Error while receiving via netlink: Operation not supported
ERROR: Could not put device in monitor mode: airlink1
ERROR: could not initialize core

If I run “airmon-ng” it reports

ASUSTek Computer, Inc. USB-AC56 802.11a/b/g/n/ac [Realtek RTL8812AU]
                (mac80211 monitor mode already enabled for [phy1]airlink1 on [phy1]airlink1)

Any ideas?
Thanks!

run owl on PC with Ubuntu

I try to run it on my PC with Ubuntu.
I have successfully build it on my PC. However, here are several problems.
It could find other peers like owl on raspberrypi, and add these peers in hashmap. But after that it removes these peers quickly. It would repeat this process over and over again that i cannot run opendrop on it.

MacBook and iMac both crash & rebooted

I very much appreciate your demo program OWL.
However, when I tried to run it on my MacBook(2020 ver., Catalina) and iMac(2019 ver., Catalina) as

 sudo owl -i en0

, I see the owl face followed by two lines displaying

 INFO : WLAN device: en0 (addr xxxx)
 INFO : Host device: tap0

Right after that, both of the devices suddenly stop and get rebooted.
I also have tried to turn off IPv4 and enable IPv6 by setting it as "Automatically", but no luck.
Is there any workaround for this problem?
Thank you!

Could not put device in monitor mode

Wireless controller:
3d:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)

Owl tell me that:
Could not put device in monitor

But my WiFi card should work as expected:

# iw phy phy0 info
...
software interface modes (can always be added):
		 * AP/VLAN
		 * monitor
...

I successfully put my WiFi adapter in the monitor mode and grab some traffic via tcpdump. Wireshark show me some AWDL packets. I use this guide to check my card.

https://andreas-mausch.de/blog/2018/04/30/wifi-monitor-mode/#intel-dual-band-wireless-ac-8265-iwlwifi

Error while receiving via netlink: Operation not supported

hi, I run owl on ubuntu with cisco wusb600n,and then got an err, What is the problem? thanks.

sudo owl -i wlx00259ce04ceb
.oOXWMMMMWXOx:
.oOOOx:'''''''''''':OOOx:
oXOo' ........ ':OXx.
.oOOO''''''''''OOOo.
oXOo' 'oOO:
:oOOOOXXXXOOOOo:.
oXO:' ':OXo
.:xOXXXXXXOx:.
.xXMMMMMMMMMMMMMMMMXx.
'XWWWWWWMMMMMMMMMMMMMMMMMMMMMMWWWWWWX'
oWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo
OMMMMMMWWMMMMMMMMMMMMMMWWWMMMMMO
OMMWx' 'xWMMMMWx' 'oXMMO
:MW: oMMx 'WM:
XM' .xOOo. :o .xOOo. WX
WX :MMMMMX :MMMMMX xW
XW 'WMMMMX .xx. 'WMMMWX XX
'Wx 'xWMx' OMMO 'xWMx' xM'
'XX: 'XX' :XX'
'xXOx:..................:xXWx'
'xXMMMMMMMMMMMMMMMMMMWO'

        Open Wireless Link

        https://owlink.org

17:35:25 ERROR: Error while receiving via netlink: Operation not supported
17:35:25 ERROR: Could not put device in monitor mode: wlx00259ce04ceb
17:35:25 ERROR: could not initialize core

"unable to inject packet"

Hello
I successfully got OWL and opendrop running using this
For some reason tho, when I start the "opendrop receive" it just spams the OWL terminal with "ERROR: unable to inject packet (send: Resource temporarily unavailable)" and doesn't show anything on my phone
Does anyone know a way to fix this?
I've got a Raspberry Pi 3 Model B

Cannot build on MacOS < High Sierra

I tried building owl on my MacBook Pro late 2009 running MacOS El Capitan and I get this error when I run make:

[ 10%] Building C object src/CMakeFiles/awdl.dir/state.c.o
/Users/bryce/owl/src/state.c:100:11: warning: implicit declaration of function
'clock_gettime' is invalid in C99 [-Wimplicit-function-declaration]
result = clock_gettime(CLOCK_MONOTONIC, &now);
^
/Users/bryce/owl/src/state.c:100:25: error: use of undeclared identifier
'CLOCK_MONOTONIC'
result = clock_gettime(CLOCK_MONOTONIC, &now);
^
1 warning and 1 error generated.
make[2]: *** [src/CMakeFiles/awdl.dir/state.c.o] Error 1
make[1]: *** [src/CMakeFiles/awdl.dir/all] Error 2
make: *** [all] Error 2


I found that there should be some workaround similar to this pull for hashcat:

hashcat/hashcat#1480

Thanks for your help!

does not contain a CMakeLists.txt file.

Last login: Tue Sep 1 14:37:36 on ttys000
(base) hongleima@hongleimadeMacBook-Pro ~ % cd Downloads/owl
(base) hongleima@hongleimadeMacBook-Pro owl % git submodule update --init
(base) hongleima@hongleimadeMacBook-Pro owl % mkdir build
(base) hongleima@hongleimadeMacBook-Pro owl % cd build
(base) hongleima@hongleimadeMacBook-Pro build % cmake ..
-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found libpcap: /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib/libpcap.tbd
-- Found libev: /usr/local/lib/libev.dylib
CMake Error at CMakeLists.txt:17 (add_subdirectory):
The source directory

/Users/hongleima/Downloads/owl/googletest

does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "/Users/hongleima/Downloads/owl/build/CMakeFiles/CMakeOutput.log".
(base) hongleima@hongleimadeMacBook-Pro build %

`-Werror` causes compile errors

The "build from source" instructions should build in a mode which disables -Werror. I just had to go digging through your CMakeLists.txt to disable -Werror just because my version of gcc is slightly different from the one you happen to use.

For reference, here's the warning which causes the build to fail in my case:

In file included from /home/martin/src/owl/googletest/googletest/src/gtest-all.cc:42:
/home/martin/src/owl/googletest/googletest/src/gtest-death-test.cc: In function ‘bool testing::internal::StackGrowsDown()’:
/home/martin/src/owl/googletest/googletest/src/gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
 1301 |   StackLowerThanAddress(&dummy, &result);
      |   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/home/martin/src/owl/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type ‘const void*’ to ‘void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here
 1290 | static void StackLowerThanAddress(const void* ptr, bool* result) {
      |             ^~~~~~~~~~~~~~~~~~~~~
/home/martin/src/owl/googletest/googletest/src/gtest-death-test.cc:1299:7: note: ‘dummy’ declared here
 1299 |   int dummy;
      |       ^~~~~
ls
cc1plus: all warnings being treated as errors

But the bug here is that -Werror is being used for builds on systems you don't know with compiler versions and library versions you don't know.

Reatlek 8821CU Cannot put device in monitor mode

Hi, I am trying to make OWL work on my USB Wifi Adapter which is based on chip Reatlek 8821CU. I have already installed driver on it, with "CONFIG_WIFI_MONITOR" option on.

However, when I am trying to activate OWL with command sudo owl -i wlan1 where wlan1 is the corresponding interface, I get the error of

ERROR: Error while receiving via netlink: Operation not supported
ERROR: Could not put device in monitor mode: wlan1
ERROR: could not initialize core 

even though I have turned on the monitor mode by using iw. Here is the output of sudo iw dev which shows that I have monitor mode turned on:

phy#6
        Interface wlan1
                ifindex 12
                wdev 0x600000001
                addr 20:0d:b0:4f:33:77
                type monitor
                txpower 12.00 dBm
phy#0
        Unnamed/non-netdev interface
                wdev 0x3
                addr 34:2e:b7:17:4d:00
                type P2P-device
                txpower 0.00 dBm
        Interface wlan0
                ifindex 5
                wdev 0x2
                addr 34:2e:b7:17:4d:ff
                ssid WIFI-CZ
                type managed
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
                txpower 22.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0

I am not quite sure what happened to make this not working. Any help is appreciated, thanks.

RX working but TX not working (regulatory domain unset)

So I've tried to set up Owl today on a Linux box and haven't been able to get it to communicate with Macs over AWDL (note that the Macs are not running Owl but are instead using the built-in AWDL driver).

Owl starts normally, reports that it is discovering nearby peers and the awdl0 interface gets created.

If I tcpdump on the awdl0 interface then I can hear packets coming from other nodes, but if I ping to ff02::1%awdl0 (which works between the Macs), the packets are never received by the Macs.

The wireless adapter is a TP-Link Archer T1U using the mt76 DKMS driver.

Arch Linux:

Linux wireless 5.2.10-arch1-1-ARCH #1 SMP PREEMPT Sun Aug 25 18:01:31 UTC 2019 x86_64 GNU/Linux

Device capabilities:

Wiphy phy0
	max # scan SSIDs: 4
	max scan IEs length: 2247 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports RSN-IBSS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CCMP-256 (00-0f-ac:10)
		* GCMP-128 (00-0f-ac:8)
		* GCMP-256 (00-0f-ac:9)
		* CMAC (00-0f-ac:6)
		* CMAC-256 (00-0f-ac:13)
		* GMAC-128 (00-0f-ac:11)
		* GMAC-256 (00-0f-ac:12)
	Available Antennas: TX 0x1 RX 0x1
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
	Band 2:
		Capabilities: 0x17e
			HT20/HT40
			SM Power Save disabled
			RX Greenfield
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
				Max AMSDU length: 3839 bytes
			No DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 4 usec (0x05)
		HT TX/RX MCS rate indexes supported: 0-7
		VHT Capabilities (0x31800120):
			Max MPDU length: 3895
			Supported Channel Width: neither 160 nor 80+80
			short GI (80 MHz)
			RX antenna pattern consistency
			TX antenna pattern consistency
		VHT RX MCS set:
			1 streams: MCS 0-7
			2 streams: not supported
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT RX highest supported: 0 Mbps
		VHT TX MCS set:
			1 streams: MCS 0-7
			2 streams: not supported
			3 streams: not supported
			4 streams: not supported
			5 streams: not supported
			6 streams: not supported
			7 streams: not supported
			8 streams: not supported
		VHT TX highest supported: 0 Mbps
		Bitrates (non-HT):
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 5180 MHz [36] (16.0 dBm) (no IR)
			* 5200 MHz [40] (16.0 dBm) (no IR)
			* 5220 MHz [44] (16.0 dBm) (no IR)
			* 5240 MHz [48] (16.0 dBm) (no IR)
			* 5260 MHz [52] (16.0 dBm) (no IR, radar detection)
			* 5280 MHz [56] (16.0 dBm) (no IR, radar detection)
			* 5300 MHz [60] (16.0 dBm) (no IR, radar detection)
			* 5320 MHz [64] (16.0 dBm) (no IR, radar detection)
			* 5500 MHz [100] (16.0 dBm) (no IR, radar detection)
			* 5520 MHz [104] (16.0 dBm) (no IR, radar detection)
			* 5540 MHz [108] (16.0 dBm) (no IR, radar detection)
			* 5560 MHz [112] (16.0 dBm) (no IR, radar detection)
			* 5580 MHz [116] (16.0 dBm) (no IR, radar detection)
			* 5600 MHz [120] (16.0 dBm) (no IR, radar detection)
			* 5620 MHz [124] (16.0 dBm) (no IR, radar detection)
			* 5640 MHz [128] (16.0 dBm) (no IR, radar detection)
			* 5660 MHz [132] (16.0 dBm) (no IR, radar detection)
			* 5680 MHz [136] (16.0 dBm) (no IR, radar detection)
			* 5700 MHz [140] (16.0 dBm) (no IR, radar detection)
			* 5745 MHz [149] (16.0 dBm) (no IR)
			* 5765 MHz [153] (16.0 dBm) (no IR)
			* 5785 MHz [157] (16.0 dBm) (no IR)
			* 5805 MHz [161] (16.0 dBm) (no IR)
			* 5825 MHz [165] (16.0 dBm) (no IR)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * new_station
		 * new_mpath
		 * set_mesh_config
		 * set_bss
		 * authenticate
		 * associate
		 * deauthenticate
		 * disassociate
		 * join_ibss
		 * join_mesh
		 * set_tx_bitrate_mask
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * set_wds_peer
		 * probe_client
		 * set_noack_map
		 * register_beacons
		 * start_p2p_device
		 * set_mcast_rate
		 * connect
		 * disconnect
		 * set_qos_map
		 * set_multicast_to_unicast
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0x40 0xb0 0xc0 0xd0
		 * managed: 0x40 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * mesh point: 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	software interface modes (can always be added):
		 * AP/VLAN
		 * monitor
	valid interface combinations:
		 * #{ IBSS } <= 1, #{ managed, AP, mesh point } <= 2,
		   total <= 2, #channels <= 1, STA/AP BI must match
	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Device supports TX status socket option.
	Device supports HT-IBSS.
	Device supports SAE with AUTHENTICATE command
	Device supports low priority scan.
	Device supports scan flush.
	Device supports AP scan.
	Device supports per-vif TX power setting
	Driver supports full state transitions for AP/GO clients
	Driver supports a userspace MPM
	Device supports active monitor (which will ACK incoming frames)
	Device supports configuring vdev MAC-addr on create.
	Supported extended features:
		* [ VHT_IBSS ]: VHT-IBSS
		* [ RRM ]: RRM
		* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs

The device does get put into monitor mode:

wlan0     IEEE 802.11  Mode:Monitor  Frequency:5.22 GHz  Tx-Power=16 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

With debugging enabled, I see entries like this:

17:05:31 INFO : WLAN device: wlan0 (addr aa:aa:aa:aa:aa:aa)
17:05:31 INFO : Host device: awdl0
17:05:31 DEBUG: switch channel to 6 (slot 0)
17:05:31 DEBUG: peer bb:bb:bb:bb:bb:bb () changed channel sequence to 44,44,44,0,0,0,0,0,6,44,44,0,0,0,0,0
17:05:31 INFO : add peer bb:bb:bb:bb:bb:bb (Neils-iMac)
17:05:32 DEBUG: new election tree: aa:aa:aa:aa:aa:aa -> bb:bb:bb:bb:bb:bb -> cc:cc:cc:cc:cc:cc (met 521, ctr 249895)
17:05:34 DEBUG: peer bb:bb:bb:bb:bb:bb (Neils-iMac) changed channel sequence to 44,44,44,44,44,44,0,0,6,44,44,44,44,44,0,0
17:05:36 DEBUG: peer bb:bb:bb:bb:bb:bb (Neils-iMac) changed channel sequence to 44,44,44,0,0,0,0,0,6,44,44,0,0,0,0,0
17:05:43 DEBUG: peer bb:bb:bb:bb:bb:bb (Neils-iMac) changed channel sequence to 44,44,44,44,44,44,0,0,6,44,44,44,44,44,0,0

The behaviour is much the same if I supply -c 6 or -c 44 and supplying -N seems to make no difference either.

I'm not sure if this is a driver issue or if there is something I can do to debug this further?

CMake Error: The following variables are used in this project, but they are set to NOTFOUND

masrur@masrur-ubuntu:~/Downloads/owl/build$ cmake ..
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
nlroute_LIBRARY
linked by target "owl" in directory /home/masrur/Downloads/owl/daemon

-- Configuring incomplete, errors occurred!
See also "/home/masrur/Downloads/owl/build/CMakeFiles/CMakeOutput.log".
See also "/home/masrur/Downloads/owl/build/CMakeFiles/CMakeError.log".

Compiling Error

Hey, I get an Error if I want to compile it with makepkg -si .
System : Linux t2brozz 5.6.16-1-MANJARO #1 SMP PREEMPT Wed Jun 3 14:26:28 UTC 2020 x86_64 GNU/Linux

Error


==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating owlink-git git repo...
Fetching origin
-> Updating googletest git repo...
Fetching origin
-> Updating radiotap-library git repo...
Fetching origin
==> Validating source files with sha512sums...
owlink-git ... Skipped
googletest ... Skipped
radiotap-library ... Skipped
==> Extracting sources...
-> Creating working copy of owlink-git git repo...
Reset branch 'makepkg'
-> Creating working copy of googletest git repo...
Reset branch 'makepkg'
-> Creating working copy of radiotap-library git repo...
Reset branch 'makepkg'
==> Starting prepare()...
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yannes/owlink-git/src/owlink-git/build
[ 10%] Built target radiotap
[ 10%] Built target gtest
[ 21%] Built target gtest_main
[ 21%] Built target gmock
Scanning dependencies of target gmock_main
[ 67%] Built target awdl
[ 70%] Building CXX object googletest/googlemock/CMakeFiles/gmock_main.dir/src/gmock_main.cc.o
[ 72%] Linking C executable owl
[ 86%] Built target tests
/usr/bin/ld: ../src/libawdl.a(rx.c.o):(.bss+0x0): multiple definition of __packed'; ../src/libawdl.a(tx.c.o):(.bss+0x0): first defined here /usr/bin/ld: ../libradiotap.a(radiotap.c.o):(.bss+0x0): multiple definition of __packed'; ../src/libawdl.a(tx.c.o):(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [daemon/CMakeFiles/owl.dir/build.make:153: daemon/owl] Error 1
make[1]: *** [CMakeFiles/Makefile2:276: daemon/CMakeFiles/owl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 89%] Linking CXX static library ../../lib/libgmock_main.a
[ 89%] Built target gmock_main
make: *** [Makefile:150: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...


I hope someone can help

need a list of wifi cards/chipsets that support active monitor mode

as the subject says - I want to replace the intel mini-pcie wifi card in my boat computer with one that supports OWL, so that I can setup an easy dropbox-like setup for visitors to upload photos and videos for later editing. OWL and opendrop seem like maybe they can do exactly that.

so far all I know is that my Intel card isn't supported, and the only information about what cards are supported is a link to an issue where someone's card isn't, and a link to another issue where one card in particular is. it's a serious barrier to entry that apparently the only way to find out if a random card is supported is to buy that card and try running the code on it, and if it doesn't run then you're out of luck.

is there a better way to do this?

Unable to make

Hi everybody,
I'm unable to compile, this is the error:

make     
[  5%] Built target radiotap
[ 51%] Built target awdl
[ 64%] Built target owl
[ 67%] Building CXX object googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
In file included from /home/xxx/owl/googletest/googletest/src/gtest-all.cc:42:
/home/ibex/owl/googletest/googletest/src/gtest-death-test.cc: In function ‘bool testing::internal::StackGrowsDown()’:
/home/ibex/owl/googletest/googletest/src/gtest-death-test.cc:1301:24: error: ‘dummy’ may be used uninitialized [-Werror=maybe-uninitialized]
 1301 |   StackLowerThanAddress(&dummy, &result);
      |   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/home/ibex/owl/googletest/googletest/src/gtest-death-test.cc:1290:13: note: by argument 1 of type ‘const void*’ to ‘void testing::internal::StackLowerThanAddress(const void*, bool*)’ declared here
 1290 | static void StackLowerThanAddress(const void* ptr, bool* result) {
      |             ^~~~~~~~~~~~~~~~~~~~~
/home/ibex/owl/googletest/googletest/src/gtest-death-test.cc:1299:7: note: ‘dummy’ declared here
 1299 |   int dummy;
      |       ^~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [googletest/googletest/CMakeFiles/gtest.dir/build.make:82: googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:384: googletest/googletest/CMakeFiles/gtest.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

This is my environment:

cat /etc/os-release                                        
PRETTY_NAME="Ubuntu 21.10"
NAME="Ubuntu"
VERSION_ID="21.10"
VERSION="21.10 (Impish Indri)"
VERSION_CODENAME=impish
ID=ubuntu
ID_LIKE=debian

uname -r
5.13.0-22-generic

How can I solve this error?
regards

Could we build a socket

I want to build a socket via it. It is connect via ping. but I cannot build an TCP socket via it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.