gtxaspec / wz_mini_hacks

wz camera mods... make your camera better.
1.27k stars 106 forks source link

Is it too late to add Overlayfs support? #115

Open archandanime opened 2 years ago

archandanime commented 2 years ago

Do you still keep the plan to add Overlayfs support?(mount / as overlayfs) I think that using it makes the code shorter(no more mount --bind files) but realized it's a lot of work to modify existing code. Also is it done simply by modifying atomcams_tool/initramfs_skeleton/init so the kernel mounts the / as overlayfs before switch_root to it?

gtxaspec commented 2 years ago

@archandanime it's in the works, the problem is our kernel is really old, so we are limited to a very old version of the overlayfs module.

redhat did backport a recent version to 3.10.x for rhel, I will look into this for our kernel.

archandanime commented 2 years ago

Sounds wonderful!

archandanime commented 2 years ago

@gtxaspec from my understanding, it's not possible to compile a newer version kernel to work with current(Wyze's) firmware because it's incompatible with old packages, is it correct? Is that why in developer_environment.md you said we must use 3.10.x kernel option for building the kernel? Another question, what can we possibly do if Wyze makes their firmware SDK public? does it make backporting easier?

virmaior commented 2 years ago

@archandanime I'd think the bigger problem is how the T31 works. The T31 is a combination of MIPS and RISC-V (http://www.ingenic.com.cn/en/?product/id/20.html). I don't know enough to answer definitively but my understanding is that some parts of what's running are proprietary and interact with parts of the part processor for which there is no open code (see https://www.cnx-software.com/2020/04/26/ingenic-t31-ai-video-processor-combines-xburst-1-mips-and-risc-v-lite-cores/ )

archandanime commented 2 years ago

@virmaior Thank you for the explanation. I see how customizing firmware is not an easy task now. Now I understand it's not up to Wyze about adding features to their products, they don't have control over every part of their products.

archandanime commented 2 years ago

@gtxaspec I don't if you have checked out OpenIPC, they managed to add overlayfs support for Ingenic T3. Hope it helps!

gtxaspec commented 2 years ago

it's the same older version of overlayfs. I'll start work on adding overlayfs soon

gtxaspec commented 2 years ago

@gtxaspec from my understanding, it's not possible to compile a newer version kernel to work with current(Wyze's) firmware because it's incompatible with old packages, is it correct? Is that why in developer_environment.md you said we must use 3.10.x kernel option for building the kernel? Another question, what can we possibly do if Wyze makes their firmware SDK public? does it make backporting easier?

The SDK released by the original design manufacturer (ODM), hualai, is based off kernel 3.10.14. This is the version which is provided to their customer, wyze, as well as anyone else who uses a T31 SoC in their designs. The SDK is available online from multiple sources, you can google for it.

Ingenic's newer platform, X1000/X1500E has support in the mainline kernel (5.x), and may be bootable on the T31, though I haven't tried. I do plan to test it at some point.

If it is possible to boot the newer kernel, the next step would be to verify that everything works, like SDIO/MMC, GPIO, i2c, etc. If the kernel boots but everything else is broken, it doesn't really get us anywhere.

gtxaspec commented 2 years ago

@archandanime I'd think the bigger problem is how the T31 works. The T31 is a combination of MIPS and RISC-V (http://www.ingenic.com.cn/en/?product/id/20.html). I don't know enough to answer definitively but my understanding is that some parts of what's running are proprietary and interact with parts of the part processor for which there is no open code (see https://www.cnx-software.com/2020/04/26/ingenic-t31-ai-video-processor-combines-xburst-1-mips-and-risc-v-lite-cores/ )

the only camera which seems to use the risc-v core is the outdoor camera. I don't have the SDK for the risc-v stuff yet, so progress is slow on this.

Every other camera just uses the regular SDK which is already out there. If you have the knowledge, you can really do anything with the camera's. The SDK includes everything you need to.

Ideally the best thing would be to take the latest kernel, 5.19, and work on the source code to get it booting on the T31. Getting the right people together that have the knowledge and time to do this is the trick though.

mach7 commented 1 year ago

@archandanime I'd think the bigger problem is how the T31 works. The T31 is a combination of MIPS and RISC-V (http://www.ingenic.com.cn/en/?product/id/20.html). I don't know enough to answer definitively but my understanding is that some parts of what's running are proprietary and interact with parts of the part processor for which there is no open code (see https://www.cnx-software.com/2020/04/26/ingenic-t31-ai-video-processor-combines-xburst-1-mips-and-risc-v-lite-cores/ )

the only camera which seems to use the risc-v core is the outdoor camera. I don't have the SDK for the risc-v stuff yet, so progress is slow on this.

Every other camera just uses the regular SDK which is already out there. If you have the knowledge, you can really do anything with the camera's. The SDK includes everything you need to.

Ideally the best thing would be to take the latest kernel, 5.19, and work on the source code to get it booting on the T31. Getting the right people together that have the knowledge and time to do this is the trick though.

Where would someone might start to obtain the knowledge to help on something like this?

archandanime commented 11 months ago

631