[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] Xen on HiKey



Hello,

my goal is to run Xen on HiKey (LeMaker). I am aware of the instructions
in the Xen wiki: http://wiki.xen.org/wiki/HiKey, which I would like to
recreate. Since, I am new to Xen and ARM many things are not clear for
me and I hope some of you can point me in the right direction.

# This is what I did

### Environment

Debian "Stretch" testing

### Install ARM Toolchain

~~~
host# apt-get install make gcc gcc-aarch64-linux-gnu
gcc-arm-linux-gnueabi git libncurses5-dev python bc mtools
~~~

### Build Xen

~~~
host$ git clone git://xenbits.xen.org/xen.git xen
host$ cd xen
host: ~/xen$ git checkout RELEASE-4.7.0

host$ make xen XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
DEBUG=y CONFIG_EARLY_PRINT=fastmodel
~~~

#### Build Kernel 4.1

~~~
# clone the kernel tree
user@host$ git clone https://github.com/96boards/linux.git 96boards_linux
user@host$ cd 96boards_linux
//this is the android-hikey-linaro-4.1 commit mentioned in the article
user@host: ~/96boards_linux$ git checkout
9e740973c9a71214a5873d2a5de42e5be7522989
user@host: ~/96boards_linux$ git show HEAD

# setup cross build environment
user@host: ~/96boards_linux$ export ARCH="arm64"
user@host: ~/96boards_linux$ export CROSS_COMPILE="aarch64-linux-gnu-"
user@host: ~/96boards_linux$ make hikey_defconfig #optional

# show config file
user@host: ~/96boards_linux$ less .config

# download Xen config file
user@host: ~/96board_linux$ wget
http://xenbits.xen.org/people/sstabellini/config-hikey
user@host: ~/96board_linux$ rm .config #optional
user@host: ~/96board_linux$ mv config-hikey .config

# cross build the kernel
make -j24 Image hisilicon/hi6220-hikey.dtb

# Copy files to SD card (FAT format)
user@host$ sudo dd if=CentOS-7-aarch64-rolling.img of=/dev/sdX bs=4M
user@host$ mkdir efi
//mount efi FAT partition to efi
user@host$ sudo mount /dev/sdX1 efi
user@host$ cd 96board_linux
user@host: ~/96board_linux$ cp arch/arm64/boot/Image ../efi
host: ~$ cd xen
host: ~/xen$ cp xen/xen ../efi
host: ~/xen$ cd ../efi
host: ~$ mv xen xen.efi
//startup.nsh and xen.cfg are from the wiki article
host: ~/efi$ ls
EFI  Image  startup.nsh xen.cfg  xen.efi
~~~

# This is the result

try to start normal linux:

~~~
Shell>
FS0:                                                                    
FS0:\> Image console=ttyAMA3,115200 root=/dev/mmcblk1p4 rootwait rw
efi=noruntie
EFI stub: Booting Linux
Kernel...                                              
EFI stub: Generating empty
DTB                                                 
EFI stub: Exiting boot services and installing virtual address map...

//it stops here and does nothing more
~~~

try to start xen:
~~~
Xen 4.7.0 (c/s Mon Jun 20 11:38:15 2016 +0100 git:9a6cc4f) EFI loader
Using configuration file 'xen.cfg'
Image: 0x0000000079fd0000-0x000000007acb8c00

//it stops here and does nothing more
~~~

# Questions:

1. I used `xen XEN_TARGET_ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
DEBUG=y CONFIG_EARLY_PRINT=fastmodel` to build Xen. I am not sure if
this is correct, especially the `CONFIG_EARLY_PRINT=fastmodel`
parameter. Can you point me to the right command?

2. I did not use the `CentOS-7-aarch64-rootfs-1606.tar.xz` mentioned in
the article, mainly because I did not understand how to use it. I used
instead `CentOS-7-aarch64-rolling.img.xz`. Does this make a difference
and how to use the rootfs instead?

3. I simply renamed the binary `xen` to `xen.efi`. Does this work or do
I have to compile xen with different parameters?

4. I am not sure if I placed the startup.nsh, xen.efi, xen.cfg and Image
(kernel) files in the right place?

in addition I would be happy to know about any other hint of things I
did wrong. 

Best regards
  J. Eppler



_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
https://lists.xen.org/xen-users

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.