LINUX.ORG.RU

Сообщения kuzulis

 

Qt-шники наложили санкции

С удивлением обнаружил что теперь нельзя установить/обновить Qt через онлайн установщик:

Такие вот дела, малята, такой опенсурс и демокраси нынче. ))

После этого что-то у меня отпадает желание что-то коммитить, принимать участие, скурвились они в последнее время.

 , ,

kuzulis
()

Где взять кросс-компилятор для Эльбруса?

Всем привет.

Есть ли здесь знатоки (или близко связанные с этим делом), имеется ли вообще в природе (и в свободном доступе в частности) кросс компилятор для Эльбрусов, работающий на x86, x86_64 хостах под управлением Windows/Linux?

Возникла бредовая идея - добавить этот тулчейн в QBS… Не, ну а вдруг? :)

 , , ,

kuzulis
()

Заюзать изохронный USB дата стрим, используя libopencm3

Здарова, народ.

Решил смастерить на STM32F103x некую простецкую USB аудио карту. Для этого заюзал библиотеку libopencm3.

Но, кажется, что ее создатели решили не реализовывать полную поддержку USB стека, и ограничились только эндпойнтами bulk и interrupt типов.

Оказалось что isochronous ендпойнты не работают вообще там.

Блин, знал бы заранее - то не брал бы эту игрушечную поделку libopencm3, взял бы родной HAL и не парился.

Это называется: начитался много лестных отзывов об libopencm3, но оказалось, что все не так радужно.

Есть на форуме люди, которые ее юзали? Мож у кого есть «патченная версия» с работой этих USB?

 , ,

kuzulis
()

Создаю QBS плагин для VS Code

Народ, всем не хворать.

Тут недавно решил попытать счастья в Node.js и создать плагин для всеми любимго VS Code с поддержкой QBS.

И вуаля, что уже можно:

  • Открыть папочку с файлом проекта QBS (пока что отображается структура текущего открытого каталога со всеми файликами в нем «как есть» на ФС) .
  • Выбрать нужный проект для сборки (если в папочке несколько файлов).
  • Выбрать профиль для сборки (по рабоче-крестьянскому - комплект с компиляторами).
  • Выбрать конфигурацию сборки (по рабоче-крестьянскому - дебаг/релиз).
  • Выбрать продукт для сборки (или все продукты).
  • Выбрать продукт для запуска.
  • Выбрать продукт для отладки.

Работает автоматическая «интеллектуальная» подсветка хидеров компилятора и прочее.

Я пока еще не релизил ничего в маркет VS Code, т.к. пока все еще в процессе тестирования/разработки.

Вот сам исходный код плагина (делал на основе плагина CMake):

Вот сам бинарь плагина, который достаточно только установить в VS Code:

Парни, нужна Ваша помощь в/на потестинге, генерации новых идей и прочего. По крайней мере замолвите доброе словцо. :)

Баг-репорты слать сюда:

PS: По крайней мере я смог собрать QtCreator и сам QBS при помощи этого плагина на Windows && MSVC. Также тестил и на Linux - вроде работает.

 , , ,

kuzulis
()

Не грузится Linux на EFI разделе т.к. он стал шифрованным

Всем привет.

У меня в дуалбуте стоят винда 10 и арчлинукс, которые используют один и тот же системный раздел EFI.

С некоторого времени, линукс перестал грузиться, и писало что типа «неизвестная ФС и блабла бла» на вашем /boot разделе…

Нихренасебе, думаю, как так? Ведь винда то грузится… Начал копаться и заметил, что виндовый менеджер дисков стал отображать этот раздел EFI как зашифрованный. o_O…

С какого хрена? Тупая винда, ненавижу…

Вот, теперь не знаю как его обратно вернуть как было.. Я не знаю, то ли это после апдейтов виндовых так стало, то ли хз из за чего..

Никто не сталкивался с таким?

 , , , ,

kuzulis
()

Есть те кто работал с IAR && Cypress CY7C68013A (FX2) ?

Здорова, народ.

Кто нить работал с чипом CY7C68013A (FX2) в связке с IAR EW?

Суть в том, что я пилю (по приколу) USB HID Game Pads эмулятор для 10-ти кнопочных джойстиков для NES (от старых добрых 8-битных дендей).

Там уже все работает при использовании компиляторов KEIL C51 и SDCC. Но вот, с IAR какая то засада: ось не может проенумеровать USB дескрипторы устройства. Например, при попытке получить «Device Descriptor», ось получает какую то хрень у которой все поля заполнены нулями (вместо содержимого этого дескриптора). Я уже понавырывал на себе все волосы, но так и не понял что за фигня.

Может сталкивался кто или знает кого-то кто сталкивался с IAR && FX2?

ЗЫ: Гугл не выдает ни одного упоминания о связке IAR && FX2 (CY7C68013A) как я ни искал.. Похоже никто вообще этого не делал в природе, что ли.. :(

 , , , ,

kuzulis
()

Отладить кишки плагина эклипса

Всем здрасьте.

Понадобилось реверс-инженернуть некий жава плагин эклипса. Я уже декомпилировал большинство его файликов. Но целой картины как там все внутри работает нету.

Есть ли вариант как то по шагам отдебажить все эти кишки в процессе работы этого эклипса с этим плагином? Естественно, сорцов плагина нет.

 , , ,

kuzulis
()

CMake кросс-компиляция для ARM фейлится на этапе теста

Всем привет.

По нужде, а не по собственной воле нужно портировать проект на CMake из qmake/qbs. Проект кросс-платформенный на Qt, целевая платформа Apalis iMX6 с BSP Linux, сгенерированном при помощи Yocto. Используется toolchain сгенеренный тем-же Yocto. Хост машина - Ubuntu 18 x86_64.

Путь к toolchain:

/mnt/data/Yocto-miatech/sdks/sysroots/x86_64-pokysdk-linux/

Путь к целевой RootFs:

/mnt/data/Yocto-miatech/sdks/sysroots/cortexa9hf-neon-poky-linux-gnueabi/

В качестве IDE, естественно используется QtCreator 4.8.0, в котором все нужные комплекты настроены правильно (юзаю SDK, сгенеренный Yocto). Проекты, базирующиеся на qmake или qbs компилятся великолепно. Но вот с CMake какая-то ж#@а.

Проект (любой, даже Hello World) открывается корректно (нифига не открывается, сразу после открытия вижу треш), но при попытке кросс-компиляции, CMake вываливает такой треш:

The ASM compiler identification is GNU Found assembler: /mnt/data/Yocto-miatech/sdks/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc The C compiler identification is GNU 6.4.0 The CXX compiler identification is GNU 6.4.0 Check for working C compiler: /mnt/data/Yocto-miatech/sdks/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc Check for working C compiler: /mnt/data/Yocto-miatech/sdks/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc — broken CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message): The C compiler

«/mnt/data/Yocto-miatech/sdks/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc»

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /tmp/QtCreator-iobfII/qtc-cmake-wCnOwxuI/CMakeFiles/CMakeTmp Run Build Command:«/mnt/data/Yocto-miatech/sdks/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/bin/make» «cmTC_afb4e/fast» /lib/ld-linux-armhf.so.3: No such file or directory

CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:22 (project)

Configuring incomplete, errors occurred! See also «/tmp/QtCreator-iobfII/qtc-cmake-wCnOwxuI/CMakeFiles/CMakeOutput.log». See also «/tmp/QtCreator-iobfII/qtc-cmake-wCnOwxuI/CMakeFiles/CMakeError.log». CMake Project parsing failed.

WTF?

Какого хрена CMake дергает make, расположенный на RootFs целевой ARM платформы? Естественно, оно не запустится на x86_64! Симлинк 'ld-linux-armhf.so.3' имеется на целевом RootFs и ссылается на валидную либу.

CMake-филы, как вы используете это говно? Как пофиксить?

PS: С qmake и QBS проблем нет, а CMake тупит... Бесит что ппц. :(

 , , ,

kuzulis
()

RFKill постоянно блокирует Bluetooth

Всем привет.

Юзаю Ёкту для генерации своих BSP образов с Linux. У меня в качестве нетворк-манагера используется connman. Втыкаю WiFi и Bluetooth свистки в борду, перезагружаюсь, и вижу что блютус заблокирован (rfkill list показывает что это так).

Мой BSP в автозагрузке запускает мое приложение, которое, собственно и работает с WiFi и Bluetooth.

Это приложение используя D-Bus API контролит этот самый блютус (подает питания, запускает сканирование и пр.). Но проблема в том, что при попытке программно «подать питание» (включить локальный блютус адаптер) оно фейлится, т.к. блютус «заблокирован». Это работает только когда я разблокирую блютус («rfkill unblock bluetooth» или «connmanctl enable bluetooth»).

Интересно, то что WiFi не блочится при старте системы, а блочится только блютус (и то блочится только первый раз когда установлен чистый BSP. но если один раз его разблочить, то после следующей загрузке блютус остается разблоченным)... Сколько не курил манов по rfkill или connman, так и не понял где там у них можно прописать чтоб оно не блочило блютус... Такое подозрение что его блочит connman.service...

Пока сделал «костыль» в приложении, когда оно само при своем старте дергает процесс в котором делает «connmanctl enable bluetooth» (благо, что все работает из под рута).

Есть у кого какие мысли как побороть все это? Мож кто сталкивался?

 , , ,

kuzulis
()

Обойти блокировки codereview.qt-project.org для git

Всем доброго дня.

Кто нибудь победил возможность git push/pull для получения/загрузки патчей на qt codereview и т.п.?

Я не спец по этим делам, почитал что или впн, или тор. С впн фиг найдешь свободный сервак. С тор еще тот гимморой с настройками, особенно под винду.

Как быть, товарищи?

 , ,

kuzulis
()

qmake && pkg-config && windows

Всем привет,

Cобственно задача: слинковаться с GStreamer на Windows. Имеется проект, использующий GStreamer в Linux, где линковка осуществляась через:

CONFIG += link_pkgconfig
PKGCONFIG += \
    gstreamer-1.0 \
    gstreamer-base-1.0 \
    gstreamer-app-1.0 \
    gstreamer-rtsp-1.0 \
    gstreamer-rtp-1.0 \
    gstreamer-net-1.0

Скачал Gstreamer SDK для Windows, и вижу, что там есть *.pc файлы и возникла идея также использовать pkg-config и в Windows.

По-быстрому нагуглил, что можно скачать lite сборку pkg-config для Windows.

Но не понятен момент, будет ли вообще qmake «цеплять» его, даже если прописать путь к екзешечке в переменной окружения PKG_CONFIG_PATH (и достаточно ли только ее? т.к. нужно же еще и прописывать пути к самим *.pc файлам)...

Был у кого такой опыт?

 , , ,

kuzulis
()

AVR GCC выкидывает неиспользуемые переменные, редиска

Всем привет,

Имеем Atmel Studio, AVR GCC 8-бит v4.8.4, оптимизация -Os (по размеру) и нужно «зарезервировать» место в некоей секции, например для переменной uint32_t. В коде приложения эта переменная нигде не используется. Просто некий внешний патчер, в готовый бинарь, в это место будет записывать некоторое 4-х байтное значение (например, CRC).

Так вот, при линковке, линкер выкидывает эту переменную как бы я ее не объявлял. Не помогает ни volatile, ни attribute(used), ни const, ни static. Вообще, ничего не помогает, компилер/линкер тупо игнорит все, пока где-нибудь в коде эта переменная не заиспользуется, например не инкрементируется.

Вот это все не работает:

static uint32_t x __attribute__ ((section (".NRWWENDCRC"))) = 0x43524331;
volatile static uint32_t x __attribute__ ((section (".NRWWENDCRC"))) = 0x43524331;
volatile uint32_t x __attribute__ ((section (".NRWWENDCRC"))) = 0x43524331;
const uint32_t x __attribute__ ((section (".NRWWENDCRC"))) = 0x43524331;

static uint32_t x __attribute__ ((section (".NRWWENDCRC"), used)) = 0x43524331;
volatile static uint32_t x __attribute__ ((section (".NRWWENDCRC"), used)) = 0x43524331;
volatile uint32_t x __attribute__ ((section (".NRWWENDCRC"), used)) = 0x43524331;
const uint32_t x __attribute__ ((section (".NRWWENDCRC"), used)) = 0x43524331;

Строка линковки примерно такая:

-Wl,-Map=«$(OutputFileName).map» -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -Wl, -section-start=.NRWWENDCRC=0x1ebfc -mmcu=at90can128 -Wl,--cref

Строка компилятора примерно такая:

-x c -funsigned-char -funsigned-bitfields -DNDEBUG -Os -fpack-struct -fshort-enums -Wall -Wextra -Wundef -mmcu=at90can128 -c -std=gnu89 -MD -MP -MF «$(@:%.o=%.d)» -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"

Как я понимаю, отдельного файла линкера нет.

Знатоки, кто-нибудь сталкивался с таким? Помогайте :)

 , ,

kuzulis
()

Установить Qt 5.5.1 в freebsd 10.2

Всем здрасьте.

Собственно вопрос к БСД-шникам.

Имею удивительную ситуацию: установил на виртуалку FreeBSD 10.2, обновил все порты (через portsnap) и делал pkg upgrade/update.

Но при попытке установить «свежее» Qt 5.5.1:

sudo pkg install qt5-core

оно мне предлагает, елки, протухшее Qt 5.4.x, хотя в портах я вижу что там конфиги для Qt 5.5.1...

Что за п#@ц? Фишка еще в том, что в предыдущем 10.1 релизе этой г@#й фряхи устанавливается Qt 5.5.1...

Компилить самому Qt из портов нет желания... Может кто просветит меня, о, светлоликие, в чем хрень?

 ,

kuzulis
()

А дайте ссылочек на тулчейн с поддержкой Python

Всем доброго времени.

Нужен тулчейн ARM GCC для Windows хоста такой, чтобы у его (тулчейна) GDB дебаггера была подедржка Python. Ну, или сам дебаггер - желательно по-новее.

Блин, все тулчейны которые имеются (их дебаггеры) собраны без этой фичи (без --with-python опции).

Пробовал собирать самостоятельно из MinGW/MSys - фиг там.. Спложное крошево с ошибками при сборке.. Я уже задолбался гуглить и искать что там не так.

Есть у кого свежие ссылочки?

 , , ,

kuzulis
()

Скопировать Qt рантайм при установке проекта

Доброго времени всем.

Есть ли возможность сделать магию с иcпользованием QBS как, чтобы при выполнении «qbs deploy» или «qbs install» в мою выходную директорию копировались бы не только мои цели (мои библиотеки и мои приложения), но и необходимый Qt-рантайм?

Например, проект использует Qt-core, так вот, нужно чтобы оно только Qt5Core.so и клало куда нужно. При этом, хорошо бы еще и чтобы различало Release и Debug рантайм.

Есть у кого какие наработочки? :)

 , , ,

kuzulis
()

Опрос, termios «нестандартные» скорости

Доброго всем времени.

А встречал ли кто-то в каких-нибудь особенных Linux в termios.h определения таких «нестандартных» скоростей как B7200, B14400, B28800 и т.п.?

Интересуют именно Linux-ы и/или какие-нибудь другие *nix подобные ОС (за исключением BSD, т.к. там эти определения присутствуют).

 baud rates, ,

kuzulis
()

Гнев ArchLinux + QtCreator 2.6.2 + Qt5

Доброго времени всем.

Недавно обновился в Арче, запустил QtCreator чтобы покодить и.. - о ужас, вижу что шрифт в его меню + шрифт в редакторе - сплошное УГ. И не только шрифты - а вообще все виджеты и т.п - УГ.

А красные шарики брек-пойнтов - так вообще ппц...

Глянул внимательнее почему так - оказалось, что теперь QtCreator собран с Qt5... Это ппц, товарищи, негодую!

Каким упорином упоролся мантейнер чтобы сделать такую подлянку? О_о

Есть ли у кого мысли как побороть это говно? Самому компилить и делать pkg уж не охота - ну никак!

ЗЫ: Сцуко, злой ппц..

 , ,

kuzulis
()

Аналог фильтр-драйвера для tty

Доброго времени.

Есть ли возможность в Linux написать некий драйвер, аналогичный по возможностям фильтр-драйверу из оффтопика?

Необходимо реализовать возможность через этот драйвер приаттачиваться к любому /dev/ttyXYZ девайсу и перехватывать все вызовы read/write/ioctl, которые идут на /dev/ttyXYZ из пользовательского приложения.

Возможно ли это в принципе, и если да, то каким образом?

 , ,

kuzulis
()

Аналог OVERLAPPED структуры и DeviceIOControl

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

Возможно-ли в Linux использовать отслеживание асинхронных событий от некоего девайса, которые не являются событиями от read()/write()?

Допустим, есть некое у-во, от которого мне нужно ловить некоторые события изменения его состояния, грубо - моргание светодиодика. Но мне это нужно делать не поллингом, а в event-based режиме.

В оффтопике я для этих целей могу сделать так:


// получаем хендл у-ва
HANDLE hDevice = ::CreateFile(..., FILE_FLAG_OVERLAPPED);

// создаем событие
OVERLAPPED ov = {0};
ov.hEvent = CreateEvent(...);

// переменная, которая отражает состояние LED
DWORD ledState = 0;

// запускаю отслеживание евента о смене состояния LED
::DeviceIOControl(
    hDevice, 
    LED_TRIGGERED_NOTIFY_ON, 
    NULL,
    0,
    &ledState,
    sizeof(ledState),
    NULL,
    &ov
    );

// где-то жду когда событие произойдет.
::WaitForSingleObject(
    ov.hEvent,
    INFINITE
);

// если оно произошло, то сбрасываю евент и 
// получаю состояние LED

::GetOverlappedResult(
    hDevice,
    &ov,
    &NumberOfBytesTransferred,
    FALSE
);

// ledState теперь содержит текущее состояние LED у-ва 
DWORD newLedState = ledState;

А как сделать подобное в Linux?


// получаю дескриптор у-ва
int fd = ::open();

// делаю ioctl
::ioctl(fd, LED_TRIGGERED_NOTIFY_ON, <но что сюда совать?? >)

// Жду события, но непонятно какой дескриптор сюда
// писать.. По идее нужен не дескриптор у-ва fd,
// а какой-то дескриптор события, но где его взять?
::select(<какой сюда дескриптор нужен???>)

Есть ли какие-то мысли по этому поводу?

Может быть, в ioctl() передавать некую пользовательскую структуру, типа:

// 
typedef struct {
    int efd; // дескриптор события, но как его создать?
    int ledState; // состояние LED
} led_state_t;

led_state_t ls = {0};

ls.efd = <надо как-то что-то создать??>

::ioсtl(fd, LED_TRIGGERED_NOTIFY_ON, &ls);

::select(ls.efd, ...);

// если дождались, то
int newLedState = ls.ledState;

Подскажите, знатоки, как в этом случае быть?

 , , ,

kuzulis
()

QtCreator как IDE для разработки модулей ядра.

Доброго времени всем.

Суть: Я хочу использовать QtCreator как текстовый редактор с подсветкой синтаксиса и автодополнением для разработки модулей ядра Linux.

Мне нужно, чтобы QtCreator делал поиск заголовков всегда только в конкретном, указанном мною месте, например, в: /usr/src/linux-3.1.7-1-ARCH/include

Я пытался *.pro жестко захардкодить путь к заголовкам:

INCLUDEPATH = /usr/src/linux-3.1.7-1-ARCH/include

Но это не работает. QtCreator все равно сначала по умолчанию ищет заголовки в /usr/include.

Также в свойствах проекта пробовал переключаться на

«Чистая системная среда»

в которой осталось только:

LD_LIBRARY_PATH=/usr/lib PATH=/usr/bin:/usr/bin QTDIR=/usr/share/qt

Но ничего не получается.

Что в этой ситуации можно сделать? Что посоветуете?

kuzulis
()

RSS подписка на новые темы