[FS#3981] Error using POSIX mqueue on Arduino Yun Rev 2 LEDEyun 17.11

OpenWrt Bugs openwrt-bugs at lists.openwrt.org
Tue Aug 17 08:12:36 PDT 2021


A new Flyspray task has been opened.  Details are below. 

User who did this - aj (yun) 

Attached to Project - OpenWrt/LEDE Project
Summary - Error using POSIX mqueue on Arduino Yun Rev 2 LEDEyun 17.11
Task Type - Bug Report
Category - Kernel
Status - Unconfirmed
Assigned To - 
Operating System - All
Severity - Medium
Priority - Very Low
Reported Version - All
Due in Version - Undecided
Due Date - Undecided
Details - Supply the following if possible:
 - Device problem occurs on: Arduino Yun Rev 2 (Atheros ar9331, mips architecture)

 - Software versions of OpenWrt/LEDE release, packages, etc.: Used this buildroot to cross-compile for LEDEYun 17.11 https://github.com/arduino/lede-yun

 - Steps to reproduce: Able to successfully compile c code that uses POSIX mqueue with above buildroot and toolchain, however after copying the executable over to the Yun I get thrown an error:
   "main:33: (mqd_t)-1 != mq: Function not implemented"

Example code that uses POSIX mqueue and throws the error when running on the yun:



#include "common.h"

int main(int argc, char **argv)
    mqd_t mq;
    struct mq_attr attr;
    char buffer[MAX_SIZE + 1];
    int must_stop = 0;

    /* initialize the queue attributes */
    attr.mq_flags = 0;
    attr.mq_maxmsg = 10;
    attr.mq_msgsize = MAX_SIZE;
    attr.mq_curmsgs = 0;

    /* create the message queue */
    mq = mq_open(QUEUE_NAME, O_CREAT | O_RDONLY, 0644, &attr);
    CHECK((mqd_t)-1 != mq);

    do {
        ssize_t bytes_read;

        /* receive the message */
        bytes_read = mq_receive(mq, buffer, MAX_SIZE, NULL);
        CHECK(bytes_read >= 0);

        buffer[bytes_read] = '\0';
        if (! strncmp(buffer, MSG_STOP, strlen(MSG_STOP)))
            must_stop = 1;
            printf("Received: %s\n", buffer);
    } while (!must_stop);

    /* cleanup */
    CHECK((mqd_t)-1 != mq_close(mq));
    CHECK((mqd_t)-1 != mq_unlink(QUEUE_NAME));

    return 0;


More information can be found at the following URL:

You are receiving this message because you have requested it from the Flyspray bugtracking system.  If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above.

More information about the openwrt-bugs mailing list