OpenWrt Software Image

From Qi-Hardware
Jump to: navigation, search

On the Ben NanoNotes currently sold you will find an image based on the OpenWrt embedded linux distribution.

We opted for OpenWrt as we needed a highly adaptable and configurable build environment which is reliable and doesn't make us spend too much time on fixing the system itself.

To build your very own custom image, please refer to Building Software Image

Contents

[edit] How to flash the most recent version to my device

Before Starting, please ensure:

  • Backup your 1.5GB data partition
  • The xburst-tools are installed and working properly
  • You have a working internet connection (for downloading the latest version of the image)
  • You're running the script as user "root" (e.g. < sudo ./reflash_script.sh >)
  • Your device is connected with a decent USB-cable (this sometimes resulted in problems in the past)
  • You booted your device in usbboot-mode
  • If you have questions, please consult Updating Ben NanoNote software.


To flash the most recent official image, just download and run the following script without any arguments: http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/reflash_ben.sh

The script requires a usual linux/unix system environment and having the xburst-tools installed.

It will download and flash the latest images to your device.

The actual images and its configurations are located here http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND

[edit] Software

We try to keep all of the included software up-to-date - that way there'll be always be the most recent versions of software within the image.

[edit] Bootloader

The bootloader is based on U-Boot

[edit] Kernel

As kernel we basically use the linux-2.6 kernel with a few patches to make it run smoothly on our hardware.

There's always the latest stable kernel version in use (currently 2.6.32).

[edit] Userland / RootFS

[edit] Core utils

The core applications are based on busybox, a minimal Unix userland.

[edit] Graphics system

To not waste system resources the default image does not come with a usual XServer like Xorg, but uses the DirectFB engine.

All of the major toolkits provide support for DirectFB, that way the software within the default image supports graphical applications based on the following toolkits out-of-the-box:

Currently supported and installed in the image by default are:

[edit] Applications

see Applications

[edit] Which Release Are You Using?

in your 本NanoNote run:

cat  /etc/VERSION

[edit] Change Log

[edit] Next

CHANGELOG

  • U-boot code went to OpenWrt upstream. Thanks a lot to Mirko
  • Rebase Ben Nanonote code on upstream svn://svn.openwrt.org/openwrt/trunk@34901
  • Update packages with OpenWrt r34901(w3m, sdcv, qstardict, jfbterm, mpg123, centerim5, directvnc)
  • Update cgminer to 2.10.4
  • fpgatools: split to 2 packages(mini-jtag + fp2bit/bit2fp)

NEW PACKAGES

libctl Control UBB signals libubb Helper functions for the Universal Breakout Board


[edit] Image_2012-10-24

CHANGELOG

  • Update U-Boot to v2012.10-rc2
  • Fix boot from memcard
  • Update U-Boot ENV address to 0xC0000/0x140000
  • Rebase Ben Nanonote code on upstream svn://svn.openwrt.org/openwrt/trunk@33721
  • Fix openwrt-packages dl url and deps, big thanks to kyak(#qi-hardware @freenode.net)
  • Add 6x10 font for setfont
  • 4th update to 3.61.5
  • avrdude: update to 5.11.1, new avrdude support reflash ledtoy
  • centerim5: update to latest git
  • libpurple: update to 2.10.6
  • ne: bump version
  • quickcalc: update to version 1.28
  • qball: update to version 1.4
  • gmu: update to 0.8.0
  • gmenu2x: update to latest version

ISSUES

  • Failed build packages
  • qemu-host failed to build. which make all emacs* failed to build. I have to run './scripts/feeds uninstall qemu-host' and './scripts/feeds uninstall emacs' for make the build ignore them.
  • freedroid: it will give segmentation fault unless you enable swap
  • gforth give:
>>>plot(sin(1:10))<<<
Backtrace:
$771F6FF4 throw 
$772039F0 no.extensions 
$771F71B4 interpreter-notfound1

[edit] Image_2012-07-11

CHANGELOG

  • Bard now supports the EPUB format
  • Update wpan.nn, make the parameters more clear
  • Make nanonote inittab work with minimal, it will try to load gmen2x or sh
  • Include IPv6 kernel module
  • Kernel update to Linux-3.3.8
  • uClibc update to uClibc-0.9.33.2
  • Rebase our code on upstream svn://svn.openwrt.org/openwrt/trunk@32117
  • More codes merged to upstream

ISSUES

  • Boot from SD card doesn't work. keep reset U-Boot when press [M]. This is because of the toolchain update, which will be fixed soon. you can revert to the old U-Boot. They are the same other than different toolchains.
wget http://downloads.qi-hardware.com/software/images/NanoNote/Ben/2011-11-13/openwrt-xburst-qi_lb60-u-boot.bin
reflash_ben.sh -l . -b
  • Failed build packages, GTK/QT failed to compile again.
  • Freedroid: it will give segmentation fault unless you enable swap
  • Mediatomb gives segmentation fault
  • Octave give
warning: timestamp on file /usr/lib/octave/3.2.4/oct/mipsel-openwrt-linux-gnu/find.oct is in the future
terminate called after throwing an instance of 'std::bad_alloc'
 what():  std::bad_alloc
panic: Aborted -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete
Aborted

NEW PACKAGES

libzip libzip is a C library for reading, creating, and modifying zip archives
guile2 GNU Guile is an interpreter for Scheme
xburst-tools Tools for Ingenic XBurst CPU USB boot and NAND flash access
urjtag Universal JTAG library, server and tools

[edit] Image_2012-04-09

CHANGELOG

  • Big thanks to David, Kyak, Mirko for fix/update packages, bring the packages back
  • New entry on NuPDF and MPlayer
  • Liballegro: add png, jpeg image and ogg/vorbis audio file addons
  • MPlayer fixed
  • Fix libncursesw bug
  • Update Ben Nanonote kernel config file
  • Remove useless option -t on reflash_ben.sh

ISSUES

  • Boot from SD card doesn't work. keep reset U-Boot when press [M]. this is because the toolchain update. will fix soon. you can revert to the old U-Boot. they are same only toolchain changed.
wget http://downloads.qi-hardware.com/software/images/NanoNote/Ben/2011-11-13/openwrt-xburst-qi_lb60-u-boot.bin
reflash_ben.sh -l . -b
  • Freedroid: it will give segmentation fault unless you enable swap
  • Mediatomb gives segmentation fault
  • Bard does not support EPUB. please use this 0.7-2 version with EPUB support:
opkg install http://downloads.qi-hardware.com/people/xiangfu/ben/bugfix-for-latest-release/libzip_0.10.1-1_xburst.ipk
opkg install http://downloads.qi-hardware.com/people/xiangfu/ben/bugfix-for-latest-release/bard_0.7-2_xburst.ipk

NEW PACKAGES

alfilelsel graphical file selector dialog for scripts and gmenu2x, there are NuPDF and MPlayer icon included
alpy Python bindings for the Allegro Game and Graphics Library

FAILED PACKAGES

qipackages/ibrcommon
qipackages/ibrdtn
qipackages/ibrdtn-tools
qipackages/ibrdtnd
qipackages/libmrss
qipackages/vido
qipackages/zimreader

[edit] Image_2012-03-18

CHANGELOG

ISSUES

  • work around on missing libncursesw: cd /usr/lib/ && ln -s libncurses.so.5.7 libncursesw.so.5
  • boot from SD card doesn't work. keep reset U-Boot when press [M]. this is because the toolchain update. will fix soon

NEW PACKAGES

bard Bard Storyteller is a text reader.
hp48cc hp48cc is a C-like compiler that translates the input code into the HP48 RPN language.
pick-pdf a script file that find out pdf find in ~/ and display with a dialog. open it with nupdf. thanks jiri.brozovsky
wav2png a script file that convert wav file to png
guile2 GNU Guile is an interpreter for Scheme

FAILED PACKAGES

qipackages/NanoMap
qipackages/Tile
qipackages/libdumb
qipackages/alex4
qipackages/ase
qipackages/bard
qipackages/centerim
qipackages/dega
qipackages/dgclock
qipackages/gs
qipackages/fbida
qipackages/fbterm
qipackages/gcc-mips
qipackages/gjay
qipackages/gottet
qipackages/gtkguitune
qipackages/guile2
qipackages/ibrcommon
qipackages/ibrdtn
qipackages/ibrdtn-tools
qipackages/ibrdtnd
qipackages/keymouse
qipackages/kinyin
qipackages/libmrss
qipackages/libphysfs
qipackages/lingot
qipackages/luit
qipackages/netsurf
qipackages/nightsky
qipackages/nlove
qipackages/octave
qipackages/offrss
qipackages/plplot
qipackages/pygame
qipackages/qball
qipackages/qstardict
qipackages/stardict
qipackages/vido
qipackages/zimreader

[edit] Image_2011-11-13

CHANGELOG
Release-2-11-11-13-2.JPG
  • update Linux kernel to 3.0
  • boot time ~13 seconds(boot to gmen2x)
  • add WPAN(atBen) support. checkout /usr/bin/wpan.nn
  • nanonote-files update, include WPAN tools, one small script file for setup WPAN between two Ben Nanonotes
  • build Toolchain tar ball. much small then the SDK
  • build both 32bit and 64bit SDK and Toolchain
  • disable both u-boot and kernel boot message, new boot slash screen.
  • fixed mediatomb problem
  • reflash_ben.sh update
  • change bootloader to read 2.5M kernel partition data
  • new icons : gtkguitune, mediatomb, lingot, gjay, listener
  • include two wallpapers by Jane, w1 w2

SOURCE CODE CHANGES

  • rebase openwrt-xburst.git on top of r28464
  • zimread update to r362.
  • now we have 2900+ packages

NEW PACKAGES

tig Command line launcher for search engines and other Internet services.
Txt2tags Txt2tags text to LaTeX/HTML/Lout/Man/Wiki/.. converter.
frotz games frotz: add 1 zcode games
Taskwarrior Taskwarrior is a command-line todo list manager
listener listener automatically records when sound is detected
ben-wpan-doc ben WPAN setup USAGE file

ISSUE

  • make oldconfig not working as expect.
  • ldd /usr/lib/libreadline Segmentation fault
  • [FIXED] mediatomb not working, hang when start, someone can look into this will be great.
  • [FIXED] some packages miss icons in gmenu2x
  • [FIXED] 'wpa-supplicant' miss depends package 'libnl-tiny', needs manually install by 'opkg install libnl-tiny' after install wpa-supplicant, fixed by we include libnl-tiny. needs fix in upstream

[edit] Image_2011-08-27

CHANGELOG

  • remove powerup delay, thanks Bas Wijnen
  • update reflash_ben.sh, add -d for dailybuild -t for testing, see --help for more info
  • update xburst-tools, ChangeLog
  • more icons in gmenu2x, immediate kill gmenu2x.bin when poweroff, gmenu2x update a lot.
  • timeout working in gmenu2x. setup to 60 seconds by default
  • disable kernel log when boot. change console blank time to 30 seconds, thanks kyak
  • busybox: backport reverse history search patch
  • fix rootfs.tar.gz not boot. (which only under Image_2011-05-28)
  • set Date Time to the day of building after reflash
  • some small improve,
  • there are 2600+ packages

SOURCE CODE CHANGES

  • rebase on top of trunk upstream r27328 date: 2011-07-01
  • now we have new kernel and toolchain: gcc-linaro uClibc-0.9.32 linux-2.6.37.6
  • qball, 4th, octave, plplot, gcc-mips updated
  • mc enable wide char support
  • include svn client
  • emacs update a lot, bootup very fast

NEW PACKAGES

libunistring
gjay
qemu-host
liballegro
cscope Cscope source code browser -initial port to OpenWRT.
ben-wpan tools initial port
lowpan-tools initial port
libnl-1 initial port
pem tool to help you keep track of your personal income and expenses
Tempest for Eliza it is a Program that uses your computer monitor to send out AM radio signals.
vitetris terminal-based Tetris clone
ASE allegro sprite editor, a generic drawing and animation program
alex4 Alex the Allegator v4: Game-Boy style jump&n&run game
libdumb mod/xm player (dumbplay) plus player library for games
lingot not only guitar tuner using GTK
gtkguitune for tuning guitars and other instruments by using the method of Schmitt-triggering
liballegro-digmid package 'freepats' samples for midi synthesizer
crashmail CrashMail II is basically a more portable version of CrashMail, a FidoNet tosser for Amiga computers.
binkd Fidonet mailer
husky a bunch of tools for Fidonet

ISSUE

  • This a major update of uClibc, therefore this release is not binary compatible with older ones.
  • mediatomb not working, hang when start, someone can look into this will be great.
  • stardict Segmentation fault when start, since Qstardict work better, maybe stardict useless for now.
  • workaround on python, more info
  • ldd /usr/lib/libreadline Segmentation fault
  • some packages miss icons in gmenu2x
  • 'wpa-supplicant' miss depends package 'libnl-tiny', needs manually install by 'opkg install libnl-tiny' after install wpa-supplicant

[edit] Image 2011-05-28

CHANGELOG

SOURCE CODE CHANGES

  • rebase on top of backfire r26851 date: 2011-05-08
  • move data/, ks7010 from openwrt-xburst.git to openwrt-package.git

NEW PACKAGES

avrdude Atmel AVR Microcontrollers
kinyin Chinese notepad
stardict dictionary English <-> Spanish
tic-tac-toe game
kexecboot a nice Linux-As-a-Bootloader
curveship interactive fiction + interactive narrating
flite (1.4 for overwrite the upstream version)
4th 4th forth compiler
man-tiny simple man program
libsdl-doc-man libsdl man pages

[edit] Image 2011-02-23

CHANGELOG

  • fixed /bin/ash : can't access tty; job control is turned off when start 'ash' 'bash'
  • a wiki page for how to using SDK
  • removed gcc-mips, samples, demos, for saving more space
  • we have mtd.nn now, it's have command:
flash kernel|rootfs|data image_file
mount rootfs|data    mount_point
format_data_default
fw_setenv_default
  • u-boot support F1/2/3/4 when poweron.
F1/2/3 will load kernel from sdcard partition 1/2/3
F4 will load kernel inside the ubi rootfs of nand.(we need put kernel at /boot/uImage)
those kernel command line. boot kernel command can be changed by 'fw_setenv'
  • fixed WIFI (ks7010) not working in 2012-12-14, thanks Lars
  • gfortran support in cross toolchain
  • add vm.overcommit_memory = 1 to sysctl.conf
  • by talking in IRC. now we will only release SDK, remove IB and ToolChain
  • fixed 'BenNanoNote' DNS problem
  • fixed opkg.conf URL not correct
  • | packages update
  • | mirror-openwrt-sources update.
  • Kernel update to 2.6.32.27
  • automatic write u-boot default env to nand when first boot
  • gmu update to 0.7.2
  • gmenu2x updated, theme, new icons
  • fixed emacs not start in gmenu2x.
  • add parameter '-q' to freedroid, for enable sound you needs setup swap manually

SOURCE CODE CHANGES

  • rebase on top of backfire r25455
  • using new nls and cmake strategy
  • remove not overwirte files to one package named nanonote-files
  • using revision in feeds.conf file
  • merge config.all_packages and config.full_system to one
  • using 'strip' not 'sstrip'
  • cross compiler now support gfortran, thanks dvdk (#qi-hardware @freenode)

KNOWN ISSUES

  • flite have noise when direct speak, [flite -t "hello world" hello.wav && aplay hello.wav] is better then just [flite -t "hello world"]

NEW PACKAGES

gottet Tetris clone, written in Qt
qball simple breakout style game
ikog ikog
octave GNU Octave (executable)
mediatomb mediatomb
tunec A command line guitar tuner for linux
flite Text-to-speech for embedded systems
qstardict Qt clone of stardict
MPlayer MPlayer, the movie player
offrss Offrss
Tile 15 Puzzle game, written in Qt
pmars Pmars
mandoc Manual pages formatter.
robots An robots application
bwbasic An bwbasic application
pyclock a binary clock for programmer
links GUI version Links
sokoban game
supertux supertux
zgv Picture Viewer featuring Thumbnails
brainless Brainless (a chess playing program)
plplot PLplot plotting library
gnuplot A portable command-line driven graphing utility
dunnet an emacs game
terminus-font Monospaced fonts

[edit] Image 2010-12-14

CHANGELOG

  • moved the gmenu2x to /etc/inittab
  • disabled atd, telnet, led
  • automatic creating /dev/rtc
  • added some default configure files, see ls -a /root/
  • using triggerhappy for closing the powerof, remove fn-handle and cmdpad
  • added a lot of icons to gmenu2x
  • added reflash progress indicator in reflash_ben.sh. it will try to download ubi.bz2 first
  • added fw_setenv_default. if we want to change the kernel command line: 1. run fw_setenv_default 2. fw_setenv bootargs KERNEL_CMD_LINE_CONTENT
NOTICE by default the u-boot envs doesn't write to nand. the "fw_setenv_default" will write default to nand, so we only need to run fw_setenv_default once before we start to set u-boot env. 

SOURCE CODE CHANGES

  • moved files/* to its own package. not in openwrt-xburst.git

KNOWN ISSUES

  • /bin/ash : can't access tty; job control is turned off when start 'ash' 'bash'
  • there are some ALSA LIB error messages, when system boots. it is because the gmenu2x tries to access the sound system before sound module is loaded
  • gmenu2x doesn't dim the screen. but works fine in 'ash' 'gmu'
  • when exit nanomap, there is one segment fault sometimes
  • when exit stardict, then go back to gmen2x, starting another terminal program system doesn't go to tty1, need to manually go to tty1 by pressing "ctrl + alt + F1"

NEW PACKAGES

abook address book
aewan Ascii Art Editor
ctronome console metronome software
dosfsck dosfsck
dosfslabel dosfslabel
libncursesw Terminal handling library (Unicode)
elinks A text based web browser
Emacs Emacs
links Text and graphics WWW browser
moc Music On Console
msmtp Simple sendmail SMTP forwarding (with SSL support)
NanoMap-maps Qt4-based map viewer (Sample Maps)
nanonote-example-files nanonote-example-files
netcat A feature-rich network debugging and exploration tool.
nethack single player dungeon exploration game
netsurf another web browser
nfs-utils updated mount utility (includes nfs4)
qstardict Qt clone of stardict
qt4-demos qt4 (demos)
qt4-examples qt4 (examples)
qt4-svg qt4 (svg)
resize2fs resize2fs
sshfs SSHFS
stardict-dic-en-cn International Dictionary Software (dictionary: oxfordjm English <-> Chinses)
tcl TCL Lang
triggersad handle input events and run configured programs
wget Non-interactive network downloader (with SSL support)
wtime WTime time tracker

[edit] Image 2010-11-17

  • heavily restructured git repository to make it more easy to track changes with upstream
  • change rootfs size from 256MB to 512MB
  • switch back to uclibc 0.9.30.1, since we experienced issues with 0.9.32 which are going to be investigated
  • all used toolkits (sdl, gtk2, qt4) are working again
  • lot's of packages - within the openwrt-packages as well as in the qi-packages repository - have been updated to fit more the needs of NanoNote users
  • lot's of new and fixed packages have been added to the default config (more below) and therewith image
  • the toolchain and SDK are now built by default to simplify development and cross-compiling / -linking of software

changes to busybox:

  • FEATURE_ASSUME_UNICODE set
  • FEATURE_VI_8BIT set
  • STAT added
  • HOSTNAME added

packages added:

  • gforth added
  • kexec-tools added
  • picoc added
  • jbig2dec added
  • openjpeg added
  • unifont added
  • cmdpad added
  • ghostscript added
  • hwclock added
  • io added
  • mupdf-tools added
  • binutils added
  • libbfd added
  • objdump added
  • erlang added
  • jbofihe added
  • lojban-wordlists added
  • makfa added
  • fbgs added
  • fbi added

[edit] Image 2010-06-15

  • enable kernel FPU support as fallback => debian-userspace compatible
  • lot's of kernel fixes
  • new packages ported and added:
  • image viewer "imgv"
  • console calendar "gcal"
  • screenshot "fbgrab"
  • math suite "mathomatic"
  • "sdcv" - console frontend for stardict
  • unit converter "units"
  • GNU Chess
  • u-boot: when boot from flash memory card, u-boot will load ext2-first-partition:/boot/uImage. update to version 2010.03

[edit] Image 2010-05-07

  • added access to binary feed (qipackages, packages)
  • rebased to new release "backfire" of OpenWrt
  • gmenu2x improvements, removed unused sections and starters for currently broken applications
  • various cleanups and bugfixes
  • package htop added
  • inotify support added and enabled

[edit] Image 2010-04-09

  • music player GMU added
  • gmenu2x default application launched
  • use fb-support instead of directfb-support for sdl-applications, as the latter once behaves unexpected
  • faster boottime due to rootfs split
  • adding linuxfb-support to Qt an addition to DirectFB
  • using block-hotplug and block-mount for automatically mounting block devices such as sd cards (untested)
  • officially being part and project of the OpenWrt distribution now
  • sound module loading sequence changed to avoid unresolved symbols
  • package diffutils added
  • package disktype added
  • package dosfsck added
  • package dosfslabel added
  • package gnupg added
  • package graphicsmagick added
  • package guile added
  • package jow added
  • package make added
  • package mkdosfs added
  • package mtd-utils added
  • package nanobadblocks added
  • package openvpn added
  • package patch added
  • package php5 added
  • package python added
  • package resize2fs added
  • package rsync added
  • package sox added
  • package strace added
  • package sysfsutils added
  • package tcpdump added
  • package ubi-utils added

[edit] Image 2010-03-22

  • screen now _really_ gets blanked when device is in idle
  • sound issues got fixed
  • fixed unreliable I/O in mmc driver
  • qt4 is now built in including some examples and demos

When launching qt4-applications "-qws -display directfb" need to be passed for now, e.g. for the coverflow like fluidlauncher:

( cd /usr/share/Qt/demos/embedded/fluidlauncher/ ; ./fluidlauncher -qws -display directfb )

[edit] Test Plan

  1. create the release branch in both openwrt-xburst and openwrt-packages
  2. test boot time
  3. test all application in gmenu2x, make sure everyone can start and exit correct
  4. test the KS7010 802.11 wifi driver
  5. the AtBen 802.15.4 driver
  6. test record and play sound by 'arecord' 'aplay'
  7. test play ogg in GMU, check is there some noise
  8. test mplayer works fine.
  9. test openwrt-xburst-qi_lb60-rootfs.tar.gz in boot from memcard
  10. test RTC works fine. more info
  11. octave (the problem with first plot not showing correctly is a known bug)
start octave from the menu
enter 'plot(sin(1:10))'
press Ctrl+C to get back
enter 'plot(sin(1:10))' again, should plot correctly now

[edit] Tutorials

[edit] Other Distributions

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export