gumdroid / manifest

This repository provides Repo manifests to build Android for Gumstix products.
0 stars 3 forks source link

*** No rule to make target `sgx' #9

Open chavhector opened 8 years ago

chavhector commented 8 years ago

Hello,

Following the steps at "https://github.com/gumdroid/manifest" to build Android for an Arbor 43C + Overo Firestorm using an Ubuntu 14.04.03 LTS machine results in an error, these are the commands I executed:

$ repo init -u git://github.com/gumdroid/manifest.git -b dev/overo $ repo sync -f $ source build/envsetup.sh $ lunch overo-eng $ make -j4 gumstix $ make -j4 uboot linux $ make -j4 sgx (this didn't run sucessfully)

Below is the output of the command:

PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.3 TARGET_PRODUCT=overo TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=generic HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-3.19.0-43-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=JLS36G

OUT_DIR=out

make: *\ No rule to make target `sgx'. Stop.

Is there a patch available to enable SGX for the dev/overo branch?

ashcharles commented 8 years ago

It looks like there is a mismatch between the documentation (make sgx) and the current makefiles which use slightly more fine-grained names for the makefile targets such as sgx_km and sgx_userspace_blobs. I recommend simply 'make -j8 gumstix' to generate a full system image. That said, I'll leave this issue open as the documentation does need an update.

chavhector commented 8 years ago

Ashcharles:

Does the build created with 'make -j4 gumstimx' supports the OpenGL POWER SGX Graphics Accelerator? In case it does not, can you provide any pointers to where I can find a solution? Thank you.

ashcharles commented 8 years ago

On the dev/overo branch, SGX gets built.

chavhector commented 8 years ago

Ashcharles: Forgot to ask whether this build supports the C64x Fixed Point DSP included in the Overo Firestorm. Thanks.

ashcharles commented 8 years ago

It does not---but contributions are welcome :)

chavhector commented 8 years ago

Ashcharles, This is more a question than an issue: Which Android version is generated by the procedure and what kernel version is used? Is there a file with these data? Thank you.

ashcharles commented 8 years ago

Jellybean (4.3 if i recall correctly---full version data is printed at the start of a build). Kernel for overo on the dev branch is 2.6.37 (or 2.6.39, the top-level kernel Makefile contains version data).

chavhector commented 8 years ago

Ashcharles,

Continuing with the Android build, I am still having issues when I try to create the bootable SD card. I ran these commands:

$ repo init -u git://github.com/gumdroid/manifest.git -b dev/overo $ repo sync -f $ source build/envsetup.sh $ lunch overo-eng $ make -j4 gumstix $ make -j4 uboot linux

ISSUE 1: I found a mismatch in the files expected to be created at step 6 (6. Make a Bootable SD Card) of the documentation. In my build, under directory "out/target/product/overo/boot" these are the gerated files: ./boot ├── MLO ├── u-boot.img ├── uEnv.txt ├── uInitrd

Files "cmdline" and "uImage" are missing. What am I missing to build them?

ISSUE 2: Under directory "out/target/product/overo/" the "./boot.tar.bz2" file is missing

Can I still create a bootable SD card without these missing files? I tried to run the mkandroidsd script and it report errors.

ashcharles commented 8 years ago

Is a boot.tar.bz2 available after doing just a 'make -j4 gumstix' (no 'make -j4 uboot linux' needed)? It is possible to re-creating the boot tarball using 'make boottarball'. Do you notice any errors when compiling linux?

chavhector commented 8 years ago

Ashcharles,

I checked the directories contents right after I ran "make -j4 gumstix" and the files were not in place, I ran the extra command "make -j4 uboot linux" to ensure I was not missing it but the files were still not there.

I have just run "make boottarball" and now I can see these files: ./boot ├── 2ndbootloader ├── cmdline (this one was missing, now it has been generated) ├── kernel ├── MLO ├── ramdisk.img ├── u-boot.img ├── uEnv.txt ├── uInitrd

Still no "uImage" is generated

At "out/target/product/overo/" now I can see the missing "boot.tar.bz2"

None of the commands finished with errors.

ashcharles commented 8 years ago

I suspect this build it using a zImage (in the system partition) instead of a uImage.

chavhector commented 8 years ago

I did a search for zImage and this is what I've found:

./out/target/product/overo/obj/KERNEL_OBJ/arch/arm/boot/zImage ./out/target/product/overo/system/boot/zImage

Do I need to modify the "mkandroidsd" to create the bootable SD card?

ashcharles commented 8 years ago

IIRC, mkandroidsd doesn't require a uImage---it should be happy with the boot tarball as constructed.

chavhector commented 8 years ago

Hello Ashcharles,

I managed to create an SD card using the commands inside the "mkandroidsd" script (running the script solely was unsucessful due to some errors it generated, so I ran each command one at the time).

My hardware settings are: COM: Overo Airstorm-P Board: Arbor 43C Newhaven 5” display (first attempt) Newhaven 4.3” display (second attempt)

When I power up the board, nothing happens, just a blank black screen for the 5" display and a blank white for the 4.3" display. How can I know why it is not starting?

Thanks.

ashcharles commented 8 years ago

I recommend connecting to the console port on the board to see where it it failing. Some work will be needed to support this combination of boards (in particular, the screens).

chavhector commented 8 years ago

Are these Newhaven displays supported in the build? Can you confirm?

With which hardware settings have you been able to run Android with Overo?

ashcharles commented 8 years ago

I don't believe these displays are supported on Overo---it would be necessary to pull some of the settings for the displays from a newer kernel as well as the driver for the the cap. touch controller.

chavhector commented 8 years ago

Ashcharles,

Basically I have 3 issues now that I hope you can assist me with:

  1. Do you have documented somewhere how did you "androidized" the Kernel (2.6.37) used for this build?
  2. I have attached the console output of the boot process but I can't figure out what information from the log is useful. Can you provide some hints?
  3. Another thing I tried is that I am using a succesful Yocto/Poky build and I tried to compile the Android build with this procedure:
    a. Ran a Yocto/Poky build with kernel v3.18.18 (full support of the arbor 43C board) plus a patch with the 4.3" Newhaven Display Driver. b. Copied the generated .config file from the Yocto/Poky build and pasted it at /kernel/.config c. Ran make -j4 gumstix but it finishes with errors. How can I pull the settings from this Yocto/Poky Kernel to the Android Kernel?

Thank you. screenlog4.7part1.txt

ashcharles commented 8 years ago
  1. No, I don't have such a document as I didn't do the Androidization. This kernel is coming from the Rowboat project from TI.
  2. There is a lot going on in that console log---both ECC errors as well as kernel backtraces. I recommend clearing the NAND flash if you need to use older ECC 1-bit schemes.
  3. These are dramatically different kernel versions so the configurations will not be compatible. Additionally, board support is not just captured in the defconfig but also in a board file (in the case of a 2.6.37 kernel) or a device tree (in the case of a 3.18 kernel).

Perhaps Yocto is a better starting point for your development than Android?

chavhector commented 8 years ago

Ashcharles,

Another members of my team have managed to complete our development with Yocto.

During these days I tried AOSP branch android-4.4.4_r2 and I was able to generate an android-3.18.18 kernel and created an SD card but the system (Arbor43C + Newhaven 4.3" Display + Overo Airstorm) did't boot, getting stuck at "Loading Kernel ..."

We decided to return to the gumdroid approach since it finishes loading the kernel, but after a close inspection of the log, we noticed this error when we start the system:

shell@overo:/ $ init: untracked pid 1049 exited Unhandled fault: external abort on non-linefetch (0x1008) at 0xe0960014 Internal error: : 1008 [#1] last sysfs file: /sys/devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:e624/block/mmcblk0/mmcblk0p4/uevent Modules linked in: omaplfb pvrsrvkm CPU: 0 Not tainted (2.6.37-g314f28e #1)

If you notice, the first line the system tries to enable a shell (shell@overo) but suddenly, the "init: untracked pid1049 exited" message is displayed, and after that, comes this message:

Unhandled fault: external abort on non-linefetch (0x1008) at 0xe0960014 Internal error: : 1008 [#1] last sysfs file: /sys/devices/platform/mmci-omap-hs.0/mmc_host/mmc0/mmc0:e624/block/mmcblk0/mmcblk0p4/uevent Modules linked in: omaplfb pvrsrvkm CPU: 0 Not tainted (2.6.37-g314f28e #1)

I looked for modules omaplfb and pvrsrvkm and found those modules are esponsible for interfacing to the platform FrameBuffer driver and interfacing PVR services layer.

Do you have any idea how this can be fixed?

yangjiel commented 7 years ago

One advice for your first problem is to turn on the low level debugging then you will see the debug message after Loading Kernel ... It is most likely you did not remove the uEnv.txt.