Optware on K3-AC-ARM

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 02:23, 2 February 2014 (edit)
Magick777 (Talk | contribs)
(mbwe-bluering repository)
← Previous diff
Revision as of 03:47, 2 February 2014 (edit) (undo)
Magick777 (Talk | contribs)

Next diff →
Line 1: Line 1:
-== Why doesn't it just work? ==+= BUILD 23460M ONWARDS =
 +== Instructions ==
 + 
 +=== Preparing for optware install ===
 +==== Using USB storage ====
 +Prepare a usb flash disk with 3 partitions 512MB swap + 2 partitions ext2/ext3 or ext4. Enable USB Storage and mount one partition to /jffs, the other to /opt, by using the uuids which are shown in disk info. '''Note:''' if you use this method, you do NOT need to enable JFFS2 support in the GUI. That's for putting the JFFS partition on the internal flash.
 + 
 +==== Using JFFS storage ====
 +If you don't have USB storage attached to your router you can resort to the time-honoured method of enabling JFFS2 (from the DD-WRT GUI), which will give you ~90MB of storage under /jffs. You can then
 + mkdir /jffs/opt
 + mount --bind /jffs/opt /opt
 +which will let you install smaller packages using JFFS alone. If you do this, you'll need to re-create the bind mount on startup, and you won't be able to install everything.
 + 
 +=== Using ipkg ===
 + 
 + ipkg update
 + ipkg list
 + ipkg install <package>
 + 
 +== OpenWRT imx6 package repository ==
 + 
 +Quoting <Kong>, "builds >23453 will use openwrt packages". The repository now in use is the OpenWRT imx6 repository, http://downloads.openwrt.org/snapshots/trunk/imx6/packages/
 + 
 +=== Packages reported working ===
 + 
 +* '''nano''' - seems to install and run fine
 +* '''transmission''' - reported working by forum users: Magnetron1.1, tibismart
 +* '''sshfs''' - works, however you may need to run it in debug mode in order to accept the remote host's key, and you will need an "insmod fuse" first to load the requisite kernel module. Note that mounting very large filesystems (>4TB, I think) provokes an error from 'df': Value too large for defined data type; a 3.6TB filesystem is handled correctly but a 6.8TB filesystem is not. This does not seem to affect listing or accessing files, merely produces a bug in df. [[User:Magick777|Magick777]] 04:47, 2 February 2014 (CET)
 + 
 +=== Packages not working ===
 + 
 +* '''opkg''' - complains of missing /etc/opkg.conf
 + 
 + 
 += BUILDS OLDER THAN 23460M =
 + 
 +== Why didn't it just work? ==
The [http://www.optware-project.org/index.php?title=Main_Page 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. The [http://www.optware-project.org/index.php?title=Main_Page 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.
Line 17: Line 53:
whois: can't resolve symbol '__register_frame_info' whois: can't resolve symbol '__register_frame_info'
-so I duly installed uClibc-opt; this got rid of the above errors but it still didn't persuade anything useful to work. Most things now exit silently, neither complaining nor producing any output. Possible options for fixing this may include hacking the mbwe-bluering toolchain to work with DD-WRT, compile the Optware sources against a DD-WRT (or DD-WRT compatible) toolchain, roll-yer-own based on latest Buildroot, or some combination of the above.+so I duly installed uClibc-opt; this got rid of the above errors but it still didn't persuade anything useful to work. Most things now exit silently, neither complaining nor producing any output.
- +
-=== Packages working ===+
- +
-None discovered, so far. Add them here.+
- +
-== 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, should be able to build a compatible toolchain, 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 [http://basmaf.com/blog/otrw2_and_dd-wrt_kernel_3x/ 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.+

Revision as of 03:47, 2 February 2014

Contents

BUILD 23460M ONWARDS

Instructions

Preparing for optware install

Using USB storage

Prepare a usb flash disk with 3 partitions 512MB swap + 2 partitions ext2/ext3 or ext4. Enable USB Storage and mount one partition to /jffs, the other to /opt, by using the uuids which are shown in disk info. Note: if you use this method, you do NOT need to enable JFFS2 support in the GUI. That's for putting the JFFS partition on the internal flash.

Using JFFS storage

If you don't have USB storage attached to your router you can resort to the time-honoured method of enabling JFFS2 (from the DD-WRT GUI), which will give you ~90MB of storage under /jffs. You can then

mkdir /jffs/opt 
mount --bind /jffs/opt /opt

which will let you install smaller packages using JFFS alone. If you do this, you'll need to re-create the bind mount on startup, and you won't be able to install everything.

Using ipkg

ipkg update
ipkg list
ipkg install <package>

OpenWRT imx6 package repository

Quoting <Kong>, "builds >23453 will use openwrt packages". The repository now in use is the OpenWRT imx6 repository, http://downloads.openwrt.org/snapshots/trunk/imx6/packages/

Packages reported working

  • nano - seems to install and run fine
  • transmission - reported working by forum users: Magnetron1.1, tibismart
  • sshfs - works, however you may need to run it in debug mode in order to accept the remote host's key, and you will need an "insmod fuse" first to load the requisite kernel module. Note that mounting very large filesystems (>4TB, I think) provokes an error from 'df': Value too large for defined data type; a 3.6TB filesystem is handled correctly but a 6.8TB filesystem is not. This does not seem to affect listing or accessing files, merely produces a bug in df. Magick777 04:47, 2 February 2014 (CET)

Packages not working

  • opkg - complains of missing /etc/opkg.conf


BUILDS OLDER THAN 23460M

Why didn'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 [DEPRECATED]

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

Packages not working

Most of them, by the look of it. Initially I got a bunch of the following errors:

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'

so I duly installed uClibc-opt; this got rid of the above errors but it still didn't persuade anything useful to work. Most things now exit silently, neither complaining nor producing any output.