Stuff I hope to work on...
EGLIBC offers coverage for floating point functionality that uClibc does not. Although the NanoNote doesn't have floating point hardware, packages like numpy require certain floating point functions even if packages like pygame will only be using integer arrays in things like
Building Software against EGLIBC offers a solution, although this obviously requires toolchain changes and the rebuild of a number of packages. To avoid duplication, eventually an entire image might be built with EGLIBC providing the libc functionality for all packages.
A related issue is that numpy needs modularizing or a minimal build configuration implemented for use with EGLIBC on the NanoNote since it otherwise requires too much memory by default.
 Experimenting with Small-Screen User Interfaces
Here, pygame and Cairo with SVG support might be interesting, requiring pycairo and python-rsvg (provided by the python-gnome-desktop package):
- The third example doesn't need numpy, although the mainloop at the end should be fixed to something that does something sensible
- After suspecting that the old librsvg version was causing colour channel swapping problems, I spent some time trying to update the GNOME stack (which, of course, all had to be upgraded with a lot of general breakage), but even librsvg 2.36.2 and gnome-python-desktop/python-gnome-desktop2 2.32.0 still exhibit the same issues
 Tidying up the Documentation on this Wiki
- Consolidate boot-related stuff on Bootloader, Updating Ben with usbboot, USB BOOT mode, Updating Ben NanoNote software, Reflash_ben.sh, Unbrick
- Canonical USB boot invocation instructions might go on USB BOOT mode, removing them from Updating Ben with usbboot
- Updating Ben with usbboot claims that it's better to boot from SD card, whereas Updating Ben NanoNote software contradicts this to an extent
- Unbrick duplicates a lot of the USB BOOT mode information
- Consolidate development-related stuff on Ben NanoNote Software Status, Building Software Image, Porting programs
- Add some notes about deploying new packages and integrating them into the upstream images
- Perhaps update Applications and How to contribute
- Incorporate links to (and tips from) OpenWRT Build Guide: Start To Finish
- Perhaps add a link to these libiconv notes somewhere
 Historical Information
A lot has happened since 2010, but finding out what happened, what was decided, and so on, requires trawling the mailing lists and IRC channel logs. Maybe a historical summary page could be set up, but for now I'll add some links here:
- SAKC board describes a variant of the NanoNote that later became known as SIE, but the project appears to have been moved to this heavily-spammed Wiki
- AVT2 question (or a response to the original question) covers the AVT2 board that was originally intended to be an incremental upgrade for the Ben NanoNote
- The Ben NanoNote was based on a "digital dictionary" device already in production, apparently by Shenzhen Sunty Technology Co., Limited (see this discussion post, the Vendor Address Book, and Ben CPU question)
- The NanoNote roadmap was Ben NanoNote (2010) -> Ya NanoNote (2012) -> Mu NanoNote (2014) -> Guo NanoNote (2016) with the Ben and Ya NanoNotes probably sharing many of the fundamental hardware characteristics (for example, Ingenic CPU) - see also the general NanoNote category
- Werner explains the USB hardware limitations in usb - nanonote
 Debian and Emdebian
See the Emdebian guide for a work-in-progress document describing usage of the distribution with the NanoNote.
- The Debian-based distributions are probably a better choice than OpenWrt with regard to package robustness and source package generation (essential for licence compliance purposes)
- Some integration of the OpenWrt-related work might be required for things like the kernel and U-Boot
- Emdebian Crush is probably closest to OpenWrt in spirit, but it probably needs multiarch support in Debian amongst other things to be viable
- Emdebian Grip is quite possibly usable right now; it uses multistrap (Debian Wiki page) instead of debootstrap to make bootable root filesystems
- Emdebian Baked appears to be a way of deploying self-contained, non-upgradeable images based on Crush or Grip
- The Emdebian toolchain would be the way to cross-build packages
DebWrt looks like an interesting combination of Emdebian and OpenWrt, although it's questionable whether there's an urgent need for such integration given the availability of the existing OpenWrt-built kernel and modules for the NanoNote: just using Emdebian by itself might be enough, although experience with Debian indicates that some tidying up might still be required, and maybe DebWrt does that.
The Cross-building QtMoko on Debian on the OpenMoko Wiki provides some details of using Emdebian to cross-build software.
Building a small Debian root filesystem with Multistrap discusses the cross-bootstrap process and mentions kernel configuration settings to deal with device file availability.
Installing Debian on the Gumstix Overo using Multistrap covers much the same as the Emdebian page and its accompanying resources.
 Improving the Keymap
How to change console keymap in Linux? provides some useful information about changing the keymap. It would be interesting to have support for the different navigation keys (Home, End, Page Up, Page Down), for example.