Does latest rpb desktop image (Debian) supports hdmi on hikey960?

Hi Stephen,

I suspect this releasing image is a common debian rootfs, I will check internally with integration team for this. Will update with you if I can get info for this.

Thanks a lot @leo-yan for quick responding. Actually I have some assumption with you, I use it as an empty rootfs and use my modified hikey960 kernel and boot image to boot it. Indeed it can boot but x11 not work. So please help on this one to find a x11 ready rootfs image which could be used on hikey960, then my team can keep working on it.

FYI just tested build morty build 127 [1], and added the following config file /usr/share/X11/xorg.conf.d/42-fbdev.conf:

Section "Device"  
    Identifier "hikey960-fbdev"
    Driver "fbdev"
    Option "fbdev" "/dev/fb0"
EndSection

I’m able to startx without any problem

[1] http://snapshots.linaro.org/reference-platform/embedded/morty/hikey960/127/rpb/rpb-desktop-image-hikey960-20180126071619-127.rootfs.img.gz

i tried build127,it still failed. only build 100 is okay in my environment.
the failed log as bellow

X.Org X Server 1.19.3
Release Date: 2017-03-15
[ 599.492] X Protocol Version 11, Revision 0
[ 599.492] Build Operating System: Linux 4.9.0-16-generic x86_64
[ 599.492] Current Operating System: Linux hikey960 4.14.0-rc7-linaro-hikey960 #1 SMP PREEMPT Thu Jan 11 00:27:15 UTC 2018 aarch64
[ 599.493] Kernel command line: BOOT_IMAGE=/boot/Image console=tty0 console=ttyAMA6,115200n8 root=/dev/sdd10 rootwait rw quiet efi=noruntime
[ 599.493] Build Date: 11 January 2018 12:27:31AM
[ 599.493]
[ 599.493] Current version of pixman: 0.34.0
[ 599.493] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 599.493] Markers: (–) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 599.493] (==) Log file: “/var/log/Xorg.0.log”, Time: Thu Jan 11 00:26:53 2018
[ 599.493] (==) Using system config directory “/usr/share/X11/xorg.conf.d”
[ 599.494] (==) No Layout section. Using the first Screen section.
[ 599.494] (==) No screen section available. Using defaults.
[ 599.494] (
) |–>Screen “Default Screen Section” (0)
[ 599.494] () | |–>Monitor “”
[ 599.494] (==) No device specified for screen “Default Screen Section”.
Using the first device section listed.
[ 599.494] (
) | |–>Device “hikey960-fbdev”
[ 599.494] (==) No monitor specified for screen “Default Screen Section”.
Using a default monitor configuration.
[ 599.494] (==) Automatically adding devices
[ 599.494] (==) Automatically enabling devices
[ 599.494] (==) Automatically adding GPU devices
[ 599.494] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 599.494] (WW) The directory “/usr/share/fonts/X11/misc/” does not exist.
[ 599.494] Entry deleted from font path.
[ 599.495] (WW) The directory “/usr/share/fonts/X11/TTF/” does not exist.
[ 599.495] Entry deleted from font path.
[ 599.495] (WW) The directory “/usr/share/fonts/X11/OTF/” does not exist.
[ 599.495] Entry deleted from font path.
[ 599.495] (WW) The directory “/usr/share/fonts/X11/Type1/” does not exist.
[ 599.495] Entry deleted from font path.
[ 599.495] (WW) The directory “/usr/share/fonts/X11/100dpi/” does not exist.
[ 599.495] Entry deleted from font path.
[ 599.495] (WW) The directory “/usr/share/fonts/X11/75dpi/” does not exist.
[ 599.495] Entry deleted from font path.
[ 599.495] (==) FontPath set to:

[ 599.495] (==) ModulePath set to “/usr/lib64/xorg/modules”
[ 599.495] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 599.495] (II) Loader magic: 0x5b71f8
[ 599.495] (II) Module ABI versions:
[ 599.495] X.Org ANSI C Emulation: 0.4
[ 599.495] X.Org Video Driver: 23.0
[ 599.495] X.Org XInput driver : 24.1
[ 599.495] X.Org Server Extension : 10.0
[ 599.496] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 599.497] (II) no primary bus or device found
[ 599.497] falling back to /sys/devices/platform/e8600000.dpe/drm/card0
[ 599.497] (II) LoadModule: “glx”
[ 599.497] (WW) Warning, couldn’t open module glx
[ 599.497] (II) UnloadModule: “glx”
[ 599.497] (II) Unloading glx
[ 599.497] (EE) Failed to load module “glx” (module does not exist, 0)
[ 599.497] (II) LoadModule: “fbdev”
[ 599.498] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
[ 599.498] (II) Module fbdev: vendor=“X.Org Foundation”
[ 599.498] compiled for 1.19.3, module version = 0.4.4
[ 599.498] Module class: X.Org Video Driver
[ 599.498] ABI class: X.Org Video Driver, version 23.0
[ 599.498] (II) FBDEV: driver for framebuffer: fbdev
[ 599.498] (–) using VT number 2

[ 599.529] (WW) Falling back to old probe method for fbdev
[ 599.529] (II) Loading sub module “fbdevhw”
[ 599.530] (II) LoadModule: “fbdevhw”
[ 599.530] (II) Loading /usr/lib64/xorg/modules/libfbdevhw.so
[ 599.530] (II) Module fbdevhw: vendor=“X.Org Foundation”
[ 599.530] compiled for 1.19.3, module version = 0.0.2
[ 599.530] ABI class: X.Org Video Driver, version 23.0
[ 599.531] (II) FBDEV(0): using /dev/fb0
[ 599.531] (II) FBDEV(0): Creating default Display subsection in Screen section
“Default Screen Section” for depth/fbbpp 24/32
[ 599.531] (==) FBDEV(0): Depth 24, (==) framebuffer bpp 32
[ 599.531] (==) FBDEV(0): RGB weight 888
[ 599.531] (==) FBDEV(0): Default visual is TrueColor
[ 599.531] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[ 599.531] (II) FBDEV(0): hardware: (video memory: 1875kB)
[ 599.531] () FBDEV(0): Option “fbdev” “/dev/fb0”
[ 599.531] (II) FBDEV(0): checking modes against framebuffer device…
[ 599.531] (II) FBDEV(0): checking modes against monitor…
[ 599.531] (–) FBDEV(0): Virtual size is 800x600 (pitch 800)
[ 599.531] (
) FBDEV(0): Built-in mode “current”
[ 599.531] (==) FBDEV(0): DPI set to (96, 96)
[ 599.531] (II) Loading sub module “fb”
[ 599.531] (II) LoadModule: “fb”
[ 599.531] (II) Loading /usr/lib64/xorg/modules/libfb.so
[ 599.535] (II) Module fb: vendor=“X.Org Foundation”
[ 599.535] compiled for 1.19.3, module version = 1.0.0
[ 599.535] ABI class: X.Org ANSI C Emulation, version 0.4
[ 599.535] (**) FBDEV(0): using shadow framebuffer
[ 599.535] (II) Loading sub module “shadow”
[ 599.535] (II) LoadModule: “shadow”
[ 599.535] (II) Loading /usr/lib64/xorg/modules/libshadow.so
[ 599.536] (II) Module shadow: vendor=“X.Org Foundation”
[ 599.536] compiled for 1.19.3, module version = 1.1.0
[ 599.536] ABI class: X.Org ANSI C Emulation, version 0.4
[ 599.536] (==) Depth 24 pixmap format is 32 bpp
[ 599.589] (==) FBDEV(0): Backing store enabled
[ 599.589] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument

[ 599.594] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
[ 599.594] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
[ 599.594] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
[ 599.594] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
[ 599.594] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
[ 599.594] (==) FBDEV(0): DPMS enabled
[ 599.595] (==) RandR enabled
[ 599.659] (II) config/udev: Adding input device keys (/dev/input/event0)
[ 599.659] () keys: Applying InputClass “evdev keyboard catchall”
[ 599.659] (
) keys: Applying InputClass “libinput keyboard catchall”
[ 599.659] (II) LoadModule: “libinput”
[ 599.659] (II) Loading /usr/lib64/xorg/modules/input/libinput_drv.so
[ 599.663] (II) Module libinput: vendor=“X.Org Foundation”
[ 599.663] compiled for 1.19.3, module version = 0.23.0
[ 599.663] Module class: X.Org XInput Driver
[ 599.663] ABI class: X.Org XInput driver, version 24.1
[ 599.663] (II) Using input driver ‘libinput’ for ‘keys’
[ 599.663] () keys: always reports core events
[ 599.663] (
) Option “Device” “/dev/input/event0”
[ 599.663] () Option “_source” “server/udev”
[ 599.663] (II) input device ‘keys’, /dev/input/event0 is tagged by udev as: Keyboard
[ 599.663] (II) input device ‘keys’, /dev/input/event0 is a keyboard
[ 599.684] (
) Option “config_info” “udev:/sys/devices/platform/keys/input/input0/event0”
[ 599.684] (II) XINPUT: Adding extended input device “keys” (type: KEYBOARD, id 6)
[ 599.685] (II) input device ‘keys’, /dev/input/event0 is tagged by udev as: Keyboard
[ 599.685] (II) input device ‘keys’, /dev/input/event0 is a keyboard
[ 608.191] (II) UnloadModule: “libinput”
[ 608.333] (II) Server terminated successfully (0). Closing log file.

@Loic To be more specific, we using same config with build 100, then we can startx and show terminal on both two of my LCD displayer, but switch to Build 127 with same LCD displayers, we can not startx. Error log as previous post from my colleague.

Best Regards.
孙国峰

This seems to be a Debian image, but it does not include a Debian kernel, no kernel at all.

Hi @Mrfai,

I think now the discussion is a bit mess in this thread.

Currently we are discussing two different types of rootfs, one is debian and another is Open Embedded rootfs; but there have no official releasing for these two rootfs on Hikey960.

Yes, the debian rootfs has not included kernel image for Hikey960; this is not perfect in practice. We can place kernel image and dtb into boot.img so UEFI can load images and boot system, though this is not general method [1].

[1] https://github.com/96boards-hikey/l-loader/blob/testing/hikey960_v1.2/cc#L223

I’m pretty sure that this does not work. If you have the kernel in the
boot.img you also need the /lib/modules directory in the rootfs to
load kernel modules.

The /lib/modules usually goes into the initial ramdisk, to avoid spoiling the rootfs with multiple module versions.

Just for the record. There’s now a Debian image for the Hikey960
including a 4.15 kernel:
http://snapshots.linaro.org/96boards/hikey/linaro/debian/17/

1 Like

Anyone tried this out yet?

Someone in this thread took it for a spin.

Thank you for the link!

I got it to work as well now.

@leo-yan @Loic Do we have any update on bug https://bugs.96boards.org/show_bug.cgi?id=677; ? I don’t see anyone comment on it or change status after 2018-01-17 it was filed. Does anyone work on it?

@leo-yan This week we tried 134 rpb build and it still looks same with before. Do we have a plan to fix this HDMI issue on rpb build? And after [Bug 677] had been filed, I don’t see any update on it.

Hi @StephenSun,

I didn’t get response for the bug: https://bugs.96boards.org/show_bug.cgi?id=677; and Hikey960 have no official releasing for rpb and debian rootfs, so this is why we have no preceding.

Regard of the hdmi display issue, I found the rpb rootfs image which can display HDMI properly, it has below fbset configurations:

root@hikey960:/etc# fbset

mode "1920x1080"
    geometry 1920 1080 1920 1080 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

But for broken rpb rootfs image, it has below configurations:

root@hikey960:~# fbset

mode "800x600"
    geometry 800 600 800 600 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

And I found I cannot manually change the framebuffer setting by command:

root@hikey960:~# fbset -fb /dev/fb0 -g 1920 1080 1920 1080 16
ioctl FBIOPUT_VSCREENINFO: Invalid argument

I am not familiar with framebuffer/display drivers, I will try to inquire colleagues with related expertise; also very welcome if you have any suggestion for this.

Thanks,
Leo Yan

Thanks a lot @leo-yan for your effort,
I have two questions related to this issue now:

  1. Do you have ever successfully displayed anything based on a recent RPB release (like 121 afterwards)?If none of them then I suggest finding out the latest working RPB release, it may be easier to figure out which commit(s) caused this issue then normal debugging.
  2. Can you tell me how to figure out the actually kernel brance used by RPB build? Recently we have some finding from AOSP side, and we want to have a try on RPB.

Best Regards.
孙国峰

Yes, I tried 123/127, both of them cannot display with my 720p LCD display.

Thanks for @Loic & @fabo pointed me, you could refer the discussion for kernel code base from: Which kernel branch is used by the current RPB 4.14 kernel? - #5 by Loic

Actually rpb building is using git tree is: https://github.com/96boards-hikey/linux/, the last commit id is: 2932b25c8003e773a0b32b52814a5fd17b287567, you could refer the OE morty config file: https://github.com/96boards/meta-96boards/blob/morty/recipes-kernel/linux/linux-hikey960_git.bb.

so, i am am on the following kernel

root@linaro-developer:~# uname -a
Linux linaro-developer 4.15-hikey #1 SMP PREEMPT Sat Mar 10 22:41:04 UTC 2018 aarch64 GNU/Linux

And /dev/fb0 isn’t available

also lsmod shows this:

root@linaro-developer:~# lsmod
Module                  Size  Used by
bnep                   24576  2
arc4                   16384  2
wl18xx                143360  0
wlcore                282624  1 wl18xx
mac80211              421888  2 wl18xx,wlcore
cfg80211              335872  3 wl18xx,wlcore,mac80211
wlcore_sdio            16384  0
hci_uart               65536  0
adv7511                28672  0
cec                    49152  1 adv7511
drm_kms_helper        180224  1 adv7511
drm                   438272  2 adv7511,drm_kms_helper
crc32_ce               16384  0
crct10dif_ce           16384  0
bluetooth             602112  23 hci_uart,bnep
ecdh_generic           24576  2 bluetooth
ip_tables              24576  0
x_tables               40960  1 ip_tables
btrfs                1024000  0
xor                    20480  1 btrfs
zstd_decompress        77824  1 btrfs
zstd_compress         159744  1 btrfs
xxhash                 16384  2 zstd_compress,zstd_decompress
raid6_pq              106496  1 btrfs
root@linaro-developer:~# 

Any ideas, I know it was working earlier for me…

That is weird, this used to work for me as well with a fbdev. However, looking at the code I don’t find where the fbdev is created. All the coder related to FBDEV initialization is commented: https://github.com/96boards-hikey/linux/blob/hikey960-upstream-rebase/drivers/gpu/drm/hisilicon/kirin960/kirin_drm_drv.c#L142 (from initial integration of the driver).

@sumit.garg AFAIK you have a working display with your hikey960/linux, any idea ?