LINUX.ORG.RU

Сообщения I-Love-Microsoft

 

не могу собрать программу

 ,

Обновил себе Android NDK до самого последнего, SDK тоже последнее, build tools 19.1, прочие компоненты тоже. Qt 5.5.0 тоже на 100% обновлен, для Android armv7l. Не собирается на API level 10 и 14 (это Android 4.0). Пробовал без использования Gradle (без понятия что это) - ошибка «String types not allowed». Вот с использованием Gradle:

Position 36:36-165 : String types not allowed (at 'configChanges' with value 'orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation')
Должно же оно елки палки хоть как-то собираться... Что делать?

I-Love-Microsoft
()

создать второй раздел сразу после первого

 ,

У меня есть бутявочная флэшка с самосборным OpenEmbedded, на ней один раздел откуда грузится система сразу в ramfs и после этого флэшка остается свободной. Этот раздел 110 Мб. Я делаю установочный скрипт, который при помощи dd копирует bs=1M count=128 начало флэшки на целевой HDD/SDD и там разумеется таблица разделов тоже теперь содержит один по 110 Мб. Далее из скрипта вызывается это:

parted /dev/sda mkpart primary ext3 128M 100%
В итоге создается второй раздел и всё хорошо.

Вопрос: а как указать в mkpart чтобы новый раздел начинался сразу после предыдущего? Вот я знаю можно указывать в M и прочих единицах, можно в процентах. А как чтоб сразу после первого?

Второй вопрос, что какой командой из консоли можно дернуть инфу где заканчивается первый раздел, чтобы скопировать его полностью + таблицу разделов? Это чтобы мне не приходилось делать эти запасы по размерам (110), отступы (128)...

P.S.

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

I-Love-Microsoft
()

какие плагины нужны gstreamer-0.10 + H264?

 , ,

Есть своя сборка OpenEmbedded, стабильная ветка fido. Пытаюсь заставить работать декодирование H264 в связке Qt4->Phonon->Qt-gst-plugin->gstreamer-0.1->ffmpeg/libav. На компе есть вот что:

gst-inspect-0.10 | grep 264
ffmpeg:  ffdec_h264: FFmpeg H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder

На целевой системе (oe-core собрано): missing ITU H.264 decoder. И соответственно gst-inspect-0.10 ничего не показывает.

Вот что я подключил:

IMAGE_INSTALL += " qt4-plugin-phonon-backend-gstreamer libav "

IMAGE_INSTALL += " gst-ffmpeg gst-plugins-base-videotestsrc gst-plugins-good-avi gst-fluendo-mp3 gst-fluendo-mpegdemux gst-plugins-gl gst-meta-base gstreamer gst-ffmpeg gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly "
Всё это в полном объеме собирается, а все плагины, включая Qt4-Phonon-Gstreamer и gst-ffmpeg - всё это есть в системе.

Что я упустил? Везде gstreamer-0.10.

I-Love-Microsoft
()

виснет комп из-за SATA

 ,

Пробовал и порты менять, и кабели заменял, и в legacy IDE режим врубать...

Полный лог тут, IDE-режим: http://paste.org.ru/?warclk SATA-режим: http://paste.org.ru/?lwtjra

Что это может быть? Уже все перепробовал...

[ 2066.579656] ata2: drained 65536 bytes to clear DRQ
[ 2066.579697] ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 2066.579701] ata2.01: ST_FIRST: DRQ=1 with device error, dev_stat 0x7F
[ 2066.579708] sr 1:0:1:0: CDB: 
[ 2066.579719] Get event status notification: 4a 01 00 00 10 00 00 00 08 00
[ 2066.579745] ata2.01: cmd a0/00:00:00:08:00/00:00:00:00:00/b0 tag 0 pio 16392 in
[ 2066.579745]          res 7f/ff:ff:ff:ff:ff/00:00:00:00:00/ff Emask 0x2 (HSM violation)
[ 2066.579751] ata2.01: status: { DRDY DF DRQ ERR }
[ 2066.579765] ata2: soft resetting link
[ 2066.869033] ata2.01: configured for UDMA/100
[ 2066.869623] ata2: EH complete
I-Love-Microsoft
()

опция noerror,sync и большие блоки bs=4M

 

Что если я копирую с диска с битыми секторами и указал по привычке bs=4M и оно уже много часов успешно копирует. Встречаются плохие сектора и пишет I/O error и продолжает. Так что там нулями забьется? Только 512 байт или прям все 4M?

I-Love-Microsoft
()

QJsonObject и double - вместо 0.1 дает 0.099999

 ,

{
  "shit": [
    1.1,
    1.3,
    1.5,
    1.7,
    1.9,
    2.1,
    2.3
  ]
}

При загрузке через QJsonObject получаются такие значения:

QJsonArray([1.1000000000000001,1.3,1.5,1.7,1.8999999999999999,2.1000000000000001,2.2999999999999998])
Как это понимать? Откуда эти девятки лезут? Что там подмухлевать надо, кто знает? Почему 1.9 нельзя загрузить как 1.9?

Или это неизбежно по какой-то причине? Тогда буду юзать всякие ceil/floor...

I-Love-Microsoft
()

исполнение математических выражений (eval)

 ,

Пишу программу на Qt 5.4+, заказчику потребовалась функция чтобы в файле настроек можно было текстом прописывать математические действия над некоторыми данными. Выражения достаточно сложные, но действия простые: сложения вычитания деление, плюс надо группировать действия скобками. Переменная одна, остальное константы (это может быть важной деталью).

Как бы вы решили такую задачку? Свой велик-костыль? Или выполнить через shell? Проблема в том что программа кроссплатформенна, в моем случае нельзя просто вызвать системный python и радоваться жизни. Требуется что-то мелкое легковесное...

I-Love-Microsoft
()

язык надписей плагина Todo 3.1.2

 ,

Есть такой очень классный плагин Todo, он уже давно по дефолту в Qt Creator едет, разве что надо галочкой его включать в плагинах. Я им не пользуюсь, пробовал год назад - комменты на кириллице отображались как ????? ???. Файлы у меня в кодировке UTF-8, версия плагина Todo 3.1.2.

Кто знает как это лечится? Очень очень хочу пользоваться плагином и видеть эти подсказки на кириллице. Очень бы помогло в работе.

I-Love-Microsoft
()

очистка QList<QList<qreal> >

 ,

Я тоже умею задавать глупые вопросы:

QList<QList<qreal> > &data_a

data_a.clear();
QList<qreal> l;
l.append(1);
l.append(2);
l.append(3);
data_a.append(l);
l.clear();
l.append(10);
l.append(20);
data_a.append(l);
qDebug() << "*** before clear" << data_a;
data_a.clear();
qDebug() << "*** after clear" << data_a;
На выходе:
*** before clear ((1, 2, 3), (10, 20))
*** after clear ()
Правильно я понял что когда я вызываю clear внешнего контейнера то оно поочередно чистит сначала внутренние QList а затем уже внешний? Таким образом я не получу тут утечку памяти? Просто перестраховываюсь :)

I-Love-Microsoft
()

пробросить интернет через ssh

 

Есть два компьютера, соединенные локальной сетью. Один с доступом в интернет, второй нет ибо интернет идет через совершенно иное соединение. С компьютера без интернета можно зайти по zssh на тот что с интернетом, скачать что-то при помощи допустим wget и отослать по zmodem (zssh) на комп без сети.

Вопрос: а может есть какой-то тривиальный способ сделать временный проброс интернета через ssh-сессию в локальной сети?

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

I-Love-Microsoft
()

шрифт с символом ●

 ,

Есть сборка OpenEmbedded. Там у меня программа на базе Qt 5 крутится. На десктопных линуксах и маздаях я использую символ ●, причем различных цветов (в тексте меток можно HTML кодами задать цвет) - так я буквально одним символом в тексте могу избавиться от виджетов для индикации статуса процесса, и вместо целого виджета тупо вписываю в текст ●.

Так вот в OpenEmbedded попадает шрифт без поддержки ● - вместо него там пустое место получается.

Вопрос: как найти все шрифты в которых есть этот символ? Видимо не по всех экземплярах шрифтов есть полный набор символов...

I-Love-Microsoft
()

определить имя процессора из grub.cfg

 ,

Как известно, в grub.cfg можно пользоваться sh-подобным языком, там есть команды, в том числе cpuid. Если прервать старт клавишей 'c', то можно вводить команды. У меня cpuid выводит ровным счетом ничего, какие бы аргументы не давал, только help и usage.

Есть ли способ заставить cpuid работать, может файла не хватает какого? А может есть иные пути?

Для чего это надо - у меня сборки OpenEmbedded и надо чтобы они загружали разные версии ядра и initrd (в которых вся ФС целиком) в зависимости от типа машины, это принципиально важно в моей задаче.

Так то у меня есть решение, я пишу кое что в grubenv, есть возможность выбора. Как бы это автоматизировать...

I-Love-Microsoft
()

qmake, узнать разрядность процессора

 ,

Как узнать внутри qmake разрядность окружения в котором происходит сборка? Гугление не привело к внятным ответам. Пока что у меня такой вариант:

CONFIG+=cpu64bit
	cpu64bit {
		LIBS += -lmpegd4-glibc215np-x86_64
		message("64-bit libs $$LIBS")
	} else {
		LIBS += -lmpegd4-glibc217
		message("32-bit libs $$LIBS")
	}
Тут проблема в том что из SDK я должен брать либы с _разными_ названиями, а если их сделать с одинаковыми именами то из разных путей стало быть надо их брать. Неужели нельзя в qmake определить такую простую вещь как разрядность окружения сборки?

I-Love-Microsoft
()

эмуляция хаба последовательных портов

 , ,

Есть такая программа для организации виртуального нуль-модема com0com. Это только для винды, и то, на самых последних это даже не работает (но есть рабочие аналоги). У этой программы есть возможность организовать hub из портов, когда допустим один пишет а другие порты всё это получают. Это позволяет отлаживать и разрабатывать ПО для работы с RS-485, который именно что представляет из себя «один пишет, все читают».

Для Linux есть вот что: tty0tty. Оно работает на Ubuntu 14.04 хорошо, если задать chmod 777 то под юзером порты открываются без затруднений. Есть еще socat, но он по какой-то неведомой причине часто не позволяет открыть порт под юзером, хотя допустим предыдущий запуск программы открывался порт под юзером... (chmod +s /usr/bin/socat делал)

Вопрос: есть ли аналог программы hub4com для Linux? Может это можно создать связкой утилит?

Чую NIH и уже готов написать свою софтину, но может есть готовое решение? Прошу учесть что socat, даже если так делать:

sudo echo "root" ; socat PTY,link=/home/user/ttyGUI PTY,link=/home/user/ttySRV & sleep 3 ; sudo chmod 777 /home/user/tty* ; ls -l ~ | grep tty ; echo "ok"
то не всегда порт можно открыть под юзером как ни странно, не стабильно работает. А надо чтоб hub был, т.е. аналог RS-485 сети приборов...

I-Love-Microsoft
()

реконнект к серверу

 ,

Есть сервер QWebSocketServer и клиент QWebSocket. Запускаю сервер, затем клиент делает socket.open(QUrl(QStringLiteral(«ws://localhost:25000»))) и всё работает, двусторонний обмен есть.

Вопрос: как заставить реализацию Qt WebSockets автоматически приконнектиться при потере или отсутствии коннекта, просто задав адрес и порт.

Я пробовал делать в таймере - если нет коннекта то делаю open, но этот вариант работает как-то криво, иногда зацикливается connect-disconnect. Как удерживать и реконнектить соединение в Qt WebSockets?

I-Love-Microsoft
()

не качать архивы с интернета

 ,

Вот есть Qt 5.x - в нем есть обновлялка. Если скачать с сайта оффлайн-инсталлятор то не придется ничего качать. Если же обновлять при помощи обновлялки (maintenance tool) - то придется качать с сети, а это может быть медленно у кого-то, например на работе.

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

В общем, нет промежуточного решения - либо качай оффлайн инсталлятор и переустанавливай, либо качай обновление по сети медленно.

I-Love-Microsoft
()

врёт о заряде! может 5 часов на 1% работать

 ,

У меня уже было такое с телефоном и я не помню что я сделал чтобы это прошло.

А теперь опять за старое - 4.2В это 100%, а сейчас 3.6В это считает 4%, хотя на 1% может еще часов 5 работать без проблем, и только потом телефон выключается сам.

Как побороть?

I-Love-Microsoft
()

как бутявочную флэшку в DVD?

 , ,

Есть флэшка, с которой стартует Ubuntu 14.04 64-bit + там же есть некое место для своих файлов, которое сохраняет все изменения юзера и системы вообще (типа overlayfs кажется). Создано при помощи unetbootin.

Я снял образ с этой флэшки. Как мне записать этот образ на DVD чтобы он тоже был загрузочный? Ну а те пользовательские файлы тоже сохранились, пусть хоть и стали бы read-only?

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

I-Love-Microsoft
()

Qt 5.4.1 приложение чтобы запускалось на LiveCD

 , ,

Вот для маздая есть в комплекте Qt нечто по имени windeployqt - с ним стало в сто раз проще - оно наваливает все нужные библиотеки в папку с программой.

Но есть ли подобное для Linux? Чтобы как минимум Qt-шные библиотеки накидались в папку с бинарем в том составе чтобы это приложение можно было тупо запустить на LiveCD с флэшки?

I-Love-Microsoft
()

не хранить привязку к IP

 ,

Как известно, если подключить DHCP клиента к DHCP серверу то что-то кэшируется на обоих сторонах. Допустим, я установил lease time всего 60 секунд. А что нужно настроить в Ubuntu 14.04 (просто для конкретики указываю) чтобы оно не хранило привязку? Чтобы все последующие итерации получения адреса получали адрес как в первый раз?

Вот у меня есть IP камеры в которых есть настройка чтобы ничего не хранить и получать заново всегда, ведь у меня IP адрес зависит от номера порта. И что если я перекидываю камеру на другой физический порт? Хватается новый адрес как и задумано.

А вот в Ubuntu что-то явно хранится, держится за старое... Как бы и где это вырубить?.. Сам-то сервер явно настроен выдавать каждый раз всё заново, с IP камерами всё окей...

I-Love-Microsoft
()