Canon 80D

Started by ariznaf, June 02, 2016, 09:27:03 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simour

I think sombree deserves to fork on the 80D. As soon as I receive my 80D I am ready to test and reassemble the logs if necessary

ariznaf

Wowww.
I can see development has advanced a lot.

Thanks a lot to all people thas is participating.

May we consider the port in alpha stage?

I could not make myself an idea what is working now.

Is there a more or less simple way to try it in the camera?

I mean not having to compile source code or make changes to the camera, just something similar to installing the working firm of ML in other cameras.

May you provide a link to current firmware and way to install it, if you considere that it is time to be tested by final users?

I will like to test it and report bugs I find.

I have been waiting for many year to have a camera were I could test ML and see by my self what I just could imagine till now (previous owner of a 40D).

andy kh

Quote from: ariznaf on May 17, 2019, 05:49:48 PM
May you provide a link to current firmware and way to install it, if you considere that it is time to be tested by final users?
I will like to test it and report bugs I find.

i wil provide a link for you when it is available
5D Mark III - 70D

nagamayasi

still waiting  ???
do not know until when  :'(

andy kh

Quote from: nagamayasi on May 19, 2019, 05:23:04 PM
still waiting  ???
do not know until when  :'(

waiting is painful so dont wait....if you really need ML just buy a camera thats alraeady supported

and remember "If there is no ML for your cam act like there will be no ML for your cam ever.
5D Mark III - 70D

jdk

I've been working on finding stubs with k!r+
We found a list of stubs that we need to find by attempting to "make" magic lantern for the 80D and see which "undefined references" the compiler complains about.
By adding some dummy stubs/consts we were able to get the compilation to complete.

From this list we believe we have found a large amount of stubs, but we are unsure how to verify them. We looked at the finding stubs tutorial but we are stuck at step 4.
It seems that this tutorial assumes that magic lantern is in a somewhat functional state for the camera already? How should we verify our stubs?

We've tried running the autoexec.bin we compiled earlier in QEMU with GDB attached. We've done this and gotten the emulation to go a fair way, however it stalls after a point and doesn't spit out any obvious error messages to debug

Side note: what would be the best way to share our stubs file? via a pull request or just attached to a forum post

names_are_hard

Hi!  I'm fairly new here, working on 200D, so I'm not too sure about anything either.  However, I think the best way to share code is fork the Hudson repo and work on your fork.  When it gets to a useful stage, it can be merged back in.

My guess would be that QEMU is failing because of some hardware in the 80D that is not yet emulated (eg, some flash ROM, or a secondary processor).  I don't have enough experience to diagnose beyond that, and I could easily be wrong.  There are other threads about how QEMU was made to work on older hardware, which might help.

You could try building with CONFIG_HELLO_WORLD set - I've been told this is a simplified build.  Using less functionality means if you do have some stubs wrong it may not hit them.  I can build this but it doesn't boot for me.  Another approach that I have started trying is using digic6-dumper, and calling one untested stub at a time, to see if it crashes horribly.

Are you able to compare the stubs you've found with roms from a different camera?  From what I've seen, it is often fairly clear when you have it right (especially with a decompiler, not just a disassembler - Ghidra gives you this for free, if you don't have access to IDA).

The 80D is fairly close to the 200D - maybe you could help me?  I have found almost all of the stubs I need, but can't find any of the EDMAC functions.  If you can share any addresses with me that would help a great deal.

jakepetre

I have an 80D on my desk. No knowledge of how to code but can learn. If someone can link me to the source code and a port tutorial I can do my best to get the port up and running.

names_are_hard

Porting to a new camera will be very difficult if you have no knowledge of coding.  It's possible, but could easily take months.  It would be very helpful if you learn C, and how to read ARM assembly code.  You can learn this at the same time as some basic ML tasks that you will need later on.

While you are practising that, here are some early steps you can take:
- dump your 80D rom.  This is explained earlier in this thread
- Clone the main ML repo and learn how to build ML: https://bitbucket.org/hudson/magic-lantern/src/unified/
- get ML Qemu to build, too: https://bitbucket.org/hudson/magic-lantern/branch/qemu
- get ML Qemu working with your rom (it won't *do* much, but earlier in this thread you can see that it does start to boot)

If you need help with these things, it will be best to ask outside of this thread, as your early questions will probably be nothing to do with 80D :)

karthiksivakumar

Hello world, anyone can help me how to download and install ML to 80D canon.

Walter Schulz

No. Because you cannot download and install something that doesn't exist!

OlRivrRat

           @karthiksivakumar

Does not exist Yet & Quite Actually & Sadly > May Never ~
ORR~DeanB  ~~  80D-ML  &  SL1+ML  &  5D2+ML  &  5DC+ML  &  70D+ML(AliveAgain)

Theta Sigma

Quote from: OlRivrRat on June 29, 2019, 04:59:50 PM
           @karthiksivakumar

Does not exist Yet & Quite Actually & Sadly > May Never ~

Why would you say such a thing? In fact, the 200D has had some progress, and some have said there's similarity there.

Other are free to chime in, but I think you're in the minority here.

OlRivrRat

      @ ThetaSigma

   I would say such a thing because logic dictates that until it actually comes to be

there is absolutely no way of knowing that it actually will ~

   Where have You seen comments of similarity between 80D & 200D ?
ORR~DeanB  ~~  80D-ML  &  SL1+ML  &  5D2+ML  &  5DC+ML  &  70D+ML(AliveAgain)

Theta Sigma

Quote from: OlRivrRat on July 14, 2019, 05:11:41 PM
Where have You seen comments of similarity between 80D & 200D ?

8 posts above?

In any regard, my comment was in the context of an observer seeing that your post was quite negative in the face of many offering to help; not meant to imply a solution was close.

I'd simply hate to see offers to help dry up as a result of that kind of talk.

emklap

I have seen offers to help several times on this forum, but I know from experience that the learning curve is steep, to say the least.

I have a VM machine set up with QEMU and ML myself and did do some analyses on the 80D Code. The difficult thing for me was to get the compiler working and make QEMU run the compiled code. The compiler was constantly showing errors due to missing libraries which I then had to to install. In the end I want sure anymore if my set-up was correct and had to stop participating.  :(

It would be a great help if someone could share a pre-setup VM image that could be downloaded and started by anyone with some knowledge of Linux and VMWare. That will give people a head-start and possibly kickstart the development. :D  Possibly with a 1 page start-up guide.

Is anyone able and willing to share a VM Image? (if it is within the rules of this Forum of course.)



80D, 40D, 300D,  15-85 IS, 18-55IS EFS, Tokina17-55/F2.8, ,70-200LIS/F4, 50EF/F1.8, extender 1.4, EX-430, Sigma 8-16

a1ex

Some time ago I've tested the QEMU installation script (which also installs everything you need to compile ML) on different Linux distros, and also on Mac and (Ubuntu-based) WSL. There is a getting started guide (sticky topic) and a video guide (sticky tweet). Of course, you won't get the GUI on 80D yet.

Main point is - the QEMU install script does not even run without a valid compiler and a "good" ARM gdb (as some versions are known not to work). It even offers to download these for you, or install them via package manager. Exactly what you say you are missing.

I'm not exactly a fan of uploading gigabytes worth of virtual machine, when all you have to do is to start with a vanilla Ubuntu distro (or Mac or WSL) and run a shell script. I'd rather see a clear bug report on where that script fails. My plan was to make the QEMU install script *the* default way to get started for development, and include it in the main README, but... if it doesn't work, then I have to fix it.

Quote from: a1ex on April 09, 2019, 02:25:06 PM
I'd also like to clean it up a bit, make sure it works on all major operating systems (anyone had trouble with the install script?) and merge the current state into mainline, as pretty much all recent developments depend on this.

Maybe you could help me with this?




Edit: looking through your previous posts, I see you got it working:

Quote from: emklap on June 14, 2017, 05:59:47 PM
:D, fresh install of Ubuntu 17 (64 BIT), toolchain 4.8.4 and qemu 2.5.0 did the trick

Am I missing something?

emklap

Hi a1ex,

Thanks for your your reply. This manual will help people getting started with the environment set-up much faster. I did get a system work after several evenings of debugging and installing of libraries and apps. In the end I was not confident that I had the proper set-up because my gdb logs/screens did not always match what I saw from others . That's where a pre-configured VM image could help. Uploading gigabytes of data doesn't make sense when a vanilla Ubuntu distro is the prerequisite.

I will go through the getting started guide and a video guide once again.

If not me, the guideline will for sure help others as well.

80D, 40D, 300D,  15-85 IS, 18-55IS EFS, Tokina17-55/F2.8, ,70-200LIS/F4, 50EF/F1.8, extender 1.4, EX-430, Sigma 8-16

Elanus

Canon released a firmware update for the 80D. It fixes two vulnerabilities in PTP and firmware update process. Maybe they are blocking the installation of a future Magic lantern port.

Maybe they found a process to alter camera functions through PTP.

Sent from my Pixel XL using Tapatalk


a1ex

Feel free to run the portable ROM dumper to find out.

(I'm expecting it to work out of the box on 1.0.3, but who knows)

OlRivrRat

                     @Alex & WeEIMC

           I have Upped My 80D to 103 & now Have ROM & SFData Dumps if anyone is interested ~
ORR~DeanB  ~~  80D-ML  &  SL1+ML  &  5D2+ML  &  5DC+ML  &  70D+ML(AliveAgain)

calle2010

Here is the blog that describes why the security update was done by Canon.
https://research.checkpoint.com/say-cheese-ransomware-ing-a-dslr-camera/

Not so surprising, security obviously wasn't the main design goal or quality metric for Canon so far.

The blog mentions Scout debugging tool being loaded into the camera.
https://github.com/CheckPointSW/Scout
Unfortunately not more details are given. I wonder if this could be a good tool for ML porting purposes.

chchrlam

Nice list of cameras onto which you can load Scout and use it as a network debugger using vulnerability CVE-2019-6001

EOS-1D X firmware version 2.1.0 and earlier
EOS-1D X MKII firmware version 1.1.6 and earlier
EOS-1D C firmware version 1.4.1 and earlier
EOS 5D MARK III firmware version 1.3.5 and earlier
EOS 5D MARK IV firmware version 1.2.0 and earlier
EOS 5DS firmware version 1.1.2 and earlier
EOS 5DS R firmware version 1.1.2 and earlier
EOS 6D firmware version 1.1.8 and earlier
EOS 6D MARK II firmware version 1.0.4 and earlier
EOS 7D MARK II firmware version 1.1.2 and earlier
EOS 70 D firmware version 1.1.2 and earlier
EOS 80 D firmware version 1.0.2 and earlier
EOS KISS X7I / EOS D REBEL T5I / EOS 700D firmware version 1.1.5 and earlier
EOS KISS X8I / EOS D REBEL T6I / EOS 750D firmware version 1.0.0 and earlier
EOS KISS X9I / EOS D REBEL T7I / EOS 800D firmware version 1.0.1 and earlier
EOS KISS X7 / EOS D REBEL SL1 / EOS 100D firmware version 1.0.1 and earlier
EOS KISS X9 / EOS D REBEL SL2 / EOS 200D firmware version 1.0.1 and earlier
EOS KISS X10 / EOS D REBEL SL3 / EOS 200D / EOS 250D firmware version 1.0.1 and earlier
EOS 8000D / EOS D REBEL T6S / EOS 760D firmware version 1.0.0 and earlier
EOS 9000D / EOS 77D firmware version 1.0.2 and earlier
EOS KISS X70 / EOS D REBEL T5 / EOS 1200D firmware version 1.0.2 and earlier
EOS D REBEL T5 RE / EOS 1200D MG / EOS HI firmware version 1.0.2 and earlier
EOS KISS X80 / EOS D REBEL T6 / EOS 1300D firmware version 1.1.0 and earlier
EOS KISS X90 / EOS D REBEL T7 / EOS 1500D / EOS 2000D firmware version 1.0.0 and earlier
EOS D REBEL T100 / EOS 3000D / EOS 4000D firmware version 1.0.0 and earlier
EOS R firmware version 1.3.0 and earlier
EOS RP firmware version 1.2.0 and earlier
EOS RP GOLD firmware version 1.2.0 and earlier
EOS M2 firmware version 1.0.3 and earlier
EOS M3 firmware version 1.2.0 and earlier
EOS M5 firmware version 1.0.1 and earlier
EOS M6 firmware version 1.0.1 and earlier
EOS M6(China) firmware version 5.0.0 and earlier
EOS M10 firmware version 1.1.0 and earlier
EOS M100 firmware version 1.0.0 and earlier
EOS KISS M / EOS M50 firmware version 1.0.2 and earlier) and PowerShot SX740 HS firmware version 1.0.1 and earlier
PowerShot SX70 HS firmware version 1.1.0 and earlier
PowerShot G5Xmark II firmware version 1.0.1 and earlier

KenSoftTH

Hi,

I'm working on 7D2 port, but since it's the same CPU, can someone guide me the way to extract raw frame from video mode? I got hello world working a few months ago but don't have any idea how to continue. Please guide me a little if possible.

Thanks!

EdgyGates

This thread has been rather silent. Any developments on porting ML for the 80D? The PTP vulnerability (CVE-2019-5995) show cased at Def Con 2019 seems promising for development considering they demoed a silent malicious firmware update using said exploit. If the exploit were to be utilized to install ML, this would mean many of canon's newer cameras could have ML.  (https://research.checkpoint.com/2019/say-cheese-ransomware-ing-a-dslr-camera/)