我计划运行一个电子我的 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
我只是添加了这个补丁到我的图层,现在它可以工作了。