Нужно скомпилировать модуль с использованием функций из библиотеки libjpeg.
Пробовал: EXTRA_LDFLAG(или LDFLAG) += -ljped -static (или -Bstatic, -dn)
не помогло, все равно функции не внедряются.Пробовал вручную добавить библиотеки:
canon_as_webcam-objs := canon.o \
video.o \
decompress.o \
jpeg-module.o \
libjpeg.a \
libc.a \
но после подключения libc.a не достает ещё больше функций, а без неё тоже нельзя, нет функций: free, malloc, exit ...Помогите, кто чем может!
Предупреждения после подключения libc.a:
WARNING: "__have_o_cloexec" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__libc_argc" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_profile_output" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_nl_domain_bindings" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_path_envvar" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_initial_searchlist" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_modules_db" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_static_used" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_platformlen" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_debug_mask" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_nl_msg_cat_cntr" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_load_adds" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_wait_lookup_done" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_profile" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_static_align" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_max_dtv_idx" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_bind_not" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_max_path_elem_len" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_platform" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__libc_enable_secure_decided" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__fork_generation_pointer" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_lazy" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
LD [M] /home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko
WARNING: "_dl_tls_dtv_slotinfo_list" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__tzname_cur_max" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_dtv_gaps" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_phdr" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_scope_free_list" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_origin_path" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_generation" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_lock" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_clktck" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_dynamic_weak" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_tmbuf" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__fork_handlers" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__printf_function_table" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_sysinfo_dso" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_path_elem" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__new_exitfn_called" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_init_all_dirs" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_tls_static_nelem" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_nl_locale_file_list" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_verbose" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_phnum" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_profile_map" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__use_tzfile" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_initfirst" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__libc_argv" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_all_dirs" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "__gconv_alias_db" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_r_debug" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_osversion" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_inhibit_rpath" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_pagesize" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_dl_ns" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam] is COMMON symbol
WARNING: "_Unwind_GetGR" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "_Unwind_Resume" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "__udivdi3" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "__umoddi3" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "__gcc_personality_v0" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "_Unwind_GetCFA" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "_Unwind_Backtrace" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
WARNING: "_Unwind_GetIP" [/home/jura/Programming/Canon_as_Webcam/canon_as_webcam.ko] undefined!
>Нужно скомпилировать модульмодуль ядра?
Я новичек, думаю да, он грузиться insmod
>Я новичек, думаю да, он грузиться insmodтогда сначала стоит перечитать документацию о том, чем отличается kernel-space от user-space
>Я новичек, думаю да, он грузиться insmodИ вероятно прежде чем задавать подобные вопросы, вам придётся объяснить, зачем вы пытаетесь прилепить библиотеку к модулю ядра. Хотя в действительности вам это видимо не нужно.
Я хочу написать драйвер для своего фотоаппарата, чтобы его можно было использовать как вебкамеру. Из фотоаппарата получаю изображение в формате jpg. Его надо декодировать в YUYV (или в что-то подобное). Думаю, что для этого проще всего использовать уже имеющуюся библиотеку.
>Я хочу написать драйвер для своего фотоаппарата, чтобы его можно было использовать
>как вебкамеру.Так как вебкамеру можно купить за 300-400 рублей, я полагаю, что тут вопрос эксперимента/самообразования/развлечения. В любом случае, если вы хотите что-нибудь непременно написать, особенно драйвер, вам следует начать с чтения литературы. Например, в данном случае, The Linux Kernel Module Programming Guide: http://tldp.org/LDP/lkmpg/2.6/html/. После этого у вас появится представление о том, что такое модуль ядра, как он устроен, как он работает и что и как надо писать. А также пропадёт идея использовать библиотеки с модулями ядра.
Кстати, в зависимости от того, как именно вы будете использовать эту "вебкамеру", возможно вам и не придётся ничего писать. Поясните, что вы будете с ней делать и возможно вам подскажут альтернативное решение.
Вы совершенно правы, что это вопрос эксперимента/самообразования. Я хочу свой PowerShot S3 использовать как вебкамеру для общения через Skype. Пробовал делать через vloopback драйвер, но не выводиться не каких ошибок, но и положительного результата, тоже нет.
> Пробовал делать через vloopback
>драйвер, но не выводиться не каких ошибок, но и положительного результата,
>тоже нет.Я такое не использовал, но судя по описанию, это именно то, что вам нужно. В любом случае, будет правильнее разобраться с этим драйвером, чем писать свой такой же. По поводу "не выдаёт ошибок, но и положительного результата нет" - это как-то слишком туманно. Там с ним идут примеры (как я понял, они могут генерить тестовую картинку) - разберитесь с ними, добейтесь, чтобы они работали. Ну и дальше как-нибудь... В общем, я думаю, у вас всё получится. :)
>Вы совершенно правы, что это вопрос эксперимента/самообразования. Я хочу свой PowerShot S3
>использовать как вебкамеру для общения через Skype. Пробовал делать через vloopback
>драйвер, но не выводиться не каких ошибок, но и положительного результата,
>тоже нет.1. Модуль ядра должон только писать и читать КОМАНДЫ в/из устройства.
2. Для получения данных, те. потока или фоток используется подсистема V4L Video 4 Linux.
3. Для доступа к данным, потоку, снимкам используется /dev/video с сcылкой на /dev/video0Итого: Вам нужно скрестит V4L + USB