I am writing some application software for a MicroZed SOM module. I need to provide a command line and web interface for controlling some hardware so I am planning to use some flavor of linux on the Arm processors of the Zynq.
There are quite a few ways to boot and run linux on the Zynq. I am looking for the approach that is most convenient with respect to development and deployment.
At this point I have read every website I can find on the subject. These howto's and tutorials generally take three different approaches.
1. u-boot -> linux kernel + ramdisk root filesystem
2. u-boot -> linux kernel + sd card Ubuntu root filesystem
3. Petalinux semi-proprietary flow.
Approach 1 boots fast and is very stable but is not convenient for development. It looks like every development cycle requires you to cross-compile, compress the ramdisk image, write the ramdisk image to the sd card and reboot the MicroZed.
Approach 2 seems like a lot of overhead to carry forward to deployment. On the other hand it should be possible to ssh into the MicroZed and edit-compile-run very quickly. Code changes would be persistent due to the SD card filesystem.
Approach 3 I have not tried.
What do people here use for linux application development on Zed? Is there an intermediate way to run linux that provides ssh, vim, gcc but mounts an sd card or NFS persistent filesystem?
What do people here prefer as a development environment for relatively simple applications?