While re-playing with official emulator - and taking a look at Android 10 
by the way ;) I noticed that the ramdisk.img of the emulator does't contain 
/sepolicy file, and it looks like Emulator still succeeds to get it booting 
: so the missing files that makes QEMU-KVM to fail is not really missing, 
it can be avoided and work fine ?

It tends to indicates that the standard generic build android-9.0.0_r34 / 
aosp_x86_64-eng is probably fine and can be booted in some way. But how...

By running the emulator by command line, and adding a magic parameter, I 
got information about the way the Kernel and the others things are loaded 
by the emulator

*./emulator -avd Eve_API_Q -show-kernel*

For example :

[    0.000000] Kernel command line: nopti qemu=1 no_timer_check androidboot.
hardware=ranchu androidboot.serialno=EMULATOR28X0X23X0 clocksource=pit 
no-kvmclock 
console=ttyS0,38400 android.qemud=1 android.checkjni=1 qemu.gles=1 qemu.
encrypt=1 qemu.opengles.version=131072 cma=288M@0-4G qemu.wifi=1 
mac80211_hwsim.channels=2 androidboot.android_dt_dir=/proc/device-tree/
firmware/android/ skip_initramfs rootwait ro init=/init loop.max_part=7 
dm="1 vroot none ro 1,0 5156696 verity 1 
PARTUUID=1F043BE6-7A8C-43B6-8531-70B6C93CBBDC 
PARTUUID=1F043BE6-7A8C-43B6-8531-70B6C93CBBDC 4096 4096 644587 644587 sha1 
926f02610018cd908ac13bfe96c403b304344292 
02da5c0c5c30a948ae740375556f4bf37fc8a052 1 ignore_zero_blocks" 
androidboot.veritymode=enforcing androidboot.verifiedbootstate=orange root=/
dev/dm-0 ramoops.mem_address=0xff018000 ramoops.mem_size=0x10000 memmap=
0x10000$0xff018000 qemu.dalvik.vm.heapsize=384m mac80211_hwsim.mac_prefix=
5554

But it's really tough. I'll continue to check all that I can, but if some 
of you know how to do, or already done a "standard generic Android build" 
that works fine on standard supported hardware, and know what is mandatory 
to get it starting fine, you're welcome !


Le lundi 18 mars 2019 15:28:34 UTC+1, [email protected] a écrit :
>
> 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