Difference between revisions of "TODO"

From ElphelWiki
Jump to: navigation, search
(Ethernet leds)
(Add SSH)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= TODO list =
 
 
 
Some project ideas
 
Some project ideas
  
== Add support for wifi and bluetooth ==
+
= Add support for wifi and bluetooth =
  
 
Add support for most used USB wifi and bluetooth USB keys.
 
Add support for most used USB wifi and bluetooth USB keys.
  
== Bluetooth remote control ==
+
= Bluetooth remote control =
  
 
Add a remote control via bluetooth and wifi.
 
Add a remote control via bluetooth and wifi.
  
== Make more human-readable flash.log ==
+
= Make more human-readable flash.log =
  
 
The flash.log in the nfs share more human-readable. Maybe add some more info inside.
 
The flash.log in the nfs share more human-readable. Maybe add some more info inside.
  
== PHP interface for reflashing camera(s) ==
+
= PHP interface for reflashing camera(s) =
  
 
PHP web interface to reflash one or multiple cameras with ktest (show camera status), control options, browse log files. It would be useful to add memory, FPGA and other hardware and show results -- i.e. get JPEG image and check if the image is "normal". The interface should allow to configure all ktest parameters (and probably much more) individually per camera.
 
PHP web interface to reflash one or multiple cameras with ktest (show camera status), control options, browse log files. It would be useful to add memory, FPGA and other hardware and show results -- i.e. get JPEG image and check if the image is "normal". The interface should allow to configure all ktest parameters (and probably much more) individually per camera.
Line 21: Line 19:
 
For production flashing include PoE switch control to reboot the camera.
 
For production flashing include PoE switch control to reboot the camera.
  
== The streamer ==
+
= The streamer =
  
=== Audio ===
+
== Audio ==
  
 
Implement audio from alsa source synced with video.
 
Implement audio from alsa source synced with video.
  
=== Subtitles ===
+
== Subtitles ==
  
 
Implement subtitles what might be optionally read by the client. Subtitles should be able to handle info from EXIF and any user defined data.
 
Implement subtitles what might be optionally read by the client. Subtitles should be able to handle info from EXIF and any user defined data.
  
=== Write to disk ===
+
== Write to disk ==
  
 
Implement an option to stream to the network and/or to the hard drive / CF.
 
Implement an option to stream to the network and/or to the hard drive / CF.
  
== Exif ==
+
= Exif =
  
 
Add fields for geo-location (GPS), orientation of the camera and some user defined data. The camera model should also include sensor type and model.
 
Add fields for geo-location (GPS), orientation of the camera and some user defined data. The camera model should also include sensor type and model.
  
== Make a block diagram of the boot process ==
+
= Make a block diagram of the boot process =
  
 
It is needed for new devs and to be able to have an overview of the process and be able to enhance it.
 
It is needed for new devs and to be able to have an overview of the process and be able to enhance it.
  
== Better usage of busybox ==
+
= Better usage of busybox =
  
 
Enable cool and useful staff from busybox such as passwd, cfdisk, minicom, ...
 
Enable cool and useful staff from busybox such as passwd, cfdisk, minicom, ...
 
(Please post a list to this section for discussion before doing what)
 
(Please post a list to this section for discussion before doing what)
  
== Hardware Test Software ==
+
= Hardware Test Software =
  
 
Hmm... will be described later.
 
Hmm... will be described later.
  
== Do some magic to be able to pass params to the kernel over reboot ==
+
= Do some magic to be able to pass params to the kernel over reboot =
  
 
Implement (or just improve - something is already done) passing parameters to the next booted kernel. This can be done in different ways:
 
Implement (or just improve - something is already done) passing parameters to the next booted kernel. This can be done in different ways:
Line 61: Line 59:
 
* destroy signature magic after usage - even powered down SDRAM can hold data for many seconds
 
* destroy signature magic after usage - even powered down SDRAM can hold data for many seconds
  
== Green button ==
+
= Green button =
 +
 
 +
Get rid of the green button.
  
The green button on the back of the camera can be used in different ways:
+
10353 Rev "E" PCB will still has a provision to install that button, but the board is able to operate without it. Instead the power should be applied/removed several (>~5) times to switch camera to the network boot mode. This can be done manually or with a manageable PoE switch.
  
* at power up to put the CPU in flashing mode
+
Current (as of January 2008) PCB has rev "D", rev "E" will be available in the second quarter of 2008.
* 1-2 seconds after power up and hold for ~8 seconds to boot the camera with squashfs and tmpfs instead of jffs. When a special script can be used to relink safe files from sqauashfs to jffs. (cf [http://wiki.elphel.com/index.php?title=TODO&action=submit#Change_the_structure_of_the_boot_process])
 
* something else user configurable after init 5
 
  
== Init levels ==
+
= Init levels =
  
 
Implement init levels, init 3 should have only GNU/Linux with telnetd, everything camera specific should run from init 5. The default level will be 5, but ktest should be able to pass init=3 to the kernel.
 
Implement init levels, init 3 should have only GNU/Linux with telnetd, everything camera specific should run from init 5. The default level will be 5, but ktest should be able to pass init=3 to the kernel.
  
== Ktest ==
+
= NetBoot =
 +
 
 +
== Better output ==
 +
Some more output should be added to netboot to make it more verbose and user-friendly.
 +
 
 +
== New function ==
 +
Add new function and param to read & copy partitions from the flash to NFS for debuging.
 +
 
 +
= Ethernet LEDs =
 +
 
 +
Hack in to the ethernet driver to make a better usage of leds. For example during flash with pressed button boot with orange led ON, blink orange while booting the kernel, blink with the green led while copying from NFS to flash and green ON when completely flashed and ready to be rebooted. While normal operation leds can be used in a more nice way when now.
 +
 
 +
= Genres =
 +
 
 +
Enhance Genres plugin to get rid of multiple languages and dependences and rewrite all using only one programming language. Make it more stable.
 +
 
 +
= camvc =
  
=== Rename ktest ===
+
Repair broken/buggy AJAX code, port CGIs to PHP and move to lighthttpd instead of boa. (keep them both at least at the beginning to compare te speed and stability)
Ktest should be renamed to something else resuming it's function.
 
  
=== Better output ===
+
= Security =
Some more output should be added to ktest to make it more verbose and user-friendly.
 
  
=== New function ===
+
== Lighthttpd ==
Add new function and param to read & copy partitions from the flash to NFS for debuging.
+
 
 +
Add https to lighthttpd and add .htaccess protected directories.
 +
 
 +
== Add SSH ==
 +
This has apparently been done.  The model 353 I received (July 2008) has the [http://matt.ucc.asn.au/dropbear/dropbear.html Dropbear]  implementation of ssh.
 +
 
 +
== Separate user privileges ==
  
== Ethernet LEDs ==
+
Add passwd command, implement users and groups with separated privileges. Make groups for FPGA and other hardware (as HD) access and make Lighthttpd/PHP run as user.
  
Hack in to the ehternet driver to make a better usage of leds. For example during flash with pressed button boot with orange led ON, blink orange while booting the kernel, blink with the green led while copying from NFS to flash and green ON when completely flashed and ready to be rebooted. While normal operation leds can be used in a more nice way when now.
+
== Netfilter firewall ==
  
== Change the structure of the boot process ==
+
Port the latest netfilter to be able to setup a firewall on the camera.
  
I like how partitions are organized in OpenWRT. The root partition should be read only squashfs. The same root partition should be used to boot from flash or from ktest. Then a read/write flash or tmpfs partition can be mounted, squashfs remounted to a new directory. And files from / linked to the /squashfs directory.
+
= Ideas =
  
During the flash process files from squashfs will be symlinked to the tmpfs and to the flash r/w partition.
+
== Flashing via USB ==
  
Like what we always have a clean squashfs, links from the r/w jffs partition can be removed and replaced by real files with different content. We can also implement a function for the green button to erase the files from the r/w partition and relink them to /squashfs. It's a simple way to get back to a known point without reflashing the camera.
+
It seems really simple to implement flashing via USB Flash/HD. If the camera find /autoupgrade.sh script on the USB-flash during the boot it upgrade the firmware.

Latest revision as of 08:27, 19 July 2008

Some project ideas

Add support for wifi and bluetooth

Add support for most used USB wifi and bluetooth USB keys.

Bluetooth remote control

Add a remote control via bluetooth and wifi.

Make more human-readable flash.log

The flash.log in the nfs share more human-readable. Maybe add some more info inside.

PHP interface for reflashing camera(s)

PHP web interface to reflash one or multiple cameras with ktest (show camera status), control options, browse log files. It would be useful to add memory, FPGA and other hardware and show results -- i.e. get JPEG image and check if the image is "normal". The interface should allow to configure all ktest parameters (and probably much more) individually per camera.

For production flashing include PoE switch control to reboot the camera.

The streamer

Audio

Implement audio from alsa source synced with video.

Subtitles

Implement subtitles what might be optionally read by the client. Subtitles should be able to handle info from EXIF and any user defined data.

Write to disk

Implement an option to stream to the network and/or to the hard drive / CF.

Exif

Add fields for geo-location (GPS), orientation of the camera and some user defined data. The camera model should also include sensor type and model.

Make a block diagram of the boot process

It is needed for new devs and to be able to have an overview of the process and be able to enhance it.

Better usage of busybox

Enable cool and useful staff from busybox such as passwd, cfdisk, minicom, ... (Please post a list to this section for discussion before doing what)

Hardware Test Software

Hmm... will be described later.

Do some magic to be able to pass params to the kernel over reboot

Implement (or just improve - something is already done) passing parameters to the next booted kernel. This can be done in different ways:

  • passing kernel params truth RAM
  • using KEXEC kernel function
  • simulate the green button pressure at boot time (to boot in flashing mode)
  • destroy signature magic after usage - even powered down SDRAM can hold data for many seconds

Green button

Get rid of the green button.

10353 Rev "E" PCB will still has a provision to install that button, but the board is able to operate without it. Instead the power should be applied/removed several (>~5) times to switch camera to the network boot mode. This can be done manually or with a manageable PoE switch.

Current (as of January 2008) PCB has rev "D", rev "E" will be available in the second quarter of 2008.

Init levels

Implement init levels, init 3 should have only GNU/Linux with telnetd, everything camera specific should run from init 5. The default level will be 5, but ktest should be able to pass init=3 to the kernel.

NetBoot

Better output

Some more output should be added to netboot to make it more verbose and user-friendly.

New function

Add new function and param to read & copy partitions from the flash to NFS for debuging.

Ethernet LEDs

Hack in to the ethernet driver to make a better usage of leds. For example during flash with pressed button boot with orange led ON, blink orange while booting the kernel, blink with the green led while copying from NFS to flash and green ON when completely flashed and ready to be rebooted. While normal operation leds can be used in a more nice way when now.

Genres

Enhance Genres plugin to get rid of multiple languages and dependences and rewrite all using only one programming language. Make it more stable.

camvc

Repair broken/buggy AJAX code, port CGIs to PHP and move to lighthttpd instead of boa. (keep them both at least at the beginning to compare te speed and stability)

Security

Lighthttpd

Add https to lighthttpd and add .htaccess protected directories.

Add SSH

This has apparently been done. The model 353 I received (July 2008) has the Dropbear implementation of ssh.

Separate user privileges

Add passwd command, implement users and groups with separated privileges. Make groups for FPGA and other hardware (as HD) access and make Lighthttpd/PHP run as user.

Netfilter firewall

Port the latest netfilter to be able to setup a firewall on the camera.

Ideas

Flashing via USB

It seems really simple to implement flashing via USB Flash/HD. If the camera find /autoupgrade.sh script on the USB-flash during the boot it upgrade the firmware.