From Qi-Hardware
Jump to: navigation, search

Stuff I hope to work on...


[edit] 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.

[edit] 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

[edit] Tidying up the Documentation on this Wiki

[edit] 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:

[edit] 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.

[edit] 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. The also provides some hints about xapt and toolchain usage.

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.

[edit] 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.

[edit] Hardware Experiments

ben-arduino-usb is an attempt to use the 8:10 port together with something like the UBB to add USB Host capabilities to the Ben NanoNote.

Ben E-paper describes a project interfacing the Ben to an e-paper display.

Ben Pololu IMU describes a project interfacing the Ben to an inertial measurement board.

Ben PCF8833 describes a project interfacing the Ben to a "Nokia 6100" LCD.

Personal tools