Skip to content
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

add support for medaka Casio Pro Trek Smart WSD-F21hr #165

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

dodoradio
Copy link
Contributor

@dodoradio dodoradio commented Feb 26, 2023

This is the successor to ayu, the Casio WSD-F20. Compared to that, this watch adds a heartrate sensor, with a different segment LCD and slight differences in styling - overall, the two look very similar and even use the same primary display panel, but they are internally based on completely different platforms, with this one running the 64 bit Exynos 7270.

This port is not ready to merge for 2 reasons:
Firstly, the commit history is a total mess, since I removed and re-added a lot of beluga base in various commits. I'm not sure if it's worth slightly cleaning up but keeping all these changes, so that they act as a good log of the porting process, or if it's worth completely reworking the git history into something that would seem to be a more logical progression.
Secondly, the port currently uses a gross multilib hack to build a 64 bit kernel with a 32 bit userspace, which is necessary because all the android libraries are 32 bit. The multilib hack (from my minimal research) is the most correct solution for our build system, but it means that lib32- must be prepended to any package name that is build - ie. lib32-asteroid-image instead of asteroid-image and all packages come out as lib32-[packagename] as well, such as lib32-lcd-tools_+git.....ipk. This isn't ideal, but I'm not sure how best to fix it.

What works:

  • Display
  • Touch
  • Sensors (heartrate, tilt-to-wake and compass have been tested)
  • Vibrator

What doesn't work:

  • GPS
  • too expensive
  • aforementioned 32 bit build issue
  • USB in any mode other than adb

Untested:

  • microphone

Flashing requires identical disassembly steps to ayu.

it also seems like this port could be mostly shared for the WSD-F30, whenever one of us is lucky enough to get one of those rare and expensive watches in hand

the defconfig misbehaves with regards to USB features, so the defconfig is currently the .config pulled from a working kernel build
added a custom android tarball built for a generic aosp_arm64 target. This is really not device-specific, but it's going here until it's confirmed working.
libhybris is currently failing to select the correct architecture at the configure stage, so it tries to build some arm 32bit specific code and fails. Further investigation is needed because this workaround should not be necessary.
previously, this would cause medaka's init to get stuck with uevent-related errors
the system dir actually contains the boot ramdisk, which means that the partition must be remounted from there. this is accomplished by the machine-specific init script.
it was discovered that all the android binaries are, in fact, 32 bit. This forces us to use a 32 bit userspace.
as of now, lib32-asteroid-image must be built instead of asteroid-image. this will hopefully change in the future, but I'm not sure how this should work at the moment
ngfd dependency was already added in the recipe this was based on
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant