Error occurs druing procedures of installing Debian

I recently bought hikey960 and installed firmware.

During procedure, I can’t load boot file after reboot. (it falls into infinity loop(waiting for device)

I have read all the official document, but tecinical support wasn’t that helpful.

I installed android firwamre since there is no Linux firwamre, (beside UEFI, I don’t know what this is, but I have tried it and it does not work.)

$ sudo fastboot flash ptable prm_ptable.img
$ sudo fastboot flash fastboot l-loader.bin
$ sudo fastboot flash fip fip.bin
$ sudo fastboot reboot-bootloader
after reboot is finished, even sudo fastboot devices does not work(shows nothing)
$ sudo fastboot flash boot boot-linaro-stretch-developer-hikey-.img
$ sudo fastboot flash system rootfs-linaro-stretch-developer-hikey-

Do i need to install another firmware? other than,

or I need to take a different step for installing Debian, other than taking a step by official document?
anybody idea?
Thank you in advance

Can you please provide DIP Switches 1-3 on hikey960 status?

I tried DIP switches 1, 2 On and switch 3 off when installing firmware, and when installing OS, switch 1 (auto boot) on , switch 2 (recovery mode off, apparently, it is written as boot mode on the board) off, switch 3(fast boot mode, apparently it is written as ext boot on the board) on (I tried siwtch 3 on and of at installing debian).

As long as the procedure on the official document is correct, it should work because I tried it more than 10times repeating steps from installing firmware to installing OS, but it always gets stuck in reboot. ( terminal message says reboot has been successfully finished but I can’t take a next step because it falls in to an infinity loop says wating for a device …)

add *
I tried installing AOSP, and it works fine,

but only debain does not work.

can you guys help me out here?

this is exactly what happens when installing OS(debian)

Try again without sudo fastboot reboot-bootloader, i.e. sudo fastboot flash fip fip.bin and then immediately after that sudo fastboot flash boot boot-linaro-stretch-developer-hikey-*.img.

I did try it. it installs without any problem, but it does not boot after installing. I think rebooting is neccessary

I assume you downloaded Debian images from Make sure your downloaded files are not corrupted. Also make sure you don’t reuse any images of the same name from Android download.

After that, try this. Power off board. Set DIP switches 1,2 on 3 off.

git clone
cd tools-images-hikey960

# Download

ln -sf <path to your downloaded>/l-loader.bin #for Debian
ln -sf <path to your downloaded>/fip.bin #for Debian

vi config

# The content of config file
./hisi-sec_usb_xloader.img 0x00020000
./hisi-sec_uce_boot.img 0x6A908000
./recovery.bin 0x1AC00000

sudo apt-get purge modemmanager

# Power on board

sudo ./hikey_idt -c config -p /dev/ttyUSB1 #or the proper number for your /dev/ttyUSB connection

If you see . displayed on console, press ‘f’ on keyboard.

sudo fastboot flash ptable prm_ptable.img
sudo fastboot flash xloader hisi-sec_xloader.img
sudo fastboot flash fastboot l-loader.bin
sudo fastboot flash fip fip.bin
sudo fastboot flash boot boot-linaro-stretch-developer-hikey-*.img
sudo fastboot flash system rootfs-linaro-stretch-developer-hikey-*.img

Power off board. Set DIP switch 2 off. Power on board.

Good luck.

Hello. I just applied your method.

The problem occurs :: I had not edited config file since it was not written on official document, but I tried and it did not go well.

after ./recovery.bin

it falls into an endless loop ( waiting for device…) again

Where did this ./recovery.bin come from?

I thought it is supposed to be “./hisi-sec_fastboot.img 0x1AC00000” as it is not mentioned by among the files in folder.

Do you actually have to apply ./recovery.bin instead of that I mentioned above?

and the wired thing is that sometimes, even if I keep the switch 2 on (recovery mode on), during the procedure, LED brights itself even if I do not switch buttons, ( switch 1 on 2 on 3 off)

Is it automatically turning on when installing firmware and OS? or something went wrong on my device?

Please… I am struggling with this for more than you would ever expect …

@1119 Can you please share serial console logs?


Hi there,

First one, I tried with hisi-sec_fastboot.img 0x1AC00000


Second one, tried with recovery.bin

@1119 I mean to say console logs via 96boards uart mezzanine adaptor?


Hi there, sorry for late reply,

After you mentioned uart, I re-installed it with UART,

I am not too sure if the installation was successful or not, because there is nothing in debian but a console window.

Is is normal not being able to connect usb and HDMI because it does not have drivers??

@1119 Yes this debian image doesn’t have support for USB and HDMI drivers. You could install custom kernel image by replacing /boot/vmlinuz-4.15-hikey image to have support for these drivers.


Thanks for your help

It helped me a lot.

Last question, Can you give me a hint or address to replace it?

Is it the one called rbp wayland??

what are people generally using?

Use to build kernel image.

You will get “Image.gz” after compilation which should be used to replace /boot/vmlinuz-4.15-hikey image.

And for device tree, you will get hi3660-hikey960.dtb image. Place this image in “/boot/” directory. Reboot and press “e” when you get GRUB menu. Just add following line in the configuration:

devicetree /boot/hi3660-hikey960.dtb

this doesn’t work, I replaced these two files with my own compiled, then I cannot login in, need passwd:

For RPB release from Linaro snapshot folder, the usually the root user’s password is “root” or just empty.

thanks leo-yan, for the 3.14, cannot login in with root, now i am using 4.18, it works.
I can login in with root.
but from booting log, i got this error:
[FAILED] Failed to start Load Kernel Modules.
do you know how to fix this?

After upgrade new version kernel, the rootFS doesn’t include corresponding kernel modules, you could refer the link for the detailed steps to build and install kernel modules on the target board: