LINUX.ORG.RU

Сообщения Eddy_Em

 

Чем смотреть DCM-файлы в генте?

Форум — Desktop

Дали мне диск с томографии. А там какое-то вантузное приложение azimut_view и куча файлов с суффиксом dcm. Чем это чудо в генте смотреть? Здесь пишут кучу чего, но ничего подобного в гентовских репах нет. Можно поискать в исходниках и сделать как в слаке, но хочется быть уверенным, что оно будет работать — ноут слабый, он у меня кикад сегодня 4 часа собирал...

Пробовал гимпом, но он показывает какой-то шум.

P.S. тегов «томография» или «dcm» нет. Соответственно, вместо тега добавляю gentoo.

UPD, отмечаю как решенную, т.к. никакого подобного софта в современном линуксе нет! Мне подсказали вот это: https://inobitec.com/products/dicomviewer/

сделано на жабе, похоже, 3д не умеет! Зато хоть что-то!

 

Eddy_Em
()

Как управлять DTR/RTS порта?

Форум — Linux-hardware

Пробую, как написано здесь сделать так:

int RTS_flag = TIOCM_RTS; // TIOCM_DTR
if(ioctl(comfd,TIOCMBIC,&RTS_flag) < 0) exit(-2);//Clear RTS pin
Не получается: ioctl возвращает ошибку -1.

Видимо, эти ioctl'ы старые. У меня ядро 5.0.4. Как в нем принято это делать? Работаю с эмулятором PL2303 на STM32F103.

UPD. Проверил на «настоящем китайском» PL2303: работает без ошибок. А мой эмулятор выдает ошибку и в dmesg вижу

pl2303 ttyUSB0: pl2303_set_control_lines - failed: -71
В общем, надо смотреть, что я там в обработчике накосячил.

 ,

Eddy_Em
()

usb_control_msg() выдает EPIPE

Форум — Linux-hardware

Когда я писал эмуляцию PL2303 на STM32, как-то не напрягался, что при открывании порта в dmesg вылезает ошибка: pl2303_set_line_request - failed: -32. Оно даже работало в прошивке-7 под виртуалбоксом. Однако, оказалось, что оно не работает (видимо, из-за этой ошибки) в прошивке-10 и в андроиде.

Ошибка возникает на запрос SET_LINE_CODING, который приходится обрабатывать «в два присеста», т.к. STM32 на первое прерывание получает лишь код контрольного сообщения, а во втором прерывании уже выдает данные для настройки линии. В этом-то и загвоздка: ошибка у меня в коде может быть как в первой половинке, где я просто отправляю ZLP, так и во второй, где уже вызывается обработчик.

Удручает, что wireshark вообще никаких ошибок не показывает! Лог от «настоящего» китайского PL2303 ничем не отличается от моей эмуляции. Т.е. что-то происходит еще в ядре, и до wireshark не доходит.

Что это может быть, а, железячники?

Ну и в догонку такой вопрос: иной раз дескрипторы получаются очень большими, и приходится их в несколько присестов отправлять. Я пробовал собрать CDC, пересылая конфигурационный дескриптор так же, как пересылаю HID дескриптор, но в wireshark вижу «mailformed»...

 ,

Eddy_Em
()

Dimez, так нельзя!

Форум — Linux-org-ru

Почему ты трешь комментарии про ублюдка поцтеринга? Да ещё и со срезом скора...

Ты что, работаешь на эту тварь?

 

Eddy_Em
()

Ростелеком ворует пользовательские данные?

Форум — Talks

Только я возмутился хамскому поведению «ростелекома», как мне дают новую интересную историю сканирования портов пользователя через браузер. Понятно, что эта штука сработает как нужно лишь если в браузере есть дыры. Но осадочек-то остался!

Насчет советов вроде «перейди с ростелекома на другого провайдера» заранее сообщаю: у нас ростелеком находится в состоянии монополиста. Потому что у «мегафона» (от которого я благополучно в пользу МТС отказался) в нашем ауле только EDGE, билайн вообще еле-еле работает, а МТС показывает 4G лишь на работе, дома он — все тот же 2G (и лишь иногда 3G кажет)! Вот и остается лишь проводной ростелеком ☹

 , , ,

Eddy_Em
()

Еще раз

Форум — Linux-org-ru

Прошу удалить мой аккаунт вместе со всеми 87546 сообщениями и 317+21=338 темами!

Задолбали!

 

Eddy_Em
()

Raspberry Pi зависает при активации USB

Форум — Linux-hardware

Развернул я на SD-карточке генту, скомпилировал ядро 4.1.15, гружусь, и вылезают проблемы. Сначала я думал, что подвисание происходит при инициализации сетевой карты, убрал из /lib/modules модуль smsc95xx.ko, и все равно при активации USB на стадии обнаружения этой карты происходит зависание:

[    2.219170] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.227820] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.240352] hub 1-1:1.0: USB hub found
[    2.246298] hub 1-1:1.0: 5 ports detected
[    2.523857] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    2.634324] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.643335] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Может, кто сталкивался? Как решить проблему?

 

Eddy_Em
()

Не могу скомпилировать ядро для Raspberry

Форум — Development

Весь день мучаюсь, перебрал несколько вариантов отсюда, однако, либо вообще попадается битое дерево, либо же вот такая ошибка вылезает:

drivers/staging/media/lirc/lirc_rpi.c:42:23: fatal error: mach/gpio.h: No such file or directory
compilation terminated.
make[4]: *** [drivers/staging/media/lirc/lirc_rpi.o] Ошибка 1
make[3]: *** [drivers/staging/media/lirc] Ошибка 2
make[2]: *** [drivers/staging/media] Ошибка 2
make[1]: *** [drivers/staging] Ошибка 2
make: *** [drivers] Ошибка 2
Мне-то lirc не нужен, но есть подозрение, что еще какая-нибудь бяка вылезет.

Может, пропатченное под малинку ядро из какого-то другого источника надо качать?

Очень хочу на генту перейти. Сил моих нет бодаться с дебилианом!

 ,

Eddy_Em
()

Как заставить cmake не удалять файлы при make clean?

Форум — Development

Делаю русификацию. Вот начало:

set(PO_FILE ${LCPATH}/messages.po)
set(MO_FILE ${LCPATH}/LC_MESSAGES/${PROJ}.mo)
set(RU_FILE ${LCPATH}/ru.po)

find_package(Gettext REQUIRED)
find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
if(NOT GETTEXT_XGETTEXT_EXECUTABLE OR NOT GETTEXT_MSGFMT_EXECUTABLE)
	message(FATAL_ERROR "xgettext not found")
endif()
file(MAKE_DIRECTORY ${LCPATH})
file(MAKE_DIRECTORY ${LCPATH}/LC_MESSAGES)

add_custom_command(
	OUTPUT ${PO_FILE}
	WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
	COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} --from-code=utf-8 ${SOURCES} -c -k_ -kN_ -o ${PO_FILE}
	COMMAND sed -i 's/charset=.*\\\\n/charset=koi8-r\\\\n/' ${PO_FILE}
	COMMAND enconv ${PO_FILE}
	DEPENDS ${SOURCES}
)
А вот дальше — полная фигня!

Я хочу, чтобы можно было сказав make MO_FILE перекомпилировать его после изменения файла русификации. Пишу:

add_custom_target(
	MO_FILE
	COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ${RU_FILE} -o ${MO_FILE}
	DEPENDS ${RU_FILE}
)
Однако, чтобы этот файл сгенерировался при простом make, мне нужно писать
add_custom_command(
	OUTPUT ${MO_FILE}
	COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ${RU_FILE} -o ${MO_FILE}
	DEPENDS ${RU_FILE}
)
Что приводит к удалению сего файла при make clean.

Аналогичная ситуация с RU_FILE: если я пишу

add_custom_command(
	OUTPUT ${RU_FILE}
	COMMAND [ -f ${RU_FILE} ] && ${GETTEXT_MSGMERGE_EXECUTABLE} -Uis ${RU_FILE} ${PO_FILE} || cp ${PO_FILE} ${RU_FILE}
	DEPENDS ${PO_FILE}
)
, то весь перевод нафиг удаляется после make clean, т.е. нужно писать
add_custom_target(
	RU_FILE
	COMMAND [ -f ${RU_FILE} ] && ${GETTEXT_MSGMERGE_EXECUTABLE} -Uis ${RU_FILE} ${PO_FILE} || cp ${PO_FILE} ${RU_FILE}
	DEPENDS ${PO_FILE}
)
add_custom_command(
	OUTPUT ${MO_FILE}
	COMMAND make RU_FILE && ${GETTEXT_MSGFMT_EXECUTABLE} ${RU_FILE} -o ${MO_FILE}
	DEPENDS ${RU_FILE}
)
Однако, в этом случае (если опустить custom_command для RU_FILE) получаю (как и следовало ожидать) ошибку:
make
make[2]: *** Нет правила для сборки цели `../locale/ru/ru.po', требуемой для `../locale/ru/LC_MESSAGES/fitsread.mo'.  Останов.
make[1]: *** [CMakeFiles/fitsread.dir/all] Ошибка 2
make: *** [all] Ошибка 2
, а еще файл ru.po перестает обновляться при изменении PO_FILE.

Как из этого замкнутого круга выйти и сделать так, чтобы файл русификации (ru.po) не удалялся при make clean, но в то же время при изменении ru.po файл .mo автоматом генерировался бы через make, а при изменении PO_FILE ru.po автоматом обновлялся?

 ,

Eddy_Em
()

Кошерная обработка параметров командной строки

Форум — Development

Знаю, вопрос уже избитый. Но вот никак ничего подходящего для меня не могу найти. Отсюда (перечень гнутых утилит для обработки параметров) "в сыром виде" ничего не подходит.

Когда-то я накатал себе такую штуку, позволяющую легко при помощи одной структуры парсить опции, заполняя глобальные параметры, а также формировать строку помощи.

Но вот понадобилось мне реализовать возможность задания определенных параметров несколько раз. И пришлось ваять это (почти весь день сегодня убил, благо, полдня ЛОР лежал и ничто не отвлекало). (на ЖЖшке).

Вот что получается при запуске:

./myopt_example -a 1e-5 -f type=as:xsz=5s something -a 3e-9 -f type=med:ysz=15 some_more -s again -f xsz=5 -s more -M diam=8:foc=10 -vvvv
Globals:
S_dev = 8 (default)
randAmp[0]: 1e-05
randAmp[1]: 3e-09
meet str args:
str[0] = again
str[1] = more
S_interp = 100
S_image = 1000
N_phot = 10000
randMask = 0
Mirror =
	D = 8
	F = 10
	Zincl = 0
	Aincl = 0
rewrite_ifexists = 0
verbose = 4
There's also 2 free parameters:
	   0: something
	   1: some_more
filter parameters:
0:
Wrong argument "5s" of parameter "xsz"
	bad params
1:
	filtertype = med, sizes: 3x15
2:
	filtertype = (null), sizes: 5x3
Т.е. есть переменные с инкрементом (-v — чем больше раз встречается, тем больше число), массивы (randAmp, str), обработка по порядку свободных параметров (something, some_more), предварительная (до передачи управления обратно в вызвавшую parce_args функцию) обработка вложенных аргументов и постобработка вложенных аргументов (filter parameters) — уже вне велосипеда.

Однако, скажем, ffmpeg умеет делать такие сложные вещи, как определение групп параметров между одноименными ключами. Как бы и мне сделать так, чтобы, скажем,

./myopt_example -f filt1:xzs=10 -h 10 -v 20 -f filt2:ysz=20 -s par -f filt3
Автоматом бы связывал каким-то образом параметры, чтобы при обработке первого -f к нему же были привязаны -h, -v; при обработке второго — -s?

Есть ли вообще библиотеки, умеющие сложный парсинг аргументов командной строки без съезжания крыши у пишущего код? А то я со своим-то велосипедом чуть не рехнулся с этими двойными и тройными указателями!

 

Eddy_Em
()

Поломался [code]

Форум — Linux-org-ru

Не разбивает на строки.

Оригинал ([pre]):

строка 1
строка 2
строка 3
строка 4

То же в [code]:

строка 1
строка 2
строка 3
строка 4

Выглядит так, а вот как выглядит в форме написания сообщения: картинка.

Тема Black.

 ,

Eddy_Em
()

true_admin, верни шкворец!

Форум — Linux-org-ru

true_admin, ты вообще опух?!

Какого черта ты удалил мою аватарку? Да еще и -10 снес...

Если так будет продолжаться и дальше, идите вы все в жопу. Я уйду нафиг из этого болота проприетастов и мудаков!

 

Eddy_Em
()

И смех, и грех

Форум — Talks

Посмотрите, к чему приводит вера в авторитет преподавателя: https://toster.ru/q/267058

Человек уверен, что если препод сказал так, то иначе и быть не может... То, что преподаватель — лопух, а аппаратуры при нем нет, может проверить любой.

 

Eddy_Em
()

Есть ли готовые реализации адаптивной медианной фильтрации на С?

Форум — Development

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

Навелосипедил пока из образца кода для фильтрации 1-мерных данных медианную фильтрацию изображений (правда, еще не думал, что с краями делать). Боюсь, что когда переделаю на адаптивную медианную, получится жутко медленно, а уже достаточно сильно тупит: случайно сгенерированное изображение 4000x4000 в среднем фильтруется 1.5с окном 3х3 пикселя; 4.5с окном 5х5 пикселей и 8.8с окном 7х7 пикселей.

Может кто занимался подобным, подскажите, вдруг где готовая реализация завалялась?

 ,

Eddy_Em
()

ssh, иксовые приложения запускаются на удаленном дисплее

Форум — General

Уже полчаса сижу, не могу понять: пытаюсь по ssh запустить hugin на ноуте, чтобы не вис компутер, а эта зараза открывает окно непосредственно на дисплее ноутбука! Любое другое иксовое приложение делает то же самое. echo $DISPLAY говорит 0:0, я вообще не понимаю, как так может быть! Конфигурация sshd вполне вроде бы нормальная...

 ,

Eddy_Em
()

Как обновить генту, если distfiles примонтирован по sshfs?

Форум — General

никак ☹

Eddy_Em
()

Аналог adBlock для тупняка в тытрубе

Форум — Talks

Мелкая уже задолбала просить всякое говно поставить на тытрубе: то какое-то дите в игрульки играется, то проходит какое-то говно.

Вопрос: есть ли для хромоногой поделки (в огнелисе тытруба до сих пор не работает) плагинчик, который говноканалы блокирует?

Eddy_Em
()

Ext2 или на худой конец VFAT для микроконтроллеров

Форум — Development

Что-то меня "в гугле забанили": не могу найти ни одного простого готового модуля ФС для мелкоконтроллеров. Хочу научиться работать с SD-карточкой на STM32.

Смотрел fatfs "от Чена". Жуть жуткая: около 5000 строк кода только в модуле ФС! Да я ж год убью, если буду в этом разбираться!!! С Ext2 еще хуже: что-то как-то уныло все...

Есть что-нибудь готовое, или все-таки нужно велосипедить на основе кода модуля ext2 какого-нибудь старого линуксового ядра?

Eddy_Em
()

Разложение на простые множители на микроконтроллере

Форум — Development

Вот сейчас пишу простую управлялку шаговиком и столкнулся с проблемой задания очень низких скоростей вращения: так как все таймеры 16-битные с 16-битным предмножителем, любые периоды задать, понятное дело, не выйдет. Простейший способ (скажем, увеличивать предмножитель в 100 раз, если период больше 65536) приводит к довольно большим ошибкам в районе 66000 (скажем, вместо 65599 будет 65500).

А есть ли вариант без большого потребления ресурсов (флеш памяти и/или вычислительных ресурсов) выполнить наиболее оптимальный для данного числа подбор множителей? Простой перебор — слишком долго, на табулирование никаких ресурсов не хватит...

Eddy_Em
()

Поругайте «стража» дочерних процессов

Форум — Development

При реализации видеостримера (туда еще нужно будет обработку добавить, но пока основная функция — собирать кадры видео и выплевывать в браузер) на некоторых USB-камерах ffmpeg при длительной работе выпадает в assert (вообще, дикость!). Аналогичные проблемы бывают при использовании libwebsockets, которая в случае отключения клиента тоже выбрасывает assert.

Чтобы бороться с этим я решил делать форк в самом начале, а потом контролировать работу дочернего процесса и если помрет — перезапускать заново.

Вот что получилось:

#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>

int child_killed = 0;

void sighndlr(int sig){
	printf("got signal %d\n", sig);
	if(sig == SIGCHLD){
		printf("Child was killed\n");
		child_killed = 1;
	}else{
		printf("suicide\n");
		exit(sig);
	}
}

pid_t create_child(){
	child_killed = 0;
	int i;
	pid_t p = fork();
	if(p == 0){
		printf("child\n");
		char *ptr = malloc(10000);
		for(i = 0; i < 256; ++i, ptr += 1024){
			*ptr += i;
		}
	}
	return p;
}

int main(){
	int i;
	for(i = 0; i < 255; ++i)
		signal(i, sighndlr);
	for(i = 0; i < 10; ++i){
		pid_t p = create_child();
		if(p){
			printf("child #%d with PID %d\n", i, p);
			while(!child_killed)
				usleep(10000);
		}else return 0;
	}
	return 0;
}


Фактически функция create_child() в дочернем процессе будет запускать "падучие функции", а родительский только будет "пасти" дочерние.

Вопрос: есть ли какие-то недостатки у такой реализации?

 ,

Eddy_Em
()

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