LINUX.ORG.RU

Избранные сообщения Saunk

обработка инфы с com-port

Форум — Development

есть прибор с которым общаемся через ttySB0.
если посылать элементарные команды «ref» то в ответ ловлю «OK\r\n». все в порядке
но когда запускаю стрим и ловлю через

connect(serial, &QSerialPort::readyRead, this, &mw::readD)
...
void mw::readD() {
    QByteArray rD = serial->readAll();
    qDebug() << rD << QString::fromLocal8Bit(rD) << rD.toHex();
}
получаю:
«\x14\xA1""a\xA2)@\r» «\u0014�a�)@\r» «14a161a229400d»
«\x13\xD1""a\x84.@\r» «\u0013�a�.@\r» «13d161842e400d»
«OK\r\n» «OK\r\n» «4f4b0d0a»
а обещали такое:
06BD,1B000774CRLF

где и что я делаю не так?

 , ,

Deleted
()

Новая стабильность

Галерея — Скриншоты

Это Debian 9. Он поставлен на ноут с официального netinstall 9.0, а не обновлен с более старых версий, так как я переделал разделы жесткого диска.

До этого жил на Debian 8, отличий в числе багов немного. Убрали часть старых — добавили немного новых. Конечно, не все баги связаны именно с Debian, часть идут от программ.

Кстати, если внешний вид кажется знакомым — тема оформления слизана с Xubuntu. Но дефолтом для Debian она не является.

Поскольку установка Debian на ноут именно как ОС для быта довольно сложна, я расскажу, как это делать для новичков. Полностью рассказывать по ходам не буду, это всё же не статья. Те, кто не являются новичками, могут не читать далее. Поехали.

Ставил я в режиме Legacy(BIOS). Строго говоря, UEFI имеет ряд преимуществ, и единственная причина, почему я его стараюсь не использовать — это разработчики мат. плат, которые часто допускают в нем ошибки, причем зачастую весьма серьёзные. Разбивку диска выбрал немного нестандартную, но ранее подобная часто встречалась:

sda      8:0    0 931,5G  0 disk 
├─sda1   8:1    0   953M  0 part /boot
├─sda2   8:2    0  65,2G  0 part /
├─sda3   8:3    0   8,4G  0 part [SWAP]
└─sda4   8:4    0   857G  0 part /home
Все разделы первичные. При этом sda1 помечен как загрузочный, и туда же установлен GRUB (обычно он ставиться в MBR). Сделано это для простоты переустановки, вдруг захочу сменить дистрибутив. Вообще говоря, размеры /boot и / сильно с запасом, но мне места не жалко, а проблем это не несет.

Ставил я только минимальные системные утилиты, так что всё остальное пришлось доустанавливать руками. В начале я добавил секции contrib non-free в /etc/apt/sources.list, потом выполнил заранее написанный скрипт, что ставит минимальную графику:

#!/bin/bash
dpkg --add-architecture i386 && apt update && apt install -y light-locker lightdm default-dbus-session-bus tango-icon-theme policykit-1-gnome xfce4 xfce4-goodies xfwm4-themes xfce4-whiskermenu-plugin xfce4-power-manager unrar-free && reboot
exit
Потом с помощью похожего скрипта поставил необходимое ПО. Вы спросите: а почему не сразу? Потому, что иначе возникал странный баг: после загрузки иксов система намертво висла и не отвечала ни на какие команды с клавиатуры или мыши. В Debian 8 такого не было, но там было кое-что другое при тех же условиях. Видимо, APT по-разному настраивает пакеты в зависимости от присутствующих в системе. Цитировать второй скрипт не буду, он слишком длинный, да и часть пакетов я ставил не из него, а поиском в Synaptic (темы оформления для GTK, значков и курсоров, а также шрифты).

Пришлось для части ПО подключать дополнительные репозитории. В первую очередь, Debian Multimedia; но за ней нужно следить, иначе она пол-системы заменит на свои пакеты, что может привести к конфликтам. Поэтому я добавил в /etc/apt/sources.list строчку

deb http://www.deb-multimedia.org stretch main non-free
, добавил ключ по инструкции с оф. сайта, после чего создал в /etc/apt/preferences.d/ файл multimedia со следующим содержимым:
Package: *
Pin: origin "www.deb-multimedia.org"
Pin-Priority: 499
и обновил список пакетов. Эти настройки позволяют ставить и обновлять со сторонних реп те пакеты, что нет в стандартных, не затрагивая остальные. Но такая настройка годится не для всех ситуаций. VirtualBox я ставил со оракловских репозиториев по официальным инструкциям. Ничего особенного: прописал репы, обновил ключи, поставил бокс, добавил пользователя в группу vboxusers, установил пакет расширений.

Теперь о настройке графики. У меня видеокарта от Intel, и чтобы не было тиринга, просто создаем файл /etc/X11/xorg.conf.d/20-intel.conf с содержимым:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option "TearFree" "true"
EndSection
и перезагружаемся. Чтобы настроить внешний вид приложений на Qt4 просто ставим пакет qt4-qtconfig, а далее переключаем тему оформления на GTK через GUI утилиту настройки. Чтобы настроить Qt5, придется повозиться: ставим пакеты qt5-gtk-platformtheme и qt5-style-plugins и в файл /etc/environment добавляем строчки
QT_QPA_PLATFORMTHEME=gtk2
QT_STYLE_OVERRIDE=gtk2
и перезагружаемся. Хотя строчка
QT_STYLE_OVERRIDE=gtk2
уже не обязательна, и даже иногда может привести к проблемам, например рецепт с ней не работает с SMPlayer, хотя для других приложений на Qt5 он действует. Но можно зайти в его Настройки\Внешний вид\Стиль — gtk2. Правда тоже меняет не до конца. Шрифты у меня Noto, сглаживание максимальное RGB.

Немного расстроил VLC: при просмотре .mkv он сильно глючил, при этом на другом компе та же версия на той же системе работала норм. Я нашел причину: по умолчанию аппаратное декодирование VDPAU, а оно глючит у меня. Выставив декодирование на VA-API через X11, а вывод видео через X11 (XCB), получаем нормальную работу без артефактов при перемотке.

Описал далеко не всё, конечно. Но это будет слишком много.

>>> Просмотр (1920x1080, 101 Kb)

 , ,

Vsevolod-linuxoid
()

Steam + Debian + HD Graphics 2000

Форум — Games

Раньше торчала GeForce GTX 260 с проприетарными дровами и проблем не было. Надоело, вытащил её и стал пользоваться встроенной HD Graphics 2000 на моем Core i5.

Теперь перестал запускаться steam. Пробовал его вычищать из системы, заодно полность удалял:

  • ~/.local/share/steam
  • ~/.steam/
  • ~/Steam/

Теперь при запуске выдает: http://pastebin.com/Js1kW6E4

glxinfo: http://pastebin.com/fhKJh4X7

Xorg.0.log: http://pastebin.com/E1qaWpHK

OS: Debian Jessie x86

 ,

s1n
()

[РЕШЕНО] Как настроить внешний вид Qt5 приложений в Xfce на Debian Stretch?

Форум — Desktop

Много чего перепробовал, не помогло. Прочитал это: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=822697 , но рецепт не сработал. Я прописал в ~/.profile в низ строчки

export QT_STYLE_OVERRIDE=gtk2
export QT_QPA_PLATFORMTHEME=gtk2
, но это тоже не сработало. Пакет qt5-gtk-platformtheme установлен, а пакет libqt5libqgtk2 я вообще не смог найти, его походу удалили.

 , , ,

Vsevolod-linuxoid
()

mcu-info-util

Форум — Talks

Как уже я здесь немного говорил, я разрабатываю архиполезную (на мой взгляд) утилиту mcu-info-util. Она OpenSource, написана на Python и нативно работает под Linux.

Данная утилита нужна только тем, кто занимается разработкой прошивок для микроконтроллеров. Если вы этим не занимаетесь в качестве работы или хобби, то вам данный проект интересен не будет. mcu-info-util умеет следующее:

  • Находить компиляторы avr-gcc и arm-none-eabi (актуально для Windows, утилита ищет в реестре некоторые ключи, которые туда пишут установщики соответствующих тулчайнов, также производится поиск в PATH, для Linux только поиск PATH).
  • Подсказывать ключи, которые нужно передать компилятору и линковщику, чтобы успешно скомпилировать проект под целевой микроконтроллер (и если для AVR это всего лишь -mmcu=..., то для ARM всевозможные указания версии cortex, наличия модуля аппаратной математики и т. д.).
  • Генерировать скрипт линковки для ARM. Больше не нужно писать свой скрипт или искать готовый - достаточно названия микроконтроллера (например, STM32F103C8T6) и утилита создаст подходящий скрипт линковки.
  • Генерировать заголовочный файл с описанием регистров периферии выбранного микроконтроллера (в настоящий момент только для ARM, используется информация из файлов SVD, включённых в комплект поставки). Не нужно при использовании libopencm3 или CMSIS, но никто и не заставляет использовать.

Например, мы хотим собрать прошивку под микроконтроллер STM32F103C8T6:

$ mcu-info-util --mcu stm32f103c8t6 --find-compiler
/usr/bin/arm-none-eabi-gcc
$ mcu-info-util --mcu stm32f103c8t6 --print-flags
-D_ROM=65536 -D_RAM=20480 -D_ROM_OFF=0x08000000 -D_RAM_OFF=0x20000000 -mcpu=cortex-m3 -mthumb -DSTM32F1 -msoft-float
$ mcu-info-util --mcu stm32f103c8t6 --linker-script script.ld
$ mcu-info-util --mcu stm32f103c8t6 --header mcudefs.h

Разумеется, было бы разумно использовать mcu-info-util не самостоятельно, а внутри скриптов сборки. На этот случай я приготовил пару примеров - для make и для cmake в каталоге misc репозитория проекта.

Таким образом Makefile проекта может выглядеть как-то так (разумеется, проект будет поддерживать инкрементальную компиляцию с отслеживанием зависимостей исходных файлов) - https://github.com/KivApple/mcu-info-util/blob/master/misc/makefile-project/M...

А проект CMake как-то так - https://github.com/KivApple/mcu-info-util/blob/master/misc/cmake-project/CMak....

Выбор используемого микроконтроллера осуществляется всего лишь одной переменной - MCU. Скрипты произведут серию обращений к mcu-info-util, в итоге будет найден (если установлен) необходимый компилятор, флаги компиляции и при необходимости сгенерирован скрипт линковщика и заголовочный файл с описаниями регистров.

Согласитесь, это гораздо удобнее хардкода размеров ОЗУ и ПЗУ, путей к компилятору (в настройках IDE) и т. д. Функционал подобного уровня (выбор МК по названию и автонастройка проекта под него) предоставляют лишь коммерческие IDE, а моё решение не имеет каких-либо привязок. Вы можете использовать в своём проекте любые библиотеки (скажем, подключить исходники какой-нибудь RTOS), писать код в любой IDE (нужна лишь поддержка Makefile или CMake, либо возможность скриптовать систему сборки и прямые руки), данная утилита лишь берёт на себя необходимую рутину по выбору необходимого компилятора и флагов компиляции без которых проект банально не заработает.

В настоящий момент имеется поддержка только микроконтроллеров STM32 и AVR (также теоретически может нормально заработать для ARM от Atmel).

Данный пост на форуме имеет цель донести до потенциальных пользователей моей утилиты информацию о её существовании. Также хотелось бы услышать ваши мнение о нужности этой утилиты и в каком направлении мне её следует развивать. Ещё хотел бы спросить, как мне следует распространять информацию о моём проекте. По сути дела этот проект я начал в первую очередь для облегчения собственной жизни, но потом увидел, что он может быть полезен не только мне.

 ,

KivApple
()

Web Skype в электроне

Форум — Talks

Нашел такую штуку.

Это веб версия скайпа, упакованная в electron-приложение. Поддерживает не только текст, но и звонки, хотя видео не поддерживает пока. Есть иконка в трее, нативные уведомления. Возможно, это лучшая альтернатива классическому клиенту скайпа на линкусе, на который майкрософт, похоже, забила совсем. Что думаете?

 , ,

Lamppost
()