fujitsu-usb-touchscreen на kubuntu 13.04 (64-разрядная версия) на P1630: ошибки `make`

Я установил Kubuntu 13.04 (64-разрядную версию) на свой новый Fujitsu LifeBook P1630 и добавил всего несколько пакетов:

Первый aptitude тогда я сделал aptitude update && safe-upgrade, затем xinput-calibrator (что, кажется, работает, за исключением того, что я должен запускать его снова каждый раз, когда я перезагружаю систему), затем gcc, make, build-essential, checkinstall, binutils, а также linux-source,

Затем я загрузил файл https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/get/112fdb75b406.zip, который связан со страницей https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/overview (я предполагаю, что это неуловимый v0.3.9, который, кажется, нигде не связан под этим именем); Я извлек его содержимое в каталог ~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 и попытался бежать make, Трассировка консоли (er, Konsole) ниже:

archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$ make
make -C /lib/modules/3.8.0-30-generic/build M=/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406 modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-30-generic'
  CC [M]  /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_irq’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:133:4: error: implicit declaration of function ‘dbg’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:182:3: error: implicit declaration of function ‘err’ [-Werror=implicit-function-declaration]
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c: In function ‘usb_u810_tablet_probe’:
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:246:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:253:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:263:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:270:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:277:6: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:302:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:358:5: error: called object ‘err’ is not a function
/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.c:366:5: error: called object ‘err’ is not a function
cc1: some warnings being treated as errors
make[2]: *** [/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/fujitsu_usb_touchscreen.o] Error 1
make[1]: *** [_module_/home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-30-generic'
make: *** [fujitsu_usb_touchscreen.ko] Error 2
archelon@ingelrayok:~/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406$

Я должен также отметить, что make завершает без ошибок на моем другом компьютере, Toshiba Satellite R10 под управлением Kubuntu 12.04; эта машина также имеет (полностью работоспособный) планшет со стилусом. (Планшет Toshiba представляет собой Wacom с активным цифровым преобразователем, в отличие от резистивного сенсорного экрана USB Fujitsu). Так что, возможно, я просто пропускаю какой-то пакет или другой - я ничего не компилировал годами и никогда не был особенно хорош в этом. Возможно, вы можете разобраться со мной.

ОБНОВЛЕНИЕ: я заменил 13.04 на 12.04 LTS, сохранив раздел мой /home, и теперь пакет компилируется: make завершается без ошибок. Тем не мение, make install не. [Чтобы быть точным, я побежал checkinstall (или скорее, sudo checkinstall), который вызывает make install потому что, насколько я могу судить, первое - это простое обновление второго (по крайней мере, для моих целей), обеспечивающее интеграцию с системой управления пакетами.] Первоначально он завершился ошибкой со следующей ошибкой:

make: execvp: /etc/init.d/fujitsu_touchscreen: Permission denied
make: *** [install] Error 127

После некоторых исследований я попытался использовать chmod +x в затронутом файле:

$ sudo chmod +x /etc/init.d/fujitsu_touchscreen

Бег sudo checkinstall снова ошибка разрешения считается исправленной; это продвигается гораздо дальше, прежде чем снова провалиться. Журнал, который он предлагает напечатать на стандартный вывод, показывает dpkg ошибка, как следует:

dpkg: error processing /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/cybergene-fujitsu-usb-touchscreen-112fdb75b406_amd64.deb (--install):
 unable to create `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy.dpkg-new' (while processing `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy'): No such file or directory

И, действительно, пока есть /sys/module/fujitsu_usb_touchscreen/parameters/touch_maxy, здесь нет /sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy; по-видимому, где-то была введена опечатка. Таким образом, я должен найти и исправить это. Но, к сожалению, я очень мало знаю, где искать, кроме install; раздел make-файла, и его там нет. (Я понимаю, что иногда install файл вместо? Но нет в этом случае.) ... Помощь?

(Поскольку это совершенно отдельная проблема, я задал отдельный вопрос: `make install` не работает, очевидно, из-за опечатки, но не в make-файле: как найти и исправить?)

ОБНОВЛЕНИЕ 2013-10-18 После переустановки Kubuntu 12.04 снова, на этот раз воссоздав раздел /home (который, опять же, был сгенерирован во время установки 13.04), я больше не могу воспроизвести странную ошибку сразу выше. Мне все еще любопытно узнать, как подчеркивания изменились на косые, но похоже, что никто не имеет представления. Возможно, также интересно отметить, что, хотя я до сих пор не checkinstall против этого пакета я сделал make install; это требует казни стабилизации /etc/init.d/fujitsu_touchscreen и установка hal и графический интерфейс пользователя зависает вскоре после завершения установки; после этого я не заметил каких-либо новых особых функций, и система больше не может возобновлять приостановку. Я впоследствии потерял интерес к fujitsu-usb-touchscreen поскольку пакет Magick Rotation может предоставить все, что я искал. Это, однако, не работает "из коробки"; Я отправил отчет об ошибке, который также документирует обнаруженный мной неумелый обходной путь.

1 ответ

fujitsu_usb_touchscreen.c говорит, что это v0.3.9, несмотря на то, что вложенный файл README содержит сообщение "Модуль ядра Fujitsu usb с сенсорным экраном и утилиты v0.3.5". Я ненавижу говорить это, но "это работает для меня":

wget https://bitbucket.org/cybergene/fujitsu-usb-touchscreen/get/112fdb75b406.zip
unzip 112fdb75b406.zip
cd cybergene-fujitsu-usb-touchscreen-112fdb75b406
make

Три возможности:

  1. Возможно, почтовый файл поврежден? Попробуйте загрузить снова и повторить шаги извлечения / выполнения?

  2. Убедитесь, что у вас установлен текущий пакет linux-headers (это необходимо для inlude: linux/kernel.h, linux/slab.h, linux/module.h, linux/init.h, linux/usb/input.h). например: find /usr/src/ -iname slab.h

  3. Автор пакета говорит: "Напишите мне, если у вас возникли проблемы с установкой пакета". Вы уже пробовали это?

--beg: редактировать

Я проверял это в гостях VirtualBox. Тот, под которым он работал, был установлен с kubuntu-13.04-desktop-i386.iso некоторое время назад и, вероятно, имел некоторые дополнительные заголовки, которые делали его счастливым.

Я только что установил чистый гость из kubuntu-13.04-desktop-amd64.iso и смог воспроизвести вашу ошибку. Не уверен, что там происходит, но если в fujitsu_usb_touchscreen.c я добавляю следующие строки сразу после include, то он компилируется без ошибок:

#define dbg(args...) printk(args)
#define err(args...) printk(args)

Кроме того, функция usb_u810_tablet_probe() определяет int err что сбивает с толку людей против err() Функция / макро.

Надеюсь это поможет!

Другие вопросы по тегам