Skip to content

Problems with building a 4.8/4.9 kernel in 64bit mode, bad file format for "Image" #1788

Closed
@DieterReuter

Description

@DieterReuter

I try to build a 64bit kernel for RPi3. Building is just easy and straight forward, but the resulting Image kernel image cannot be booted at all. It seems the generated file format is just wrong, but I don't have any glue how to resolve it.

This kernel is my build result which won't boot at all:

$ ls -al Image
-rwxr-xr-x  1 dieter  staff  9525760 Jan 10 23:40 Image

$ file Image
Image: MS-DOS executable, MZ for MS-DOS

$ xxd Image | head -10
00000000: 4d5a 0091 ff3f 1e14 0000 0800 0000 0000  MZ...?..........
00000010: 00c0 9d00 0000 0000 0a00 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 4152 4d64 4000 0000  ........ARMd@...
00000040: 5045 0000 64aa 0200 0000 0000 0000 0000  PE..d...........
00000050: 0100 0000 a000 0602 0b02 0214 00b0 9d00  ................
00000060: 0000 0000 0000 0000 204f 7900 0010 0000  ........ Oy.....
00000070: 0000 0000 0000 0000 0010 0000 0002 0000  ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000090: 00c0 9d00 0010 0000 0000 0000 0a00 0000  ................

If I compare it with a running kernel from this tarball http://www.tom-yam.or.jp/rpi3/rpi3-arm64-debian-20160414.img.xz from this forum thread, I get the following file format:

$ ls -al Image
-rwxr-xr-x  1 dieter  staff  9513920 Jan 10 17:55 Image

$ file Image
Image: data

$ xxd Image | head -10
00000000: 1000 0014 0000 0000 0000 0800 0000 0000  ................
00000010: 0040 9500 0000 0000 0200 0000 0000 0000  .@..............
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 4152 4d64 0000 0000  ........ARMd....
00000040: 0900 0094 e703 0094 18fc ff90 2104 0094  ............!...
00000050: 0d00 0094 7b0b 0058 be2e 0090 de03 0091  ....{..X........
00000060: 7853 0014 f503 00aa 2045 00d0 0000 0291  xS...... E......
00000070: 1504 00a9 020c 01a9 bf3f 03d5 0180 0091  .........?......
00000080: 604e 0014 794a 00f0 9a4a 00d0 fb03 1eaa  `N..yJ...J......
00000090: e003 19aa 410b 4091 5a4e 0094 e003 19aa  [email protected]......

Both kernels have rougly the same size, but different file format.

Any help or pointer greatly appreciated.

And here are my building steps, just to make sure there's no wrong configuration:

# Ubuntu 16.10
apt-get update
apt-get install -y bc build-essential gcc-aarch64-linux-gnu git

# Clone kernel source
git clone --depth 1 https://www.github.com/raspberrypi/linux -b rpi-4.8.y
cd ./linux

# Compile kernel
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
make bcmrpi3_defconfig
make -j 8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions