Hi everybody,

I'm on this subject for some times now, and I'm stuck. I'll first really 
simply describe what I did, and "how" it doesn't work.

*Building the most "generic" or "mainline" Android as possible 
(android-9.0.0_r34 / aosp_x86_64-eng) :*

   - PATH=~/bin:$PATH
   - repo init -u https://android.googlesource.com/platform/manifest -b 
   android-9.0.0_r34
   - repo sync
   - source build/envsetup.sh
   - lunch aosp_x86_64-eng
   - make -j 8

*Running it on QEMU-KVM*

I'm using the Kernel delivered inside the "out" folder, which is 4.4. I 
successfully booted Debian with it on KVM (even if I just had command line 
instead of graphic display, probably because of Xorg drivers of Debian). 
It's able to see /dev/vdX disks but cannot see /dev/sdX disks. It has some 
importance for the KVM parameters about disk mounting (drives parameters 
are little bit longer)




*kvm     -m 2048     -smp 4 *

*    -vga std *







*    -kernel kernel-ranchu     -append "console=ttyS0 debug drm.debug=0x0 
androidboot.selinux=permissive androidboot.hardware=ranchu"     -serial 
mon:stdio     -initrd ramdisk.img     -drive 
format=raw,index=0,if=none,id=system,file=system.img -device 
virtio-blk-pci,drive=system     -drive 
format=raw,index=1,if=none,id=userdata,file=userdata.img -device 
virtio-blk-pci,drive=userdata     -drive 
format=raw,index=2,if=none,id=cache,file=cache.img -device 
virtio-blk-pci,drive=cache     -drive 
format=raw,index=3,if=none,id=vendor,file=vendor.img -device 
virtio-blk-pci,drive=vendor*

(in reality it's a biiiig command line so it's easier to see when I split 
it).

It makes volumes available this way :

   1. system beeing /dev/vda
   2. userdata beeing /dev/vdb
   3. cache beeing /dev/vdc
   4. vendor beeing /dev/vdd

*It cannot boot fine :*
It stops at failing to load the "/sepolicy" file that we are usually able 
to find at the root of the ramdisk.img : this file is missing and it stops.
With or without the 4 drives it makes no difference, since the file is 
missing from ramdisk.img, so I guess "mounting" would happen later.

[    1.163969] init: init first stage started!
[    1.164537] init: Using Android DT directory 
/proc/device-tree/firmware/android/
[    1.165485] init: First stage mount skipped (missing/incompatible fstab 
in device tree)
[    1.166509] init: Skipped setting INIT_AVB_VERSION (not in recovery mode)
*[    1.167318] init: Loading SELinux policy*
[    1.167824] selinux: SELinux:  Could not open /sepolicy:  No such file 
or directory
[    1.167824] 
[    1.168978] init: Failed to load monolithic SELinux policy: No such file 
or directory
[    1.169934] init: Unable to load SELinux policy
[    1.170490] init: Reboot start, reason: reboot, rebootTarget: bootloader
[    1.171292] init[1]: segfault at 14 ip 0000000000565e30 sp 
00007ffcfd4651e0 error 4 in init[400000+22a000]
[    1.172452] init: Reboot ending, jumping to kernel
[    1.173023] Unregister pv shared memory for cpu 0
[    1.173024] Unregister pv shared memory for cpu 2
[    1.173043] Unregister pv shared memory for cpu 3
[    1.174913] Unregister pv shared memory for cpu 1
[    1.176075] reboot: Restarting system with command 'bootloader'
[    1.176804] reboot: machine restart


*What I already tried :*

   - aosp_cf_x86_64_tablet-userdebug - img files and Kernel, same problem
   - aosp_cf_x86_64_tv-userdebug - img files and Kernel,same problem
   - android-4.19 kernel (x86_64_defconfig with support of /dev/sdX but not 
   /dev/vdX) - works fine with Debian but no change when booting Android
   - android-4.19 kernel (x86_64_defconfig edited for adding support of 
   /dev/vdX too) - works fine with Debian but no change when booting Android

*Do you know what I'm missing ?*
>From https://source.android.com/setup/build/building we can read the 
following :
*AOSP cannot be used from pure source code only and requires additional 
hardware-related proprietary libraries to run, such as for hardware 
graphics acceleration. See the sections below for download links and Device 
binaries for additional resources.*
My understanding is that of course, for a real world device, specific 
drivers should probably be added. But for KVM / QEMU too ?

At "lunch" command, hikey and google devices builds are complete and 
including the missing files, without adding any command.
Also, for Sony devices, some commands are added between repo init and repo 
sync :

   - cd .repo
   - git clone https://github.com/sonyxperiadev/local_manifests
   - cd local_manifests
   - git checkout android-9.0.0_r34
   - cd ../..

Is something like that mandatory for running on a standard KVM ? Or 
laptop/device on which every driver is included into the mainline kernel ?
If so, is this a Google/Android thing, or Linaro ? Or something completely 
custom and unofficial ? (and where to find it)

Thank you in advance ! For now, I'm completely stuck ;)

Julien ROBIN

-- 
-- 
You received this message because you are subscribed to the "Android Building" 
mailing list.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-building?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"Android Building" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to