LINUX.ORG.RU

Сообщения sunjob

 

avr-gcc makefile, несколько целей для avrdude

Форум — Development

добрый день
имеем

- makefile for avr-gcc
- avrdude
- несколько целей для прошивки (разные программаторы; разные параметры, разные по кол-ву и  настройкам)

задача: настроить так, что бы при вызове цели flash - отрабатывала дефолтная цель для дудки (flash_usbasp,flash_ispmkii,flash_109), которая настраивается в начале makefile

ну, и, соотв., отрабатывали все остальные «конкретные» цели (flash_usbasp,flash_ispmkii,flash_109)

выкрутился рекурсивными вызовом этого-же makefile

FLASH_NAME    ?= usbasp  ###!!! дефолтный программатор
FLASH_DEV     ?= usb

flash_usbasp  : FLASH_NAME    ?= usbasp
flash_usbasp  : FLASH_BRATE    = 115200
flash_usbasp  : FLASH_BCLOCK   = 4
flash_usbasp  : AVRDUDE_FLAG  += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK)
flash_usbasp  : flash_cmd

flash_ispmkii : FLASH_NAME    = avrispmkII
flash_ispmkii : FLASH_BRATE   = 115200
flash_ispmkii : FLASH_BCLOCK  = 4
flash_ispmkii : AVRDUDE_FLAG += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK)
flash_ispmkii : flash_cmd

flash_109     : FLASH_NAME    = avr109
flash_109     : FLASH_BRATE   = 9600
flash_109     : AVRDUDE_FLAG  += -b $(FLASH_BRATE)
flash_109     : flash_cmd

###!!!
# рекурсивынй вызов, в зов-ти от цели
###!!!
flash :
ifeq ($(FLASH_NAME),usbasp)
	$(MAKE)     flash_usbasp
endif
ifeq ($(FLASH_NAME),ispmkii)
	$(MAKE)     flash_ispmkii
endif
ifeq ($(FLASH_NAME),avr109)
	$(MAKE)     flash_avr109
endif

flash_cmd: $(TARGET).hex
	$(AVRDUDE) -c $(FLASH_NAME) -P $(FLASH_DEV) -F $(AVRDUDE_FLAG) -U flash:w:$(OUTDIR)/$<

вопрос: можно-ли красиво обойтись без рекурсии?

!!! UPDATE !!! решение найдено

FLASH_NAME   ?= name1
FLASH_NAME   ?= name2
FLASH_NAME   ?= name3

...

flash_name1  : FLASH_NAME =
flash_name1  : ARG = ...
flash_name1  : flash

flash_name2  : FLASH_NAME =
flash_name2  : ARG = ...
flash_name2  : flash

flash_name3  : FLASH_NAME =
flash_name3  : ARG = ...
flash_name3  : flash

flash : flash_$(FLASH_NAME)
    $(FLASH_CMD)

...

make all         - сборка проекта
make flash       - прошивка дефолтным свистком (настраивается)
make flash_$NAME - прошивка кастомным свистком

 , ,

sunjob
()

«легкий» printf() и «удобное выравнивание»

Форум — Development

добрый день

данный выкрутас

printf("arg: %02i:%02i:%02i, ",arg[0], arg[1], arg[2]);

прокатывает только при подключении «полного» фарша!

#
# Floating point printf version & Math-lib
#
-Wl,-u,vfprintf -lprintf_flt -lm

как выкручиваемсЯ? если не желательно использовать «толстый» вариант?

tag: avr avr-gcc print

 , ,

sunjob
()

CLion-2020.02.5 toolchain, clang, makefile, arduino plugin x32/64 trouble

Форум — Development

Добрый день, собственно сабдж-ж-ж! Обращаюсь, прежде всего, к разрабам CLion-a
Не пишу на соотв. форум по очевидным и понятным причинам :о)

### Arduino-plugin

за основу взят плагин (с гитхаба), который заточен под дефолный PREFIX Arduino

если в системе установлена Arduino c кастомным PREFIX, то, естественно, сборка накроется ... :о)

предлагаю добавить template с тремя вариантами настроек в шаблон МандаринО-проекта

ну и ... для исправления ошибки нужно добавить настройку в шапку cmake-файла

PROJECT_DIR/cmake/ArduinoToolchain.cmake

ну и далее, пересборка

Reload Cmake Project & Build ...
... и ву-а-ля

шаблон

################################################################################
#
# шаблон-настройка для запуска Arduino-проектов на CLion-2020.2.5
#
# этот код надо добавить в шапку.
# PRJ_DIR/cmake/ArduinoToolchain.cmake
#
################################################################################

### ver.1 ###
#
# дефолтное расположение Arduino-окружения
# я не знаю куда по дефолту устанавливается мандарина, пусть будет так :о)
#
# set(ARDUINO_SDK_PATH /usr/bin/arduino)
#

### ver.2 ###
#
# "внутренние/кастомные" настройки
#
#set(ARDUINO_VER      1.8.13)
#set(ARDUINO_PTR      $ENV{HOME}/dev/bin/arduino)
#set(ARDUINO_SDK_PATH ${ARDUINO_PTR}/${ARDUINO_VER})

### ver.3 ###
#
# если определена внешняя переменная ARDUINO_SDK_PATH используем это код
#
set(ARDUINO_SDK_PATH $ENV{ARDUINO_SDK_PATH})

################################################################################

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

export ARDUINO_SDK_PATH=/home/$USER/dev/bin/arduino/1.8.13

знатоки cmake могут объединить все три варианта в один универсальный, удобный и настраиваемый :о)

### Toolchain, CLang and Makefile plugin's

симптомы «косяков» проявляется в том, что сначала сваливает clang-daemon, затем makefile-plugin дает дубу, и все это в процессе «попытки» создания проекта, на базе makefile

далее выдается сообщение, что работа с makefile-ом невозможна из-за ошибки clang-plugin-а :о)

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

что-то под х32, что-то под х64, примерно 50х50

такой подход будет работать только в х64 линухах с установленным х32 пакетами

т.о. лион только условно поддерживает работу на x32, да и ... «производитель» заявляет поддержку только х64 архитектуры :о) ...

ну вот, если это пригодится для сообщества, на здоровье! :о)

 , , ,

sunjob
()

avr-toolchain's, makefile, qtcreator trouble

Форум — Development

добрый день

исходные данные

- avr-toolchain (несколько версий)
- qtreator (версия меняться не будет)
- makefile (универсальный, кастомный, под себя :о)

трабла:

сборка с использованием разных версий toolchain's

при сборке в ком.строке - без проблем :о)

при использовании дефолтной версии avr-toolchain - qtcreator не выпендривается, все его устравивает

при использовании кастомных версии avr-toolchain - qtcreator видит след. сообщение как ошибку

avr-objcopy:-1: --change-section-lma .eeprom=0x00000000 never used

причем, выхлоп сборки просто подкрашен красным, без отметки error
в окне issues - так-же красуется варнинг, без ошибки, но если ткнуть по данной строке и скопировать содержимое текста, получаем в качестве бонуса error:

avr-objcopy:-1: error: --change-section-lma .eeprom=0x00000000 never used

причем, сама сборка проходит нормально!!! :о)

т.е. данное сообщение не нравиться только qtcreator-у!
как бы ему мозги вправить на уровне терапии, без трепанаций :о)?

секция в Makefile

%.eep: %.elf
	@echo
	@echo $(MSG_EEPROM)
	@echo $(TAG_STR) $@
	@echo.
	-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
	--change-section-lma .eeprom=0 -O $(FORMAT) $(OUTDIR)/$< $(OUTDIR)/$@

# DEF (дефолтная версия тулчейна)

avr default toolchain:
- avr-binutils-2.25-i486-sl12.2
- avr-gcc-4.9.2-i486-sl12.2
- avr-gdb-7.8.1-i486-sl12.2
- avr-libc-1.8.1-i486-sl12.2

# custom avr-toolchain

3.4.2, 3.5.4, 3.6.2

Slackware 12.2 x32
Qt Creator 3.1.2 / Based on Qt 4.8.7 (GCC 4.2.4, 32 bit)

ibb.co_screenshot

### UPDATE ###
данный ключик спасает отца русской демократии :o)

--change-section-lma .eeprom=0 --no-change-warnings --no-adjust-warnings \

 , , ,

sunjob
()

sudo GUI скрипт / usb_flash_tool - простая утилита для работы с флешкой

Форум — Desktop

сначало тема называлась так
sudo GUI скрипт
в процессе ... была пеереименована в
usb_flash_tool - простая утилита для работы с флешкой

подробности после UPDATE

...

добрый день

bash GUI-only скрипт (без использования консоли)
1. zenity для диалога
2. «sudo» для «операций»
3. лог в кат. пользователя

если использовать «sudo без пароля», то все ОК (т.е. для «локального» использования)
в противном случае необходимо вводить пароль (в консоли)

ВОПРОС: как правильно разрулить ситуацию, для «обычного» пользователя с «обычным sudo»?

можно использовать desktop-ориентированные «sudo-GUI» утилиты, но есть неудобства
- их целый зоопарк, на каждый desktop свой свиток
- при наличие «sudo без пароля» добавляется ненужный диалог

хотелось-бы ввести пароль один раз, и далее больше не «дергать».
возможно, в более поздних версиях «свистелок» это уже есть, но в «старом» kdesu этого нет, и требует каждый раз заново ввода пароля

нужно общее, универсальное решение для основных дистрибьютивов (в случае разумных решений/доработок)

тестировалось на

slackware 12.2/14.*
tde3-14/kde4

tag: bash,zenity,sudo,gui

спасибо

### UPDATE ###

простая утилита для работы с флешкой
позволяет: форматировать, создавать и восстановливать образы флешек, поддерживается сжатие
особенности: простая, поддерживает block-списки, «защищающие» локальные и «прочие» серьезные диски от форматирования, написана на бабаше :о)

окончательный вариант проекта
usb_flash_tool
README

 , , , ,

sunjob
()

dd - проблема с ehci_hcd-модулями, валит службы (mediamanager)

Форум — Admin

добрый день

URL1 упоминание о подобной проблеме

URL2 интересная тема, но пока не враскурил на предмет «замазанности» :о)

ну и так, еще встречаются в «старом инете» подобные глюки :о)

исходные

- slackware-12.2
- kernel-2.6.33.20.4-smp
- TDE-3.5.12
- coreutils-8.25-i586-sl12.2 / source from sl14.2
- udev-135-i486-sl12.2

1. сама команда dd отробатывает без ошибок
2. после отработки, невозможно отмонтировать флешку
3. накрывается mediamanager
4. выхлопы
5. временное решение

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

понятное дело, старое ядро, кот. ск.всего «замазано» в подобных «фичах», старая ось, старое DE... это все понятно... :о) хотелось бы неспешно, спокойно разобраться более детально в проблеме, что-бы, по возможности избегать «радостной встречи»

спасибо

...

подробности

1. сама команда отробатывает без ошибок

dd if=/dev/sdf of=~/tmp/USB-FLASH.iso status=progress

4020486656 bytes (4.0 GB, 3.7 GiB) copied, 740.05 s, 5.4 MB/s
7856128+0 records in
7856128+0 records out
4022337536 bytes (4.0 GB, 3.7 GiB) copied, 740.442 s, 5.4 MB/s

2. после отработки, невозможно отмонтировать флешку

Unfortunately, the device system:/media/sdf1 (/dev/sdf1) named '4.0G Removable Media' and currently mounted at /media/disk could not be unmounted. 
Unmounting failed due to the following error:
Method "Unmount" with signature "as" on interface "org.freedesktop.Hal.Device.Volume" doesn't exist 
Moreover, programs still using the device have been detected. They are listed below. You have to close them or change their working directory before attempting to unmount the device again.

Cannot stat /media/disk: No such file or directory
Cannot stat /media/disk: No such file or directory
Cannot stat /media/disk: No such file or directory

3. накрывается mediamanager

The KDE mediamanager is not running.

логи/выхлопы

#
# /var/log/messages
#

Jul 14 15:51:47 main hald: mounted /dev/sdf1 on behalf of uid 1000

###!!! тут идет работа dd

Jul 14 16:05:59 main hald: unmounted /dev/sdf1 from '/media/disk' on behalf of uid 1000
Jul 14 16:06:02 main kernel: usb 2-1.6: USB disconnect, address 5
Jul 14 16:06:03 main kernel: usb 2-1.5: new high speed USB device using ehci_hcd and address 6
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: fatal error
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: force halt; handshake f92aa024 00004000 00004000 -> -110
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: HC died; cleaning up
Jul 14 16:06:03 main kernel: usb 2-1.5: device descriptor read/all, error -108
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: unable to enumerate USB device on port 5
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: usb 2-1: USB disconnect, address 2
Jul 14 16:06:03 main kernel: usb 2-1.3: USB disconnect, address 3

#
# /var/log/debug
#

Jul 14 15:50:14 main kernel: wlan0: no IPv6 routers present
Jul 14 15:51:00 main kernel: sd 8:0:0:0: [sdf] Mode Sense: 23 00 00 00
Jul 14 15:51:46 main kernel: sd 9:0:0:0: [sdf] Mode Sense: 23 00 00 00

#
# /var/log/kdm.log
#

X.Org X Server 1.4.2
Release Date: 11 June 2008
X Protocol Version 11, Revision 0
Build Operating System: Slackware 12.1 Slackware Linux Project
Current Operating System: Linux main 2.6.33.20.4-smp #1 SMP PREEMPT Wed Nov 21 16:29:32 GMT-7 2018 i686
Build Date: 30 June 2008  11:35:29PM

        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue Jul 14 15:50:08 2020
(==) Using config file: "/etc/X11/xorg.conf"
(II) Module "ramdac" already built-in
AUDIT: Tue Jul 14 16:09:17 2020: 4133 X: client 10 rejected from local host (uid 0)

#
# /var/log/syslog
#

Jul 14 15:49:36 main kernel: NVRM: loading NVIDIA UNIX x86 Kernel Module  256.53  Fri Aug 27 21:03:42 PDT 2010
Jul 14 15:50:03 main dhcpcd: /sbin/dhcpcd: not running
Jul 14 15:50:03 main last message repeated 3 times
Jul 14 15:51:00 main kernel: sd 8:0:0:0: [sdf] Assuming drive cache: write through
Jul 14 15:51:01 main last message repeated 2 times
Jul 14 15:51:46 main kernel: sd 9:0:0:0: [sdf] Assuming drive cache: write through
Jul 14 15:51:46 main last message repeated 2 times
--> this
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: fatal error
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: force halt; handshake f92aa024 00004000 00004000 -> -110
Jul 14 16:06:03 main kernel: ehci_hcd 0000:00:1d.0: HC died; cleaning up
Jul 14 16:06:03 main kernel: usb 2-1.5: device descriptor read/all, error -108
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot reset port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)
Jul 14 16:06:03 main kernel: hub 2-1:1.0: unable to enumerate USB device on port 5
Jul 14 16:06:03 main kernel: hub 2-1:1.0: cannot disable port 5 (err = -19)

5. временное решение (пендиле-костыль)

sudo rmmod    ehci_hcd
sudo modprobe ehci_hcd

 , , ,

sunjob
()

bash, передача команды строкой

Форум — Development

добрый день

надо передать «составную» команду строкой
«исходный вариант команды» - закомментирован
с набегу/нагуглю не разобрался

понимаю, что непонимаю глубинных смыслов башизма :o)

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

спасибо

#!/bin/sh
#///////////////////////////////////////////////////////////////////////////////
cmd()
#///////////////////////////////////////////////////////////////////////////////
{
$CMD
}
#///////////////////////////////////////////////////////////////////////////////

cd $TMP
touch test_image.{iso,img,txt}

#
# исходный вариант
#
#zenity \
#--file-selection --save     \
#--filename=dvd.iso          \
#--file-filter="*.iso *.img" \
#--title="Выбор файла"; exit 1


   X=$'\040'
MASK="*.iso *.img"  ; TITLE="Выбор файла"
MASK="*.iso$X*.img" ; TITLE="Выбор$Xфайла"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=*.iso\ *.img  \
--title=Выбор\ файла        \
"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=*.iso$X*.img  \
--title=Выбор$Xфайла        \
"

CMD="\
zenity \
--file-selection --save     \
--filename=dvd.iso          \
--file-filter=$(echo *.iso$X*.img) \
--title=$(echo Выбор$Xфайла)      \
"

cmd

exit 0

исходные

bash-3.1.017-i486-2
slackware 12.2

 

sunjob
()

qtcreator - обьектный файл с общими реализациями

Форум — Development

qtcreator - проект из шаблон-визарда qt-widgets, довешиваю «свои плюшки»...

есть мини-библиотека, состоит из 3х исходников:

- lib1 c/h (использует lib2)
- lib2 c/h (более низкоуровневая)
- func c/h (рутина, используется обоими lib1 & lib2)

при написании библиотеки извратился простым подключеним «реализаций» вместе с «хедерами»
сборка/отладки библиотеки проходит без проблем

теперь хочу «правильно» добавить библиотеку в qtcreator-проект (хедеры отдельно, реализация отдельно)

если просто подключить в *.pro-файле

HEADERS += ini/lib1.h
HEADERS += ini/lib2.h
HEADERS += ini/func.h
SOURCES += ini/lib1.c
SOURCES += ini/lib2.c
SOURCES += ini/func.c

то получаем «анрезолв/func», что и не удивительно.

если добавляем «потерянные» рутины (func.o) («всевозможными» методами) - то получаем коллизию/множественное определение, (в исходнике и в обьектнике), что тоже не удивительно.

как правильно подключить библиотеку? точнее, не саму библиотеку, а обьектный файл с общими реализациями рутины (понятное дело, нужно без установки библиотеки в систему :о)

...

qtcreator-3.1.2
qt-4.8.7

 ,

sunjob
()

Qt5, приплыли?

Форум — Development

добрый день

за новостями не слежу, был немного удивлен:

http://download.qt.io/official_releases/qt/5.15/5.15.0/OFFLINE_REAMDE.txt

Due to The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog.

If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses

ваше мнение, комменты...

спасибо

 , ,

sunjob
()

с/с++/qt4 формошлепство на linux для простого пользователя

Форум — Development

добрый день

1. планы, описание задачи:

хочу разобраться и наработать методику/код «формошлЁп-скрИптинга» для простого пользователя :о)
- GUI-формы будут на QT4/Lazarus (в данном случае рассматриваем QT4)
в GUI-форме:
- вызовы скриптов, внешних команд и пр...
- получение выхлопа скрипта & ERRORLEVEL для дальнешего анализа

т.к. GUI будут на QT4, то запуск скрипта / чтение выхлопа / ERR_LEVEL, ск.всего, будет на базе QT4

2. настройки и рабочие скрипты

- ini-файл с настройками
- каталог со скриптами (либо стандартный PATH)

3. чтение ini-файла, запуск скриптов

- GUI-программа загружает в буфер содержимое ini-файла
- реакция на кнопку -> вызов обработчика, типа:

run_id(int ID);
- обработчик парсит буфер ini-файла, по ID получает имя_скрипта
- запуск скрипта, анализ выхлопа/кода возврата и ... дальнейшая реализация в зов-ти от фантазии :о)

КОД_1 - запуск внешнего скрипта
архив code_1.tar.xz

Примерный выхлоп основной программы:

### qDebug() 
 exitCode  () = ' 2 '
 exitStatus() = ' 0 '
 str_out      = ' "test script 2, arg=--add_scr2_arg --add_qt_app_arg
" '
 str_err      = ' "" '
 
### printf()
exitCode  () = '2'
exitStatus() = '0'
str_out   () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
'
str_err   () = ''

ВОПРОСЫ

1. qDebug - имеет «обрамление» с обоих сторон строк в виде:

' "' + '" '
(т.е. пробел + символ ковычки)

ВОПРОС 1: это особенности отладочного вывода qDebug ?

в обоих случаях qDebug & printf при «выхлопе текста» запускаемого скрипта - «странная» печать строки, с переносом в конце, хотя сам выхлоп скрипта без переноса

str_out   () = 'test script 2, arg=--add_scr2_arg --add_qt_app_arg
' !!! <-- вот тут перенос конца строки

ВОПРОС 2 :почему?

прочие ВОПРОСЫ:
- может, для внутреннего использования, лучше/проще по старинке использоавть string, или вообще простой буфер char* str?

мне самому не оч. нравиться использовать qt-классы, для таких простых операций, но !!! логично писать в той «эко-системе» в которой пишешь GUI, мало-ли чего там еще в будущем шарахнет использовать, передать «какой особенный» параметр в QT4/GUI... имхо

уточнение:
- именно QT4
- согласен, для простых GUI на cli/YAD/Zenity, логично «это» делать на bash/perl итд, кому, что удобнее
- в инете есть много «простых» примеров с «кодом» на с/с++, но я не встречал что-бы было реализовано одновременно при запуске скрипта получение выхлопа и кодa-возврата.
- так-же не встречал подходящих/удобных/минимальных примеров/библиотек парсинга ini-файла, что-бы была организована работа с буфером а не с потоками (т.к. каждый раз для чтения ini-файла создаются/закрываются потоки... это не оптимально, надо будет подходящую библиотеку доробатывать, на примете inih, посмотрим, что можно сделать с ней :о)

буду благодарен за подсказки, ссылки, код итд ...

вопросы по написанию GUI и парсинг ini-файла будут позже

TAG: c,c++,gui,qt4,scripting

### UPDATE ###

протестировал (немного подрихтовал под себя) библиотеку
IniParser

простенькая, удобная, вполне годная!
итак, имеется два варианта работы с ini-файлом

- IniParser
- QSettings

 , , ,

sunjob
()

Lazarus/fpc медленная сборка на slackware-14.2 x64

Форум — Development

добрый день

на «subj-е» время сборки пустого проекта с одной кнопкой проходит крайне долго

исходники/проект находится на ram-disk-e

проверял в vbox-е на других «основных» дистрибьютивах, так-же замечено, что на х64 собирается значительно медленнее, но не так сильно, прим. 1-2 сек (из lazarus-gui)

так-же просил сделать тестовый замер у боевых программеров, аналогично, те-же результаты 1.8-2 сек

-------------------------------------------------
os/ver         arch        time/sec
-------------------------------------------------
slackware 12.2 x32 - gui  0.1 -  0.6 
slackware 14.2 x64 - gui  9.0 - 10.0  <-- subj
slackware 14.2 x64 - cli  8.0 - 15.0
etc/more/vbox  x32 - gui  0.5 -  1.0 
etc/more/vbox  x64 - gui  1.0 -  2.0 
ubuntu         x64 - gui  1.8 -  2.0
-------------------------------------------------

основные мысли

1. видна тенденция, что на х64 - сборка проходит дольше
2. в «основных» дистрибьютивах разница не значительная: 1-2 сек на х64, почти мгновенно на х32
3. сборка из ком.строки почему-то занимает больше времени, чем из гуев
4. без претензий на то, что повторная сборка тоже почти мгновенная итд итп...(кто-же спорит)
5. огромная разница между х32/64 замечена только на slackware

вот, последний пункт и вызывает больше всего непонимания (собственно, о ней и речь)
при всем, при том, что sl14.2_x64 даже без замеров, на глаз просто летает по сравнению с sl12.2_x32 (на одном железе и старом hdd)

по нек.выкусам из инета, «считается», что «это» из-за долгой линковки! тогда встречный вопрос, почему на старой х32-слаке сборка мгновенная?! :o)

набег на гугль особенно не помог, патчей на fpc/lazarus вообщем-то нету..., сборки, естественно, SlackBuild/самопальные
(пробовал всяко-разно, по многу и с внушением... не помогло)

выхлоп/сис.логи: ни чего информативного (по моему) не содержат, во вс.случае я не нашел

используемый софт:

fpc-3.0.4
lazarus-1.8.4
lazarus-2.0.4
lazarus-2.0.6
lazarus-2.0.8

лог сборки в консоли:

build from konsole: 8-15 sec

lazbuild ./project1.lpr
-->
main$ lazbuild ./project1.lpr
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-iWTOTP"
Hint: (lazarus) [RunTool] "/usr/bin/fpc" "-va" "compilertest.pas"
Info: (lazarus) Execute Title="Compile Project, Target: project1"
Info: (lazarus) Working Directory="/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Executable="/usr/bin/fpc"
Info: (lazarus) Param[0]="-MObjFPC"
Info: (lazarus) Param[1]="-Scghi"
Info: (lazarus) Param[2]="-Cg"
Info: (lazarus) Param[3]="-O1"
Info: (lazarus) Param[4]="-g"
Info: (lazarus) Param[5]="-gl"
Info: (lazarus) Param[6]="-l"
Info: (lazarus) Param[7]="-vewnhibq"
Info: (lazarus) Param[8]="-Fi/dev/shm/tmp/sun/ram/prj/lib/x86_64-linux"
Info: (lazarus) Param[9]="-Fu/opt/lazarus-2.0.8/share/lazarus/lcl/units/x86_64-linux/gtk2"
Info: (lazarus) Param[10]="-Fu/opt/lazarus-2.0.8/share/lazarus/lcl/units/x86_64-linux"
Info: (lazarus) Param[11]="-Fu/opt/lazarus-2.0.8/share/lazarus/components/lazutils/lib/x86_64-linux"
Info: (lazarus) Param[12]="-Fu/opt/lazarus-2.0.8/share/lazarus/packager/units/x86_64-linux"
Info: (lazarus) Param[13]="-Fu/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Param[14]="-FU/dev/shm/tmp/sun/ram/prj/lib/x86_64-linux/"
Info: (lazarus) Param[15]="-FE/dev/shm/tmp/sun/ram/prj/"
Info: (lazarus) Param[16]="-o/dev/shm/tmp/sun/ram/prj/project1"
Info: (lazarus) Param[17]="-dLCL"
Info: (lazarus) Param[18]="-dLCLgtk2"
Info: (lazarus) Param[19]="project1.lpr"
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.0.4 [2020/06/09] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling project1.lpr
(3104) Compiling unit1.pas
/dev/shm/tmp/sun/ram/prj/unit1.pas(16,28) Hint: (5024) Parameter "Sender" not used
(9022) Compiling resource /dev/shm/tmp/sun/ram/prj/lib/x86_64-linux/project1.or
(9015) Linking /dev/shm/tmp/sun/ram/prj/project1
/usr/bin/ld: warning: /dev/shm/tmp/sun/ram/prj/link.res contains output sections; did you forget -T?
//
// основная задержка.
//
(1008) 60 lines compiled, 8.6 sec
(1022) 3 hint(s) issued

хотелось-бы ускорить процесс сборки хотя-бы до «средне-статистических» х64 :o)

высказываемся, тыкаем носом, посылаем по ссылкам, набрасываем на вентилятор, кидаемся чепчиками, меряемся резьбой итд... :о)

спасибо

p.s. после некоторого «набега» подозреваю что это «общеизвестная» трабла : старая nvidia-карта / дрова + современный линух/ядра"

nvidia gts250
nvidia_340.108 krn/drv
kernel 4.4.217

### UPDATE ###

протестировал на vbox-е

sl14.1 x32 -   1-2 sec
sl14.2 x32 -   1-2 sec
sl14.2 x64 - 12-13 sec

«все время» уходит на линковку (и, по моему, результаты вполне показательны?!)

проблема именно в skackware и именно в архитектуре x64 (так, что nvidia с дрово-ядами, вероятно, отпадает)

### UPDATE ###

после сборки из карент-ветки тормоза, вроде как поутихли

binutils 2.26  -> 2.33.1
oprofile 1.1.0 -> 1.3.0

встречный вопрос: как корректно и правильно можно обновить эти пакеты? сдается мне что вообще нельзя!

###!!! UPDATE !!!###

rebuild this pack/patches - Lazarus build is OK

binutils ( 2.26.1-1ubuntu1~16.04.8 )
https://packages.ubuntu.com/ru/source/xenial-updates/binutils

 , , , ,

sunjob
()

Slackware 14.2+ as Rolling-Release

Форум — Development

добрый день, любители слаки в карент образе :о)

тема: карент, как рабочЯя версия (ролинг релиз) на десктопе.

поделитесь опытом пользования, как ведет себя, в чем подвохи, где приходится подмазывать/подтыкивать, на что требует внимание, какие пакеты, что девелопим на машине, итд итп, все, что посчитаете нужным!

в свете очевидных моментов, видимо, надо будет потихоньку переползать на curent, т.к. release «немного» задерживается.

спасибо

p.s. поместил сюда, потому как «все эти пассы руками и пр.махинации» все-таки ближе именно к Develop (ну, либо перенесите куда надоть :о)

 , , ,

sunjob
()

local simple no secure remote to host

Форум — Admin

добрый день

локальная сеть, куча vbox-linux машин, подключение к которым осущ. по ssh

изначально все б.м., но

- требуется авторизация (пароль)

- каждый раз при смене vbox-имиджа/системы требуется редактирование лок.настроек (для удаления ключа)

~/.ssh/known_hosts
- сборка большого проекта по ssh - занимает немного больше времени чем сборка в открытом окне vbox

иногда это выбивает из «мыслительно-рабочего процесса», плюс отнимает немного времени итд

понятное дело, что для связи по сети ssh-необходим, но для локальной связи (разработки чего-либо) можно (даже желательно) подключение без всяких этих наворотов, даже без логина/ввода пароля

несколькими набегами на настройки/гугль - не осилил (что есть то есть :о)

возможно ли?!

### ADD ###

вопрос по ходу:

- соединение шифруется или только авторизация (не уточнял этого вопроса... нет времени, но думаю шифруется всЁ)?

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

- т.е. вопрос актуален, есть «прямое/нЕшифрованное/типа опасное» соединение или все забито гвоздями?

спасибо

 , , ,

sunjob
()

CLion IDE / Отключить Code Style

Форум — Development

добрый день! subj - CLion 2018.1.2

ВОПРОСЫ:

- как отключить авто-коде-стайл?

- возможно существуют к.л. хак-возможности для этого? (в разумных пределах :о)

...

настройки Settings/Editor/Code Style - не помогают, не возможно добиться привычного поведения (расстановка по своему усмотрению отступов, скобок, кода !!! именно по своему усмотрению, с соотв. поведением отступов), это как минимум

так-же не помогают теги formatter

// @formatter:off
// @formatter:on

KDevelop/QTCreator/Geany настраиваются нормально

спасибо

 , , , ,

sunjob
()

TDE/Trinity 14.0.7/14.0.8/14.0.9 for Slackware

Форум — Desktop

TDE/Trinity 14.0.7/14.0.8/14.0.9 for Slackware 14.2/14.2+ / сборка от русских физиков

Ноги, крылья… Главное — хвост!

- TDE 14.0.9 for Slackware      14.2/14.2+
- TDE 14.0.8 for Slackware 14.1/14.2/14.2+
- TDE 14.0.7 for Slackware      14.2/14+

описание сборки, установка, настройка в текстовом файле

tag: slackware tde trintiy desktop

TDE

Slackware pkg

 , , ,

sunjob
()

XDG_RUNTIME_DIR прибили гвоздями? ваши мысли?!

Форум — Admin

добрый день

до Slackware 14.2+ не было никаких проблем :о)

переопределял для себя «кастомные» каталоги XDG_xxx - на RAM-DISK типа:

export XDG_RUNTIME_DIR=$RAM_DISK/.var/run
export  XDG_CACHE_HOME=$RAM_DISK/.var/cache

в Slackware 14.2+ выяснилось то, что значение переменной XDG_RUNTIME_DIR игнорируется и системой под эти цели принудительно используется каталог:

/var/run/user/$ID

причем, если оставить «старое кастомное переопределение», то

KDE4/5 - будет игнорировать эту настройку и просто принципиально юзать «новый стандарт каталога»

/var/run/user/$ID

а вот TDE-14.0.7 будет честно пытаться использовать «кастомную настройку»

XDG_RUNTIME_DIR=$RAM_DISK/.var/run
а т.к. «вся система» использует «другой каталог» то рабочий стол TDE начинает тупить, глючить и выеживаться, причем, сообщения ошибок «неочевидны» и говорят, типа "... DCOP <blah-blash-blah> ..."

причем, по умолчанию каталог

/var/run
находится на HDD, а не на «подобной» /dev/shm, что ВООБЩЕ не есть гуд

...

понятное дело, бодаться в лоб я не стал, использую «так как есть», и то, что «я чё-та да не знаю, Ё!»

но, хотелось бы услышать ваши мнения, идеи, все что думаете по этому поводу и, особенно, по поводу «а нахрена так делать?!» :о)

короче, просто поболагурим на «тему»

спасибо

p.s. уточняю, мне непонятно (больше всего волнует) не то, что TDE глючит, а почему весь мир/все остальные принудительно, как по договоренности игнорируют XDG_RUNTIME_DIR :o)

 

sunjob
()

Slackware 14.2+ моношрифт не виден «как моношрифт»

Форум — Desktop

добрый день

странное поведение «настроек шрифта», в панелях управления, диалогах выбора шрифта (такое поведение со многими шрифтами, но частный случай с моношрифтом Liberation-Mono)

liberation_fonts_ttf-2.1.0-x86_64-sl14.2+
/usr/share/fonts/TTF/LiberationMono-*.ttf

на скринах диалоги, панель управления из Trintiy-14.0.7, но это не DE-зависимая проблема, в KDE4 аналогично

в частности, шрифт не виден, если выбирать «системный моно-шрифт» в панели управления

Appearanca & Theme / Fonts / Fixed width
так-же не виден в диалоге выбора шрифта приложений
kwite   - выбор шрифта для редактора
konsole - выбор шрифта

шрифт виден

панель управления, выбор любого шрифта, кроме моношрифта:
Appearanca & Theme / Fonts / *

так-же его можно выбрать в не KDE-приложении, например Geany

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

спасибо

p.s. думаю, что это дисто-дависимая трабла, т.к. в

slacware14.2  - все нормально
slacware14.2+ - проблемка

PIC

ADD PIC

 , ,

sunjob
()

Slackware 14.2+ x64, KDE-5.20.02, NVidia GTS250

Форум — Desktop

добрый день

проблема с запуском старой в.карты

- драйвера с оффсайта (*.run)

- устанавливается только последний драйвер

- более «ранние» не «собираются» (т.е «выбора на посмотреть» нет)

- с этими дровами нормально стартуют: «родная» KDE4 & TDE14.0.7

по поводу KDE5

- sddm запускается через раз (по моему, пересборка видеодров помогает)

- можно залогинуться/запустить KDE5 из triniti-tdm

- рабочий стол «как бы запускается», но не «проявляется» панель

- (*) процесс plasma-shell запускается (или как там его?! , пишу по памяти...)

- (*) перезапуск процессса приводит к перегрузке «стола», но панель все равно не стартует

- можно запустить KDE5-приложения, стартуют нормально, оформление трушное, все на месте

- очистка профиля, пустой пользователь - без результата

- wayland-сессия, вообще пустая, через нек. время (или попытка нажатия на шорткаты) - проявляются артефакты, типа по ссылке, но более жесткие

PIC

запуск Live KDE5

- без проблем (очевидно, без NVidia дров)

- работает достаточно шустро, даже с еще не выключенным baloo, заметно быстрее чем запуск «пред. товариша» с жесткого диска

проблем с этими сборками никогда не замечал, с LIVE-USB запускаются без проблем, можно долго тестировать, работает достаточно стабильно и комфортно, в vbox-окружении все (*) ставиться/крутиться отменно

(*) пакеты KDE5 и KDE5-LIVE

все логи, что пишутся, малоинформативны, типа «вываливаюсь» читайте лог; читаем лог, там тоже самое, с «обратным пендилем»

подробности позже, когда железки будут под рукой

спасибо

Slackware 14.2+ x64 2020.03.05
KDE5                2020.03.06
Asus GeForce NVidia DN GTS250/512Mb
NVidia driver       340.108

ISO

Live

 , , ,

sunjob
()

ошибка сборки slackware-14.2+ trinity-3.5.13.2 (mini kde3/qt3)

Форум — Development

на Slackware 14.2 - собирается без проблем

на Slackware 14.2+ - ошибка

### Ошибка 1 ###

In file included from /usr/include/c++/9.2.0/cstdlib:77,
                 from /usr/include/c++/9.2.0/stdlib.h:36,
                 from /usr/include/glib-2.0/glib/gutils.h:310,
                 from /usr/include/glib-2.0/glib/gthread.h:34,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /dev/shm/x/arts-trinity-3.5.13.2/flow/gsl/gsldefs.h:24,
                 from /dev/shm/x/arts-trinity-3.5.13.2/flow/gsl/gslcommon.h:22,
                 from /dev/shm/x/arts-trinity-3.5.13.2/mcop_mt/threads_posix.cc:335:
/usr/include/c++/9.2.0/bits/std_abs.h:52:11: error: ‘::abs’ has not been declared
   52 |   using ::abs;
      |           ^~~

### Ошибка 2 kdelibs ###

/dev/shm/x/kdelibs-trinity-3.5.13.2/kate/part/katebuffer.cpp: In member function ‘void KateBuffer::updatePreviousNotEmptyLine(KateBufBlock*, uint, bool, uint)’:
/dev/shm/x/kdelibs-trinity-3.5.13.2/kate/part/katebuffer.cpp:920:82: error: call of overloaded ‘abs(unsigned int&)’ is ambiguous
  920 |   while ( (foldingList.size()>0)  && ( std::abs(foldingList[foldingList.size()-2])==1)) {
      |                                                                                  ^
/dev/shm/x/kdelibs-trinity-3.5.13.2/kate/part/katebuffer.cpp:920:77: error: call of overloaded ‘abs(unsigned int&)’ is ambiguous
  920 |   while ( (foldingList.size()>0)  && ( abs(foldingList[foldingList.size()-2])==1)) {
      |                                                                             ^

если не сложно, обьясните, что «тут» может неправильного в использовании функции (или макроса, не разбирался пока)? что тут не так?

оба вызова одинаково выдают одну ошибку

abs(...)
std::abs(...)

### Ошибка 3 kdebase ###

/usr/lib64/qt3/include/ksslcertificate.h:61:7: error: using typedef-name ‘X509’ after ‘class’
   61 | class X509;
      |       ^~~~

...

Slackware 14.2+

TDE Trinity-3.5.13.2 (минимальная сборка окружения KDE3/QT3)

 , ,

sunjob
()

SuSE-склад вкусняшек, как скачать «все разом»?

Форум — Development

добрый день

есть «складилище» SuSE:KDE3

кто подскажет как скачать эту «хитро-закрученную» задницу?

500 пакетов и «хренова-чукча» файлов

в лоб - только пофайловая закачка (и только с учеткой)

логин есть, но это не сильно-то погогло

с набегу не нашел как это все закачать «разом», ну или хотя-бы «полуразом»

буду благодарен за подсказки, можно и просто побалагурить :о)

 , ,

sunjob
()

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