Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [HOWTO] Перевёрнутая камера на ноутбуках ASUS, делаем нормальной  (Прочитано 116967 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн peaceful

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #15 : 28 Сентября 2009, 17:28:10 »
Первые 2 команды у меня проходят, а, вот, 3я ругается на отсутствие, хотя система 64-битная:
FATAL: Module v4l2_compat_ioctl32 not found.
Insmod после этого также отказывается выполняться - та же ошибка.

Какие рекомендации?
попробуй ка посмотреть, какие модули есть:
modprobe v4l<Tab><Tab>
v4l1-compat      v4l2-common      v4l2-int-device 

Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #16 : 28 Сентября 2009, 17:43:10 »
хм... интересно...
у меня на х64 этот модуль имеется.

есть ещё один способ: патч к libv4l, ядро трогать не надо, но поможет только приложениям использующим эту либу (практически все сегодня).

Оффлайн peaceful

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #17 : 28 Сентября 2009, 17:53:32 »
хм... интересно...
у меня на х64 этот модуль имеется.

есть ещё один способ: патч к libv4l, ядро трогать не надо, но поможет только приложениям использующим эту либу (практически все сегодня).
Поподробнее про патч: где взять, как наложить? Пожалуйста :)

Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #18 : 28 Сентября 2009, 19:11:33 »
так, вкратце инструкция:
модифицированные исходники: http://people.atrpms.net/~hdegoede/libv4l-0.6.0-test.tar.gz
распаковать, затем:
make PREFIX=/usr LIBDIR=/usr/lib64
sudo make install PREFIX=/usr LIBDIR=/usr/lib64

для 32битных приложений (сначала надо установить пакет libv4l для х32):
make clean
make PREFIX=/usr CFLAGS=-m32 LDFLAGS=-m32
sudo make install PREFIX=/usr LIBDIR=/usr/lib32

при обновлении libv4l или версии для х32 (вот не помню как зовётся пакет) придётся пересобирать. ещё один момент: автор в этой версии цепляется за информацию о железе ноута, так что переворачивание картинки может не заработать. об этом писать в список рассылки linux-uvc

Оффлайн peaceful

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #19 : 29 Сентября 2009, 09:05:44 »
модифицированные исходники: http://people.atrpms.net/~hdegoede/libv4l-0.6.0-test.tar.gz
Благодарю за ссылочку, только, она битая, видимо... есть ещё?

Оффлайн Baboshka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #20 : 29 Сентября 2009, 13:12:17 »
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ patch -F 3 -p1 < /home/bordo/desktop/uvcvideo_rotate.patch
patching file uvc_driver.c
Hunk #1 succeeded at 1957 with fuzz 3.
patching file uvc_video.c
Hunk #1 succeeded at 659 (offset 198 lines).
Hunk #2 FAILED at 830.
Hunk #3 FAILED at 888.
2 out of 3 hunks FAILED -- saving rejects to file uvc_video.c.rej
patching file uvcvideo.h
Hunk #1 succeeded at 316 with fuzz 3.

подскажите плиз, что не так делаю.

Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #21 : 29 Сентября 2009, 15:05:10 »
подскажите плиз, что не так делаю.
а нечего накладывать один и тот же патч 4 раза подряд. он и с первого раза прекрасно применился.

Оффлайн romaario

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #22 : 06 Октября 2009, 13:03:33 »
что потребуется:
1) установить исходники ядра (sudo apt-get install linux-source build-essential)
2) распаковать их: tar xf /usr/src/linux-source-*
3) наложить приложенный патч: cd linux-source-<нажать tab>/drivers/media/video/uvc; patch -F 3 -p1 < ../../../../../uvcvideo_rotate.patch
4) если ругнётся на последний кусок (скорее всего так и будет), руками отредактировать drivers/media/video/uvc/uvcvideo.h: найти в нём строки #define UVC_QUIRK_... и после них дописать #define UVC_QUIRK_ROTATE_IMAGE         0x00000100 -- патч сделан для самой свежей версии драйвера, поэтому утилита patch тут не находит указанных строк (это для версий ядра 2.6.28 и 2.6.29, в 2.6.30 патч накладывается уже без проблем).
5) если патч наложился без проблем -- можно собирать: cp /boot/config-`uname -r` ../../../../.config
make oldconfig
make modules_prepare
make -C /lib/modules/`uname -r`/build M=`pwd`


До 4-того пункта дошёл.. Не то, чтобы без проблем, но патч вроде наложился.. Строку в uvcvideo.h добавил и вроде всё получилось.. А вот в пятом пункте не очень понял.. Заранее извиняюсь за глупые вопросы, шарю не очень :)
1. "если патч наложился без проблем -- можно собирать" - кого собирать?
2.  "cp /boot/config-`uname -r` ../../../../.config" А что должно быть между слэшами??    

ВОТ ТУТ
"3) наложить приложенный патч: cd linux-source-<нажать tab>/drivers/media/video/uvc; patch -F 3 -p1 < ../../../../.. /uvcvideo_rotate.patch)" Я ДОГАДАЛСЯ, что между слэшами должен быть путь, куда я скачал патч..
А в пятом пункте что?
« Последнее редактирование: 06 Октября 2009, 13:06:53 от romaario »
Ubuntu 10.04 @ Asus N10J

Оффлайн Baboshka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #23 : 09 Октября 2009, 22:55:43 »
спасибо, переделал все со второго шага, патч наложился без проблем:
patching file uvc_driver.c
Hunk #1 succeeded at 1957 with fuzz 3.
patching file uvc_video.c
Hunk #1 succeeded at 404 (offset -57 lines).
Hunk #2 succeeded at 536 (offset -96 lines).
Hunk #3 succeeded at 592 (offset -98 lines).
patching file uvcvideo.h
Hunk #1 succeeded at 316 with fuzz 3.

иду дальше:
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ cp /boot/config-`uname -r` ../../../../.config
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ make oldconfigmake: *** No rule to make target `oldconfig'.  Stop.

как я понял надо подняться в ту директорию куда был скопирован конфиг:

bordo@bordo-laptop:~/linux-source-2.6.28$ make oldconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function ‘conf_askvalue’:
scripts/kconfig/conf.c:104: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function ‘conf_choice’:
scripts/kconfig/conf.c:306: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
  HOSTCC  scripts/kconfig/kxgettext.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf -o arch/x86/Kconfig
#
# configuration written to .config
#

появляются варнинги, если продолжать, то результат следующий:
bordo@bordo-laptop:~/linux-source-2.6.28$ make modules_prepare
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.c
  SHIPPED scripts/genksyms/parse.h
  SHIPPED scripts/genksyms/keywords.c
  HOSTCC  scripts/genksyms/lex.o
  SHIPPED scripts/genksyms/parse.c
  HOSTCC  scripts/genksyms/parse.o
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
scripts/mod/modpost.c: In function ‘get_markers’:
scripts/mod/modpost.c:1542: warning: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result
scripts/mod/modpost.c: In function ‘add_marker’:
scripts/mod/modpost.c:1962: warning: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/kallsyms
scripts/kallsyms.c: In function ‘read_symbol’:
scripts/kallsyms.c:74: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
  HOSTCC  scripts/conmakehash
bordo@bordo-laptop:~/linux-source-2.6.28$ make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-2.6.28-15-generic'
  CC      kernel/bounds.s
/home/bordo/linux-source-2.6.28/kernel/bounds.c:1: fatal error: can’t open kernel/bounds.s for writing: Permission denied
compilation terminated.
make[1]: *** [kernel/bounds.s] Error 1
make: *** [_module_/home/bordo/linux-source-2.6.28] Error 2
make: Leaving directory `/usr/src/linux-headers-2.6.28-15-generic'

буду благодарен за оказанную помощь.

Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #24 : 10 Октября 2009, 18:45:22 »
вот и ответ на вопрос: /home/bordo/linux-source-2.6.28/kernel/bounds.c:1: fatal error: can’t open kernel/bounds.s for writing: Permission denied

chown -R $USER:$USER /home/bordo/linux-source-2.6.28/

если ругнётся, то с sudo

Оффлайн Baboshka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #25 : 11 Октября 2009, 19:49:37 »
dmig, спасибо... иду дальше и без помощи опять не разобраться:

bordo@bordo-laptop:~/linux-source-2.6.28$ make oldconfig
scripts/kconfig/conf -o arch/x86/Kconfig
#
# configuration written to .config
#


bordo@bordo-laptop:~/linux-source-2.6.28$ make modules_prepare
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CALL    scripts/checksyscalls.sh


bordo@bordo-laptop:~/linux-source-2.6.28$ sudo make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-2.6.28-15-generic'
  CC      kernel/bounds.s
  GEN     /home/bordo/linux-source-2.6.28/include/linux/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     /home/bordo/linux-source-2.6.28/include/asm/asm-offsets.h
  Building modules, stage 2.
  MODPOST 0 modules
make: Leaving directory `/usr/src/linux-headers-2.6.28-15-generic'


bordo@bordo-laptop:~/linux-source-2.6.28$ sudo modprobe -r uvcvideo


bordo@bordo-laptop:~/linux-source-2.6.28$ sudo insmod uvcvideo.ko
insmod: can't read 'uvcvideo.ko': No such file or directory


bordo@bordo-laptop:~/linux-source-2.6.28$ locate uvcvideo.ko
/lib/modules/2.6.28-11-generic/kernel/drivers/media/video/uvc/uvcvideo.ko
/lib/modules/2.6.28-15-generic/kernel/drivers/media/video/uvc/uvcvideo.ko


bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ ls -la
total 340
drwxr-xr-x  2 bordo bordo  4096 2009-10-09 22:43 .
drwxr-xr-x 24 bordo bordo  4096 2009-09-09 16:53 ..
-rw-r--r--  1 bordo bordo   510 2008-12-25 02:26 Kconfig
-rw-r--r--  1 bordo bordo   153 2008-12-25 02:26 Makefile
-rw-r--r--  1 bordo bordo 36466 2008-12-25 02:26 uvc_ctrl.c
-rw-r--r--  1 bordo bordo 58856 2009-10-09 22:43 uvc_driver.c
-rw-r--r--  1 bordo bordo 57271 2009-09-09 14:49 uvc_driver.c.orig
-rw-r--r--  1 bordo bordo  3862 2008-12-25 02:26 uvc_isight.c
-rw-r--r--  1 bordo bordo 13053 2008-12-25 02:26 uvc_queue.c
-rw-r--r--  1 bordo bordo  5395 2008-12-25 02:26 uvc_status.c
-rw-r--r--  1 bordo bordo 27820 2009-09-09 14:49 uvc_v4l2.c
-rw-r--r--  1 bordo bordo 32358 2009-10-09 22:43 uvc_video.c
-rw-r--r--  1 bordo bordo 28407 2009-09-09 14:49 uvc_video.c.orig
-rw-r--r--  1 bordo bordo 23446 2009-10-09 22:43 uvcvideo.h
-rw-r--r--  1 bordo bordo 23403 2008-12-25 02:26 uvcvideo.h.orig

Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШ&#
« Ответ #26 : 11 Октября 2009, 21:34:30 »
ну и? в чём проблема то?
сказано же, вот он модуль: /lib/modules/2.6.28-15-generic/kernel/drivers/media/video/uvc/uvcvideo.ko, в другой директории

тьфу блин... путь не разглядел...

sudo make -C /lib/modules/`uname -r`/build M=`pwd` -- это запускать в директории drivers/media/video/uvc/ (либо sudo make -C /lib/modules/`uname -r`/build M=./drivers/media/video/uvc/) и, соответственно uvcvideo.ko будет лежать там же

Пользователь решил продолжить мысль 12 Октября 2009, 11:59:46:
модифицированные исходники: http://people.atrpms.net/~hdegoede/libv4l-0.6.0-test.tar.gz
Благодарю за ссылочку, только, она битая, видимо... есть ещё?
да, лежит сайт...
нашёл у себя оригинальный архив, лежит теперь тут: http://dl.getdropbox.com/u/490384/libv4l-0.6.0-test.tar.gz

удалил исходники, смотри первый пост.
« Последнее редактирование: 12 Октября 2009, 14:11:43 от dmig »

Оффлайн bsod

  • Участник
  • *
  • Сообщений: 168
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #27 : 12 Октября 2009, 15:48:50 »
а где взять модифицированые исходники?

Оффлайн Baboshka

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #28 : 15 Октября 2009, 20:50:21 »
еще раз спасибо, с вашей помощью почти добрался до финала) но опять проблема, подгружаю модули, но ошибка все равно остается.

bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ sudo insmod uvcvideo.ko
insmod: error inserting 'uvcvideo.ko': -1 Unknown symbol in module
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ sudo modprobe v4l1-compat
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ sudo modprobe videodev
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ sudo modprobe v4l2-compat-ioctl32
FATAL: Module v4l2_compat_ioctl32 not found.
bordo@bordo-laptop:~/linux-source-2.6.28/drivers/media/video/uvc$ sudo insmod uvcvideo.ko
insmod: error inserting 'uvcvideo.ko': -1 Unknown symbol in module


Оффлайн dmig

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1668
    • Просмотр профиля
Re: Перевёрнутая камера на ноутбуках от ASUS [РЕШЕ
« Ответ #29 : 16 Октября 2009, 09:39:34 »
покажи dmesg | tail после insmod uvcvideo.ko, а ещё uname -m

 

Страница сгенерирована за 0.036 секунд. Запросов: 25.