qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error : init: partition(s) not found in /sys, waiting for their ueve


From: Mario Marietto
Subject: Re: Error : init: partition(s) not found in /sys, waiting for their uevent(s): mmcblk0p2, mmcblk0p3 while trying to emulate Android 14 on Ubuntu 24.04 X64 bit using qemu-system-aarch64.
Date: Mon, 2 Sep 2024 23:20:11 +0200

Hello.

I've downloaded this file : aosp_cf_arm64_only_phone-img-12309296.zip and this file : cvd-host_package.tar.gz

from here : https://ci.android.com/builds/submitted/12309296/aosp_cf_arm64_only_phone-trunk_staging-userdebug/latest

But let's say that I don't want to use the *.img files that are stored inside "aosp_cf_arm64_only_phone-img-12309296.zip",but the same files that have been produced when I have compiled this version of Android :

https://github.com/raspberry-vanilla/android_local_manifest?tab=readme-ov-file

Can I do it ? Is it supposed to work the same ?

Thanks.

On Mon, Sep 2, 2024 at 10:23 PM Pierrick Bouvier <pierrick.bouvier@linaro.org> wrote:


On 9/2/24 13:20, Pierrick Bouvier wrote:
> On 9/2/24 12:53, Mario Marietto wrote:
>> Hello Pierrick.
>>
>> With Cuttlefish can I emulate Android 14 for arm64 ? I ask because in
>> your script I read :
>>
>> "|/home/user/.work/qemu/build/qemu-system-x86_64", so,I suspect that you
>> have emulated Android x64 bit,but I need arm64. |
>>
>
> Yes, it works for both architecture. The only thing I didn't try is an
> arm64 vm accelerated with kvm (I don't have this a linux-aarch64
> machine), but it should work.

And of course, if you want to write a custom wrapper for qemu, name it
qemu-system-aarch64, and call the same binary instead of x86_64 variants.

>
>> I also read "for aarch64 images: select
>> |aosp_cf_arm64_only_phone-trunk_staging-userdebug" : I'm not able to
>> download this kind of images. I don't understand how the Branch Grid
>> works. Can you explain to me a little bit more ?
>> |
>
> You have a link just next to it ("Branch grid") on the wiki page.
> Once on ci android page, click on filter button (three bars, inverted
> pyramid), and select aosp_cf_arm64_only_phone-trunk_staging-userdebug.
> Then go to artifacts, and download image and cvd_host_x86_64 package, as
> wiki mentions.
>
> Don't hesitate to ask more questions on this. I imagine this topic might
> interest some people who try to do the same thing.
>
> Pierrick
>
>> |
>> |
>>
>>
>> On Mon, Sep 2, 2024 at 8:47 PM Pierrick Bouvier
>> <pierrick.bouvier@linaro.org <mailto:pierrick.bouvier@linaro.org>> wrote:
>>
>>      Hello Mario,
>>
>>      very recently, I had to investigate booting time of Android when using
>>      QEMU. You can probably manage to boot this with only QEMU alone, but in
>>      my experience, using Cuttlefish tooling is an easier approach.
>>
>>      If you really want to use only QEMU, you can use Cuttlefish to get
>>      exact
>>      command line used (which disk goes where), and iterate from that.
>>
>>      Instructions:
>>      https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29464068097/Run+Android+using+QEMU <https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29464068097/Run+Android+using+QEMU>
>>
>>      As you'll see, I could not get a direct graphic output, but using
>>      scrcpy, it worked well for me. Hope it can fit your use case.
>>
>>      Regards,
>>      Pierrick
>>
>>      On 9/2/24 06:49, Mario Marietto wrote:
>>       > Hello.
>>       >
>>       > I would like to emulate Android 14 on my Ubuntu 24.04 OS X64 bit
>>      using
>>       > qemu-system-aarch64. I tried using the following parameters :
>>       >
>>       > qemu-system-aarch64 \
>>       >          -smp 4 \
>>       >          -m 2048 \
>>       >          -cpu cortex-a72 \
>>       >          -M virt \
>>       >          -device virtio-gpu-pci,xres=1024,yres=768 \
>>       >          -display sdl,gl=on \
>>       >          -device usb-ehci \
>>       >          -device usb-kbd \
>>       >          -device virtio-tablet-pci \
>>       >          -usb \
>>       >          -serial stdio \
>>       >          -kernel /mnt/zroot-133/_OS/Android/rpi4/Image \
>>       >          -initrd /mnt/zroot-133/_OS/Android/rpi4/ramdisk.img \
>>       >          -drive
>>       >
>>      index=0,if=none,id=system,file=/mnt/zroot-133/_OS/Android/rpi4/boot.img \
>>       >          -device virtio-blk-pci,drive=boot \
>>       >          -drive
>>       >
>>      index=1,if=none,id=system,file=/mnt/zroot-133/_OS/Android/rpi4/system.img \
>>       >          -device virtio-blk-pci,drive=system \
>>       >          -drive
>>       >
>>      index=2,if=none,id=vendor,file=/mnt/zroot-133/_OS/Android/rpi4/vendor.img \
>>       >          -device virtio-blk-pci,drive=vendor \
>>       > -append "console=ttyAMA0,38400 drm.debug=0x0 rootwait rootdelay=5
>>       > root=/dev/mmcblk0p2 androidboot.hardware=rpi4
>>       > androidboot.selinux=permissive security=selinux selinux=1
>>       > androidboot.qemu.hw.mainkeys=0 androidboot.lcd.density=160"
>>       >
>>       > The error I get in short is :
>>       >
>>       > [ 1.993668] init: bool
>>       >
>>      android::init::BlockDevInitializer::InitDevices(std::set<std::string>):
>>       > partition(s) not found in /sys, waiting for their uevent(s):
>>      mmcblk0p2,
>>       > mmcblk0p3
>>       >
>>       >
>>       > One user suggested to :
>>       >
>>       >
>>       >
>>       >
>>       >
>>       > Hi!!! The "/sys" is a "dynamic fs" created at ram from the
>>      kernel, to
>>       > export a lot of things...so most of the files only exist at runtime.
>>       > Normally, the partitions from the block device have a symlink at
>>       > /sys/<something>/<...> that points to /dev/ block node. It seems
>>      that
>>       > there are no such files under /sys according to what init is looking
>>       > for. You can double check this at init source code to check the
>>      exact
>>       > path but I'm guessing that you'll have to change the qemu arguments
>>       > regarding the block device.
>>       >
>>       > About userdata.img I think it's normal since in the old days, the
>>      image
>>       > was a "empty sparse image", that means, at the first flashing
>>      process,
>>       > there isn't userdata information, we're just "flashing the
>>      partition"
>>       > with empty data.
>>       > Tks!!!
>>       >
>>       >
>>       >
>>       > So,in short I should change the qemu arguments regarding the block
>>       > device. I tried in this way :
>>       >
>>       >
>>       > qemu-system-aarch64 \
>>       >          -smp 4 \
>>       >          -m 2048 \
>>       >          -cpu cortex-a72 \
>>       >          -M virt \
>>       >          -device virtio-gpu-pci,xres=1024,yres=768 \
>>       >          -display sdl,gl=on \
>>       >          -device usb-ehci \
>>       >          -device usb-kbd \
>>       >          -device virtio-tablet-pci \
>>       >          -usb \
>>       >          -serial stdio \
>>       >          -kernel /mnt/zroot-133/_OS/Android/rpi4/Image \
>>       >          -initrd /mnt/zroot-133/_OS/Android/rpi4/ramdisk.img \
>>       >          -hda /mnt/zroot-133/_OS/Android/rpi4/boot.img \
>>       >          -hdb /mnt/zroot-133/_OS/Android/rpi4/system.img \
>>       >          -hdc /mnt/zroot-133/_OS/Android/rpi4/vendor.img \
>>       >        -append "console=ttyAMA0,38400 drm.debug=0x0 rootwait
>>      rootdelay=5
>>       > root=/dev/mmcblk0p2 androidboot.hardware=rpi4
>>       > androidboot.selinux=permissive security=selinux selinux=1
>>       > androidboot.qemu.hw.mainkeys=0 androidboot.lcd.density=160"
>>       >
>>       >
>>       > but the error is still there. Do you know some different alternative
>>       > block devices to try ? thanks.
>>       >
>>       >
>>       > --
>>       > Mario.
>>
>>
>>
>> --
>> Mario.


--
Mario.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]