如何为带触摸屏的嵌入式 i.MX6 板配置 X11?

如何为带触摸屏的嵌入式 i.MX6 板配置 X11?

我计划运行一个电子我的 UDOO Neo i.MX6 开发板上的应用程序UDOO Neo 官方 st1232 7 英寸触摸屏套件。我创建了一个自定义 Linux 发行版狭隘(重击分支)能够​​构建“准备启动”映像。我启用了“x11-base”图像功能来拥有所有 Xorg 软件包,并且我有元飞思卡尔提供补丁的层,以便拥有与硬件完全兼容的发行版(Vivante)。但是,在启动过程结束时,我收到一条来自 的 seg failure 错误消息xinit

这是我的/etc/X11/xorg.conf文件:

Section "Device"
    Identifier  "i.MX Accelerated Framebuffer Device"
    Driver      "vivante"
    Option      "fbdev"     "/dev/fb0"
    Option      "vivante_fbdev" "/dev/fb0"
    Option      "HWcursor"  "false"
    Option      "DisplayEngine" "pxp"
EndSection

Section "ServerFlags"
    Option "BlankTime"  "0"
    Option "StandbyTime"  "0"
    Option "SuspendTime"  "0"
    Option "OffTime"  "0"
EndSection

Section "InputClass"
    Identifier "Touchscreen"
    MatchProduct    "st1232-touchscreen"
    Driver          "evdev"
    Option          "Calibration"   "3 794 476 0"
EndSection

它是由 meta-freescale 层添加的,并且我手动附加了 st1232 触摸屏 InputClass。

文件的输出/var/log/Xorg.0.log

X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
[    63.243] Build Operating System: Linux 4.15.0-72-generic x86_64 
[    63.244] Current Operating System: Linux 4.1.15+2.0.x-udoo+g34f88fa2766c #1 SMP PREEMPT Mon Jan 6 14:51:20 UTC 2020 armv7l
[    63.244] Kernel command line: console=ttymxc0,115200,115200 root=/dev/mmcblk0p1 rootwait rw rootfstype=ext4 uart_from_osc clk_ignore_unused cpuidle.off=1 consoleblank=0
[    63.257] Build Date: 07 January 2020  10:34:32AM
[    63.257]  
[    63.258] Current version of pixman: 0.34.0
[    63.258]    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
[    63.258] Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    63.260] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Jan  7 11:51:16 2020
[    63.288] (==) Using config file: "/etc/X11/xorg.conf"
[    63.288] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    63.297] (==) No Layout section.  Using the first Screen section.
[    63.297] (==) No screen section available. Using defaults.
[    63.297] (**) |-->Screen "Default Screen Section" (0)
[    63.297] (**) |   |-->Monitor "<default monitor>"
[    63.298] (==) No device specified for screen "Default Screen Section".
    Using the first device section listed.
[    63.298] (**) |   |-->Device "i.MX Accelerated Framebuffer Device"
[    63.298] (==) No monitor specified for screen "Default Screen Section".
    Using a default monitor configuration.
[    63.298] (**) Option "BlankTime" "0"
[    63.298] (**) Option "StandbyTime" "0"
[    63.298] (**) Option "SuspendTime" "0"
[    63.298] (**) Option "OffTime" "0"
[    63.298] (==) Automatically adding devices
[    63.298] (==) Automatically enabling devices
[    63.298] (==) Automatically adding GPU devices
[    63.298] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    63.299] (WW) The directory "/usr/share/fonts/X11/misc/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (WW) The directory "/usr/share/fonts/X11/TTF/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (WW) The directory "/usr/share/fonts/X11/OTF/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (WW) The directory "/usr/share/fonts/X11/Type1/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[    63.299]    Entry deleted from font path.
[    63.299] (==) FontPath set to:

[    63.299] (==) ModulePath set to "/usr/lib/xorg/modules"
[    63.299] (II) The server relies on udev to provide the list of input devices.
    If no devices become available, reconfigure udev or disable AutoAddDevices.
[    63.299] (II) Loader magic: 0x54cd6d78
[    63.300] (II) Module ABI versions:
[    63.300]    X.Org ANSI C Emulation: 0.4
[    63.300]    X.Org Video Driver: 24.0
[    63.300]    X.Org XInput driver : 24.1
[    63.300]    X.Org Server Extension : 10.0
[    63.301] (II) xfree86: Adding drm device (/dev/dri/card0)
[    63.301] (II) no primary bus or device found
[    63.301]    falling back to /sys/devices/platform/Vivante GCCore/drm/card0
[    63.301] (II) LoadModule: "glx"
[    63.326] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    63.463] (II) Module glx: vendor="X.Org Foundation"
[    63.463]    compiled for 1.20.1, module version = 1.0.0
[    63.463]    ABI class: X.Org Server Extension, version 10.0
[    63.463] (II) LoadModule: "vivante"
[    63.467] (II) Loading /usr/lib/xorg/modules/drivers/vivante_drv.so
[    63.478] (II) Module vivante: vendor="X.Org Foundation"
[    63.478]    compiled for 1.20.1, module version = 1.0.0
[    63.478]    ABI class: X.Org Video Driver, version 24.0
[    63.478] (II) VIVANTE: fb driver for vivante: VivanteGC500, VivanteGC2100,
    VivanteGCCORE
[    63.479] (--) using VT number 1

[    63.482] (WW) Falling back to old probe method for vivante
[    63.482] (II) Loading sub module "fbdevhw"
[    63.482] (II) LoadModule: "fbdevhw"
[    63.482] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    63.484] (II) Module fbdevhw: vendor="X.Org Foundation"
[    63.484]    compiled for 1.20.1, module version = 0.0.2
[    63.484]    ABI class: X.Org Video Driver, version 24.0
[    63.484] (II) VIVANTE(0): using default device
[    63.484] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    63.485] (WW) VIVANTE(0): Cannot get device preferred mode '/sys/class/graphics/fb0/mode (Not a directory)' 
[    63.485] (II) VIVANTE(0): Creating default Display subsection in Screen section
    "Default Screen Section" for depth/fbbpp 16/16
[    63.485] (==) VIVANTE(0): Depth 16, (==) framebuffer bpp 16
[    63.485] (==) VIVANTE(0): RGB weight 565
[    63.485] (==) VIVANTE(0): Default visual is TrueColor
[    63.485] (==) VIVANTE(0): Using gamma correction (1.0, 1.0, 1.0)
[    63.485] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    63.485] (**) VIVANTE(0): mExaHwType:1
[    63.485] (II) VIVANTE(0): checking modes against framebuffer device...
[    63.485] (II) VIVANTE(0): checking modes against monitor...
[    63.485] (II) VIVANTE(0): Virtual size is 0x0 (pitch 0)
[    63.485] (==) VIVANTE(0): DPI set to (96, 96)
[    63.485] (II) Loading sub module "fb"
[    63.485] (II) LoadModule: "fb"
[    63.485] (II) Loading /usr/lib/xorg/modules/libfb.so
[    63.493] (II) Module fb: vendor="X.Org Foundation"
[    63.493]    compiled for 1.20.1, module version = 1.0.0
[    63.493]    ABI class: X.Org ANSI C Emulation, version 0.4
[    63.493] (II) Loading sub module "exa"
[    63.493] (II) LoadModule: "exa"
[    63.495] (II) Loading /usr/lib/xorg/modules/libexa.so
[    63.499] (II) Module exa: vendor="X.Org Foundation"
[    63.499]    compiled for 1.20.1, module version = 2.6.0
[    63.499]    ABI class: X.Org Video Driver, version 24.0
[    63.500] (II) VIVANTE(0): printing discovered frame buffer 'fb0' supported modes:
[    63.501] (II) VIVANTE(0): Modeline "U:800x480p-60"x0.0   33.66  800 850 1000 1056  480 500 502 525 -hsync -vsync -csync (31.9 kHz e)
[    63.501] (II) VIVANTE(0): Output mxs-lcdif1 has no monitor section
[    63.501] (II) VIVANTE(0): Printing probed modes for output mxs-lcdif1
[    63.501] (II) VIVANTE(0): Modeline "U:800x480p-60"x60.7   33.66  800 850 1000 1056  480 500 502 525 -hsync -vsync -csync (31.9 kHz e)
[    63.501] (II) VIVANTE(0): Output mxs-lcdif1 connected
[    63.502] (II) VIVANTE(0): Using sloppy heuristic for initial modes
[    63.502] (II) VIVANTE(0): Output mxs-lcdif1 using initial mode U:800x480p-60 +0+0
[    63.502] (II) VIVANTE(0): imxDisplayPreInit: virtual set 800 x 480, display width 0
[    63.502] (II) VIVANTE(0): VivPreInit: adjust display width 800
[    63.502] (II) VIVANTE(0): reserve 4177920 bytes for on screen frame buffer; total fb memory size 33554432 bytes; offset of shadow buffer 4177920
[    63.504] (II) VIVANTE(0): hardware: mxs-lcdif1 (video memory: 32768kB)
[    63.512] (II) VIVANTE(0): FB Start = 0x7458d000  FB Base = 0x7458d000  FB Offset = (nil)
[    63.513] (II) VIVANTE(0): test Initializing EXA
[    63.817] (II) EXA(0): Driver allocated offscreen pixmaps
[    63.817] (II) EXA(0): Driver registered support for the following operations:
[    63.817] (II)         Solid
[    63.817] (II)         Copy
[    63.817] (II)         Composite (RENDER acceleration)
[    63.817] (II)         UploadToScreen
[    63.817] (==) VIVANTE(0): Backing store enabled
[    63.818] (==) VIVANTE(0): DPMS enabled
[    63.820] drmOpenDevice: node name is /dev/dri/card0
[    63.821] drmOpenDevice: open result is 11, (OK)
[    63.821] drmOpenDevice: node name is /dev/dri/card0
[    63.821] drmOpenDevice: open result is 11, (OK)
[    63.821] drmOpenByBusid: Searching for BusID platform:Vivante GCCore:00
[    63.821] drmOpenDevice: node name is /dev/dri/card0
[    63.821] drmOpenDevice: open result is 11, (OK)
[    63.821] drmOpenByBusid: drmOpenMinor returns 11
[    63.821] drmOpenByBusid: drmGetBusid reports platform:Vivante GCCore:00
[    63.821] (II) [drm] DRM interface version 1.4
[    63.821] (II) [drm] DRM open master succeeded.
[    63.821] (II) VIVANTE(0): [drm] Using the DRM lock SAREA also for drawables.
[    63.821] (II) VIVANTE(0): [drm] framebuffer handle = 0xac100000
[    63.821] (II) VIVANTE(0): [drm] added 1 reserved context for kernel
[    63.821] (II) VIVANTE(0): X context handle = 0x1
[    63.821] (EE) VIVANTE(0): [drm] failed to setup DRM signal handler
[    63.821] (EE) VIVANTE(0): [dri] DRIScreenInit failed.  Disabling DRI.
[    63.822] (II) Initializing extension Generic Event Extension
[    63.822] (II) Initializing extension SHAPE
[    63.822] (II) Initializing extension MIT-SHM
[    63.822] (II) Initializing extension XInputExtension
[    63.825] (II) Initializing extension XTEST
[    63.825] (II) Initializing extension BIG-REQUESTS
[    63.825] (II) Initializing extension SYNC
[    63.825] (II) Initializing extension XKEYBOARD
[    63.825] (II) Initializing extension XC-MISC
[    63.825] (II) Initializing extension XFIXES
[    63.825] (II) Initializing extension RENDER
[    63.825] (II) Initializing extension RANDR
[    63.825] (II) Initializing extension COMPOSITE
[    63.825] (II) Initializing extension DAMAGE
[    63.825] (II) Initializing extension MIT-SCREEN-SAVER
[    63.825] (II) Initializing extension DOUBLE-BUFFER
[    63.825] (II) Initializing extension DPMS
[    63.825] (II) Initializing extension Present
[    63.825] (II) Initializing extension DRI3
[    63.825] (II) Initializing extension X-Resource
[    63.826] (II) Initializing extension XVideo
[    63.826] (II) Initializing extension XVideo-MotionCompensation
[    63.826] (II) Initializing extension GLX
[    63.826] (II) AIGLX: Screen 0 is not DRI2 capable
[    63.974] (II) IGLX: Loaded and initialized swrast
[    63.974] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    63.974] (II) Initializing extension XFree86-VidModeExtension
[    63.974] (II) Initializing extension XFree86-DGA
[    63.974] (II) Initializing extension XFree86-DRI
[    63.974] (II) Initializing extension DRI2
[    63.974] (II) Initializing extension vivext
[    63.974] (II) VIVANTE(0): Setting screen physical size to 211 x 127
[    64.295] (II) config/udev: Adding input device 20cc000.snvs:snvs-powerkey (/dev/input/event0)
[    64.295] (**) 20cc000.snvs:snvs-powerkey: Applying InputClass "evdev keyboard catchall"
[    64.296] (**) 20cc000.snvs:snvs-powerkey: Applying InputClass "libinput keyboard catchall"
[    64.296] (II) LoadModule: "libinput"
[    64.297] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[    64.323] (II) Module libinput: vendor="X.Org Foundation"
[    64.323]    compiled for 1.20.1, module version = 0.28.0
[    64.323]    Module class: X.Org XInput Driver
[    64.323]    ABI class: X.Org XInput driver, version 24.1
[    64.323] (II) Using input driver 'libinput' for '20cc000.snvs:snvs-powerkey'
[    64.323] (**) 20cc000.snvs:snvs-powerkey: always reports core events
[    64.323] (**) Option "Device" "/dev/input/event0"
[    64.323] (**) Option "_source" "server/udev"
[    64.324] (II) event0  - 20cc000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[    64.324] (II) event0  - 20cc000.snvs:snvs-powerkey: device is a keyboard
[    64.325] (II) event0  - 20cc000.snvs:snvs-powerkey: device removed
[    64.360] (**) Option "config_info" "udev:/sys/devices/soc0/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0/event0"
[    64.360] (II) XINPUT: Adding extended input device "20cc000.snvs:snvs-powerkey" (type: KEYBOARD, id 6)
[    64.362] (II) event0  - 20cc000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[    64.362] (II) event0  - 20cc000.snvs:snvs-powerkey: device is a keyboard
[    64.365] (II) config/udev: Adding input device st1232-touchscreen (/dev/input/event1)
[    64.365] (**) st1232-touchscreen: Applying InputClass "Touchscreen"
[    64.365] (II) LoadModule: "evdev"
[    64.366] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[    64.372] (II) Module evdev: vendor="X.Org Foundation"
[    64.372]    compiled for 1.20.1, module version = 2.10.6
[    64.372]    Module class: X.Org XInput Driver
[    64.372]    ABI class: X.Org XInput driver, version 24.1
[    64.372] (II) Using input driver 'evdev' for 'st1232-touchscreen'
[    64.372] (**) st1232-touchscreen: always reports core events
[    64.372] (**) evdev: st1232-touchscreen: Device: "/dev/input/event1"
[    64.373] (II) evdev: st1232-touchscreen: Using mtdev for this device
[    64.373] (--) evdev: st1232-touchscreen: Vendor 0 Product 0
[    64.378] (--) evdev: st1232-touchscreen: Found absolute axes
[    64.378] (--) evdev: st1232-touchscreen: Found absolute multitouch axes
[    64.378] (II) evdev: st1232-touchscreen: No buttons found, faking one.
[    64.378] (II) evdev: st1232-touchscreen: Forcing relative x/y axes to exist.
[    64.379] (II) evdev: st1232-touchscreen: Configuring as mouse
[    64.379] (**) evdev: st1232-touchscreen: YAxisMapping: buttons 4 and 5
[    64.379] (**) evdev: st1232-touchscreen: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    64.379] (**) Option "config_info" "udev:/sys/devices/soc0/soc/2100000.aips-bus/21a0000.i2c/i2c-0/0-0055/input/input1/event1"
[    64.379] (II) XINPUT: Adding extended input device "st1232-touchscreen" (type: MOUSE, id 7)
[    64.379] (II) evdev: st1232-touchscreen: initialized for relative axes.
[    64.379] (WW) evdev: st1232-touchscreen: ignoring absolute axes.
[    64.381] (**) st1232-touchscreen: (accel) keeping acceleration scheme 1
[    64.381] (**) st1232-touchscreen: (accel) acceleration profile 0
[    64.381] (**) st1232-touchscreen: (accel) acceleration factor: 2.000
[    64.381] (**) st1232-touchscreen: (accel) acceleration threshold: 4
[    64.384] (II) config/udev: Adding input device FreescaleGyroscope (/dev/input/event2)
[    64.384] (II) No input driver specified, ignoring this device.
[    64.384] (II) This device may have been added with another device file.
[    64.385] (II) config/udev: Adding input device FreescaleAccelerometer (/dev/input/event3)
[    64.385] (II) No input driver specified, ignoring this device.
[    64.385] (II) This device may have been added with another device file.
[    64.386] (II) config/udev: Adding input device FreescaleMagnetometer (/dev/input/event4)
[    64.386] (II) No input driver specified, ignoring this device.
[    64.386] (II) This device may have been added with another device file.
[    64.431] (EE) 
[    64.432] (EE) Backtrace:
[    64.432] (EE) 
[    64.433] (EE) Segmentation fault at address 0x4
[    64.434] (EE) 
Fatal server error:
[    64.440] (EE) Caught signal 11 (Segmentation fault). Server aborting
[    64.440] (EE) 
[    64.441] (EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
[    64.442] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    64.442] (EE) 
[    64.447] (EE) Server terminated with error (1). Closing log file.

我的 Xorg 配置正确吗?为了使 Xorg 正常工作,什么是重要的?我听说过export DISPLAY=:0很多,但运行它并不能解决我的问题。

答案1

您必须下载vivante 5.0.11驱动程序版本,因为6.2是针对DRM的,不支持imx6。可以看看参考: https://lists.yoctoproject.org/g/meta-freescale/topic/68840298#24216 https://community.nxp.com/thread/526149

答案2

我只是添加了这个补丁到我的图层,现在它可以工作了。

相关内容