Closed malik727 closed 1 year ago
@malik727 What AGL branch and config are you working with?
@jwinarske I am using AGL Octopus 15.0.3.
My config file looks something like this:
{
"id": "agl-qemu-octopus",
"load": true,
"supported_archs": [
"x86_64",
"arm64"
],
"supported_host_types": [
"darwin",
"ubuntu",
"fedora"
],
"flutter_runtime": "debug",
"type": "qemu",
"env": {
"RELEASE_NAME": "octopus",
"RELEASE_VERSION": "15.0.3",
"FLUTTER_DEBUG_PORT": "1234",
"FLUTTER_OBSERVATORY_HOST": "0.0.0.0",
"CONTAINER_SSH_PORT": "2222",
"DEVICE_HOSTNAME": "localhost",
"FLUTTER_AUTO_EXE": "flutter-auto --j=/tmp/${appName}/default_config.json --b=/tmp/${appName}",
"PING_CMD": "(echo >/dev/tcp/localhost/${CONTAINER_SSH_PORT}) &>/dev/null && echo open || echo closed",
"DELETE_USER_PWD": "ssh -p ${CONTAINER_SSH_PORT} -t -oBatchMode=yes root@${DEVICE_HOSTNAME} passwd -d agl-driver",
"CREATE_BUNDLE_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data",
"CREATE_ASSETS_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} mkdir -p /tmp/${appName}/data/flutter_assets",
"COPY_PLATFORM_ID_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${PLATFORM_ID_DIR}/default_config.json agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/",
"COPY_ASSETS_TO_DEVICE": "scp -P ${CONTAINER_SSH_PORT} -r ${localPath}/* agl-driver@${DEVICE_HOSTNAME}:/tmp/${appName}/data/flutter_assets",
"DELETE_APP_FOLDER": "ssh -p ${CONTAINER_SSH_PORT} -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} rm -rf /tmp/${appName}"
},
"runtime": {
"config": {
"view": [
{
"window_type": "BG",
"width": 1920,
"height": 1080
}
]
},
"pre-requisites": {
"arm64": {
"darwin": {
"cmds": [
"bash -c \"arch -arm64 brew install xz\"",
"bash -c \"arch -arm64 brew install qemu\""
]
}
}
},
"artifacts": {
"http": {
"url": "https://download.automotivelinux.org/AGL/release/${RELEASE_NAME}/${RELEASE_VERSION}",
"artifacts": {
"x86_64": [
{
"endpoint": "/qemux86-64/deploy/images/qemux86-64/agl-ivi-demo-platform-flutter-qemux86-64.wic.vmdk.xz"
}
],
"arm64": [
{
"endpoint": "/qemuarm64/deploy/images/qemuarm64/agl-demo-platform-crosssdk-qemuarm64.ext4.xz"
},
{
"endpoint": "/qemuarm64/deploy/images/qemuarm64/Image-qemuarm64.bin"
}
]
}
}
},
"qemu": {
"cmd": "qemu-system-${FORMAL_MACHINE_ARCH}",
"x86_64": {
"image": "agl-ivi-demo-platform-flutter-qemux86-64.wic.vmdk",
"args": "-m 2048 ${QEMU_EXTRA} -hda ${QEMU_IMAGE} -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt -vga virtio -device virtio-rng-pci -serial mon:stdio -serial null -device intel-hda -device hda-duplex -device virtio-net-pci,netdev=net0,mac=${RANDOM_MAC} -netdev user,id=net0,hostfwd=tcp::${CONTAINER_SSH_PORT}-:22,hostfwd=tcp::${FLUTTER_DEBUG_PORT}-:${FLUTTER_DEBUG_PORT}"
},
"arm64": {
"kernel": "Image-qemuarm64.bin",
"image": "agl-demo-platform-crosssdk-qemuarm64.ext4",
"args": "-accel hvf -cpu host -M virt ${QEMU_EXTRA} -m 4096 -device virtio-gpu-pci -nographic -display cocoa,show-cursor=on -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -device qemu-xhci -device usb-tablet -device usb-mouse -device usb-kbd -device virtio-net-pci,netdev=vnet -netdev user,id=vnet,hostfwd=tcp::${CONTAINER_SSH_PORT}-:22,hostfwd=tcp::${FLUTTER_DEBUG_PORT}-:${FLUTTER_DEBUG_PORT} -kernel ${QEMU_KERNEL} -drive file=${QEMU_IMAGE},format=raw,if=virtio -append root=/dev/vda"
},
"extra": {
"darwin": "-smp cpus=8,sockets=1,cores=8,threads=1",
"ubuntu": "-bios OVMF.fd",
"fedora": "-bios /usr/share/edk2/ovmf/OVMF_CODE.fd"
}
},
"post_cmds": [
{
"cwd": "${PLATFORM_ID_DIR}",
"cmds": [
"bash -c \"rm ${QEMU_IMAGE}|true\"",
"unxz --keep ${QEMU_IMAGE}.xz"
]
}
]
},
"overwrite-existing": true,
"custom-device": {
"id": "agl-qemu-${RELEASE_NAME}",
"label": "AGL ${RELEASE_NAME}-${RELEASE_VERSION} QEMU Image",
"sdkNameAndVersion": "qemu-${RELEASE_NAME} ${RELEASE_VERSION}",
"platform": "linux-x64",
"enabled": true,
"ping": "bash -c \"${PING_CMD}\"",
"pingSuccessRegex": "open",
"postBuild": "bash -c \"${DELETE_USER_PWD}\"",
"install": "bash -c \"${CREATE_BUNDLE_FOLDER} && ${CREATE_ASSETS_FOLDER} && ${COPY_PLATFORM_ID_TO_DEVICE} && ${COPY_ASSETS_TO_DEVICE}\"",
"uninstall": "bash -c \"${DELETE_APP_FOLDER}\"",
"runDebug": "bash -c \"ssh -p ${CONTAINER_SSH_PORT} -t -t -o BatchMode=yes agl-driver@${DEVICE_HOSTNAME} ${FLUTTER_AUTO_EXE}\"",
"forwardPort": null,
"forwardPortSuccessRegex": null,
"screenshot": null
}
}
I did make some changes to the above file as the default configuration wasn't working for me. I was facing two issues with the default configuration:
"/tmp/${appName}/data/flutter_assets" No such directory exists
. My assumption was that we needed this directory to be present before copying assets to the device. So that's why I introduced the "{CREATE_ASSETS_FOLDER
}" key-value pair to resolve this issue, and it kind of worked as I wasn't seeing the error anymore.runDebug
}" key. As you can see I kind of specified the port name. The reason for this was that I kept getting Host key verification failed.
error without specifying the port. I assume maybe I messed up this step somehow. If yes then what should be done to avoid the Host key verification failed.
error that occurs with the original "{runDebug
}" value?In case you wondering I did run the ssh -p 2222 root@localhost who
command and I am manually able to SSH into agl-driver@localhost if I want to so I doubt its an issue with known_host configuration, or maybe it is.
P.S. Thanks for replying :), hope this issue gets figured out.
Also just for your reference, this is a part of my build log that seemed kinda weird when I ran the flutter_workspace.py
script:
Engine Version: 45f6e009110df4f34ec2cf99f63cf73b71b7a420
Working Directory: /home/malik/Desktop/AGL-Dev/flutter-automation/.config/flutter_workspace/flutter-engine
*********************************
** Downloading Engine artifact **
*********************************
** Downloading linux-x64-embedder.zip via https://storage.googleapis.com/flutter_infra_release/flutter/45f6e009110df4f34ec2cf99f63cf73b71b7a420/linux-x64/linux-x64-embedder
**************************
** Download Status: 404 **
**************************
***********************************************
** Failed to download linux-x64-embedder.zip **
***********************************************
***********************************
** Engine artifact not available **
***********************************
It doesn't download this specific artifact, I hope so that this isn't the root cause if the error.
@malik727 You should not have to make any changes to the config on AGL Gerrit. See the steps on AGL Gerrit: https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-agl-devel.git;a=blob;f=meta-agl-flutter/README.md;h=ba017d15122503e51c546eb14a18c99595354302;hb=HEAD#l45
Also I'm not sure the image you are pulling has Flutter enabled by default. Jan-Simon can answer this. The configs in AGL Gerrit have Flutter enabled in images the last I tested.
@malik727 what's the status on this? Can I close this issue, or is there something outstanding here?
@jwinarske So I was able to bypass this issue after following the resources you linked. I am still somewhat facing problems with SSH connectivity but I believe thats an issue with my machine's SSH configuration. I'll look into it to see what can be done. As for this issue, you may close it because I am not facing this error anymore.
Thanks for the help, highly appreciate it.
np
I was trying to run flutter workspace automation to test a basic Flutter app I was developing for Automotive Grade Linux. I am facing a weird issue with no proper error information. My exact steps to reproduce the problem:
Installed the Flutter workspace automation. Initialized the environment "
source ./setup_env.sh
". Then type "run-agl-qemu-octopus
". Also ensured all ssh settings are correct and working.I copied my application folder to "app/" dir inside the flutter workspace main directory. Then by navigating to my application folder, I typed the following command:
flutter run
Gives me the following error:
In the AGL terminal, I get the following output: