meta-flutter / workspace-automation

Work aids for developing with Embedded Flutter on Linux
Apache License 2.0
6 stars 4 forks source link

Unable to Run flutter apps with QEMU #6

Closed bernardcraddock closed 12 months ago

bernardcraddock commented 1 year ago

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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

perfect - thankyou

Bernard Craddock Co-founder Pumped Fuel www.pumpedfuel.com L2, 11 York Street Sydney 2000

On Fri, Jul 7, 2023 at 3:36 AM Joel Winarske @.***> wrote:

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.

— Reply to this email directly, view it on GitHub https://github.com/meta-flutter/workspace-automation/issues/6#issuecomment-1624069947, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCJ6OY6YCKRTO7W6EZTSEDXO3ZR7ANCNFSM6AAAAAAYSLYRAQ . You are receiving this because you were mentioned.Message ID: @.***>

bernardpumped commented 1 year ago

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 commented 1 year ago

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

bernardpumped commented 1 year ago

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


[✓] 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


jwinarske commented 1 year ago

@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 commented 1 year ago

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.