What it is
Optware is a distribution of packages that are suitable for installation within small embedded systems, just like the routers on which TomatoUSB runs. It was originally created as a way to distribute additional software on the Linksys NSLU2 NAS system, but it now supports many different systems (including all the ones based on OpenWRT/DD-WRT, like TomatoUSB).
Optware uses the ipkg package manager. It is equivalent to the package manager tools usually available on desktop Linux systems such as apt, yum or yast. Optware packages are distributed as .ipk files (so standard .deb or .rpm files cannot be used).
Installation of Optware
All optware packages will install under the /opt prefix. This means that, before installing any package, you will have to mount a writable filesystem in /opt, and put the package manager itself in there.
TomatoUSB natively supports Optware, which means that, for instance, /opt/bin is already in PATH. But it does not give you a simplified user interface to install it. For instance, it is up to the user to decide whether to install Optware on a USB pendrive, an external hard disk, or the internal JFFS memory.
For more information, please follow the Optware Installation tutorial, that gives a complete walkthrough. The rest of this page assumes that you have succesfully installed Optware.
Quick list of commands
- ipkg list: gives a list of all available packages, with a short description. You can use ipkg list | grep to quickly search for a package.
- ipkg install: install a package.
- ipkg update: update the list of available package from the server. This command is a good candidate to be executed every day from the scheduler.
- ipkg upgrade: upgrade all installed packages to the latest available version.
Some packages available on Optware
- UNIX tools: bash, coreutils, fileutils, diffutils, python, perl, etc. If you are not comfortable with the internal stripped down shell and busybox-based tools, you can install a full blown UNIX system.
- P2P software: amule, transmission. You can run P2P software directly on your router and download the files to an external USB harddisk.
- Proxy: squid, privoxy and many others. You can install a HTTP proxy (even transparent, if you want) to cache navigation files from your LAN and/or filter contents (ads, porn, etc.).
- PBX: asterisk. You can install a full Asterisk system on your router, so to have a small Home/SoHo VOIP PBX.
- Web servers: apache, nginx, lighthttpd. In case you want to run a small web server directly on your router.