Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to Run flutter apps with QEMU #6

Closed
bernardcraddock opened this issue May 29, 2023 · 10 comments
Closed

Unable to Run flutter apps with QEMU #6

bernardcraddock opened this issue May 29, 2023 · 10 comments

Comments

@bernardcraddock
Copy link

Hi @jwinarske - I'm Unable to Run flutter apps with QEMU

After having resolved my previous issue #5,
i'm now unable to run the flutter apps under QEMU using either master and octopus artefacts,
and i think the reason is when launching run-agl-qemu-master, run-agl-qemu-octoups it's booting the default AGL flutter graphic image thus preventing me from running other apps.

My configuration is x86_64, ubuntu desktop 22.04.2 LTS, AGL downloaded artifact agl-ivi-demo-platform-flutter-qemux86-64.wic.vmdk.xz

Unless i'm mistaken shouldn't i be booting a headless image so as i can then run the other flutter apps?
I have attached my agl-qemu-master.json for your review

please advise and regards.
agl-qemu-master-json.txt

setup_env.sh (looks fine)

parallels-ped-vm > source ./setup_env.sh
SCRIPT_PATH=/home/parallels/Documents/GitHub/workspace-automation
********************************************
* Setting FLUTTER_WORKSPACE to:
* /home/parallels/Documents/GitHub/workspace-automation
********************************************
[!] Flutter (Channel unknown, 3.3.10, on Ubuntu 22.04.2 LTS 5.19.0-42-generic, locale en_US.UTF-8)
    ! Flutter version 3.3.10 on channel unknown at /home/parallels/Documents/GitHub/workspace-automation/flutter
    ! Upstream repository unknown
    • Framework revision 135454af32 (5 months ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6
    • DevTools version 2.15.0

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.6
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[!] Flutter IDE Support (No supported IDEs installed)
    • IntelliJ - https://www.jetbrains.com/idea/
    • Android Studio - https://developer.android.com/studio/
    • VS Code - https://code.visualstudio.com/

[✓] Connected device (2 available)
    • Linux (desktop)              • linux        • linux-x64 • Ubuntu 22.04.2 LTS 5.19.0-42-generic
    • Toyota flutter-auto (mobile) • desktop-auto • linux-x64 • flutter-auto x86_64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 2 categories.
List of custom devices in "/home/parallels/Documents/GitHub/workspace-automation/.config/flutter/custom_devices.json":
  id: pi-zero2w-weston, label: Raspberry Pi Zero 2W, enabled: true
  id: agl-qemu-octopus, label: AGL octopus-latest QEMU Image, enabled: true
  id: desktop-auto, label: Toyota flutter-auto, enabled: true
  id: agl-qemu-master, label: AGL master-latest QEMU Image, enabled: true
  id: stm32mp15-weston, label: STM32MP157F-DK2, enabled: true
********************************************
* Type 'run-agl-qemu-octopus' to start
********************************************
********************************************
* Type 'run-agl-qemu-master' to start
********************************************

From README.md (function qemu_run removed)

### Run flutter app with QEMU 

* Open Terminal and type
* `source ${FLUTTER_WORKSPACE}/setup_env.sh`
* Type `qemu_run`                              
* Wait until QEMU image reaches login prompt
* Run `ssh –p 2222 root@localhost who` to add remote host to ~/.ssh/known_hosts
* Navigate to your favorite app
* `flutter run -run-qemu-master`
@jwinarske
Copy link
Contributor

@bernardcraddock I appreciate the feedback. I am adding an AGL config to AGL Gerrit for upcoming release in the next couple of days. AGL support will shortly be removed from this repo.

@jwinarske
Copy link
Contributor

jwinarske commented May 30, 2023

@bernardcraddock Did you follow the README in the AGL repo? It's about to have a minor update given paths/names have slightly changed.
https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl-devel.git;a=blob;f=meta-agl-flutter/README.md;h=86b4f75b71fb070963ae2bbda52a1a3500003e87;hb=HEAD#l93

Also with having moved to the images published by AGL, I do not believe they have multiple engine variants installed. They may only have runtime=release. This was my understanding the last Jan-Simon/Scott and myself discussed this. They have adjustments to make on their end.

@bernardcraddock
Copy link
Author

Hi @jwinarske - thanks for the update,

I can only afford small amount of time on AGL/flutter , so am always somewhat rusty so
would appreciated if you can confirm my understanding

Workspace Automation

I think I've got https://github.com/meta-flutter/workspace-automation under control as far as desktop-auto is concerned,
and noted you specified AGL support will soon be removed. So I assume I should switch to AGL for QEMU app testing against AGL images?

AGL Repo meta-agl-devel/meta-agl-flutter

Nope I hadn't read the README but did so today and just now kicked off a minimal flutter image build
agl-image-flutter-runtimedebug so well see how that goes and if i have engine variant issues or similar I'll try release

I also tried installing tool/setup_flutter_workspace.py but it's consistently failing within Patching Flutter SDK with python TypeError: which looks like might be a bug in the script?
and concerning AGL FLUTTER_SDK_TAG still says pinned upstream so 3.3.1 should be correct

Lastly you mentioned a minor update for given paths/names is pending - let me know when that is available and I'll pull it assuming we can resolve python TypeError.

I'll leave it there, look forward to your reply
regards


** Flutter Version: 3.3.1 **


Cloning into '/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/flutter'...
remote: Enumerating objects: 448228, done.
remote: Counting objects: 100% (779/779), done.
remote: Compressing objects: 100% (342/342), done.
remote: Total 448228 (delta 453), reused 582 (delta 367), pack-reused 447449
Receiving objects: 100% (448228/448228), 254.17 MiB | 4.04 MiB/s, done.
Resolving deltas: 100% (341228/341228), done.
Checking out 3.3.1
Note: switching to '3.3.1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 4f9d92fbbd Update engine version for 3.3.1 version. (#111057)


** FLUTTER_SDK: /home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/flutter **



** Patching Flutter SDK **


PATH=/home/parallels/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/lib:/home/parallels:/home/parallels/bin:/home/parallels/Documents/GitHub/pumped-scripts/platform/common:/home/parallels/Documents/GitHub/pumped-scripts/platform/common/sh:/home/parallels/Documents/GitHub/pumped-scripts/platform/common/sql:.:/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/flutter/bin
PUB_CACHE=/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/.pub_cache
XDG_CONFIG_HOME=/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/.config/flutter
Traceback (most recent call last):
File "/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/./setup_flutter_workspace.py", line 1773, in
main()
File "/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/./setup_flutter_workspace.py", line 234, in main
setup_env_script(workspace, args, platforms)
File "/home/parallels/AGL/octopus/meta-agl-devel/meta-agl-flutter/tools/./setup_flutter_workspace.py", line 1666, in setup_env_script
if '${MACHINE_ARCH_HYPHEN}' in qemu_image:
TypeError: argument of type 'NoneType' is not iterable

@jwinarske
Copy link
Contributor

Heads up I'm starting work on pulling 3.10.5 into AGL. Target window is next week - if no major app changes are required.

@bernardcraddock
Copy link
Author

bernardcraddock commented Jul 7, 2023 via email

@bernardpumped
Copy link

Hey @jwinarske

I wanted to catchup with you today at AGL AM meeting , but Walt said you'd already left by the time i joined

Anyway today I had some time to pull your latest workspace automation and re-run flutter_workspace.py

I always hoped at some point you'd pull the flutter engine src and build libflutter_engine.so from scratch locally
but now that i see it I'm simply astounded

I'll do some tests over the weekend and let you if i encounter any issue

thanks and regards

@jwinarske
Copy link
Contributor

@bernardcraddock cool. Creating flutter-engine.json took about 40 minutes.

@bernardpumped
Copy link

Hi @jwinarske

As reported yesterday flutter_workspace.py install/build ran without a hitch

but today sourcing setup_env.sh is failing trying to ping "Raspberry Pi Zero 2W (flutter-auto)" as per attached
FLUTTER_WORKSPACE/.config/flutter/custom_devices.json

It's looks like it's incorrectly configured Raspberry pi desktop auto instead of Ubuntu Desktop auto
as FLUTTER_WORKSPACE/.config/flutter_workspace/desktop-auto.json also did not get built and

$ flutter devices <-- desktop auto missing
1 connected device:
Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.2 LTS 5.19.0-46-generic

$ flutter custom-devices list
List of custom devices in "/home/parallels/Documents/GitHub/workspace-automation/.config/flutter/custom_devices.json":
id: pi-zero2w-weston, label: Raspberry Pi Zero 2W, enabled: true
id: agl-qemu-octopus, label: AGL octopus-latest QEMU Image, enabled: true
id: agl-qemu-master, label: AGL master-latest QEMU Image, enabled: true
id: stm32mp15-weston, label: STM32MP157F-DK2, enabled: true

please advise
regards

2023-07-15 14:19:30 ped-vm /home/parallels/Documents/GitHub/workspace-automation gitb:(main) ]
parallels-ped-vm > source ./setup_env.sh
SCRIPT_PATH=/home/parallels/Documents/GitHub/workspace-automation


  • Setting FLUTTER_WORKSPACE to:
  • /home/parallels/Documents/GitHub/workspace-automation

[!] Flutter (Channel unknown, 3.10.5, on Ubuntu 22.04.2 LTS 5.19.0-46-generic, locale en_US.UTF-8)
! Flutter version 3.10.5 on channel unknown at /home/parallels/Documents/GitHub/workspace-automation/flutter
Currently on an unknown channel. Run flutter channel to switch to an official channel.
If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
! Unknown upstream repository.
Reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install.
• Framework revision 796c8ef792 (4 weeks ago), 2023-06-13 15:51:02 -0700
• Engine revision 45f6e00911
• Dart version 3.0.5
• DevTools version 2.23.1
• If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Linux toolchain - develop for Linux desktop
• Ubuntu clang version 14.0.6
• cmake version 3.22.1
• ninja version 1.10.1
• pkg-config version 0.29.2

[!] Flutter IDE Support (No supported IDEs installed)
• IntelliJ - https://www.jetbrains.com/idea/
• Android Studio - https://developer.android.com/studio/
• VS Code - https://code.visualstudio.com/

[☠] Connected device (the doctor check crashed)
✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at
https://github.com/flutter/flutter/issues.
✗ ProcessException: Process timed out:

    Command: bash -c ping -c 1 -w 400 raspberrypi0-2w-64.local
• #0      RunResult.throwException (package:flutter_tools/src/base/process.dart:125:5)
  #1      _DefaultProcessUtils.run (package:flutter_tools/src/base/process.dart:349:19)
  <asynchronous suspension>
  #2      CustomDevice.tryPing (package:flutter_tools/src/custom_devices/custom_device.dart:520:30)
  <asynchronous suspension>
  #3      Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
  <asynchronous suspension>
  #4      CustomDevices.pollingGetDevices (package:flutter_tools/src/custom_devices/custom_device.dart:873:7)
  <asynchronous suspension>
  #5      PollingDeviceDiscovery._populateDevices (package:flutter_tools/src/device.dart:563:36)
  <asynchronous suspension>
  #6      Future.wait.<anonymous closure> (dart:async/future.dart:525:21)
  <asynchronous suspension>
  #7      DeviceManager.refreshAllDevices (package:flutter_tools/src/device.dart:231:40)
  <asynchronous suspension>
  #8      DeviceValidator.validate (package:flutter_tools/src/doctor.dart:683:34)
  <asynchronous suspension>
  #9      Future.any.onValue (dart:async/future.dart:615:5)
  <asynchronous suspension>

[✓] Network resources
• All expected network resources are available.

! Doctor found issues in 3 categories.
List of custom devices in "/home/parallels/Documents/GitHub/workspace-automation/.config/flutter/custom_devices.json":
id: pi-zero2w-weston, label: Raspberry Pi Zero 2W, enabled: true
id: agl-qemu-octopus, label: AGL octopus-latest QEMU Image, enabled: true
id: agl-qemu-master, label: AGL master-latest QEMU Image, enabled: true
id: stm32mp15-weston, label: STM32MP157F-DK2, enabled: true


  • Type 'run-agl-qemu-octopus' to start


  • Type 'run-agl-qemu-master' to start

custom_devices.json.txt

@jwinarske
Copy link
Contributor

@bernardcraddock unless you need the config installed, it's best to set it to not load. Just set the load key to false.
It could benefit from a GUIor menu configurator. Something simple that could make it more usable to anyone. Rust is an option

@jwinarske
Copy link
Contributor

What you can also do is also set it the custom-device config in question to not be enabled. So either don't install, or disable from flutter CLI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants