LINUX.ORG.RU

Сообщения Eddy_Em

 

Нужен приличный менеджер буфера обмена

Форум — Desktop

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

Обязательно, чтобы эта штука не засоряла собой трей.

Естественно, нужны 2 разные истории (одна на "клавиатурный буфер", одна — на "мышиный").


или с этим — обычная история под названием "пиши свое"? (как с экранной рисовалкой было)

Eddy_Em
()

fork, sockets & zombie

Форум — Development

Вот такой вопрос: когда я делаю после accept в родительском процессе fork, закрываю вроде бы все ненужное и запускаю обработчик:

	while (1) {
		struct sockaddr_in remote;
		socklen_t sockaddr_len = sizeof(remote);
		int clientsocket = accept(listensocket, (struct sockaddr*)&remote, &sockaddr_len);
		if (clientsocket < 0) {
			perror("Accept failed");
			return EXIT_FAILURE;
		}
		printf("Connected %s:%d\n", inet_ntoa(remote.sin_addr), ntohs(remote.sin_port));
		switch(fork()){
		case -1:
			perror("fork");
			break;
		case 0:
			close(listensocket);
			close(0); close(1); close(2);
			client_worker(clientsocket);
			exit(0);
		default:
			close(clientsocket);
		}
	}
Однако, помимо открытого на свободном порту сокета, я вижу в /proc/ChildPID/fd симлинк на какую-то трубу [pipe:39128]. В результате чего после завершения дочернего процесса получается зомби, который висит, пока не помрет родительский.

Вопрос: как правильно закрывать сокеты?

Дополнительный вопрос: при работе в «приватном» режиме мне не нужны процессы — я хочу лишь запускать отдельные потоки подсоединяющимся «неприватным» клиентам и только отсылать им нужную часть информации, игнорируя прием (закрывать принимающий канал нельзя, а то клиент отвалится). Не будет ли здесь проблем с невесть откуда берущимися трубами или еще какой фигней?

 , ,

Eddy_Em
()

Помогите с макросами

Форум — Development

Я хочу упростить задачу формирования функции-обертки, которая в случае компиляции с поддержкой CUDA должна сначала попробовать запустить код на GPU, если не выйдет (или если скомпилировано без CUDA) — на CPU.

Для этого в файле wrapper.c я определил макросы

#ifdef CUDA_FOUND
#define SET_F(FN)  int FN{ 			\
	if(!Only_CPU) if(CU ## FN) return 1;	\
	if(CPU ## FN) return 1;			\
	return 0;				\
}
#else
#define SET_F(FN)  int FN{ 			\
	if(CPU ## FN) return 1;			\
	return 0;				\
}
#endif // CUDA_FOUND

А в файле wrapper.h (который включается в т.ч. и файлами CUDA.cu и CPU.c, содержащими функции для выполнения на GPU или на CPU) вот такие макросы:

#ifndef EXTERN
	#define EXTERN extern
#endif // EXTERN

#ifdef CPU_C // file included from CPU.c
	#define BOTH(FN) EXTERN int CPU ## FN;
#elif defined CUDA_CU //file included from CUDA.cu
	#define BOTH(FN) EXTERN int CU ## FN;
#elif defined WRAPPER_C // wrapper.c needs names of both wariants
	#ifndef CUDA_FOUND
		#define BOTH(FN) EXTERN int CPU ## FN;
	#else
		#define BOTH(FN) EXTERN int CU ## FN; EXTERN int CPU ## FN;
	#endif // CUDA_FOUND
#else // file included from something else - just define a function
	#define BOTH(FN) EXTERN int FN;
#endif

По идее, все должно работать.

Для теста сделал простую функцию fillrandarr(size_t sz, char *arr) (в дальнейшем это будет реальная функция):

CPU.c:
int CPUfillrandarr(size_t sz, char *arr __attribute__((unused))){
	printf("CPU!!!: sz = %zd\n", sz);
	return 1;
}

CUDA.cu:
EXTERN int CUfillrandarr(size_t sz, char *arr){
	printf("GPU: sz = %zd\n", sz);
	return 1;
}
и добавил соответствующие макросы в файлы:
wrapper.h:
BOTH(fillrandarr(size_t sz, char *arr))

wrapper.c:
SET_F(fillrandarr(size_t sz, char *arr))


Но, увы, компиляция не происходит: препроцессор ругается:

wrapper.c: В функции <<fillrandarr>>:
 ошибка: неявная декларация функции <<CUfillrandarr>> 
 ошибка: expected expression before <<size_t>>
 ошибка: expected expression before <<size_t>>
 ошибка: слишком мало аргументов в вызове функции <<CPUfillrandarr>>
wrapper.h:46:1: замечание: declared here
 ошибка: параметр <<sz>> не используется
 ошибка: параметр <<arr>> не используется

Чертовщина какая-то!

 ,

Eddy_Em
()

Есть ли *нормальная* сишная библиотека?

Форум — Development

Убил вчера весь вечер, пытаясь разобраться в библиотеке libwebsockets. Старая версия (0.5) не работает с новыми браузерами. Новая версия (коммит 5 дней назад) не собирается (подозреваю, что виноваты проклятые autotools).

Я уж от отчаяния решил выкинуть оттуда все ненужное (а там ненужного полным-полно) и оставить лишь нужное мне. Ну и CMake нормальный сделать, а не чертовы autotools.

Так вот, вопрос: маяться ли мне с велосипедостроением или есть приличная сишная библиотека?

 ,

Eddy_Em
()

can <-> ethernet и rs485/232 <-> ethernet

Форум — Linux-hardware

Народ, подскажите, пожалуйста: может, кто с такими железяками сталкивался?

В интернете полно вариантов, но работают ли они в линуксе?

Можно, конечно, накупить макеток на ARM'ах и запрограммировать их вообще на универсальный преобразователь портов с веб-конфигурялкой, но хочется все-таки что-нибудь готовое.

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

Eddy_Em
()

Можно ли как-то покрасивше Makefile сделать?

Форум — Talks

В связи с тем, что использовать cmake для разработки под STM32 — занятие крайне геморройное, пишу Makefile вручную.

Нагуглив кучу мануалов и перелистав все info make, упростил задачу конфигурирования Makefile'а под новые проекты. Однако, осталась там некрасивая штука:

$(OBJDIR):
	mkdir $(OBJDIR)

$(OBJDIR)/%.o: $(STLIBDIR)/%.c
	$(CC) $(CFLAGS) $< -o $@

$(OBJDIR)/system_stm32f10x.o: ./cmsis/system_stm32f10x.c
	$(CC) $(CFLAGS) $< -o $@

$(OBJDIR)/startup.o: ./cmsis/startup_stm32f10x_md.s
	$(AS) $(ASFLAGS) ./cmsis/startup_stm32f10x_md.s -o $(OBJDIR)/startup.o

$(OBJDIR)/%.o: %.c
	$(CC) $(CFLAGS) $< -o $@

$(OBJDIR)/%.o: $(USB_LIBDIR)/%.c
	$(CC) $(CFLAGS) $< -o $@

— куча целей с по сути одинаковыми действиями.

А нельзя ли сделать просто: имеем два списка $(OBJ) и $(SRC), и каким-то чудным образом пишем

$(OBJ): $(SRC)
	$(CC) $(CFLAGS) $< -o $@
вместо этой портянки?

А еще такой вопросец: зависимость от заголовочных файлов я тоже через жопу сделал:

$(ALL_SRC) : %.c : %.h $(INDEPENDENT_HEADERS)
	@touch $@
а как по-человечески?



-------------------------------------------------------------
Товарищи модераторы, тема в Talks, ибо реально руки у меня из жопы, а воли — 0. Ну не осилил я cmake для микроконтроллера!


P.S. Обнаружил баг в своем скрипте для засаленной обезьяны: нет панельки при редактировании тем. Исправляю.

 , ,

Eddy_Em
()

Опять обновление!

Форум — Talks

Опять обновился на свою голову. И перестало работать правило udev, расставляющее сетевые карты:

SUBSYSTEM=="net", ENV{ID_VENDOR_ID}=="0x10ec", NAME="eth0"
SUBSYSTEM=="net", ENV{ID_VENDOR_ID}=="0x10b7", NAME="eth1"
Вот как, блин, это называется? Желаю медленной и тяжелой смерти Поцтерингу!!!

// полчаса убил, даже сбегал на лестничной площадке в свич заглянул...

 

Eddy_Em
()

одновременная запись и воспроизведение видео

Форум — Multimedia

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

Помню, встречал когда-то решение (с помощью tee, кажется), но не могу найти.

Пишу так:

ffmpeg -b:v 1000k -f video4linux2 -s 640x480 -i /dev/video0 -sameq -f alsa -i hw:0,0 -f avi 1.mkv

если пропускаю 1.mkv и перенаправляю в канал — фигвам:

At least one output file must be specified
И таки шо делать?

Перемещено mono из talks

Eddy_Em
()

Где найти midi-файлы для Piano Booster?

Форум — Talks

Установил я себе piano booster, но вот в пакете мидишек всего раз, два — и обчелся.

Где бы скачать пригодных MIDI-файлов уровня 1..4 класса ДМШ? А то перелопаченное из gtp в MIDI не годится для piano booster'а (ему надо отдельной дорожкой левую руку и отдельной — правую).

Eddy_Em
()

автодоверенность

Форум — Talks

Ходят сплетни, что не будет больше слухов.
Абсолютно. Ходят слухи, будто сплетни запретят.
©

Цитата Высоцкого неспроста. Опять черт-те что творится с нашими законниками. Сначала был слух, что потребуется нотариально заверенная доверенность на управление авто (а это — аж 1000р в год). Теперь все желтушные каналы пестрят тем, что со вчерашнего дня доверенность вообще не нужна.

Товарищи аналитики, так нужна доверенность или нет?

// спрашиваю, т.к. иной раз езжу на машине без жены

Eddy_Em
()

Экранная рисовалка

Форум — Talks

Сейчас смотрел на тытрубе ролик, о кикаде. Обратил внимание на интересную штуку: рассказчик периодически что-то щелкал, и на экране за мышкой оставался след, будто бы «перо» в гимпе. Потом щелкал другое клавосочетание — и след исчезал. Явно использовался либо линукс, либо бубунта.

Вопрос 1: что это за утилита?

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

Eddy_Em
()

LOR, что с тобой?

Форум — Talks

У меня сложилось впечатление, что куча завсегдатаев ЛОРа то ли в запой ушла, то ли сидит в окопах под бомбежками «газовцев»...

Что скучно-то так стало?

Eddy_Em
()

Много народу используют LOR-panel?

Форум — Talks

Вот интересно, много ли посетителей ЛОРа пользуются скриптом для greasemonkey, разработанным Москвичем?

Отметьтесь, please. Заодно, может какие предложения выскажете, багрепорты...



Upd: сам скрипт


Upd2: информация

 

Eddy_Em
()

Дообновлялся?

Форум — Desktop

Что-то у меня последнее время стали проскакивать в браузере такие приколы: символы кратковременно заменяются на совершенно другие.

Прокрутка или перемещение курсора восстанавливают проблему.

Но все-таки, что за фигня?

Перемещено tazhate из talks

 ,

Eddy_Em
()

новые теги html

Форум — Talks

Вот сейчас на easyelectronics обнаружил интересный тег <abbr>. Еще столкнулся с тегом <fieldset> при редактировании ЛОР-скрипта для засаленной обезьяны.

Вопрос: где почитать про эти новые интересные теги, а то что-то у меня знания только из эпохи древнего html4...

Может, какая книженция есть? А еще и про новые элементы DOM почитать бы, чтобы не городить всяких велосипедов.

 ,

Eddy_Em
()

Фильтрация трекера

Форум — Linux-org-ru

Вот есть такая фильтрация трекера:

    все сообщения
    без talks
    тех. разделы форума
    мои темы
    без ответов
[bug] Во-первых, наверное все давно обратили внимание, что «мои темы» не перелистываются. И это очень неудобно, потому как в трекере они в сжатом виде, а из профиля — в подробном (и места до фига занимают, и искать сложно).

[fr] Во-вторых, мне непонятна разница «без talks» и «тех. разделы форума» это же одно и то же! Предлагаю лучше так сделать: «без talks» и «только talks» — будет намного полезнее. Я бы открыл «только talks» и не мучил народ сованием своего наглого носа в тех. разделы!

 ,

Eddy_Em
()

Синофски-шмановски

Форум — Talks

Развели тут срач: «вендокапец», «ура»!

А сами подумайте: ничего же хорошего в этом нет. И так линукс скатывается в то самое, а тут еще и это... Понабегут, понимаешь, «разработчики», и всякие поцтеринговские фекалии будут уже не только в софте, но и в ядре!

И все, «линуксокапец»!

 

Eddy_Em
()

Как на HP dv7 7003er запустить кардридер?

Форум — Linux-hardware

Продолжаю домогаться до достопочтенных ЛОРовцев со своим ноутбуком. Недавно обнаружил, что в нем есть кардридер:

08:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)

Однако, lsusb его не показывает:

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 138a:0018 Validity Sensors, Inc. 
Bus 001 Device 005: ID 09da:000a A4 Tech Co., Ltd Optical Mouse Opto 510D
Bus 001 Device 004: ID 05c8:033a Cheng Uei Precision Industry Co., Ltd (Foxlink) 
видит неработающий сканер отпечатков, мышу и вебку.

Гуглил-гуглил, да так и не нагуглил, как этот кардридер заставить работать.

Eddy_Em
()

Как победить ноутбук HP dv7 7003er?

Форум — General

Вопросы владельцам ноутбуков не очень хорошей фирмы HP, а именно — модели dv7. Поделитесь, пожалуйста, как вы

  1. заставили работать с acpi гравицапу акселерометр
  2. отключили подсветку логотипа на крышке
  3. еще интересно — как заставить гравицапу акселерометр генерировать сигналы для udev или еще чего-нибудь, чтобы при помощи xrandr вращать картинку на мониторе при повороте ноутбука
  4. заставили работать кнопку включения-выключения wifi
  5. заставили не отключаться веб-камеру при работе от аккумулятора
  6. а может, у вас и сканер отпечатков пальцев работает?

Приоритет падает с ростом номера.

Eddy_Em
()

Пара вопросов касательно ноутбуков

Форум — General

Система — арч, IceWM.

1. При отключении питания «отваливается» проводная сеть (отключается eth0). Установлен laptop-mode-tools. Как настроить?

2. При подключении мыши правило udev

ACTION=="add", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEM=="input", ID_CLASS="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"
не работает. Как правильно отождествить мышку? Посмотрел udevadm monitor --property — свойства mouse нет.

И еще «бонусный» вопрос: при подключении пультика его клавиша PowerOff работает! Можно ли как-нибудь при помощи udev или других настроек повесить на нее что-нибудь другое? А то когда нечаянно на нее жамкнешь, бук засыпает.

 , ,

Eddy_Em
()

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