LINUX.ORG.RU

Сообщения LIKAN

 

Можно ли статически прилинковать динамическую библиотеку?

Форум — Development

Делаю

gcc -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient mysql.c -o mysql
все компиляется, линкуется нормально. Стоит сделать так
gcc -I/usr/local/mysql/include -L/usr/local/mysql/lib -static -lmysqlclient mysql.c  -o mysql
/tmp/ccFATyET.o: In function `main':
mysql.c:(.text+0x10): undefined reference to `mysql_get_client_info'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
В чем дело? Так вообще законно делать?

 ,

LIKAN
()

Как добавить разделяемые библиотеки в проект

Форум — Development

Есть проект, который в качестве системы сборки использует automake. В этот проект был дописан код, который использует сторонние разделяемые либы.
В случае с хелловродными примерами я просто указывал компилятору, какие либы подключать с помощью -l<library>. А в случае с automake куда это нужно втыкать? Греппинг проекта на предмет строк вида

LIBS = 
не дал ровным счетом ничего.

 ,

LIKAN
()

JSON в чистом Си

Форум — Development

Какую библиотеку посоветуете для работы с json в чистом Си? Гугл сходу выдает json-c и jansson. Какая лучше? Или искать третью?

 ,

LIKAN
()

qtcreator + pure c

Форум — Development

Хочется использовать qt creator просто как IDE для разработки на чистом Си консольного приложения. Какие настройки для этого нужно сделать?
Импортировал проект, написал Makefile. Собирать-запускать удается вполне успешно. А как дебажить?
При нажатии соответствующей кнопки вылазит окошко с нехорошей надписью

Это не похоже на отладочную сборку.
Установка точек останова по имени файла и строке может не работать.
Секция .debug_info: Не найдена.
Секция .debug_abbrev: Не найдена.
Секция .debug_line: Не найдена.
Секция .debug_str: Не найдена.
Секция .debug_loc: Не найдена.
Секция .debug_range: Не найдена.
Секция .gdb_index: Не найдена.
Секция .note.gnu.build-id: Найдена.
Секция .gnu.hash: Найдена.
Секция .gnu_debuglink: Не найдена.
Что и куда нужно прописать для отладки?

 ,

LIKAN
()

Оконный менеджер и энергосбережение

Форум — General

Слышал байку, что композитные менеджеры сжирают батарейку несколько медленней, чем некомпозитные, мол на gpu более энергоэффективная обработка. Правда ли это, мой xmonad сожрет батарею быстрей, чем compiz? Можно ли это поправить, прикрутив какой-нибудь compton?

 , , , ,

LIKAN
()

Получение сообщений через сокеты

Форум — Development

Есть сервер 1, который может принимать сообщения по сети от клиентов 2,3 и 4. В худшем случае все три клиента могут отправить сообщения одновременно. Во-первых, можно ли обойтись одним сокетом, открытым на 1 или нужна многопоточность? Во вторых, как определять размер данных которые нужно считать из сокета? И, наконец, как разграничивать сообщения между собой? Т.е если 2 записал в сокет сообщение длиной 2 байта, и сразу 3 записал сообщение длиной 10 байт. Как определить, что нужно считать сначала 2 байта, обработать, а затем считывать уже 10? Реализован ли необходимый функционал в фреймфорках вроде ZeroMQ? Сообщения предполагается передавать в формате JSON.

 ,

LIKAN
()

Как замерять fps

Форум — General

Как с помощью gstreamer замерять fps ? fpsdisplaysink отображает fps на изображении, а как например увидеть фпс в консоли или выплюнуть в файл ?

 

LIKAN
()

Конфигурация стриминга

Форум — General

Помогите отконфигурить стриминг при помощи gstreamer. Есть такая вот вполне рабочая команда

gst-launch -v v4l2src device=/dev/video7 ! autoconvert ! theoraenc ! rtptheorapay ! udpsink host=[DESTINATION ADDRESS]
Как задать разрешение передаваемого потока? Эксперименты с width height ни к чему не привели.

 ,

LIKAN
()

Функция удаляет массив

Форум — Development

Есть такая вот функция

int osmo_hexparse(const char *str, uint8_t *b, int max_len)

{
	int i, l, v;

	l = strlen(str);
	if ((l&1) || ((l>>1) > max_len))
		return -1;

	memset(b, 0x00, max_len);

	for (i=0; i<l; i++) {
		char c = str[i];
		if (c >= '0' && c <= '9')
			v = c - '0';
		else if (c >= 'a' && c <= 'f')
			v = 10 + (c - 'a');
		else if (c >= 'A' && c <= 'F')
			v = 10 + (c - 'A');
		else
			return -1;
		b[i>>1] |= v << (i&1 ? 0 : 4);
	}

	return i>>1;
}

Вторым аргументом я в неё передаю вот такую переменную

uint8_t *b = malloc(20);
Память выделяется успешно, проверял, обратиться можно к любому байту. Вызов osmo_hexparse отрабатывает успешно, возвращает 20. Да вот беда, после этого вызова обращение к любому байту b кроме b[0] вызывает сегфолт. Чего такого нехорошего сделала данная ф-ция с массивом

 , ,

LIKAN
()

Посылка команды по telnet

Форум — Development

Есть некоторый сервис (mobile из пакета osmocombb) висит на 4247 порту, управляется интерактивно с помощью telnet при помощи набора внутренних команд. Вопрос, как из сторонней самописной программы заставить этот сервис исполнить одну из своих внутренних команд? Я так понимаю, самый простой способ - это воспользоваться этим самым telnet. Только как отказаться от интерактивности, как послать одиночную команду?

 ,

LIKAN
()

dzen на два монитора

Форум — Development

Есть вот такой вот конфиг для xmonad http://pastebin.com/TRwTcDQL Автор очень симпатично реализовал вывод инф-ции с помощью dzen2. Проблемы начались, когда я подключил к ноутбуку внешний монитор, использовался xrandr. Сразу выяснились две проблемы. Во первых dzen-уведомления отображаются только на самом левом в xrandr-овской конфигурации мониторе. Во вторых разрешение экрана читается с монитора ноутбука (screen 0), а так как разрешение используется для отрисовки, то если самый левый монитор - это sreen 1 (внешний монитор), то получается не очень красиво, dzen панельки рисуются где-то посредине экрана. Вот ф-ция чтения разрешения

getScreenRes :: String -> Int -> IO Res
getScreenRes d n = do
    dpy <- openDisplay d
    r <- liftIO $ getScreenInfo dpy
    closeDisplay dpy
    return $ Res
        { xRes = fromIntegral $ rect_width $ r !! n
        , yRes = fromIntegral $ rect_height $ r !! n
        }

-- Screen Resolution
data Res = Res
    { xRes :: Int
    , yRes :: Int
    }

Есть n=0 то получается информация об экране ноута, n=1 - для внешнего монитора, зачем нужен первый аргумент я не понял А хочется, чтоб было вот так http://www.haskell.org/wikiupload/archive/9/93/20130817225426!Nnoells_full_de... . То есть, чтоб на каждом мониторе свой набор уведомлений dzen, выводящий инфу именно для этого монитора согласно конфигурации и разрешению этого монитора. ЗЫ Товарищь, который сделал этот скрин, использует софтину от nVidia. У ментя интел, так что такой возможности нет.

 , ,

LIKAN
()

Как подсчитать кол-во кадров в mjpeg файле?

Форум — General

Как подсчитать кол-во кадров в mjpeg файле? Размер одного кадра неизвестен. Есть какие-либо программы, дающие раскадровку?

 ,

LIKAN
()

Получить raw и theora от gstreamer

Форум — Development

Снимаю по сети видео с обычной вебки подключенной к gumstix через USB. Есть мануал для специальный вебки http://wiki.gumstix.org/index.php?title=Caspa_camera_boards. С jpg все получилось на ура. Все игры с созданием пайпов и заданием форматов заканчиваются одинаково

Unable to parse format: Invalid argument (22)
Это связано с тем , что я использую другую камеру? Или это проблема мануала?

LIKAN
()

Оживить sd адаптер

Форум — Linux-hardware

Есть SD адаптер для microsd карт. Беда в том, что монтируется он только для чтения. Там был когда-то рычажек, но он давно отвалился. Есть ли возможность починить адаптер?

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

 

LIKAN
()

Пересылка видео по сети

Форум — Development

Есть армовая борда (gumstix), к которой подсоединена web-камера. Задача - пересылать с этой борды по сети видео на ПК, на котором его нужно обработать с помощью opencv. Как это проще/правильнее реализовать? Можно ли пробросить устройство, так чтоб на ПК был какой-нибудь /dev/gumstix_camera и работать уже с ним? Или использовать какой-либо видео-стример. Пробовал mjpg-streamer - крайне противная сборка и неудовлетворительная производительность (5 fps).

 , ,

LIKAN
()

sendto No such file or directory

Форум — Development

Есть такой вот отрезок кода

bytes_send=sendto(sock, &sms_length, sizeof(size_t), 0, &srvr_name,strlen(srvr_name.sa_data) + sizeof(srvr_name.sa_family));
  if(bytes_send < sizeof(size_t)){
    perror("Cannot write data to socket");
    return 1;
  }
  printf("%d bytes send\n", bytes_send);
  
  bytes_send=sendto(sock,argv[1],sms_length, 0, &srvr_name,strlen(srvr_name.sa_data) + sizeof(srvr_name.sa_family));
  printf("%d bytes send\n", bytes_send);
  if(bytes_send == -1){
    perror("Cannot write data to socket");
    return 1;
  }
Фишка в том, что первая sendto срабатывает на ура, байты уходят в сокет вполне успешно. А вот второй sendto заканчивается
Cannot write data to socket:No such file or directory.
На момент завершения работы программы файл сокета существует. Права тоже позволяют запись. На другой стороне между двумя симметричными recvfrom никаких операций над файлом не производится.

 

LIKAN
()

Объясните в чем ошибка

Форум — Development

Make завершился с вот такой вот ерундой

make[1]: вход в каталог «/home/likan/GSM/osmocom-bb/src/target/firmware»
  CC     apps/hello_world/main.o
In file included from /opt/toolchain/arm-elf/arm-linux-gnueabihf/libc/usr/include/endian.h:60:0,
                 from /opt/toolchain/arm-elf/arm-linux-gnueabihf/libc/usr/include/sys/types.h:219,
                 from include/stdio.h:8,
                 from apps/hello_world/main.c:24:
/opt/toolchain/arm-elf/arm-linux-gnueabihf/libc/usr/include/bits/byteswap.h: В функции «__bswap_32»:
/opt/toolchain/arm-elf/arm-linux-gnueabihf/libc/usr/include/bits/byteswap.h:45:1: пока не реализовано: Thumb-1 hard-float VFP ABI
 {
 ^
In file included from ../../shared/libosmocore/include/osmocom/core/msgb.h:25:0,
                 from include/comm/sercomm.h:4,
                 from apps/hello_world/main.c:41:
../../shared/libosmocore/include/osmocom/core/msgb.h: В функции «msgb_alloc_headroom»:
../../shared/libosmocore/include/osmocom/core/utils.h:40:51: предупреждение: typedef «dummyheadroom_bigger» locally defined but not used [-Wunused-local-typedefs]
 #define osmo_static_assert(exp, name) typedef int dummy##name [(exp) ? 1 : -1];
                                                   ^
../../shared/libosmocore/include/osmocom/core/msgb.h:386:2: замечание: in expansion of macro «osmo_static_assert»
  osmo_static_assert(size > headroom, headroom_bigger);
  ^
apps/hello_world/main.c: В функции «l1a_l23_rx_cb»:
apps/hello_world/main.c:62:35: предупреждение: параметр «dlci» не используется [-Wunused-parameter]
 static void l1a_l23_rx_cb(uint8_t dlci, struct msgb *msg)
                                   ^
apps/hello_world/main.c: В функции «key_handler»:
apps/hello_world/main.c:172:7: предупреждение: неиспользуемая переменная «test» [-Wunused-variable]
  char test[16];
       ^
Makefile.inc:186: ошибка выполнения рецепта для цели «apps/hello_world/main.o»
make[1]: *** [apps/hello_world/main.o] Ошибка 1
Хоть убейте, не вижу где ошибка. Ворнингов да, навалом, а ошибка-то где?

 ,

LIKAN
()

Не удается собрать OsmocomBB

Форум — Development

Сборка OsmocomBB заканчивается вот такой вот ерундой

$ make -e CROSS_TOOL_PREFIX=/opt/toolchain/gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux/bin/arm-linux-gnueabihf-
.
.
.
/home/likan/GSM/osmocom-bb/src/target/firmware/include/asm/swab.h: Assembler messages:
/home/likan/GSM/osmocom-bb/src/target/firmware/include/asm/swab.h:32: Error: no such instruction: `eor %edx,%r9d,%r9d,ror'
Makefile:477: ошибка выполнения рецепта для цели «gsmtap_util.lo»
...
Полный лог http://pastebin.com/LhYYGZwL Такое ощущение, что не подцепляется кроссовый тулчеин. Я ведь правильно понимаю, что еor %edx,%r9d,%r9d,ror - армовая команда?

 , ,

LIKAN
()

Как извлечь содержимое образа?

Форум — General

Скачал вот отсюда https://www.gumstix.com/software/software-downloads/ по вкладке ubuntu архив, распаковал и получил файл неизвестной формы, цвета и запаха

$ file GumstixLinaroROS_20130204_2 
GumstixLinaroROS_20130204_2: DOS/MBR boot sector; partition 1 : ID=0xc, active, start-CHS (0x0,1,32), end-CHS (0x19,127,31), startsector 63, 106432 sectors; partition 2 : ID=0x83, start-CHS (0x1a,0,1), end-CHS (0x3ff,127,32), startsector 106496, 13991936 sectors
Как отсюда получить собственно uImage убунты? Пробовал монтировать, но без особого успеха.

 

LIKAN
()

Получение информации от веб-камеры

Форум — Development

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

 

LIKAN
()

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