Optware on K3-AC-ARM

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 12:24, 11 January 2014 (edit)
Magick777 (Talk | contribs)
(Development options)
← Previous diff
Revision as of 12:39, 11 January 2014 (edit) (undo)
Magick777 (Talk | contribs)
(Recompile Optware repository)
Next diff →
Line 33: Line 33:
=== Recompile Optware repository === === Recompile Optware repository ===
-This would seem to be the most logical option. However, it would involve hacking a new uClibc, gcc and binutils into the toolchain from the mbwe-bluering repository, then recompiling the (already dated) Optware packages to work with current DD-WRT. Or recompiling the repository against a different toolchain entirely.+This would seem to be the most logical option. However, it would involve hacking a new uClibc, gcc and binutils into the toolchain from the mbwe-bluering repository, then recompiling the (already dated) Optware packages to work with current DD-WRT. Or recompiling the repository against a different toolchain entirely, if that can be persuaded to work.
=== Develop from Buildroot === === Develop from Buildroot ===

Revision as of 12:39, 11 January 2014

Contents

Why doesn't it just work?

The Optware Project was not designed for use with ARM processors (most builds are for mipsel architecture), and nor was it intended for DD-WRT. It has been ported to a number of DD-WRT platforms, but with varying degrees of success. Also, the project has become somewhat dated, meaning that it relies on an old version of uClibc; this causes issues with the current DD-WRT codebase. So, we need an Optware feed compiled for modern DD-WRT, and then for that to work on the K3-AC-ARM routers we need it compiled for ARM architecture. There is presently no Optware feed that meets that descripton; the mbwe-bluering repository is built for ARM, but it's not built for DD-WRT on kernel 3.x.

mbwe-bluering repository

This page tracks the success (or failure) of using packages from the Optware mbwe-bluering repository on newer 802.11ac routers with ARM architecture, running Kong's K3-AC-ARM builds (r23250 and later). Whilst these binaries are compatible with the ARM CPU, most of them don't work on DD-WRT.

Packages not working

Most of them, by the look of it.

hello: can't resolve symbol '__register_frame_info'
nano: can't resolve symbol '__register_frame_info'
ncftp:  can't load library 'libresolv.so.0'
perl: can't resolve symbol '__register_frame_info'
whois: can't resolve symbol '__register_frame_info'

This is apparently caused by incompatibilities between the mbwe-bluering toolchain and the DD-WRT toolchain, probably relating to uClibc and/or the compiler used. Possible options for fixing this may include hack the mbwe-bluering toolchain to work with DD-WRT, compile the Optware sources against a DD-WRT (or DD-WRT compatible) toolchain, or roll-yer-own based on latest Buildroot.

Packages working

None discovered, so far. Add them here.

Wishlist of solutions

  • Maybe try to compile mbwe-bluering optware repo against newer binutils, uClibc, GCC
  • Maybe try to create new optware repo against DD-WRT toolchain
  • Maybe look at other options besides optware (don't like reinventing the wheel)

Development options

Recompile Optware repository

This would seem to be the most logical option. However, it would involve hacking a new uClibc, gcc and binutils into the toolchain from the mbwe-bluering repository, then recompiling the (already dated) Optware packages to work with current DD-WRT. Or recompiling the repository against a different toolchain entirely, if that can be persuaded to work.

Develop from Buildroot

Buildroot has the advantage that it is currently maintained and that there is a recent release supporting newer kernels, uClibc, gcc, binutils, etc. There are also newer packages in the Buildroot repository, which is useful, although they will probably not be optified by default.

Develop from OTRW2 / dd-ware

Considerable work has already been done by basmaf on re-working optware from OpenWRT packages for the mipsel architecture, and a K3.x build has been forked as https://code.google.com/p/dd-ware/. This has not yet been ported for ARM architecture, and it's not clear how difficult or not that will be.