mobileoverlord / nerves_system_linkit

System image for the LinkIt Smart 7688
Apache License 2.0
14 stars 6 forks source link

Onion Omega 2 Plus support? #6

Closed Jared314 closed 7 years ago

Jared314 commented 7 years ago

The Linkit Smart 7688 Duo and the Onion Omega 2 Plus share the MediaTek MT7688 chipset.

Is it possible to run this system image on an Omega 2 Plus?

fhunleth commented 7 years ago

I don't have an Omega 2, so I don't know how far off it is. I'd hope that it was close given that they do have the same chipset. However, there are a couple things to be aware of:

  1. The LinkIt Smart MT7688 uses a really old version of U-Boot that has a ton of custom patches. Last I looked, it seemed like a big task to get MT7688 support in a current version. This would be very useful since current U-Boot versions better support raw NAND flash devices. For example, the way that the LinkIt stores the kernel on the NAND flash will break if a block goes bad. I'd also like to do A/B upgrades, but the kernel doesn't support that. What I did was to require a MicroSD card with this port to mostly avoid dealing with the NAND Flash, but that's really not a good solution.
  2. I pulled the Linux kernel and patches from OpenWRT. I whittled it down to around 250 patches or so on top of Linux 4.4. It should be able to go lower, but some thought will be needed for how we keep this port maintainable. Using an unmodified Linux kernel or an official kernel tree from Onion would be far better. The situation where we have to inspect the OpenWRT source tree for patches isn't.
  3. The WiFi driver is flakey. There are two WiFi drivers for the MT7688 that I'm aware of: one is a binary blob and the other is an open source driver. I started with the binary blob, but it would crash randomly and was impossible for me to debug. The open source driver worked far better for me, but we learned from using the LinkIt Smart in a training class that it wasn't solid.
Jared314 commented 7 years ago

I can confirm the Onion Omega2+ has:

  1. U-Boot version 1.1.3 (Oct 18 2016)
  2. LEDE snapshot (Linux 4.4.42)
  3. mt76 open source wifi driver
  4. https://github.com/OnionIoT

Altering the setup is beyond the scope of my current project, so I will try another path. Thank you for the quick response.

fhunleth commented 7 years ago

Thanks for the updates. In case someone else looks at this, that U-Boot version sounds very old despite the date. U-Boot version numbers are of the form v2016.11. I'm not familiar with 1.1.3, but according to the U-Boot git repo, version 1.3.0 is November 19, 2007. U-Boot switch to the year.month version format in 2009.

Looking around at the links, it seems like there's an awful lot of work to do to clean up the Omega2 software stack. Thanks for investigating.