LINUX.ORG.RU

QtSerialPort в QT4.8 и все в buildroot на ARM9


0

1

Всем доброго времени суток. Сейчас кручу устройство на ARM9. Пробую использовать QtSerialPort, пока мимо кассы((
Имею - хост машина на ubuntu 12, в ней QtCreator 2.7, в нем Qt5.0.1 (пока не использую) и Qt4.8.4 (которую и применяю). Qt4 (точнее - qmake) прописана из выходных файлов buildroot 05.2013. Пробую инсталлировать по инструкции из вики (http://qt-project.org/wiki/QtSerialPort) путь до qmake пишу тот, который в buildroot, чтобы он не брался из /usr/local/bin, все компилируется, файлы попадают в каталог Qt в buildroot.
Начинаю собирать пример из того же вики:

#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
 
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
 
QT_USE_NAMESPACE
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    // Example use QSerialPortInfo
    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
        qDebug() << "Name        : " << info.portName();
        qDebug() << "Description : " << info.description();
        qDebug() << "Manufacturer: " << info.manufacturer();
 
        // Example use QSerialPort
        QSerialPort serial;
        serial.setPort(info);
        if (serial.open(QIODevice::ReadWrite))
            serial.close();
    }
   
    return a.exec();
}

И на выходе получаю:
error: 'SerialPortInfo' was not declared in this scope
error: 'SerialPortInfo' is not a class or namespace
Я пока что слабоват в Qt и плюсах, в основном на чистом С писал, поэтому не могу сходу въехать в проблемы и жду тех, кто реально делал подобную связку, а особенно приветствуется пользователь kuzulis, отметившийся почти во всех русско- и англоязычных темах по Qt и последовательному интерфейсу.
PS Проекты без QtSerialPort собирают, закидываются на устройство, запускаются и даже показываются в vnc-сеансе.
Спасибо.

Ошибка возникает на этапе компиляции или линковки?

Судя по всему какая-то проблема с подключением заголовков.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

на этапе компиляции. но при наведении курсора на заголовочные файлы показывается правильный путь до них в buildroot'е. И мне кажется, что проблема не с подключением, а с областью видимости, потому как если бы хедеры не подключались, то ошибки были бы вида undefined бла-бла

titan83
() автор топика
Ответ на: комментарий от trex6

хотя вы, вполне вероятно, правы - сейчас попробовал убрал хедеры из исходников - ошибки не поменялись абсолютно.

titan83
() автор топика
Ответ на: комментарий от titan83

смотри команды в выводе make, или приведи его вывод тут полностью. В выводе нужно убедиться что вызывается именно тот g++ который нужен и что ему передаются каталоги с хидерами и библиотеками

HighwayStar ★★★★★
()
Ответ на: комментарий от HighwayStar
13:19:54: Running steps for project test-serial...
13:19:54: Starting: "/usr/bin/make" clean
rm -f moc_mainwindow.cpp
rm -f ui_mainwindow.h
rm -f main.o mainwindow.o moc_mainwindow.o
rm -f *~ core *.core
13:19:54: The process "/usr/bin/make" exited normally.
13:19:54: Configuration unchanged, skipping qmake step.
13:19:54: Starting: "/usr/bin/make" 
/home/titan83/buildroot-2013.05/output/host/usr/bin/uic ../test-serial/mainwindow.ui -o ui_mainwindow.h
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -march=armv5te -mtune=arm926ej-s -Os -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I. -I. -I../test-serial -I. -o main.o ../test-serial/main.cpp
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -march=armv5te -mtune=arm926ej-s -Os -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I. -I. -I../test-serial -I. -o mainwindow.o ../test-serial/mainwindow.cpp
../test-serial/mainwindow.cpp: In function 'int main(int, char**)':
../test-serial/mainwindow.cpp:14:5: error: 'SerialPortInfo' was not declared in this scope
../test-serial/mainwindow.cpp:14:5: error: template argument 1 is invalid
../test-serial/mainwindow.cpp:14:5: error: invalid type in declaration before '(' token
../test-serial/mainwindow.cpp:14:5: error: 'SerialPortInfo' is not a class or namespace
../test-serial/mainwindow.cpp:14:5: error: request for member 'brk' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: request for member 'i' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: request for member 'e' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: request for member 'brk' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: request for member 'i' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: 'SerialPortInfo' does not name a type
../test-serial/mainwindow.cpp:14:5: error: request for member 'brk' in '_container_', which is of non-class type 'int'
../test-serial/mainwindow.cpp:14:5: error: could not convert '({...})' from 'void' to 'bool'
../test-serial/mainwindow.cpp:14:5: error: expected ';' before ')' token
../test-serial/mainwindow.cpp:15:41: error: 'info' was not declared in this scope
../test-serial/mainwindow.cpp:20:9: error: 'SerialPort' was not declared in this scope
../test-serial/mainwindow.cpp:20:20: error: expected ';' before 'serial'
../test-serial/mainwindow.cpp:21:9: error: 'serial' was not declared in this scope
make: *** [mainwindow.o] Error 1
13:19:55: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project test-serial (kit: arm9 qt)
When executing step 'Make'
13:19:55: Elapsed time: 00:01.

компилятор правильный и пути до хедеров тоже верные, но про QtSerialPort ни слова.

titan83
() автор топика
Ответ на: комментарий от titan83

у тебя QtSerialProt установлен в buildroot вместе с Qt? при правильной установке должен быть каталог

/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtSerialPort

и файл

/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/share/qt4/mkspecs/features/serialport.prf

HighwayStar ★★★★★
()
Ответ на: комментарий от titan83

После компиляции и установки QtSerialPort проверь что в твоей директории с Qt для ARM9 (или где там у тебя в buildroot оно находится) помимо стандартных Qt-шных либ и заголовков появились и новые:

  • /lib/qtserialport.so (или как там)
  • /include/QtSerialPort/QSerialPort
  • /include/QtSerialPort/QSerialPortInfo
  • /include/QtSerialPort/qserialport.h
  • /include/QtSerialPort/qserialportinfo.h
  • /include/QtSerialPort/qserialportglobal.h
  • /mkspecs/features/serialport.prf

Кроме того, файл QSerialPort должен содержать:

#include "qserialport.h"
,QSerialPortInfo:
#include "qserialportinfo.h"

kuzulis ★★
()
Ответ на: комментарий от titan83

видимо, я чего-то серьезно не догоняю...(
в приведенном мною примере написаны правильные классы QSerialPort и QSerialPortInfo, а у меня в исходнике это же самое было написано без буквы 'Q', т.е., очевидно, не верное.
Простановка буквы 'Q' помогла решить проблемы с компиляцией, но появилась проблема в сборке.
Если я в .pro файл пишу LIBS += -lserialport, то получаю

15:51:07: Running steps for project test-serial...
15:51:07: Starting: "/usr/bin/make" clean
/home/titan83/buildroot-2013.05/output/host/usr/bin/qmake -spec /home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -o Makefile ../test-serial/test-serial.pro
rm -f moc_mainwindow.cpp
rm -f ui_mainwindow.h
rm -f main.o mainwindow.o moc_mainwindow.o
rm -f *~ core *.core
15:51:07: The process "/usr/bin/make" exited normally.
15:51:07: Configuration unchanged, skipping qmake step.
15:51:07: Starting: "/usr/bin/make" 
/home/titan83/buildroot-2013.05/output/host/usr/bin/uic ../test-serial/mainwindow.ui -o ui_mainwindow.h
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -march=armv5te -mtune=arm926ej-s -Os -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtSerialPort -I. -I. -I../test-serial -I. -o main.o ../test-serial/main.cpp
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -march=armv5te -mtune=arm926ej-s -Os -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtSerialPort -I. -I. -I../test-serial -I. -o mainwindow.o ../test-serial/mainwindow.cpp
/home/titan83/buildroot-2013.05/output/host/usr/bin/moc -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtSerialPort -I. -I. -I../test-serial -I. ../test-serial/mainwindow.h -o moc_mainwindow.cpp
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -march=armv5te -mtune=arm926ej-s -Os -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/mkspecs/qws/linux-arm-g++ -I../test-serial -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtCore -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtNetwork -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtGui -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include -I/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/QtSerialPort -I. -I. -I../test-serial -I. -o moc_mainwindow.o moc_mainwindow.cpp
/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -Wl,-O1 -o test-serial main.o mainwindow.o moc_mainwindow.o    -L/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib -lserialport -lQtSerialPort -lQtGui -L/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot//usr/lib -lQtNetwork -lQtCore -lpthread 
mainwindow.o: In function `main':
mainwindow.cpp:(.text.startup+0x0): multiple definition of `main'
main.o:main.cpp:(.text.startup+0x0): first defined here
/home/titan83/ctng-atmel/lib/gcc/arm-atmel-linux-gnueabi/4.6.4/../../../../arm-atmel-linux-gnueabi/bin/ld: cannot find -lserialport
collect2: ld returned 1 exit status
make: *** [test-serial] Error 1
15:51:09: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project test-serial (kit: arm9 qt)
When executing step 'Make'
15:51:09: Elapsed time: 00:02.

titan83
() автор топика
Ответ на: комментарий от titan83

а если я ничего не пишу про библиотеки в .pro, то имею вот это:

/home/titan83/buildroot-2013.05/output/host/usr/bin/arm-atmel-linux-gnueabi-g++ -Wl,-O1 -o test-serial main.o mainwindow.o moc_mainwindow.o    -L/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib -lQtSerialPort -lQtGui -L/home/titan83/buildroot-2013.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot//usr/lib -lQtNetwork -lQtCore -lpthread 
mainwindow.o: In function `main':
mainwindow.cpp:(.text.startup+0x0): multiple definition of `main'
main.o:main.cpp:(.text.startup+0x0): first defined here
main.o: In function `main':
main.cpp:(.text.startup+0x28): undefined reference to `MainWindow::MainWindow(QWidget*)'
main.cpp:(.text.startup+0x4c): undefined reference to `MainWindow::~MainWindow()'
main.cpp:(.text.startup+0x74): undefined reference to `MainWindow::~MainWindow()'
moc_mainwindow.o:(.rodata+0x4c): undefined reference to `MainWindow::~MainWindow()'
moc_mainwindow.o:(.rodata+0x50): undefined reference to `MainWindow::~MainWindow()'
moc_mainwindow.o:(.rodata+0x124): undefined reference to `non-virtual thunk to MainWindow::~MainWindow()'
moc_mainwindow.o:(.rodata+0x128): undefined reference to `non-virtual thunk to MainWindow::~MainWindow()'
collect2: ld returned 1 exit status
make: *** [test-serial] Error 1
16:45:09: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project test-serial (kit: arm9 qt)
When executing step 'Make'
16:45:09: Elapsed time: 00:02.

titan83
() автор топика
Ответ на: комментарий от kuzulis

Всем спасибо! Разобрался.
Итого проблем было две:
1. Пропущенная буква (непонятно как, ибо был копипаст) в названии класса - компиляция
2. Пример был рассчитан на QT5, засунул его в работающую программу под QT4 - все собралось и запустилось.
Но появилась новая проблема)) - я информация по портам-то не выводится( Т.е. как я понимаю функция QSerialPortInfo::availablePorts() возвращает 0, хотя де факто порты, конечно, есть (ttyS0-2). Может знаете - какая у модуля примерная логика работы в поиске доступных портов? Но это я уж так - раз знающие люди нашлись). Ушел читать документацию на QtSerialPort.

titan83
() автор топика
Ответ на: комментарий от titan83

Работал с QtSerialPort для Qt4 - не находил некоторые порты, но они были не от реальных портов, а от сетевых коммутаторов.

trex6 ★★★★★
()
Ответ на: комментарий от kuzulis

собрал пример terminal - в нем такая же ситуация (что логично) - нет доступных портов. похоже, придется читать исходники этого сериалпорта(

titan83
() автор топика
Ответ на: комментарий от trex6

а система (linux) у вас была полноценная или обрезок? просто у меня-то реальные порты, в /dev есть ttyS*, я осциллом вижу импульсы, если на них, что-нибудь шлю.

titan83
() автор топика
Ответ на: комментарий от titan83

Но появилась новая проблема)) - я информация по портам-то не выводится( Т.е. как я понимаю функция QSerialPortInfo::availablePorts() возвращает 0, хотя де факто порты, конечно, есть (ttyS0-2).

Хм.. Это плохо. Надо разбираться.

Может знаете - какая у модуля примерная логика работы в поиске доступных портов?

Если в целевой Linux используется libudev, то библиотека компилится с libudev, и использует ее для поиска портов.

Если в целевой Linux нет libudev, то порты «тупо» перебираются по маске в /dev.

Ты сначала скажи, имеется ли у тебя на целевой системе libudev?

kuzulis ★★
()
Ответ на: комментарий от trex6

Работал с QtSerialPort для Qt4 - не находил некоторые порты, но они были не от реальных портов, а от сетевых коммутаторов.

Какая ОС? Какие имена портов? Имеется ли Udev? Где баг в баг-трекере в конце концов? :)

kuzulis ★★
()
Ответ на: комментарий от titan83

Linux Mint/MATE (Ubuntu 12.04 based).

Порты были вида /dev/ttyUSB0 и /dev/ttyMI0

trex6 ★★★★★
()
Ответ на: комментарий от kuzulis

Для бага в багтрекере надо было копать сам QtSerialPort, разбиарться, как он находит файлы устройств и т.п. К тому же эти же порты не видит GtkTerm и я решил, что проблема не совсем в QtSerialPort.

Плюс файлы эти - результат работы драйвера для сторонней железки. Разбираться кто из них из всех накосячил у меня просто не было времени.

trex6 ★★★★★
()
Последнее исправление: trex6 (всего исправлений: 1)
Ответ на: комментарий от kuzulis

На целевой системе udev, но вот скомпилировался ли модуль с его поддержкой - большой вопрос, мне почему-то кажется, что могли подхватиться настройки хост-машины (так думаю, потому что видел после make install QtSerialPort'a не только в buildroot'е, но и в /include хост-машины). А что на счет перебора? Какая маска? У меня в /dev есть и tty*, и ttyS* (которые мне и нужны).

titan83
() автор топика
Ответ на: комментарий от trex6

Порты были вида /dev/ttyUSB0 и /dev/ttyMI0

Все должно было определиться, по идее.

Для бага в багтрекере надо было копать сам QtSerialPort, разбиарться,

Не обязательно. Я бы позадавал там наводящие вопросы и оперативненько бы пофиксили это.

kuzulis ★★
()
Ответ на: комментарий от titan83

На целевой системе udev, но вот скомпилировался ли модуль с его поддержкой - большой вопрос

Можешь открыть исходники проекта QtSerialPort при помощи QtCreator (с целевым тулчейном), и он должен в файле qserialportinfo_unix.cpp подсветить #ifdef-ы или для HAVE_LIBUDEV, или другие.

А что на счет перебора? Какая маска? У меня в /dev есть и tty*, и ttyS* (которые мне и нужны).

Тут все проще. Чтобы пересобрать QtSerialPort без libudev, просто закоментируй в «qtserialport\src\serialport\serialport-lib.pri»:

unix {
    #CONFIG += link_pkgconfig

    #packagesExist(libudev) {
    #    DEFINES += HAVE_LIBUDEV
    #    PKGCONFIG += libudev
    #}
}

в этом случае все должно нормально находиться.

Но раз у тебя установлен Udev, то нужно пофиксить этот баг (наш), можешь через ssh (или как-нить еще) выполнить на целевой системе:

$udevadm info -a --name=/dev/ttySx

где ttySx - имя твоего порта,

и запости сюда вывод..

kuzulis ★★
()
Ответ на: комментарий от kuzulis

  looking at device '/devices/platform/atmel_usart.1/tty/ttyS1':
    KERNEL=="ttyS1"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/platform/atmel_usart.1':
    KERNELS=="atmel_usart.1"
    SUBSYSTEMS=="platform"
    DRIVERS=="atmel_usart"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""
[\code]
titan83
() автор топика
Ответ на: комментарий от titan83

Ага, ясно. Так я и предполагал.

Значит так:

1) Дай сюда краткое описание твоей платформы (тип ARM, версия и имя Linux ядра и т.п.).

2) Все доступные имена портов из /dev.

Чтобы я запостил баг на трекер.

3) Чтобы пофиксить libudev, закоментируй в qserialport_unix.cpp:

...
                        } else if (subsys == QLatin1String("platform")) { // Platform 'pseudo' bus for legacy device.
                            // Skip this devices because this type of subsystem does
                            // not include a real physical serial device.
                            //canAppendToList = false;
                        }
...

строку «canAppendToList = false;». По умолчанию твои «platform» порты игнорятся.

Естественно, пересобери вновь QtSerialPort (не забудь раскомментировать поиск UDEV в serialport-lib.pri).

И оно должно работать.

kuzulis ★★
()
Ответ на: комментарий от kuzulis

1. Платформа - чип Atmel AT91SAM9G45 (400 Mhz ARM9), 64 Mb SDRAM, 256 Mb NAND
2. Linux 3.2.18
3. Buildroot 2013.05
4. /dev:
tty[0-63]
ttyS[0-2]
5. После модернизации находятся порты ttyS*

Поработать с портами попробую завтра. Мне, в принципе, в этой задаче нужны будут только RX\TX, без дополнительных линий, так что, надеюсь, проблем не возникнет)
И еще нескромный вопрос - ты один из разработчиков? Денис или Сергей?

titan83
() автор топика
Ответ на: комментарий от titan83

После модернизации находятся порты ttyS*

И это правильно. :)

И еще нескромный вопрос - ты один из разработчиков? Денис или Сергей?

Первый :)

kuzulis ★★
()
Ответ на: комментарий от kuzulis

Ну раз первый))), то, Денис, спасибо огромное за грамотную помощь. Постараюсь помочь вашему отличному проекту, особенно баг репортами, чувствую они будут)

titan83
() автор топика
Ответ на: комментарий от titan83

Если в будущем будут вопросы, то как лучше контактировать?
В баг репорт или можно на почту (в исходниках актуальный адрес?).

titan83
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.