About xf86-video-armsoc integration

Guillaume Tucker guillaume.tucker at arm.com
Tue May 12 06:03:37 PDT 2015


 > Then i run  startx, i can see the desktop on the monitor.
 > But i found that the X process doesn't load any EGL and GLES libs by
 > seeing the info of /proc/X process ID/task/*/smaps file.

Most X11 desktop environments use OpenGL, not OpenGL ES.  Then like most
embedded GPUs, Mali-450 only supports OpenGL ES so the X11 desktop is
not hardware-accelerated.

 > [    23.793] (II) GLX: no usable GL providers found for screen 0

This means that although X11 found a valid armsoc driver and is enabled
to run OpenGL ES apps it won't run desktop-like OpenGL apps or desktop
environments that need OpenGL.

If you run an accelerated OpenGL ES X11 app such as es2gears then it
should work and use the Mali driver.  I guess this is what es2_info is
trying to do except that it looks like something went wrong in your
driver build or configuration.  That would take more investigation to
find out the actual cause; might be related to how GPU registers are
being used in the kernel, or how buffers are being used and shared with
user-space.

Cheers,
Guillaume

On 12/05/15 13:30, Xinliang Liu wrote:
> Hello,
> Recently, i am working on enabling mali 450 gpu at debian xorg X windows
> for hikey board which is one of 96boards <https://www.96boards.org/>.
>
> I first implement xf86-video-armsoc(ver1.1.0) video driver, compile and
> cp armsoc_drv.so to directory "/usr/lib/xorg/modules/drivers".
> And then compile arm mali r5p0 DDK and cp egl and gles libs(libEGL.so
>   libEGL.so.1  libEGL.so.1.4  libGLESv1_CM.so  libGLESv1_CM.so.1
>   libGLESv1_CM.so.1.1  libGLESv2.so  libGLESv2.so.2  libGLESv2.so.2.0
>   libMali.so) to directory "/usr/lib/aarch64-linux-gnu/" or "/usr/lib".
>
> my xorg.conf is show as bellow:
> ----------------------------xorg.conf  start--------------------------
> cat /etc/X11/xorg.conf
> Section "Device"
>          Identifier  "Card0"
>          Driver      "armsoc"
> EndSection
>
> Section "Screen"
>          Identifier "Screen0"
>          Device     "Card0"
>          DefaultDepth 24
> EndSection
> ----------------------------xorg.conf  end--------------------------
> Then i run  startx, i can see the desktop on the monitor.
> But i found that the X process doesn't load any EGL and GLES libs by
> seeing the info of /proc/X process ID/task/*/smaps file.
> And even when i run #es2_info , i get bellow error:
> ----------------------------es2_info log  start--------------------------
> # es2_info
> [ 1010.459771] es2_info[1858]: unhandled level 3 translation fault (7)
> at 0x7f9dbe66b0, esr 0x92000047
> [ 1010.468920] pgd = ffffffc03209b000
> [ 1010.472324] [7f9dbe66b0] *pgd=000000003aad5003,
> *pud=000000003aad5003, *pmd=00000000384ae003, *pte=0000000000000000
> [ 1010.482838]
> [ 1010.484335] CPU: 2 PID: 1858 Comm: es2_info Tainted: G        W
>   3.18.0-linaro-hikey #37
> [ 1010.492802] task: ffffffc032b28780 ti: ffffffc0329c0000 task.ti:
> ffffffc0329c0000
> [ 1010.500322] PC is at 0x7f9dbfd744
> [ 1010.503639] LR is at 0x7f9dbecbb0
> [ 1010.507000] pc : [<0000007f9dbfd744>] lr : [<0000007f9dbecbb0>]
> pstate: 20000000
> [ 1010.514402] sp : 0000007fffe87800
> [ 1010.517764] x29: 0000007fffe87930 x28: 0000007f9dc0f570
> [ 1010.523098] x27: 0000007fffe87bb0 x26: 0000007fffe87830
> [ 1010.528473] x25: 0000000000000001 x24: 0000007fffe87b70
> [ 1010.533806] x23: 0000000000000000 x22: 0000000000000002
> [ 1010.539179] x21: 0000000000000006 x20: 0000007f9dc12000
> [ 1010.544511] x19: 00000000002c9978 x18: 0000000000000000
> [ 1010.549886] x17: 0000007f9dbfa8d0 x16: 0000007f9dc13000
> [ 1010.555259] x15: 0000007f9dbfa338 x14: 0000007f9dbfa410
> [ 1010.560594] x13: 00000000002ca6af x12: 0000000000007978
> [ 1010.565965] x11: 0000007f9d91d000 x10: 0000007fffe87860
> [ 1010.571299] x9 : 0000000000000004 x8 : 0000007f9dbe66b0
> [ 1010.576672] x7 : 0000000000000000 x6 : 000000000000003f
> [ 1010.582006] x5 : 0000000000000040 x4 : 0000000000000010
> [ 1010.587382] x3 : 00000000000002b8 x2 : 00000000000002b8
> [ 1010.592716] x1 : 0000000000000000 x0 : 0000007f9dbe66b0
> [ 1010.598088]
> Bus error
> ---------------------------es2_info log end--------------------------
>
>
> What's wrong?
> Am I missing something on integrating xf86-video-armsoc?
> And why X doesn't load any EGL and GLES so libs?
> I paste the Xorg.0.log  at the end.
> Please tell me if you know what's going wrong, thanks.
>
> Best regards,
> -Xinliang Liu
>
>
>
> ----------------------------Xorg.0.log  start--------------------------
> cat /var/log/Xorg.0.log
> [    23.704]
> X.Org X Server 1.16.4
> Release Date: 2014-12-20
> [    23.704] X Protocol Version 11, Revision 0
> [    23.704] Build Operating System: Linux 3.16.0-4-arm64 aarch64 Debian
> [    23.704] Current Operating System: Linux linaro-alip
> 3.18.0-linaro-hikey #37 SMP PREEMPT Tue May 12 19:01:21 HKT 2015 aarch64
> [    23.704] Kernel command line: iommu_ddr_size=0x40000000 console=tty0
> console=ttyAMA0,115200n8 loglevel=7 root=/dev/mmcblk0p7 rootwait rw
>    mem=908M  boardid=0x48696220,0x00000011,0x0000002b
> thermal_trim=0xb6aaaa09 pd_charge=0 boottype=defaultnormal
> enter_recovery=0 androidboot.swtype=normal fastboot_version= himn
> [    23.704] Build Date: 11 February 2015  01:19:23AM
> [    23.704] xorg-server 2:1.16.4-1 (http://www.debian.org/support)
> [    23.704] Current version of pixman: 0.32.6
> [    23.704]    Before reporting problems, check http://wiki.x.org
>          to make sure that you have the latest version.
> [    23.704] Markers: (--) probed, (**) from config file, (==) default
> setting,
>          (++) from command line, (!!) notice, (II) informational,
>          (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
> [    23.705] (==) Log file: "/var/log/Xorg.0.log", Time: Tue May 12
> 09:11:51 2015
> [    23.705] (==) Using config file: "/etc/X11/xorg.conf"
> [    23.705] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
> [    23.706] (==) No Layout section.  Using the first Screen section.
> [    23.706] (**) |-->Screen "Screen0" (0)
> [    23.706] (**) |   |-->Monitor "<default monitor>"
> [    23.707] (**) |   |-->Device "Card0"
> [    23.707] (==) No monitor specified for screen "Screen0".
>          Using a default monitor configuration.
> [    23.707] (==) Automatically adding devices
> [    23.707] (==) Automatically enabling devices
> [    23.707] (==) Automatically adding GPU devices
> [    23.707] (WW) The directory "/usr/share/fonts/X11/misc" does not exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not
> exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not
> exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not
> exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/Type1" does not exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/100dpi" does not
> exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
> [    23.707]    Entry deleted from font path.
> [    23.707] (==) FontPath set to:
>          built-ins
> [    23.707] (==) ModulePath set to "/usr/lib/xorg/modules"
> [    23.707] (II) The server relies on udev to provide the list of input
> devices.
>          If no devices become available, reconfigure udev or disable
> AutoAddDevices.
> [    23.707] (II) Loader magic: 0x7fa49a7ce8
> [    23.707] (II) Module ABI versions:
> [    23.707]    X.Org ANSI C Emulation: 0.4
> [    23.707]    X.Org Video Driver: 18.0
> [    23.708]    X.Org XInput driver : 21.0
> [    23.708]    X.Org Server Extension : 8.0
> [    23.708] (II) xfree86: Adding drm device (/dev/dri/card0)
> [    23.709] (II) no primary bus or device found
> [    23.709]    falling back to
> /sys/devices/smb/smb:display-subsystem/drm/card0
> [    23.709] (II) LoadModule: "glx"
> [    23.710] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
> [    23.717] (II) Module glx: vendor="X.Org Foundation"
> [    23.717]    compiled for 1.16.4, module version = 1.0.0
> [    23.717]    ABI class: X.Org Server Extension, version 8.0
> [    23.717] (==) AIGLX enabled
> [    23.718] (II) LoadModule: "armsoc"
> [    23.718] (II) Loading /usr/lib/xorg/modules/drivers/armsoc_drv.so
> [    23.718] (II) Module armsoc: vendor="X.Org Foundation"
> [    23.718]    compiled for 1.16.4, module version = 1.1.0
> [    23.718]    Module class: X.Org Video Driver
> [    23.718]    ABI class: X.Org Video Driver, version 18.0
> [    23.718] (II) ARMSOC: Driver for ARM Mali compatible chipsets
> [    23.718] (++) using VT number 7
>
> [    23.719] (WW) Falling back to old probe method for armsoc
> [    23.719] (II) No BusID or DriverName specified - opening /dev/dri/card0
> [    23.719] (II) Got BusID platform:smb:display-subsystem:00
> [    23.719] (II) Opened DRM
> [    23.719] (II)    DeviceName is [/dev/dri/card0]
> [    23.719] (II)    bus_id is [platform:smb:display-subsystem:00]
> [    23.719] (II)    DriverName is [hisi]
> [    23.719] (II)    version is [1.0.0]
> [    23.719] (II) Screen:0,  CRTC:-1
> [    23.720] (II) ARMSOC(0): Creating default Display subsection in
> Screen section
>          "Screen0" for depth/fbbpp 24/32
> [    23.720] (**) ARMSOC(0): Depth 24, (--) framebuffer bpp 32
> [    23.720] (==) ARMSOC(0): RGB weight 888
> [    23.720] (==) ARMSOC(0): Using gamma correction (1.0, 1.0, 1.0)
> [    23.720] (==) ARMSOC(0): Default visual is TrueColor
> [    23.720] (II) No BusID or DriverName specified - opening /dev/dri/card0
> [    23.720] (II) Got BusID platform:smb:display-subsystem:00
> [    23.720] (II) Opened DRM
> [    23.720] (II)    DeviceName is [/dev/dri/card0]
> [    23.720] (II)    bus_id is [platform:smb:display-subsystem:00]
> [    23.720] (II)    DriverName is [hisi]
> [    23.720] (II)    version is [1.0.0]
> [    23.720] (II) ARMSOC(0): Chipset: Mali
> [    23.720] (II) ARMSOC(0): Buffer Flipping is Enabled
> [    23.720] (II) ARMSOC(0): Setting the video modes ...
> [    23.721] (II) ARMSOC(0): Adding all CRTCs
> [    23.721] (II) ARMSOC(0): Got CRTC: 0 (id: 6)
> [    23.725] (II) ARMSOC(0): Output HDMI-1 has no monitor section
> [    23.730] (II) ARMSOC(0): Printing probed modes for output HDMI-1
> [    23.730] (II) ARMSOC(0): Modeline "1280x720"x60.6   75.00  1280 1500
> 1540 1650  720 740 745 750 -hsync -vsync (45.5 kHz e)
> [    23.730] (II) ARMSOC(0): Output HDMI-1 connected
> [    23.730] (II) ARMSOC(0): Using sloppy heuristic for initial modes
> [    23.730] (II) ARMSOC(0): Output HDMI-1 using initial mode 1280x720
> [    23.730] (II) ARMSOC(0): Got KMS resources
> [    23.730] (==) ARMSOC(0): DPI set to (96, 96)
> [    23.730] (II) Loading sub module "dri2"
> [    23.730] (II) LoadModule: "dri2"
> [    23.730] (II) Module "dri2" already built-in
> [    23.730] (II) Loading sub module "exa"
> [    23.730] (II) LoadModule: "exa"
> [    23.731] (II) Loading /usr/lib/xorg/modules/libexa.so
> [    23.731] (II) Module exa: vendor="X.Org Foundation"
> [    23.731]    compiled for 1.16.4, module version = 2.6.0
> [    23.731]    ABI class: X.Org Video Driver, version 18.0
> [    23.731] (II) Loading sub module "fb"
> [    23.731] (II) LoadModule: "fb"
> [    23.732] (II) Loading /usr/lib/xorg/modules/libfb.so
> [    23.732] (II) Module fb: vendor="X.Org Foundation"
> [    23.732]    compiled for 1.16.4, module version = 1.0.0
> [    23.732]    ABI class: X.Org ANSI C Emulation, version 0.4
> [    23.732] (--) Depth 24 pixmap format is 32 bpp
> [    23.734] (II) ARMSOC(0): Soft EXA mode
> [    23.734] (II) EXA(0): Driver allocated offscreen pixmaps
> [    23.735] (II) EXA(0): Driver registered support for the following
> operations:
> [    23.735] (II)         Solid
> [    23.735] (II)         Copy
> [    23.735] (II)         Composite (RENDER acceleration)
> [    23.735] (II) ARMSOC(0): Setting swap chain size: 2
> [    23.735] (II) ARMSOC(0): [DRI2] Setup complete
> [    23.735] (II) ARMSOC(0): [DRI2]   DRI driver: armsoc
> [    23.735] (==) ARMSOC(0): Backing store enabled
> [    23.735] (==) ARMSOC(0): Silken mouse enabled
> [    23.735] (II) ARMSOC(0): HW cursor init()
> [    23.735] (II) ARMSOC(0): HW cursor initialized
> [    23.763] (II) ARMSOC(0): RandR 1.2 enabled, ignore the following
> RandR disabled message.
> [    23.764] (==) ARMSOC(0): DPMS enabled
> [    23.764] (--) RandR disabled
> [    23.790] (II) SELinux: Disabled on system
> [    23.793] (EE) AIGLX error: dlopen of
> /usr/lib/aarch64-linux-gnu/dri/armsoc_dri.so failed
> (/usr/lib/aarch64-linux-gnu/dri/armsoc_dri.so: cannot open shared object
> file: No su)
> [    23.793] (EE) AIGLX: reverting to software rendering
> [    23.793] (EE) AIGLX error: dlopen of
> /usr/lib/aarch64-linux-gnu/dri/swrast_dri.so failed
> (/usr/lib/aarch64-linux-gnu/dri/swrast_dri.so: cannot open shared object
> file: No su)
> [    23.793] (EE) GLX: could not load software renderer
> [    23.793] (II) GLX: no usable GL providers found for screen 0
> [    23.793] (II) ARMSOC(0): Setting screen physical size to 338 x 190
> [    23.880] (II) config/udev: Adding input device USB OPTICAL MOUSE
>   (/dev/input/event0)
> [    23.880] (**) USB OPTICAL MOUSE : Applying InputClass "evdev pointer
> catchall"
> [    23.880] (II) LoadModule: "evdev"
> [    23.881] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
> [    23.882] (II) Module evdev: vendor="X.Org Foundation"
> [    23.882]    compiled for 1.16.0, module version = 2.9.0
> [    23.882]    Module class: X.Org XInput Driver
> [    23.882]    ABI class: X.Org XInput driver, version 21.0
> [    23.882] (II) Using input driver 'evdev' for 'USB OPTICAL MOUSE '
> [    23.882] (**) USB OPTICAL MOUSE : always reports core events
> [    23.882] (**) evdev: USB OPTICAL MOUSE : Device: "/dev/input/event0"
> [    23.882] (--) evdev: USB OPTICAL MOUSE : Vendor 0x101 Product 0x7
> [    23.882] (--) evdev: USB OPTICAL MOUSE : Found 9 mouse buttons
> [    23.883] (--) evdev: USB OPTICAL MOUSE : Found scroll wheel(s)
> [    23.883] (--) evdev: USB OPTICAL MOUSE : Found relative axes
> [    23.883] (--) evdev: USB OPTICAL MOUSE : Found x and y relative axes
> [    23.883] (II) evdev: USB OPTICAL MOUSE : Configuring as mouse
> [    23.883] (II) evdev: USB OPTICAL MOUSE : Adding scrollwheel support
> [    23.883] (**) evdev: USB OPTICAL MOUSE : YAxisMapping: buttons 4 and 5
> [    23.883] (**) evdev: USB OPTICAL MOUSE : EmulateWheelButton: 4,
> EmulateWheelInertia: 10, EmulateWheelTimeout: 200
> [    23.883] (**) Option "config_info"
> "udev:/sys/devices/f72c0000.usb/usb1/1-1/1-1.1/1-1.1:1.0/0003:0101:0007.0001/input/input0/event0"
> [    23.883] (II) XINPUT: Adding extended input device "USB OPTICAL
> MOUSE " (type: MOUSE, id 6)
> [    23.883] (II) evdev: USB OPTICAL MOUSE : initialized for relative axes.
> [    23.884] (**) USB OPTICAL MOUSE : (accel) keeping acceleration scheme 1
> [    23.884] (**) USB OPTICAL MOUSE : (accel) acceleration profile 0
> [    23.884] (**) USB OPTICAL MOUSE : (accel) acceleration factor: 2.000
> [    23.884] (**) USB OPTICAL MOUSE : (accel) acceleration threshold: 4
> [    23.885] (II) config/udev: Adding input device USB OPTICAL MOUSE
>   (/dev/input/mouse0)
> [    23.885] (II) No input driver specified, ignoring this device.
> [    23.885] (II) This device may have been added with another device file.
> [    23.886] (II) config/udev: Adding input device SIGMACHIP USB
> Keyboard (/dev/input/event1)
> [    23.886] (**) SIGMACHIP USB Keyboard: Applying InputClass "evdev
> keyboard catchall"
> [    23.886] (II) Using input driver 'evdev' for 'SIGMACHIP USB Keyboard'
> [    23.886] (**) SIGMACHIP USB Keyboard: always reports core events
> [    23.886] (**) evdev: SIGMACHIP USB Keyboard: Device: "/dev/input/event1"
> [    23.886] (--) evdev: SIGMACHIP USB Keyboard: Vendor 0x1c4f Product 0x2
> [    23.886] (--) evdev: SIGMACHIP USB Keyboard: Found keys
> [    23.886] (II) evdev: SIGMACHIP USB Keyboard: Configuring as keyboard
> [    23.887] (**) Option "config_info"
> "udev:/sys/devices/f72c0000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1C4F:0002.0002/input/input1/event1"
> [    23.887] (II) XINPUT: Adding extended input device "SIGMACHIP USB
> Keyboard" (type: KEYBOARD, id 7)
> [    23.887] (**) Option "xkb_rules" "evdev"
> [    23.887] (**) Option "xkb_model" "pc105"
> [    23.887] (**) Option "xkb_layout" "us"
> [    23.889] (II) config/udev: Adding input device SIGMACHIP USB
> Keyboard (/dev/input/event2)
> [    23.889] (**) SIGMACHIP USB Keyboard: Applying InputClass "evdev
> keyboard catchall"
> [    23.889] (II) Using input driver 'evdev' for 'SIGMACHIP USB Keyboard'
> [    23.889] (**) SIGMACHIP USB Keyboard: always reports core events
> [    23.889] (**) evdev: SIGMACHIP USB Keyboard: Device: "/dev/input/event2"
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Vendor 0x1c4f Product 0x2
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Found 1 mouse buttons
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Found scroll wheel(s)
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Found relative axes
> [    23.889] (II) evdev: SIGMACHIP USB Keyboard: Forcing relative x/y
> axes to exist.
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Found absolute axes
> [    23.889] (II) evdev: SIGMACHIP USB Keyboard: Forcing absolute x/y
> axes to exist.
> [    23.889] (--) evdev: SIGMACHIP USB Keyboard: Found keys
> [    23.889] (II) evdev: SIGMACHIP USB Keyboard: Configuring as mouse
> [    23.889] (II) evdev: SIGMACHIP USB Keyboard: Configuring as keyboard
> [    23.889] (II) evdev: SIGMACHIP USB Keyboard: Adding scrollwheel support
> [    23.889] (**) evdev: SIGMACHIP USB Keyboard: YAxisMapping: buttons 4
> and 5
> [    23.889] (**) evdev: SIGMACHIP USB Keyboard: EmulateWheelButton: 4,
> EmulateWheelInertia: 10, EmulateWheelTimeout: 200
> [    23.890] (**) Option "config_info"
> "udev:/sys/devices/f72c0000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:1C4F:0002.0003/input/input2/event2"
> [    23.890] (II) XINPUT: Adding extended input device "SIGMACHIP USB
> Keyboard" (type: KEYBOARD, id 8)
> [    23.890] (**) Option "xkb_rules" "evdev"
> [    23.890] (**) Option "xkb_model" "pc105"
> [    23.890] (**) Option "xkb_layout" "us"
> [    23.890] (II) evdev: SIGMACHIP USB Keyboard: initialized for
> relative axes.
> [    23.890] (WW) evdev: SIGMACHIP USB Keyboard: ignoring absolute axes.
> [    23.891] (**) SIGMACHIP USB Keyboard: (accel) keeping acceleration
> scheme 1
> [    23.891] (**) SIGMACHIP USB Keyboard: (accel) acceleration profile 0
> [    23.891] (**) SIGMACHIP USB Keyboard: (accel) acceleration factor: 2.000
> [    23.891] (**) SIGMACHIP USB Keyboard: (accel) acceleration threshold: 4
> [    24.324] (II) evdev: SIGMACHIP USB Keyboard: Close
> [    24.325] (II) UnloadModule: "evdev"
> [    24.325] (II) evdev: SIGMACHIP USB Keyboard: Close
> [    24.326] (II) UnloadModule: "evdev"
> [    24.326] (II) evdev: USB OPTICAL MOUSE : Close
> [    24.326] (II) UnloadModule: "evdev"
> [    24.332] (EE) Server terminated successfully (0). Closing log file.
> ----------------------------Xorg.0.log  end---------------------------
>

-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No:  2548782



More information about the xorg-devel mailing list