Discussion

Some question about Hikey

10 1270
Edited by tony_zhang at Feb 05, 2016 07:32

These days, we have receive some questions about Hikey, and we LeMaker and Linaro has some comment on these questions, hope they can help everyone. Below is the questions, I will list one by one.

1. The HiKey installation process cannot use the regular arm64 debian-installer. The main arm64 arch for Debian should work mostly for userland, but lacks kernel, hardware modules and (possibly) boot loader. Apart from this, Debian main is fine. WLAN support is also not included in standard firmware images and tools.

2a. Linux kernel must be Linaro. Stock Debian linux kernel for amd64 won’t do. Not even the testing/unstable versions. patches are publically available, yet not actively proposed at kernel.org for including them into vanilla linux, are they? This however only covers (most) of the hardware, not necessarily the CPU and mainboard itself (i.e. it might boot, just not have any hardware to install on).
2b. since Linarno patches aren’t (yet) pushed back upstream (i.e. linux on kernel.org), my [kernel] security status is mainly dependent on what Linaro gives me. it doesn’t look like they have a security announcement mailinglist to subscribe to, do they? Does LeMaker have one? Since the LeMaker HiKey has its own patches, are they mainly maintained by LeMaker or by Linaro?

3. Bootloader seems to have custom parts that are not (yet) included in the usual upstream(s)? I don’t really see (in the given document) what is different in the GRUB on 96boards.org compared to the one in Debian. What will not be working (correctly) when using the regular one shipped in Debian? Is the custom bootloader in the doc just relevant for supporting secure boot?

4. fastboot is optional as long as I use GRUB on eMMC or boot from SD card,right?Alright. So fastboot is entirely not needed when not using Android?

5. Updating eMMC parts requires me to flash from another computer and cannot be updated online while booted into eMMC? Or if online updating is supported, what files would need to be written where to make sure the HiKey will survive a reboot after this? Losing all of my files, settings, SSH host keys etc. for every new OS release doesn’t seem to be the correct answer. Rather installing Debian updates the “normal” way and putting new kernels, bootloaders and kernel modules in-place where they belong. Is this planned for the future releases?

6. Supporting WLAN requires a custom kernel module and firmware from 96boards.org. Same question for security support, announcement mailinglist and pushing these upstream into linux and the Debian firmware package as above. Any reasons not to?

7. Linaro modified “android-tools-fsutils” is recommended. What will not work when using the regular one?

8. Practically all of the docs only refer to cross compiling while the HiKey should have enough CPU and RAM to be able to compile simple stuff itself. Is the thermal control not enabled by default or what’s the reason behind this?

9. HDMI sound is already reported feasible but not yet officially supported by neither LeMaker nor Linaro/96boards.org.
1. The HiKey installation process cannot use the regular arm64 debian-installer. The main arm64 arch for Debian should work mostly for userland, but lacks kernel, hardware modules and (possibly) boot loader. Apart from this, Debian main is fine. WLAN support is also not included in standard firmware images and tools.


Not yet :-) The plans for the reference platform kernel is to be provided as a normal kernel package, to also include support for the debian-installer (which is already the case for EE, tested on Overdrive and D02).

We’re building up the unified 4.4 kernel that will allow us to also provide a debian-installer experience for HiKey.

Hope to have more news on that over the next few weeks.

And now we need refer to:
Kernel and rootfs: https://github.com/96boards/docu ... ted#debian-linux-os
Bootloader: https://github.com/96boards/docu ... alling-a-bootloader

Edited by tony_zhang at Feb 05, 2016 07:40
2a. Linux kernel must be Linaro. Stock Debian linux kernel for amd64 won’t do. Not even the testing/unstable versions. patches are publically available, yet not actively proposed at kernel.org for including them into vanilla linux, are they? This however only covers (most) of the hardware, not necessarily the CPU and mainboard itself (i.e. it might boot, just not have any hardware to install on).

For proper support you still need to use the Linaro kernel, but this will change over time. There is a big effort into upstreaming the support, so we should have more for 4.5/4.6.

Meanwhile, the reference kernel will provide support for every board in 96boards, including topic-branches for the board-specific patches, so anyone can easily consume and integrate them as part of a distro kernel.

Debian upstream support will come soon, when we get a reduced set of patches (then we just require config changes).

Now for the tftpboot, there was an internal effort to allow UEFI to boot from usb, which would allow other boot methods, but not yet sure what is the status of that.

At now the kernel source is in https://github.com/96boards/linux , it is 3.18 kernel.
We are keeping a mainline targeting branch here: https://github.com/96boards-hikey/linux/tree/hikey-mainline-rebase
The RPB 15.12 is here https://github.com/96boards/docu ... B-HiKey-15.12-Build

2b. since Linarno patches aren’t (yet) pushed back upstream (i.e. linux on kernel.org), my [kernel] security status is mainly dependent on what Linaro gives me. it doesn’t look like they have a security announcement mailinglist to subscribe to, do they? Does LeMaker have one? Since the LeMaker HiKey has its own patches, are they mainly maintained by LeMaker or by Linaro?


You could use the LSK 4.4 kernel + the minimal set of patches required for HiKey to work properly, if security is what concerns you (but you would need to maintain your own kernel).

We do not have a dedicated security announcement mailinglist but but our policy is to follow the LTS kernel and latest kernel on the kernel.org to have security fixes and bug fixes as much as possible.

3. Bootloader seems to have custom parts that are not (yet) included in the usual upstream(s)? I don’t really see (in the given document) what is different in the GRUB on 96boards.org compared to the one in Debian. What will not be working (correctly) when using the regular one shipped in Debian? Is the custom bootloader in the doc just relevant for supporting secure boot?


UEFI bootloader is still under development, the method and source code link can be found from https://github.com/96boards/documentation/wiki/HiKeyUEFI . The doc now is not ready.

The ultimate goal of Linaro and the Reference Software Platform for the 96Boards is to have single regular installer for Aarch64 debian-installer to be able to install Debian to all 96Boards.
However, for the historical reason of Linux on ARM that every single boards required dedicated bootloader, kernel and userland which requires huge amount of work to consolidated them and unifying them.
Introducing UEFI on 96Boards is one of the process of unifying them so the single image could install and run on all 96Boards.
Unfortunately the unification is not completed yet, and I really appreciate your patience.
Our future will be bright when the work is done.

There is an ongoing effort to upstream the hikey UEFI support (using pure edk2 + openplatformpkg, maintained by Linaro), but that is not yet completed. Once done, we can then easily integrate the firmware as part of any distribution (which should hopefully be completed soon).

Now for grub, the only change we have is that we are using the latest version from debian unstable, since that provides PXE fixes from upstream.

4. fastboot is optional as long as I use GRUB on eMMC or boot from SD card,right?Alright. So fastboot is entirely not needed when not using Android?


NOTE that the June 2015 release comes with a fastboot bootloader based on HiSilicon code. It is deprecated and will not be supported in the upcoming releases.

5. Updating eMMC parts requires me to flash from another computer and cannot be updated online while booted into eMMC? Or if online updating is supported, what files would need to be written where to make sure the HiKey will survive a reboot after this? Losing all of my files, settings, SSH host keys etc. for every new OS release doesn’t seem to be the correct answer. Rather installing Debian updates the “normal” way and putting new kernels, bootloaders and kernel modules in-place where they belong. Is this planned for the future releases?

Now, it cannot be updated online. But you can use dd or copy command to update by SD card.
e.g.
  1. dd if=<path>/boot-fat.uefi.img of=/dev/mmcblk0p6 bs=1M
  2. copy zImage /boot/
  3. copy *.ko /lib/modules/
Copy the Code

Partition Information: https://github.com/96boards/docu ... rtition-information

But once we get the unified kernel in place, you will be able to install it with apt-get update/upgrade.

For firmware (UEFI), we don’t expect that to change much once we get the support in upstream, and the only way for the distro to safely update that would be with UEFI capsule (besides running dd in a specific location, but that can easily break your boot if something bad happens).

6. Supporting WLAN requires a custom kernel module and firmware from 96boards.org. Same question for security support, announcement mailinglist and pushing these upstream into linux and the Debian firmware package as above. Any reasons not to?


The WLAN module and firmware are provided by TI, please refer to http://www.ti.com/product/WL1835MOD
With the latest kernel (4.4) you don’t need a custom module anymore, but firmware will still be required.

8. Practically all of the docs only refer to cross compiling while the HiKey should have enough CPU and RAM to be able to compile simple stuff itself. Is the thermal control not enabled by default or what’s the reason behind this?


Will raise this point to our tech writer (which was just hired), so we should be able to get this fixed soon.

Hi Tony,
Thanks for info. I have one question as well...
I have installed Ubuntu based OS on HiKey successfully. The FrameBuffer shows the display output and I could get into login prompt.
I could also enable WIFI on HiKey as well so I have access to Internet too.
I tried to install a Desktop on my OS but lightdm crashes and cannot load.
Is that because of graphic driver or framwbuffer issue?
is there any point about this that the Xserver does not work on other OS than Linaro Debian?

I would appreciate if you give some h int about this too..

Kind regards,

Saeid,
ELAR-Systems

You have to log in before you can reply Login | Sign Up

Points Rules