User:PaulBoddie
Stuff I hope to work on...
Contents |
EGLIBC
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 pygame.surfarray.
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
Debian and Emdebian
See the Emdebian guide for a work-in-progress document describing usage of the distribution with the NanoNote.
Investigating Debian and possibly Emdebian (Debian Wiki page) for a more compact distribution of Debian.
- 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.
References
The cross-building quick-start on the Linaro Wiki is another guide to cross-compiling/building Debian packages. There's also a description of the different tools, which seems like a good reference.
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
[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.