Date: Mon, 18 Feb 2008 09:53:07 +0300 (MSK) From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: FreeBSD-gnats-submit@FreeBSD.org Cc: rik@FreeBSD.org, cristi@roedu.net, nork@FreeBSD.org Subject: ports/120783: [patch] Synaptics Xorg driver chooses wrong input device on amd64 Message-ID: <20080218065307.BDAFE1AF41E@void.codelabs.ru> Resent-Message-ID: <200802180710.m1I7A1kO007512@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 120783 >Category: ports >Synopsis: [patch] Synaptics Xorg driver chooses wrong input device on amd64 >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Feb 18 07:10:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Eygene Ryabinkin >Release: FreeBSD 7.0-PRERELEASE amd64 >Organization: Code Labs >Environment: System: FreeBSD XXX 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #15: Wed Jan 30 19:24:48 MSK 2008 root@XXX:/usr/obj/usr/src/sys/XXX amd64 >Description: When one tries to use Synaptics driver for Xorg (ports/x11-drivers/synaptics) on amd64, he faces the problem that the driver tries to use /dev/input/event* node to communicate with the touchpad, even when explicitely told to use psm device. This problem was discuissed in the following thread: http://lists.freebsd.org/pipermail/freebsd-hackers/2007-December/022536.html http://lists.freebsd.org/pipermail/freebsd-hackers/2008-January/022964.html http://lists.freebsd.org/pipermail/freebsd-hackers/2008-February/023263.html >How-To-Repeat: Find amd64 machine, compile Xorg and Synaptics driver, enable it in the xorg.conf (as described in /usr/ports/x11-drivers/synaptics/pkg-message) and try to start Xorg. You'll see in your Xorg.log messages like this: ----- (II) Synaptics touchpad driver version 0.14.6 (1406) Synaptics_Touchpad no synaptics event device found (checked 10 nodes) Synaptics_Touchpad The /dev/input/event* device nodes seem to be missing (EE) xf86OpenSerial: No Device specified. Synaptics driver unable to open device (EE) PreInit failed for input device "Synaptics_Touchpad" (II) UnloadModule: "synaptics" ----- Xorg will refuse to start. You don't need to have touchpad in your system in order to verify the bug's existence. But you'll need the touchpad to verify that the patch below eliminates the problem. >Fix: The real problem is that port's make instance defines ARCH variable to be 'amd64'. Next, it is passed to the child GNU make via MAKEOPTIONS, so GNU make refuses to modify the ARCH variable following the Makefile statements, because they use plain 'ARCH = something' assignments. Thus, ARCH is not rewritten as 'x86_64' and port is compiled with i386 architecture defaults. And then the option parsing goes mad and sees no 'Protocol' statements from xorg.conf. The following patch to the 'files/patch-Makefile' fixes the Synaptics startup: it uses the correct driver and device. Please, note that I have no hardware with amd64 and Synaptics touchpad at hand, so can not verify that the driver works correctly. But 1) the driver initializes correctly for me; 2) the mentioned problem should be fixed anyway; 3) at least Cristian Klein and rik@ have the needed hardware and (I hope) will try to fully test the patch. --- synaptics-amd64-ARCH.patch begins here --- >From 083c1be4c91da739436f2b1e509a96512ac05867 Mon Sep 17 00:00:00 2001 From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> Date: Mon, 4 Feb 2008 19:17:43 +0300 FreeBSD make sets ARCH variable to 'amd64' [1] and invokes GNU make. It inherits the ARCH variable and refuses to set it via ordinary '=' operator. So we must force ARCH assignments. [1] Try 'make -V ARCH' in the port directory. Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru> --- files/patch-Makefile | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/files/patch-Makefile b/files/patch-Makefile index 1ae3cbe..90870c5 100644 --- a/files/patch-Makefile +++ b/files/patch-Makefile @@ -1,5 +1,5 @@ ---- Makefile.orig Sun Jul 16 00:58:26 2006 -+++ Makefile Sun Aug 13 10:47:35 2006 +--- Makefile.orig 2006-07-15 19:58:26.000000000 +0400 ++++ Makefile 2008-02-04 19:11:33.000000000 +0300 @@ -12,14 +12,14 @@ MANDIR = $(DESTDIR)$(PREFIX)/man @@ -8,7 +8,8 @@ + ARCH = $(shell uname -m) endif ifeq ($(ARCH),amd64) - ARCH = x86_64 +- ARCH = x86_64 ++ override ARCH = x86_64 endif ifeq ($(ARCH),x86_64) ARCH_DEFINES = -D__x86_64__ -D_XSERVER64 -- 1.5.3.8 --- synaptics-amd64-ARCH.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080218065307.BDAFE1AF41E>