Hi,

I found another tickets you submitted to run arm64 android via qemu.

I tried to lunch aosp_arm64-eng project, run with android emulator, with 
qemu args:

emulator -kernel 
../Android_kernel/out/android-mainline/common/arch/arm64/boot/Image -system 
xxx ...... *-qemu **--monitor tcp:127.0.0.1:2222,server,nowait -gdb 
tcp::4444 -S*

But the Android kernel panic occurred since no init found, and I try to 
dump guest memory via qemu monitor, can't parsed by crash tools.

Have you build and run arm64 android via qemu successfully?  How ?

Looking forward to your reply, many thanks.


在 2020年3月3日星期二 UTC+8下午11:18:37,Julien ROBIN写道:
>
> Many thanks for your answers
>
> In fact what I'm trying to do is using QEMU files into AOSP source code to 
> get Android (with GUI) built and running on a standard/upstream QEMU 
> version.
>
> This would give the ability of running Android and its future releases 
> without real "porting", on any device running a Linux kernel (be it 
> upstream or not) and having KVM working on it. Which would be extremely 
> interesting.
>
> From what you write, it seems qemu-trusty-arm64 is not really for me. So 
> what I'm trying to do is probably more about using device/generic/qemu/
> qemu_arm64.mk (and others archs) files included into AOSP. So I'll 
> continue into this other subject : 
> https://groups.google.com/forum/?hl=bn#!topic/android-building/kbiEg5OxBGU
>
>
> While talking with you, I noticed that AVD Emulator is different from 
> upstream QEMU, probably about goldfish and ranchu related things. Things 
> working fine with the emulator (aosp_x86_64-eng for example and 
> android-goldfish-4.14-dev which seems mandatory to get Android 10 working 
> with AVD Emulator) does not seems to be working with upstream QEMU (at 
> least I can't get the GUI). Therefore the documentation about AVD Emulator 
> builds https://source.android.com/setup/create/avd didn't really help me 
> for upstream QEMU. 
>
> Can you confirm it's possible to use modern versions of AOSP on upstream 
> QEMU? Someone did succeed in the past with Android 6 / untouched AOSP and a 
> extended compatibility kernel (I have one based on 
> android-goldfish-4.14-dev), this is why I'm trying with newer versions of 
> AOSP. This was documented here, but it's not up to date anymore : 
> https://www.collabora.com/news-and-blog/blog/2016/09/02/building-android-for-qemu-a-step-by-step-guide/
>
> Thank you in advance
>
> Julien
>
>
> On 3/2/20 10:51 PM, 'Matthew Maurer' via Android Building wrote:
>
> This target is a testing target used for evaluating our reference 
> TrustZone implementation. "storageproxyd" is continuously resetting there 
> because it is not being launched by our test script 
> <https://android.googlesource.com/trusty/device/arm/generic-arm64/+/refs/heads/master/project/qemu/qemu.py>
>  which 
> would attach a virtual RPMB resource. 
>
> A few notes about this target:
> * It does not have a GUI
> * Running Java is not supported and unlikely to work
> * It requires a custom EL3 and Trusty running alongside it to work
>
> The manifest for these components is at 
> https://android.googlesource.com/trusty/manifest, and that manifest 
> contains a checked in prebuilt of the qemu_trusty_arm64-userdebug target 
> that we are currently testing against.
>
> If you tell me more about what you're trying to make the target do, I may 
> be able to give you further help with getting it to do what you want. If 
> you aren't trying to use or inspect the Trusty TZ implementation, this 
> target probably isn't the one you're looking for.
>
> On Mon, Mar 2, 2020 at 1:34 PM Dan Willemsen <[email protected] 
> <javascript:>> wrote:
>
>> +Matthew Maurer <javascript:> Do we have any documentation on this 
>> target? I think the last time we talked about this target it was only 
>> minimally functional.
>>
>> - Dan
>>
>> On Mon, Mar 2, 2020 at 12:51 PM Julien Robin <[email protected] 
>> <javascript:>> wrote:
>>
>>> I succeeded to find a workaround for the issue I signaled here, editing 
>>> device/generic/trusty/BoardConfig.mk and putting BUILD_QEMU_IMAGES to 
>>> false, which still gives vendor.img, system.img and userdata.img
>>>
>>> I then found this kernel 
>>> https://android.googlesource.com/kernel/common/+/refs/heads/android-trusty-4.19,
>>>  
>>> and using arch/arm64/configs/trusty_qemu_defconfig, I successfully built it.
>>>
>>> Also, I'm able to start most of this Android build on Debian 10 provided 
>>> qemu-system-aarch64 the following way :
>>>
>>> qemu-system-aarch64
>>>     -M virt
>>>     -cpu cortex-a57
>>>     -smp 1
>>>     -m 2048
>>>     -monitor none
>>>     -parallel none
>>>     -serial mon:stdio
>>>     -kernel Image -append "root=/dev/vda rootfstype=ext4 ro init=/init 
>>> loglevel=8 selinux=1 checkreqprot=1 androidboot.selinux=permissive 
>>> androidboot.hardware=qemu_trusty console=ttyAMA0"
>>>     -device virtio-gpu-pci
>>>     -drive format=raw,file=system-custom.img
>>>     -drive format=raw,file=userdata-custom.img
>>>
>>> userdata-custom.img is just a bigger userdata.img (1024MB instead of 4) 
>>> in which I used resize2fs, system-custom.img is just a system.img in which 
>>> the placeholder folder "vendor" now embeds the content of vendor.img, 
>>> copied by "cp -a". Finally, still into system-custom.img, fstab.qemu_trusty 
>>> only contains 
>>> LABEL=data              /data               ext4      noatime,nosuid,
>>> nodev,errors=panic    wait
>>> So that /data (available at /dev/vdb) is mounted by its label, while 
>>> system-custom.img embeding root system and vendor is already mounted by 
>>> kernel cmdline (by /dev/vda). ramdisk.img is not used as system.img already 
>>> contains everything needed to start init.
>>>
>>> However, I guess I should use a slightly modified version of qemu, 
>>> available here 
>>> https://android.googlesource.com/trusty/external/qemu/+/refs/heads/master
>>> Because using Debian 10 qemu version, I get the following output, and no 
>>> display :
>>>
>>> init: init first stage started!
>>> [...]
>>> init: Loading SELinux policy
>>> [...]
>>> selinux: SELinux: Loaded policy from /vendor/etc/selinux/
>>> precompiled_sepolicy
>>>
>>> selinux: SELinux: Loaded file_contexts
>>>
>>> random: init: uninitialized urandom read (40 bytes read)
>>> random: init: uninitialized urandom read (40 bytes read)
>>> init: init second stage started!
>>> [...]
>>> ueventd: Coldboot took 1.344 seconds
>>> [...]
>>> init: starting service 'storageproxyd'...
>>> libprocessgroup: CgroupMap::FindController called for [1] failed, RC 
>>> file was not initialized properly
>>> libprocessgroup: Failed to make and chown /uid_0: Read-only file system
>>> libprocessgroup: CgroupMap::FindController called for [829] failed, RC 
>>> file was not initialized properly
>>> init: createProcessGroup(0, 829) failed for service 'storageproxyd': 
>>> Read-only file system
>>> init: cpuset cgroup controller is not mounted!
>>> init: Service 'storageproxyd' (pid 829) exited with status 1
>>> init: Sending signal 9 to service 'storageproxyd' (pid 829) process 
>>> group...
>>> libprocessgroup: CgroupMap::FindController called for [1] failed, RC 
>>> file was not initialized properly
>>> libprocessgroup: CgroupMap::FindController called for [1] failed, RC 
>>> file was not initialized properly
>>>
>>>
>>> init: starting service 'storageproxyd'...
>>> libprocessgroup: CgroupMap::FindController called for [1] failed, RC 
>>> file was not initialized properly
>>> libprocessgroup: Failed to make and chown /uid_0: Read-only file system
>>> init: createProcessGroup(0, 830) failed for service 'storageproxyd': 
>>> Read-only file system
>>> libprocessgroup: CgroupMap::FindController called for [830] failed, RC 
>>> file was not initialized properly
>>> init: cpuset cgroup controller is not mounted!
>>> init: Service 'storageproxyd' (pid 830) exited with status 1
>>> init: Sending signal 9 to service 'storageproxyd' (pid 830) process 
>>> group...
>>>
>>> ...and so on in loop
>>>
>>> However I'm still not sure to proceed correctly, as I'm doing everything 
>>> alone with no documentation (I may have missed it?)
>>>
>>> Is here some documentation available? If there isn't, is someone able to 
>>> provide an example of working qemu command line (even old or unoptimized), 
>>> or just few explanations so that I can be placed on the right track?
>>>
>>> Thank you very much in advance
>>>
>>>
>>> On 3/1/20 2:14 PM, Julien Robin wrote: 
>>>>
>>>> Hi there,
>>>>
>>>> I see that starting from branch android-10.0.0_r1, lunch offers a 
>>>> choice called qemu_trusty_arm64-userdebug, in which I'm interested
>>>>
>>>> However, I got the following error, no matter which OS I'm using for 
>>>> building (be it Ubuntu 18.048 or Debian 10). I have this error on r1, r20 
>>>> and r29.
>>>>
>>>> [ 62% 16150/26047] Create system-qemu.img now
>>>> FAILED: out/target/product/trusty/system-qemu.img
>>>> /bin/bash -c "(export SGDISK=out/host/linux-x86/bin/sgdisk 
>>>> SIMG2IMG=out/host/linux-x86/bin/simg2img;     
>>>>  device/generic/goldfish/tools/mk_combined_img.py -i 
>>>> out/target/product/trusty/system-qemu-config.txt -o 
>>>> out/target/product/trusty/system-qemu.img)"
>>>> 1+0 records in
>>>> 2048+0 records out
>>>> 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0063128 s, 166 MB/s
>>>> Traceback (most recent call last):
>>>>   File "device/generic/goldfish/tools/mk_combined_img.py", line 163, in 
>>>> <module>
>>>>     main()
>>>>   File "device/generic/goldfish/tools/mk_combined_img.py", line 135, in 
>>>> main
>>>>     if check_sparse(partition["path"]):
>>>>   File "device/generic/goldfish/tools/mk_combined_img.py", line 12, in 
>>>> check_sparse
>>>>     with open(filename, 'rb') as i:
>>>> IOError: [Errno 2] No such file or directory: 
>>>> 'out/target/product/trusty/vbmeta.img'
>>>> 13:44:11 ninja failed with: exit status 1
>>>>
>>>> #### failed to build some targets (19:41 (mm:ss)) ####
>>>>
>>>> What should I do to get qemu_trusty_arm64-userdebug building 
>>>> successfully?
>>>>
>>>> Thank you in advance!
>>>>
>>>> Best regards,
>>>> 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] 
>>> <javascript:>
>>> To unsubscribe from this group, send email to
>>> [email protected] <javascript:>
>>> 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] <javascript:>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/android-building/a30c5a05-6134-43a5-8f3b-32313e32bac0%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/android-building/a30c5a05-6134-43a5-8f3b-32313e32bac0%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
> -- 
> You received this message because you are subscribed to the "Android 
> Building" mailing list.
> To post to this group, send email to [email protected] 
> <javascript:>
> To unsubscribe from this group, send email to
> [email protected] <javascript:>
> 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 a topic in the 
> Google Groups "Android Building" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/android-building/fY-gdZQ-67M/unsubscribe
> .
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] <javascript:>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/android-building/CAGSQo01HoD%2B8b1LdOrqaqmnQK5Fa1Ys9REVZ9Rt-85E4WrYRaw%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/android-building/CAGSQo01HoD%2B8b1LdOrqaqmnQK5Fa1Ys9REVZ9Rt-85E4WrYRaw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-building/98da6680-eab0-4d24-b4d1-8bc53b388baao%40googlegroups.com.

Reply via email to