-
-
Notifications
You must be signed in to change notification settings - Fork 173
Run flutter-pi on i.MX6 CPU #292
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
Comments
The problem is in the
From what it seems like, the processor on your iMX6 is an ARM Cortex A9, on a Raspberry Pi 3 it's a Cortex A53. That's a pretty big difference :) Both armv7, but different feature set, so the Pi 3 probably supports a lot more / different instructions than the A9. (Though the A53 supports aarch64 too, theoretically) You can try getting a coredump and gdb'ing that (or running flutter-pi under gdb directly, if you have that installed on your rootfs) and then disassembling the current instruction when that I think in my case back then, it was some kind of ARM thumb instruction.
You're probably running etnaviv on your board right? IIRC etnaviv doesn't support hardware mouse cursors, but flutter-pi doesn't support software mouse cursors yet. So you need to add some kind of software mouse cursor to your flutter app, like this: https://gist.github.com/ardera/e7ddf7c8e477d258a26dfa9c40002626 |
Hello Thanks I tried running flutter-pi on gdb like this: run flutter-pi --release termogea / and I get this error: Could not find "kernel.blob" file inside "/ usr / local / bin / flutter-pi", which is required for debug mode. But he talks to me about debug mode, but I have the problem only in release mode. Some idea? Am I doing it right? Then I'll give you more information: sometimes it is enough for me to update flutter to make everything work, but now I have tried to download the 3.3.2 flutter sources because the engine corresponds to this version, since flutter is now at 3.3.3 and i had already upgraded to this version but still it gives me this error. Then I confirm that the raspberry pi processor is a processor that also supports 64 bit, but due to the scarce availability of the raspberry compute modules we are evaluating alternatives, and it seems that i.MX8 which is a 64 bit is also of difficult to find, which is why we are testing the i.MX6. Hope this flutter-pi gets to work on this processor :) |
Then you talked about using different arguments for gen_snapshot: could you tell me what arguments, if any, could help me solve, or at least a list of arguments to pass and use? Thank you |
Can you try running it like this: From what it says in the docs, the gdb
Yeah, that's totally fine of course. And iMX6 should definitely work too since it's armv7. Just wanted to say the iMX6 is not thaat close to the pi 3, so it's probably still related to the CPU somehow :) |
If you run |
Hi I managed to start by doing this:
later inside the gdb console I doing this:
and it have this error: `[New Thread 0xae7243f0 (LWP 1468)] Thread 2 "io.flutter.ui" received signal SIGILL, Illegal instruction. First rows are not error, but last 3 rows are errors. Any suggestions? Thanks |
try running after the SIGILL happens |
Hi. I have this result:
Thanks |
Seems like that's a normal instruction: https://shell-storm.org/online/Online-Assembler-and-Disassembler/?opcodes=e7100c13&arch=arm&endianness=little&dis_with_addr=True&dis_with_raw=True&dis_with_ins=True#disassembly ARM manual also says it's been there since at ARMv6TE. Can you do Also, can you run I think it's also a good idea to open a bug in the dart-sdk repo, they probably know more about what's going on & how to debug this. |
Hi. The result of print is this: $1 = 537591824 Now I'm trying to build with disassebled options. What exactly do I have to show you? |
How can upload output that I have? Are a lot of rows that paste here is very complicated. Thanks |
Okay, more complete (revised) instructions. This should provide all the debugging information necessary: Generate the app.so and the disassembly (in $ gen_snapshot_linux_x64_release \
--deterministic \
--snapshot_kind=app-aot-elf \
--elf=build/flutter_assets/app.so \
--sim-use-hardfp \
--disassemble --disassemble_optimized --source_lines \
build/kernel_snapshot.dill 2> disassembly.txt Important: Don't specify the Then:
Also:
|
If it's a closed-source app, you can also send me the disassembly via email (since the disassembly is annotated with the original dart sources). Though it's probably fairly hard to puzzle the code back together from that |
Hi here have result of gdb output:
Now I send you disassebly.txt Thanks |
I sent disassebly.zip to email. Thanks |
Okay seems like it's the Can you try running |
Thank you. Now works property in debug and release mode perfectly. Only miss problem with mouse that do not work, but only was for test. Final product will have a touch screen and I think that is not problem. Thank you very much for big support. |
Hello
I'm trying to get flutter-pi to work in a board called HummingBoard 2 by SolidRun with Freescale i.MX6 processor.
Flutter-pi starts regularly in debug mode, but in release mode it gives the error "Illegal instruction".
The i.MX6 is an armv7, exactly like the processor of the Raspberry Pi 3. I have compared the 2 processors with / proc / cpuinfo, and it seems that this processor has a few less features, but they are both ARMv7.
I compiled the app.so file with a 64 bit linux PC, using the kernel for arm and on the raspberry pi it worked in the past, but on this processor it didn't.
Can you give me some indication about it?
Then another thing: at the moment there is no touch screen mounted on this card, and I connected an external HDMI screen. If I connect a mouse, the cursor does not appear and the mouse does not work in any way. Can you give me some indications for this problem too?
Thank you
The text was updated successfully, but these errors were encountered: