LINUX.ORG.RU

Сообщения kuzulis

 

Помогите с GitLab CI и matrix

Всем здарова.

Имею такой код на CI:

stages:
  - build
  - publish

image: gcc:latest

build_job:
  stage: build
  script:
    - gcc --version
    - echo "Compiling the project ${BUILD_TARGET}..."
    - g++ -o ${BUILD_TARGET}_program main.cpp
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  artifacts:
    paths:
      - ${BUILD_TARGET}_program
    expire_in: 1 day
  when: manual

publish_job:
  stage: publish
  needs:
    - build_job
  script:
    - echo "Running tests ${BUILD_TARGET}..."
    - ./${BUILD_TARGET}_program
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  when: manual

Т.е. тут на 1-ом шаге собираются два таргета foo и bar, а затем на 2-ом шаге эти таргеты выполняются (ну, в реале должны копироваться куда-то там, но сейчас не важно).

Все делается вручную (так надо).

Так вот, я ожидал, что после того как я нажму на «build» таргет foo, и после успешной его сборки, я смогу далее нажмать и на «publish» этого таргета foo. Но, при нажатии на «publich» - ничего не происходит, этот шаг так и остается в состоянии skipped

Я могу нажать на «publish» таргетов foo или bar только после того, как ВСЕ эти таргеты были собраны…

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

Как это сделать, и возможно ли? Помогите, кто нить, не понимаю, куда надо копать, гуглил уже, и ничо толкового не нагуглил.

PS: А этот гугловский ББ тупой аки пробка, выдает какую то не работающую дичь.

 ,

kuzulis
()

Инерциальная навигационная система (порекомендуйте что нить простое)

Народ, а никто не занимается инерциальными системами навигации?

Блина, есть акселерометр + гироскоп (mpu6500). И есть радиоуправляемый кораблик китайский. Хочу его переделать на esp32s3 + добавить ультразвуковой сенсор чтобы рельеф дна сканировать, для рыбалки конечно (а то сходил я летом у нас в городе раз 5 и ничего не поймал и погруснел что-то ))).

Но для начала надо координаты кораблика хотя бы как-то получать… ЖПС и оное не предлагать (у нас блокируют), так вот, хочу как ни будь на акселерометре + гироскопе замутить это (точность особая не нужна, плюс минус метр).

Читал всякие ресурсы (лазил по всяким либам), но там математика всякая, матрицы, кватернионы, фильтры каллмана и прочий «треш» (я уже забыл все это, бошка уже пухнет, я уже как бы скуф).

Мож есть у кого что нить готовое (рабочее), типа на входе подставить показания акселерометра + гироскопа, а на выходе получить координаты (позицию), хотя бы какую нить относительно чего нить (хотя бы относительно самой первой позиции кораблика, которую за 0 принять) ?

PS: Линукс тут при том, что АПИ библиотек от ESP IDF похож на API Linux (POSIX).

 ,

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
()

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