Ben NanoNote Software Status
Note: this development-related page is pretty outdated. If you're looking for up-to-date information on Ben Nanonote Software status, have a look at the Applications page and the software image changelog. |
This page is intended for writing down thoughts about how some layers of the software part can be realized;
for sharing, creating, adding and dropping ideas, commenting and spinning on them...
For having issues with already integrated software, please take a look at the issue tracker.
Contents |
[edit] Bootloader
- Currently we're using uboot. We would like to switch to something lighter, ideally the "qi-bootloader", but that needs some work.
- It should support setting values to distinguish different hw platforms if these aren't distinguishable by sw (ben & ya)
- It should support setting of the usb-mac address to uniquely identify the device
- For the last 2 points an identity partition in nand would be nice that's not overwritten by flashing a new bootloader
- The boot loader could sport a menu to offer booting OpenWRT from /dev/mmcblk0p1 or Debian/other from /dev/mmcblk0p2. The menu could boot the default item after 1 second. It could allow a selected item to be set as the default for next time. Then I wouldn't have to hold down M every single time I boot my NanoNote
[edit] Kernel
- Currently having kernel 2.6.32 running, built within the OpenWrt framework
[edit] TODO
- further cleanup of the whole code base for the jz-chip by ingenic
- Add native i2s-support
- Speed up NAND and MMC access using DMA
- Write PWM driver
- Sometimes [Unhandled kernel unaligned access] Process ksoftirqd/0 make kernel reboot. (Unconfirmed)
[edit] Core system
- right now the base userspace system is based on busybox, as OpenWrt is using busybox as underlying userspace infrastructure. It's doing it's job for now on the NanoNote, so, in my view, right now no need for alternatives.
- Write alsa config for softvol and dmix[1]
[edit] GUI?
- core graphical system
- Personally I see 3 options:
- stick to console based software (ncurses) for now
- using the abilitiy of applications / toolkits to draw to the framebuffer directly (e.g. gtk2, fltk, evas/edje)
- <maemo>, the distrubition nokia is using on their n-series tables is using <Hildon> as default user interface, based on gtk+. It's optimized for the use on embedded devices - since it is based gtk+ it may be also possible drawing it directly on the framebuffer, without the need of an Xserver.
- having a real Xserver (propably Xorg) running - might be a bit hard with having just 32MB of RAM within the Ben NanoNote (xfdev used on Jlime seems beat this fact)
- Personally I see 3 options:
[edit] Key User-level Programs for Release Image
(# indicates that it's currently in there)
[edit] Applications
- Gmenu2x (launcher)
- # Vido (wikipedia offline reader)
- Stardict (dictionary)
- Music Player
[edit] Data
- 1 million most common articles of en wikipedia
- Dictionaries (which?)
- Music (oggs off Jamendo, which? )
[edit] Language Support
- # Lua
- Python (in openwrt currently, works fine: opkg install python)
- Perl
- # Guile [Scheme variant]
[edit] Enormous app status/wish-list
[edit] In Release Image
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
Lynx | browser | Lynx | simple, text-based browser | |
vim | editor | vim | console editor | |
openZIM | offline webcontent | openZIM | This is the openZIM project, a free and open source implementation of the ZIM file format. You will find here documentation about the ZIM file format, the openZIM software and the project management.
The ZIM file format was created to provide a standard way to make webcontent offline available. Its major usage is to provide Wikipedia content offline, like in Wikipedia DVDs. |
Not release ready, work in progress. |
Mutt | email client | |||
Lua | scripting engine | |||
irssi | irc | |||
bc | calculator |
[edit] In OpenWrt
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
Nano | editor | Nano Editor | simple, easy-to-use console editor | |
elinks | browser | elinks is a web browser originally derived from Links. | ||
sox | audio recorder | sox |
[edit] Packaged but not in OpenWrt
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
Scheme interpreter | guile | guile | Early user reported on list that guile works (package), the guile is already in openwrt-package | |
kbd | console utilities, including fonts | mailing list | source for package and binary | |
Links2 | browser | Links2 | Links is a web browser running in both graphics and text mode. (text mode is work now) (also on directfb) | |
sc | ncurses-based spreadsheet | binary |
[edit] Runs but not yet packaged
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
nethack | You can get the binary package at http://www.jemarch.net/downloads/nanonote/ | jemarch@gnu.org | ||
any Dingoo A320 software | See this mailing list post |
[edit] Not yet working
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
StarDict | dictionary | StarDict | issue tracker | Xiangfu |
Rockbox | music player | Rockbox | open source firmware for music players, work done targeting jz chip and Onda player | |
Lout | Typesetting system a la LaTeX | Lout homepage | Lightweight, full-featured document preparation system. See Lout. |
[edit] Blue sky
Name | Type | Project Home | Comment | Status/Contact |
---|---|---|---|---|
LÖVE | 2D game engine for games in Lua | http://love2d.org | dependencies: Lua, SDL, libvorbis, libpng, PhysicsFS (libphysfs) | bartbes and Textmode on freenode |
man/info | documentation | OpenWRT program packages usually don't include man/info pages. At least there is available a "mandoc" utility to render manual pages. | ||
GNU Octave | numerical computations | http://www.octave.org | Experimental package available in openwrt-packages.git | Uses experimental Fortran compiler support in toolchain; Needs vm/overcommit_memory setting; Needs proper gnuplot/plplot port; Dvdkhlng |
PIM suite to sync with desktop | There are calendars with plain-text data formats (Gcal, Calcurse, Remind). | |||
moosic | music jukebox | |||
cgdb | curses debugger | |||
CenterIM | jabber | http://centerim.org | It's available but it requires smaller than default console font in order to be useable. | Already done. |
zsh | shell | |||
DirectVNC | VNC client over DirectFB | |||
Artha | dictionary | Artha homepage | suggested by Ron on developer list | |
Netsurf | Web Broswser | Netsurf Homepage | Self contained web browser, not reliant on other libraries like Dillo. | |
Dillo | browser | Dillo | Dillo is a multi-platform graphical web browser known for its speed and small footprint | In OpenWrt, but broken |
stellarium | planetarium | http://stellarium.org |
[edit]
- xc3sprog
- http://urjtag.org/
- scicos scilab
- siggen http://www.comp.leeds.ac.uk/jj/linux/siggen.html
[edit] Audio
- alsamixer
need enable the [Output Mixer DAC] by press "m". "Esc" to exit.
- ncmpc
ncmpc is a curses client for the Music Player Daemon (MPD) "enter" is play, "P" is pause, "s" is stop, "tab" switch display "q" is exit, "1" is help information.
- gmu
download gmu http://www.2shared.com/file/10645537/3ad5338f/gmu-070_BETA7-NANONOTEtar.html
install Libraries:
SDL
SDL_Image
SDL_gfx
[edit] editor
- vim
- joe
- zile like emacs.
[edit] browser
- lynx
- links
"Alt + f" for the menu.
[edit] Misc
[edit] date
The date is not set at the beginning, but setting it manually seems to work OK.
$ date Thu Jan 1 00:56:39 UTC 1970 $ date -s "2009-09-11 23:07:30" $ date Fri Sep 11 23:07:31 UTC 2009
[edit] hwclock
Works fine with newer kernel versions.
$ hwclock Fri Sep 11 23:07:31 2009 0.000000 seconds
To set the RTC to the current date/time as returned by the date command use:
$ hwclock -w
[edit] SDIO communication protocol
This is the first attempt to an SDIO communication protocol. What this driver does so far is to send a character using the command 52 and the command line of the SD port.
You can find HERE (link to xilinx's project) the project that was used as the SDIO card. It was tested in an Spartan 3e FPGA; what this project does is to response to the different commands the Ben Nano-note sends to initialize and communicate with the device, most of these responses are the same as a WiFi SDIO-card would give.
The driver can be found HERE (link to driver). This driver registers the new device as a tty, it assigns an address to the port and the function the SDIO can implement; it also uses a character like device that you can use to access some of the SDIO functions such write and read. This driver uses the headers in ../drivers/mmc/core/
The next step with this project is to be able to use the four data lines the SD port has to send and receive information, in other words, to use the SD port as a parallel or serial port, for instance.