Notes on Hikey960
About the board. Pros: OPTEE support; Arm Mali; run Debian (community support)
Cons: lots of hardware quirks. Not easy to buy
Goal: Linux kernel development on Hikey960 with Debian support. (not AOSP)
Flash debian
follow the tutorial here https://wiki.debian.org/InstallingDebianOn/96Boards/HiKey960
except using the newest UEFI. download all files there. https://snapshots.linaro.org/reference-platform/components/uefi-staging/107/hikey960/debug/ (and config file is correct)
OS: * boot-linaro-stretch-developer-hikey-20200720-48.img * rootfs-linaro-stretch-developer-hikey-20200720-48.img
Serial
Note: it's 1.8v (not 3.3v). Will need an adapter that supports 1.8v. Can bought one from Amazon.
![]() |
![]() |
![]() |
---|---|---|
Wifi
use nmtui
Console display issue
Install ser2net. Use telnet as the console since UEFI will output window that fails to display in minicom.
$sudo apt-get install ser2net
# Configure ser2net.
$sudo vi /etc/ser2net.conf
# Append one line for serial-over-USB in #ser2net.conf
2004:telnet:0:/dev/ttyUSB0:115200 8DATABITS NONE 1STOPBIT banner
# Start ser2net
$sudo killall ser2net
$sudo ser2net -u
# Open the console.
$telnet localhost 2004
And you could open the console remotely, too.
USB
hikey960 ethernet over USBC --> pretty much usb2.0 speed
------------------------------------------------------------
[ 3] local 10.42.0.2 port 55184 connected with 10.42.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 405 MBytes 340 Mbits/sec
Custom kernel compilation
kernel: hikey-4.19.5. Config from the Debian 9 image. May want to set DEV_MEM_STRICT=no
for hacking
cross compilation
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make -j24 bindeb-pkg LOCALVERSION=xzl
After the compilation, in the directory one level above the kernel source tree, you will get:
-
linux-image-xxx.deb, a Debian package with the kernel and modules
-
linux-headers-xxx.deb, a Debian package with kernel headers (not needed mostly)
Build the Bifrost kernel module (Arm mali)
make all KDIR=/usr/src/linux-headers-$(uname -r) CONFIG_MALI_MIDGARD=m CONFIG_MALI_GATOR_SUPPORT=y CONFIG_MALI_MIDGARD_DVFS=y CONFIG_MALI_EXPERT=y CONFIG_MALI_PLATFORM_FAKE=y CONFIG_MALI_PLATFORM_THIRDPARTY=y CONFIG_MALI_PLATFORM_THIRDPARTY_NAME=devicetree
cf: https://www.96boards.org/documentation/consumer/hikey/hikey960/guides/openCL-support.md.html
What works?
boot from sd card (debian SD images). 4.19 kernel * stock (coming with the debian SD image), i.e. *.sd * custom (4.19.5 + config.gz from the debian stock kernel). source: hikey-4.19.5.tar.gz both have usb working (and ethernet!)
root@linaro-developer:~# lsusb
Bus 002 Device 003: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 002: ID 0424:5734 Standard Microsystems Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0424:2740 Standard Microsystems Corp.
Bus 001 Device 002: ID 0424:2734 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
NOTE: must unplug the usbc cable. custom kernel. built & installed as a deb package UFS: debian images + custom kernel? not tried.
What does not work
- boot from internal flash (debian images loaded via fastboot). 4.19 kernel.
- usb seems broken. (lsusb shows nothing)
Install GPU driver and OpenCL
https://www.96boards.org/documentation/consumer/hikey/hikey960/guides/openCL-support.md.html