openwrt/staging/yousong.git
7 years agoppp: ppp6-up: add executable permission bit
Yousong Zhou [Wed, 15 Feb 2017 06:06:41 +0000 (14:06 +0800)]
ppp: ppp6-up: add executable permission bit

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
7 years agomac80211: hwsim: select DRIVER_11AC_SUPPORT and DRIVER_11W_SUPPORT
Yousong Zhou [Fri, 3 Feb 2017 13:15:42 +0000 (21:15 +0800)]
mac80211: hwsim: select DRIVER_11AC_SUPPORT and DRIVER_11W_SUPPORT

This is required for default wireless configuration of malta target to
work out of the box again.  Fixes "77ece30e: hostapd: Add ability to
specify that that wireless driver supports 802.11ac"

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
7 years agoiw: sync nl80211.h with mac80211 package
Felix Fietkau [Fri, 24 Feb 2017 11:17:03 +0000 (12:17 +0100)]
iw: sync nl80211.h with mac80211 package

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoodhcpd: update to git HEAD version (FS#397) (FS#481)
Hans Dedecker [Thu, 23 Feb 2017 20:56:15 +0000 (21:56 +0100)]
odhcpd: update to git HEAD version (FS#397) (FS#481)

1b630f8 router: don't announce prefixes with valid lifetime equal to 0
ba0cac0 router: fix arithmetic exception fault
3495f17 router: allow RA prefix lifetime being set to leasetime value (FS#397)
e437ce9 treewide: simplify dhcp leasetime checking
942fb33 router: support ra_mininterval and ra_lifetime uci parameters (FS#397)
f913337 router.h: fix alignment style
4dc7edb Revert "odhcpd.h: fix alignment style"
62ea54f odhcpd.h: fix alignment style
a898ee5 config: make loglevel configurable via uci (FS#481)
51c756c odhcpd: display correct default log level in usage text
68ee0b5 treewide: define and use macro IN6_IS_ADDR_ULA
fa57225 ndp: deregister netlink event socket for non recoverable errors
ac70d28 odhcpd: fix white space errors

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agoswconfig: Bugfix switch_port uci option parsing
Ben Kelly [Mon, 20 Feb 2017 12:04:30 +0000 (14:04 +0200)]
swconfig: Bugfix switch_port uci option parsing

When not defining 'device' or 'vlan' in relevant switch_port uci
sections, behaviour is inconsistent due to *devn, *port and *vlan
pointers not being zero initialized.

Signed-off-by: Ben Kelly <ben@benjii.net>
7 years agouboot-omap: Makefile: Include kernel.mk
Alexandru Gagniuc [Thu, 23 Feb 2017 00:04:36 +0000 (16:04 -0800)]
uboot-omap: Makefile: Include kernel.mk

This is needed for the definition of $(LINUX_DIR). This is used in
u-boot.mk to change the device-tree compiler to the dtc used by
linux.

Without this, the build will use the system dtc. This results in a
build failure when a dtc does not exist outside the buildroot.

Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
7 years agoar71xx: use common firmware partition for WNDAP360
Felix Fietkau [Sun, 19 Feb 2017 13:40:10 +0000 (14:40 +0100)]
ar71xx: use common firmware partition for WNDAP360

Patch from https://github.com/openwrt/openwrt/pull/398

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agomac80211: disable potentially harmful PS software retry for A-MPDU sessions
Felix Fietkau [Wed, 22 Feb 2017 21:51:04 +0000 (22:51 +0100)]
mac80211: disable potentially harmful PS software retry for A-MPDU sessions

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agonetifd: fix stopping netifd + interfaces
Felix Fietkau [Mon, 20 Feb 2017 09:49:33 +0000 (10:49 +0100)]
netifd: fix stopping netifd + interfaces

stop() is overwritten by rc.common, so implement stop_service instead.
While at it, remove the now unnecessary restart() override

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agomt76: split kmod package
Joseph C. Lehner [Sun, 19 Feb 2017 12:13:15 +0000 (13:13 +0100)]
mt76: split kmod package

This patch splits `kmod-mt76` into three separate packages:
`kmod-mt76-core`, `kmod-mt76x2` and `kmod-mt7603`. By making
`kmod-mt76` a metapackage containing these new packages,
the previous behaviour of including all drivers and firmware
is left unchanged, unless explicitly unselected in
`DEVICE_PACKAGES`.

This splitting is especially beneficial for devices with
small flash chips, since the `kmod-mt76` package currently
requires ~160K on squashfs (after compression).

Signed-off-by: Joseph C. Lehner <joseph.c.lehner@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name> [cleanup]
7 years agolantiq: fix broadcast packets leaking on the wrong vlan on xrx200
Felix Fietkau [Wed, 22 Feb 2017 12:31:17 +0000 (13:31 +0100)]
lantiq: fix broadcast packets leaking on the wrong vlan on xrx200

The ethernet driver uses a port map override via special tag to control
the ports on which multicast packets are sent. This was added to work
around an issue in the switch that was occasionally leaking packets onto
the wrong vlan.
Unfortunately the change had some leftover lines that were overwrting
the port map with a list of all ports, thus always leaking packets onto
the wront vlan.

Fix this by only enabling the override with the VLAN port map and only
if a matching VLAN port map was actually found

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agokernel: update kernel 4.4 to 4.4.50
Kevin Darbyshire-Bryant [Sun, 19 Feb 2017 10:48:39 +0000 (10:48 +0000)]
kernel: update kernel 4.4 to 4.4.50

Bump kernel from 4.4.49 to 4.4.50

Compile tested: All targets

Run tested: ar71xx Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
7 years agoopkg: fix stray printf() (#551)
Jo-Philipp Wich [Thu, 23 Feb 2017 08:46:40 +0000 (09:46 +0100)]
opkg: fix stray printf() (#551)

Update to latest Git head to get rid of a stray printf() causing unwanted
output in the "opkg list-upgradable" command.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agokernel: add missing config symbol for linux 3.18
Felix Fietkau [Wed, 22 Feb 2017 22:20:30 +0000 (23:20 +0100)]
kernel: add missing config symbol for linux 3.18

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agomac80211: rename patch to avoid duplicate number
Felix Fietkau [Wed, 22 Feb 2017 21:49:00 +0000 (22:49 +0100)]
mac80211: rename patch to avoid duplicate number

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agolibpcap: add optional netfilter support
Martin Schiller [Mon, 20 Feb 2017 05:27:41 +0000 (06:27 +0100)]
libpcap: add optional netfilter support

This is needed to use the nflog interface with tcpdump

Signed-off-by: Martin Schiller <mschiller@tdt.de>
7 years agobuild: unsilence move command
Thomas Reifferscheid [Mon, 20 Feb 2017 16:48:50 +0000 (17:48 +0100)]
build: unsilence move command

The @ sign in front of the "mv" command was significantly suppressing
output to stdout. When reviewing the make/build logs it was tricking
me a whole lot and it mad me lose time. Removing the @ sign will get
stdout and logs right about what happened when.

Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
7 years agoar71xx: Enable mtdsplit support for RB SPI NOR devices
Thibaut VARENE [Wed, 15 Feb 2017 10:40:06 +0000 (11:40 +0100)]
ar71xx: Enable mtdsplit support for RB SPI NOR devices

This patch enables mtdsplit for the MikroTik subtarget.
It converts mach-rbspi.c to use a single "firmware" partition.
Finally, it converts the SPI NOR profile to metadata images:
the original combined-image format is gone, the images are now
"standard" sysupgrade images with metadata appended.

Note: kernel2minor apparently pads the kernel container to erase-block
boundary, but this is undocumented behaviour, so we do not rely on it
and call pad-to anyway.

Note: in platform.sh, the boards are tested last in platform_check_image()
as this should eventually become the "*)" default case when more devices
switch to metadata images.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: remove bogus "rb*)" catch-all from platform.sh
Thibaut VARENE [Wed, 15 Feb 2017 12:23:27 +0000 (13:23 +0100)]
ar71xx: remove bogus "rb*)" catch-all from platform.sh

This patch replaces a dangerous catch-all with the exhaustive list of devices.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agokernel: mtdsplit: Add support for Mikrotik NOR firmware
Thibaut VARENE [Tue, 14 Feb 2017 13:42:10 +0000 (14:42 +0100)]
kernel: mtdsplit: Add support for Mikrotik NOR firmware

The RouterBOOT bootloader does not care where the kernel lives in the SPI
flash, all that matters is that the kernel is wrapped in the custom yaffs
container as generated by kernel2minor.

This container has a fixed signature as follows:
00000000  00 00 00 01 00 00 00 01  ff ff 6b 65 72 6e 65 6c  |..........kernel|

This patch adds mtdsplit support for identifying that signature and
triggering the search for the rootfs. rootfs is expected at EB boundary since
we use wget mtd_find_rootfs_from(). We make no use of the yaffs file size
field because it contains invalid data in the image generated by kernel2minor.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agodnsmasq: bump to dnsmasq v2.77test4
Kevin Darbyshire-Bryant [Mon, 6 Feb 2017 21:45:41 +0000 (21:45 +0000)]
dnsmasq: bump to dnsmasq v2.77test4

--bogus-priv now applies to IPv6 prefixes as specified in RFC6303 - this
is significantly friendlier to upstream servers.

CNAME fix in auth mode - A domain can only have a CNAME if it has no
other records

Drop 2 patches now included upstream.

Compile & run tested Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
7 years agoopkg: fix handling conffiles in status lists
Jo-Philipp Wich [Wed, 22 Feb 2017 12:46:55 +0000 (13:46 +0100)]
opkg: fix handling conffiles in status lists

A missing list pointer initialization caused opkg to ignore conffile entries
from status files, breaking the conffile tracking on the target.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agoRevert "kernel: ar8327/ar8337: disable ARL access code to avoid lockups (FS#384)"
Stijn Tintel [Wed, 22 Feb 2017 10:42:36 +0000 (11:42 +0100)]
Revert "kernel: ar8327/ar8337: disable ARL access code to avoid lockups (FS#384)"

This reverts commit ec1a695daa7390a6c24e3b28d3956f194cba2cb5.

Revert the workaround, the problem was properly fixed in
237454991618e0e8b7ceb8a8a2a43fca12c1a454.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
7 years agoipq806x: fix fakerootfs position
Thomas Reifferscheid [Tue, 21 Feb 2017 16:02:49 +0000 (17:02 +0100)]
ipq806x: fix fakerootfs position

The fakeroot header is expected by the netgear bootloader in the last
64 bytes of the last block used by the uImage. With the current
linux-4.9 uImage being more than 128k smaller than the linux-4.4 uImage
the bootloader was unable to locate the rootfs ih_magic and was
refusing to load and start the kernel.

Fixes: FS#542
Signed-off-by: Thomas Reifferscheid <thomas@reifferscheid.org>
7 years agobuild: skip opkg host dependency within the SDK
Felix Fietkau [Tue, 21 Feb 2017 19:43:35 +0000 (20:43 +0100)]
build: skip opkg host dependency within the SDK

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoarchs38: only calculate entry point address when necessary
Felix Fietkau [Thu, 16 Feb 2017 06:51:42 +0000 (07:51 +0100)]
archs38: only calculate entry point address when necessary

$(eval) runs even during prereq check, which can cause bogus error
messages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoarc770: only calculate entry point address when necessary
Felix Fietkau [Thu, 16 Feb 2017 06:50:55 +0000 (07:50 +0100)]
arc770: only calculate entry point address when necessary

$(eval) runs even during prereq check, which can cause bogus error
messages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoubox: update to the latest version
Felix Fietkau [Tue, 21 Feb 2017 13:13:22 +0000 (14:13 +0100)]
ubox: update to the latest version

c553354 cmake: fix typo
8973576 kmodloader: fix not being able to find some modules
fce9382 cmake: Check for getrandom system call

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agox86_64: Add support for EFI framebuffer (FS#515)
Alif M. Ahmad [Mon, 20 Feb 2017 18:58:20 +0000 (01:58 +0700)]
x86_64: Add support for EFI framebuffer (FS#515)

CONFIG_FB_EFI and CONFIG_FB_SIMPLE are needed to display console text on
EFI framebuffer.

CONFIG_FB_EFI is needed when the kernel is directly launched via EFI
shell or EFI startup.nsh script.

CONFIG_FB_SIMPLE is needed when launching the kernel via grub2 efi. In
this case, grub2 has prepared a gfxterm framebuffer and the kernel just
need to use the already prepared grub's gfxterm framebuffer to display
console text.

Signed-off-by: Alif M. Ahmad <alive4ever@live.com>
7 years agopx5g: replace px5g-standalone with a statically linked variant of px5g-mbedtls
Felix Fietkau [Tue, 21 Feb 2017 13:24:32 +0000 (14:24 +0100)]
px5g: replace px5g-standalone with a statically linked variant of px5g-mbedtls

px5g-standalone only supports SHA1 for certificates, which is strongly
deprecated. The new px5g-standalone is about 27k bigger (compressed),
and has identical behavior to px5g-mbedtls (it uses SHA256).

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agombedtls: add --function-sections and --data-sections to CFLAGS
Felix Fietkau [Tue, 21 Feb 2017 13:33:14 +0000 (14:33 +0100)]
mbedtls: add --function-sections and --data-sections to CFLAGS

This allows binaries that links these libraries statically to be reduced
by using --gc-sections on link

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agobuild: move opkg host dependency from package/install to package/compile
Felix Fietkau [Mon, 20 Feb 2017 11:37:58 +0000 (12:37 +0100)]
build: move opkg host dependency from package/install to package/compile

Improves parallel build behavior, since it allows opkg to be built at
the same time as other packages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agocmake: skip build system check on compile
Felix Fietkau [Mon, 20 Feb 2017 11:13:51 +0000 (12:13 +0100)]
cmake: skip build system check on compile

cmake checks the build system and its variables on its own to detect if
the makefiles need to be regenerated.
Unfortunately this can invalidate overrides passed in the
Build/Configure step. On non-Linux systems this breaks the build when
switching between targets of the same package architecture.

Fix this by forcibly disabling the build system check and relying on the
LEDE build system to take care of these things

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agobuild: allow building an individual subdir without dependencies using NO_DEPS=1
Felix Fietkau [Mon, 20 Feb 2017 11:14:32 +0000 (12:14 +0100)]
build: allow building an individual subdir without dependencies using NO_DEPS=1

QUILT=1 had the same effect, but it is sometimes useful to be able to do
this without quilt

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoscripts/feeds: Reuse TOPDIR if defined in environment
Michal Sojka [Thu, 16 Feb 2017 22:02:50 +0000 (23:02 +0100)]
scripts/feeds: Reuse TOPDIR if defined in environment

The feeds script sets value of TOPDIR in a way that is inconsistent
with how toplevel Makefile sets it. The inconsistency manifests when I
use a "build directory" with symlinks to LEDE source (see below).

When make is invoked in such a directory, make's TOPDIR variable is
set to that directory, whereas scripts/feeds sets TOPDIR to the top of
LEDE source, which results in creating feeds directory inside the LEDE
source instead of in the build directory.

This patch changes the script so that it reuses the TOPDIR value form
the environment if it exists. The result is that 'make
package/symlinks' correctly fetches feeds to the build directory
instead in the source.

I use the following commands to create the build directory:

    ln -s $SRC/config config
    ln -s $SRC/Config.in Config.in
    ln -s $SRC/feeds.conf.default feeds.conf.default
    ln -s $SRC/include include
    ln -s $SRC/Makefile Makefile
    mkdir package
    ln -s $SRC/package/base-files package/base-files
    ln -s $SRC/package/boot package/boot
    ln -s $SRC/package/devel package/devel
    ln -s $SRC/package/firmware package/firmware
    ln -s $SRC/package/kernel package/kernel
    ln -s $SRC/package/libs package/libs
    ln -s $SRC/package/Makefile package/Makefile
    ln -s $SRC/package/network package/network
    ln -s $SRC/package/system package/system
    ln -s $SRC/package/utils package/utils
    ln -s $SRC/rules.mk rules.mk
    ln -s $SRC/scripts scripts
    ln -s $SRC/target target
    ln -s $SRC/toolchain toolchain
    ln -s $SRC/tools tools

This allows me to easily test changes in LEDE on multiple targets.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
7 years agoopkg: re-enable usign support
Jo-Philipp Wich [Mon, 20 Feb 2017 14:03:33 +0000 (15:03 +0100)]
opkg: re-enable usign support

The switch to cmake caused the -DHAVE_USIGN flag to get lost, disabling
compilation of the correspondinf support code.

Update to latest Git head which enables usign support by default.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agoRevert "px5g-standalone: provide px5g via PROVIDES"
Stijn Tintel [Mon, 20 Feb 2017 14:11:40 +0000 (15:11 +0100)]
Revert "px5g-standalone: provide px5g via PROVIDES"

This reverts commit cc66f819b4e778732a32f08f5dc39a2554682b73.

This commit causes opkg to install px5g-standalone instead of px5g when
installing luci-ssl. As luci-ssl depends on mbedtls, using
px5g-standalone makes no sense. Next to that, it creates deprecated SHA1
certificates. Revert the commit to avoid pxg5-standalone to be
installed by accident.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
7 years agolibubox: fix host build on macOS
Felix Fietkau [Mon, 20 Feb 2017 11:32:45 +0000 (12:32 +0100)]
libubox: fix host build on macOS

Use the defaults instead of a custom non-portable Host/Install section

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agobcm53xx: add kernel 4.9 config
Rafał Miłecki [Mon, 20 Feb 2017 13:12:15 +0000 (14:12 +0100)]
bcm53xx: add kernel 4.9 config

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
7 years agohostapd: fix feature indication
Jo-Philipp Wich [Sun, 19 Feb 2017 21:04:16 +0000 (22:04 +0100)]
hostapd: fix feature indication

 - Fix eap test to work with standalone hostapd builds
 - Fix 11n test to check the correct define
 - Add 11ac, 11r and 11w tests

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agodnsmasq: bump to dnsmasq v2.77test3
Kevin Darbyshire-Bryant [Mon, 6 Feb 2017 21:45:41 +0000 (21:45 +0000)]
dnsmasq: bump to dnsmasq v2.77test3

New test release (since test1) includes 2 LEDE patches that are
upstream and may be dropped, along with many spelling fixes.

Add forthcoming 2017 root zone trust anchor to trust-anchors.conf.

Backport 2 patches that just missed test3:

Reduce logspam of those domains handled locally 'local addresses only'
Implement RFC-6842 (Client-ids in DHCP replies)

Compile & run tested Archer C7 v2

Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
7 years agoar71xx: fix vlan settings for some boards
Weijie Gao [Sat, 18 Feb 2017 14:32:49 +0000 (22:32 +0800)]
ar71xx: fix vlan settings for some boards

For AR71XX devices, GMAC1 always connects port 0 of the built-in switch,
as the CPU port.

This patch sets correct vlan for some devices with wrong settings:
a) mark port 0 as CPU port, tagged
b) reverse port order, marking these ports untagged

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
7 years agoar71xx: Add more boards to the routerboard serial detection patch
Thibaut VARENE [Sun, 19 Feb 2017 16:19:08 +0000 (17:19 +0100)]
ar71xx: Add more boards to the routerboard serial detection patch

This patch enables serial console on the 435 series and the 953gs.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agokernel: add Chinese codepages
Hsing-Wang Liao [Sat, 18 Feb 2017 06:40:58 +0000 (14:40 +0800)]
kernel: add Chinese codepages

Signed-off-by: Hsing-Wang Liao <kuoruan@gmail.com>
7 years agouboot-omap: Update to u-boot v2017.01
Alexandru Gagniuc [Wed, 1 Feb 2017 19:21:24 +0000 (11:21 -0800)]
uboot-omap: Update to u-boot v2017.01

Specifying USE_PRIVATE_LIBGCC is no longer needed, as it is the
default.

Patch 001 is removed, since it was already merged upstream. Patches
100 and 101 are removed because they do not appear to be needed
anymore, and they do not conform with the sign-off and commit message
procedures.

Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
7 years agouboot-omap: Do not hide bootloader packages
Alexandru Gagniuc [Sat, 26 Nov 2016 00:52:41 +0000 (16:52 -0800)]
uboot-omap: Do not hide bootloader packages

Because they were hidden, there was no way to disable the uboot
targets in menuconfig, so they had to be built every time. The omap
target is the only one to hide uboot packages. To be consistent with
the other targets, and have more control over the build, un-hide the
u-boot packages.

Note that the default behavior remains unchanged, as uboot will be
built unless explicitly disabled.

Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
7 years agoar71xx: add support for TL-WR802N Version 2
Thomas Roberts [Mon, 13 Feb 2017 17:29:34 +0000 (17:29 +0000)]
ar71xx: add support for TL-WR802N Version 2

This patch adds support for the TP-Link TL-WR802N Version 2.

Specification:
- SoC: Qualcomm Atheros QCA9533 (560 MHz, MIPS 24Kc)
- RAM: 32 MiB
- Storage: 4 MiB of FLash on board
- Wireless: Built into QCA9533 (Honey Bee), PHY modes b/g/n
- Ethernet: 1x100M (port0)

Installation through OEM Web Interface:
- Connect to TL-WR802N by Ethernet or Wi-Fi
- Go to http://192.168.0.1 (default user is "admin" & password is "admin)
- Go to "System Tools -> Firmware Upgrade"
- Browse for firmware "*.factory-us.bin" or  "*.factory-eu.bin" for eu model
- Click upgrade

Installation through tftp:
Note: T_OUT, T_IN and GND on the board must be connected to USB TTL
      Serial Configuration 115200 8n1

- Boot the TL-WR802N
- When "Autobooting in 1 seconds" appears type "tpl" followed by enter
- Connect to the board Ethernet port
    (IPADDR: 192.168.1.1, ServerIP: 192.168.1.10)
- tftpboot 0x80000000 <Firmware Image Name>
- Record the result of "printenv bootcmd"
- Enter "erase <Result of 'printenv bootcmd'> +0x3c0000"
    (e.g erase 0x9f020000 +0x3c0000)
- Enter "cp.b 0x80000000 <Result of 'printenv bootcmd'> 0x3c0000"
    (e.g cp.b 0x80000000 0x9f020000 0x3c0000)
- Enter "bootm <Result of 'printenv bootcmd'>"
    (e.g bootm 0x9f020000)

Signed-off-by: Thomas Roberts <tom.p.roberts@gmail.com>
7 years agosdk: emit proper tag references for base URLs
Jo-Philipp Wich [Sun, 19 Feb 2017 19:45:11 +0000 (20:45 +0100)]
sdk: emit proper tag references for base URLs

Properly resolve symbolic tag names when constructing the base feed Git url
and avoid emitting "HEAD" references when building from detached commits.

Fixes #495, #501.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agoopkg: switch to own fork to improve memory usage
Jo-Philipp Wich [Thu, 16 Feb 2017 16:36:47 +0000 (17:36 +0100)]
opkg: switch to own fork to improve memory usage

Switch to our own fork of opkg to significantly reduce the required amount
of memory when updating lists or installing packages.

Preliminary tests showed a usage drop of about 90% during these operations,
from ~3.7MB with unmodified opkg to ~360KB with our custom fork.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agolibubox: add host build
Jo-Philipp Wich [Fri, 17 Feb 2017 09:49:14 +0000 (10:49 +0100)]
libubox: add host build

Our opkg fork requires libubox to build, so add a host build for it.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agofirewall3: update to Git head to support xtables API level > 11
Jo-Philipp Wich [Sun, 19 Feb 2017 18:04:09 +0000 (19:04 +0100)]
firewall3: update to Git head to support xtables API level > 11

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agogen-dependencies.sh: fix handling variations in "file" output
Felix Fietkau [Sun, 19 Feb 2017 14:28:01 +0000 (15:28 +0100)]
gen-dependencies.sh: fix handling variations in "file" output

On some systems, file adds ", with debug info" after "not stripped"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agorstrip.sh: fix handling variations in "file" output
Felix Fietkau [Sun, 19 Feb 2017 13:02:38 +0000 (14:02 +0100)]
rstrip.sh: fix handling variations in "file" output

On some systems, file adds ", with debug info" after "not stripped"

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agolantiq: fix warning if ltq_atm modules are missing
Mathias Kresin [Fri, 17 Feb 2017 22:29:46 +0000 (23:29 +0100)]
lantiq: fix warning if ltq_atm modules are missing

Fixes the following warning on first boot if the ltq_atm modules are
not included in the image:

  ls: /lib/modules/4.4.49/ltq_atm*: No such file or directory

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agolantiq: set the internet led interface according to wan interface
Mathias Kresin [Fri, 17 Feb 2017 21:16:01 +0000 (22:16 +0100)]
lantiq: set the internet led interface according to wan interface

Use the nas0 interface for the netdev trigger as default. Use the ptm0
interface for xRX200 boards to match the default wan interface set in
02_network.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agolantiq: introduce lantiq_is_vdsl_system
Mathias Kresin [Fri, 17 Feb 2017 21:04:12 +0000 (22:04 +0100)]
lantiq: introduce lantiq_is_vdsl_system

Move the code to check if the current system is a system with vdsl
support to a dedicate function to make it reusable.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agolantiq: fix ARV7519RW22 switch port indexing
Mathias Kresin [Thu, 2 Feb 2017 23:59:16 +0000 (00:59 +0100)]
lantiq: fix ARV7519RW22 switch port indexing

Fixes FS#454.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years agoodhcp6c: fix PKG_MIRROR_HASH
Hans Dedecker [Fri, 17 Feb 2017 14:45:08 +0000 (15:45 +0100)]
odhcp6c: fix PKG_MIRROR_HASH

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
7 years agouhttpd: use sha256 when generating certificates with openssl (FS#512)
Felix Fietkau [Fri, 17 Feb 2017 13:21:47 +0000 (14:21 +0100)]
uhttpd: use sha256 when generating certificates with openssl (FS#512)

Patch from attachment to FS#512

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agolibpcap: remove feature dependencies on kmod-* packages
Felix Fietkau [Fri, 17 Feb 2017 09:04:16 +0000 (10:04 +0100)]
libpcap: remove feature dependencies on kmod-* packages

USB support could be built into the kernel as well

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agodropbear: bump PKG_RELEASE
Stijn Tintel [Fri, 17 Feb 2017 11:18:58 +0000 (12:18 +0100)]
dropbear: bump PKG_RELEASE

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
7 years agoar71xx: fix ethernet PLL configuration for QCA956x
Felix Fietkau [Fri, 17 Feb 2017 10:51:42 +0000 (11:51 +0100)]
ar71xx: fix ethernet PLL configuration for QCA956x

QCA956x is configured like AR934x, not like the older chips.
Should fix ethernet hangs when using the WAN port without SGMII

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoar71xx: fix lan ports on archer C59 and C60
Henryk Heisig [Thu, 16 Feb 2017 14:22:49 +0000 (15:22 +0100)]
ar71xx: fix lan ports on archer C59 and C60

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
7 years agox86: Set default baud rate on Geode images to 115200
David Woodhouse [Wed, 15 Feb 2017 17:27:45 +0000 (17:27 +0000)]
x86: Set default baud rate on Geode images to 115200

Prior to commit 1496b95a0 ("x86: clean up default grub baudrate
settings") we had three different baud rates for the Geode targets:
19200 for net5501, 38400 for alix2, and 115200 for Geos.

It doesn't seem that there's a very good reason for varying from our
default 115200 baud, so let's make the Geode target do that instead.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
7 years agox86: Add Geos profile for Geode subtarget
David Woodhouse [Wed, 15 Feb 2017 16:11:12 +0000 (16:11 +0000)]
x86: Add Geos profile for Geode subtarget

This makes the Geode images actually useful again. The Geos profile
should include the relevant hardware for that board, and the Default
profile adds the via-rhine adapter which seems to have been present in
the net5501 and alix targets killed in commit 9e0759ea265 ("x86: merge
all geode based subtargets into one").

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
7 years agoar71xx: add support for 8devices Lima board
Karol Dudek [Sun, 12 Feb 2017 17:34:36 +0000 (18:34 +0100)]
ar71xx: add support for 8devices Lima board

Lima is a module for the (IoE) internet of everything applications,
based on Qualcomm/Atheros QCA4531.

Specification:

- 650/600/216 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 32 MB of FLASH
- 2T2R 2.4 GHz
- 2x 10/100 Mbps Ethernet
- USB 2.0 Host
- PCIe
- UART for serial console
- 14x GPIO

Flash instruction:
1. Download lede-ar71xx-generic-lima-squashfs-sysupgrade.bin
and rename it to 8dev_recovery.bin
2. Binary file copy to USB stick and plug into slot USB
3. Press S2 (reset) button
4. Press and hold the S1 button by 5 seconds
5. Wait ~40 seconds to complete recovery

Tested on:

- Lima development kit

Signed-off-by: Karol Dudek <karoiz@sli.pl>
7 years agomediatek: add more missing symbols
John Crispin [Thu, 16 Feb 2017 19:15:52 +0000 (20:15 +0100)]
mediatek: add more missing symbols

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoipq806x: add v4.9 support
John Crispin [Thu, 16 Feb 2017 11:25:25 +0000 (12:25 +0100)]
ipq806x: add v4.9 support

Signed-off-by: John Crispin <john@phrozen.org>
7 years agomediatek: add config file for v4.9
John Crispin [Thu, 16 Feb 2017 13:13:39 +0000 (14:13 +0100)]
mediatek: add config file for v4.9

Signed-off-by: John Crispin <john@phrozen.org>
7 years agomvebu: add linux 4.9 support
Felix Fietkau [Mon, 6 Feb 2017 10:46:48 +0000 (11:46 +0100)]
mvebu: add linux 4.9 support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
7 years agoar8216: flush ARL table during reset after init_globals
Günther Kelleter [Wed, 15 Feb 2017 09:36:49 +0000 (10:36 +0100)]
ar8216: flush ARL table during reset after init_globals

commit 33b72b8e0faf7a39faabece584fd6da61cd8f8df
"ar8216: adjust ATU flushing in case of link changes"
introduced portwise flushing on link down events. Now the ARL table could
be in a chaotic state after boot where ar8xxx_sw_get_arl_table looped
forever (depending on the entries collected while booting).

Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de>
7 years agomediatek: bump to v4.9
John Crispin [Thu, 16 Feb 2017 08:53:03 +0000 (09:53 +0100)]
mediatek: bump to v4.9

Signed-off-by: John Crispin <john@phrozen.org>
7 years agoramips: fix the number of uarts for MT7688
Furong Xu [Thu, 16 Feb 2017 03:10:28 +0000 (11:10 +0800)]
ramips: fix the number of uarts for MT7688

Same as MT7621 and MT7628, MT7688 allows up to 3 uarts

Signed-off-by: Furong Xu <xfr@outlook.com>
7 years agoramips: fix PWM pin mux conflict in dtsi
Furong Xu [Thu, 16 Feb 2017 02:00:48 +0000 (10:00 +0800)]
ramips: fix PWM pin mux conflict in dtsi

GPIO18 and GPIO19 on OMEGA2(+) should be GPIO mode, enable PWM lead to a conflict

[    0.290633] rt2880-pinmux pinctrl: pin io18 already requested by pinctrl; cannot claim for 10005000.pwm
[    0.299722] rt2880-pinmux pinctrl: pin-18 (10005000.pwm) status -22
[    0.305729] rt2880-pinmux pinctrl: could not request pin 18 (io18) from group pwm0  on device rt2880-pinmux
[    0.315131] mtk-pwm 10005000.pwm: Error applying setting, reverse things back

Keep PWM disabled.

Signed-off-by: Furong Xu <xfr@outlook.com>
7 years agougps: fix typo
Cezary Jackiewicz [Wed, 15 Feb 2017 18:06:04 +0000 (19:06 +0100)]
ugps: fix typo

Removing redundant spaces from the name of the option. Without fix:

root@LEDE:~# opkg install ugps
Installing ugps (2016-10-24-32a6b2b7-1) to root...
Downloading http://downloads.lede-project.org/releases/17.01-SNAPSHOT/packages/mips_24kc/base/ugps_2016-10-24-32a6b2b7-1_mips_24kc.ipk
Configuring ugps.
uci: Parse error (invalid character in name field) at line 3, byte 23
uci: Parse error (invalid character in name field) at line 3, byte 23
sh: out of range
root@LEDE:~# uci show gps
uci: Parse error (invalid character in name field) at line 3, byte 23

With this fix:

root@LEDE:~# uci show gps
gps.@gps[0]=gps
gps.@gps[0].tty='ttyACM0'
gps.@gps[0].adjust_time='1'

Signed-off-by: Cezary Jackiewicz <cezary@eko.one.pl>
7 years agobuild: fix the toolchain rebuild check
Felix Fietkau [Thu, 16 Feb 2017 06:43:27 +0000 (07:43 +0100)]
build: fix the toolchain rebuild check

- Check for changes in toolchain/ only
- Only replace the stamp file if it was changed
- Fix dependencies for staging dir prepare
- Move the stamp file to TOOLCHAIN_DIR

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agokernel: update kernel 4.4 to version 4.4.49
Hauke Mehrtens [Wed, 15 Feb 2017 23:36:29 +0000 (00:36 +0100)]
kernel: update kernel 4.4 to version 4.4.49

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 years agokernel: update kernel 4.9 to version 4.9.10
Hauke Mehrtens [Wed, 15 Feb 2017 20:54:37 +0000 (21:54 +0100)]
kernel: update kernel 4.9 to version 4.9.10

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 years agobrcm47xx: fix button inversion for Asus WL-500W
Mirko Parthey [Tue, 14 Feb 2017 21:38:17 +0000 (22:38 +0100)]
brcm47xx: fix button inversion for Asus WL-500W

The Asus WL-500W buttons are active high,
but the software treats them as active low.
Fix the inverted logic.

Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
7 years agobrcm47xx: fix USB driver choice for Asus WL-500W
Mirko Parthey [Tue, 14 Feb 2017 14:05:09 +0000 (15:05 +0100)]
brcm47xx: fix USB driver choice for Asus WL-500W

BCM4704 SoC has only USB 1.1 core:
ssb: Core 3 found: USB 1.1 Hostdev (cc 0x808, rev 0x03, vendor 0x4243)
but this device actually comes with two USB 2.0 ports.

It appears embedded controller isn't used but instead there are two PCI
attached controllers (next to the BCM4321 wireless card):
1106:3038 VT82xx/62xx UHCI USB 1.1 Controller
1106:3104 USB 2.0

Choose a set of USB drivers which actually support this hardware.

Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
7 years agotoolchain: force a full rebuild on buildbot if the toolchain changed
Felix Fietkau [Wed, 15 Feb 2017 14:15:46 +0000 (15:15 +0100)]
toolchain: force a full rebuild on buildbot if the toolchain changed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agoqos-scripts: fix module load commands (FS#438)
Felix Fietkau [Wed, 15 Feb 2017 13:00:24 +0000 (14:00 +0100)]
qos-scripts: fix module load commands (FS#438)

fq_codel is built-in, and xt_CONNMARK is provided by the xt_connmark
module

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agobuild: skip headers install and config on make target/linux/prepare
Felix Fietkau [Wed, 15 Feb 2017 11:34:52 +0000 (12:34 +0100)]
build: skip headers install and config on make target/linux/prepare

This simplifies working with quilt on the kernel tree

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agokernel: fix crashes on MIPS when loading kernel modules under memory pressure
Felix Fietkau [Wed, 15 Feb 2017 11:33:03 +0000 (12:33 +0100)]
kernel: fix crashes on MIPS when loading kernel modules under memory pressure

When memory is tight, modules may need to be loaded into vmalloc()
space. The code then has to generate jump trampolines which enable
relocations between vmalloc space and physical address space.

The code had a bug that was freeing these trampolines even when the
module was successfully loaded.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years agomdns: update and rename package to the umdns
Rafał Miłecki [Wed, 15 Feb 2017 10:46:57 +0000 (11:46 +0100)]
mdns: update and rename package to the umdns

This update includes numerous small fixes for:
1) Interfaces setup
2) Packets parsing
3) Sending replies
Without this there were multiple problems with exchanging information
between (u)mdns and other implementations (including (u)mdns as well).

This also follows project rename to umdns which was required to avoid
confusion with Apple's mdnsd from mDNSResponder project.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
7 years agoar71xx: add preliminary kernel support for several RB SPI NOR devices
Thibaut VARENE [Fri, 10 Feb 2017 19:36:50 +0000 (20:36 +0100)]
ar71xx: add preliminary kernel support for several RB SPI NOR devices

The cAP 2nD, mAP 2nD and wAP 2nD apparently all share the same QCA953x/SPI-NOR
platform.

This patch adds preliminary kernel support based on init data used in
Mikrotik's linux-3.3.5 kernel patch. Since this is totally experimental and
untested, the necessary glue in base-files has not been added, the code is
provided as a starting point in case somebody with that hardware wants to help
getting it supported.

The cAP lite (cAPL 2nD) should also be supported once it is determined whether
or not it uses the same board identifier as the mAP lite.

Code has been successfully built and has no side effect (no impact on already
supported devices).

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: add new SPI NOR RB devices to the list of serial-enable patch
Thibaut VARENE [Fri, 10 Feb 2017 15:53:34 +0000 (16:53 +0100)]
ar71xx: add new SPI NOR RB devices to the list of serial-enable patch

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: add support for RB750r2
Thibaut VARENE [Thu, 9 Feb 2017 22:07:23 +0000 (23:07 +0100)]
ar71xx: add support for RB750r2

This patch adds support for the MikroTik RouterBOARD hEX lite
https://routerboard.com/RB750r2

Specifications:
- SoC: Qualcomm QCA9531 (850MHz)
- RAM: 64MB
- Storage: 16MB NOR SPI flash
- Ethernet: 5x100M (1 PoE in)

This ethernet router is based on the same platform as the hEX PoE lite (it
shares the same board identifier), but has no USB and no PoE out.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: add support for RB750UPr2
Thibaut VARENE [Thu, 9 Feb 2017 21:50:08 +0000 (22:50 +0100)]
ar71xx: add support for RB750UPr2

This patch adds support for the MikroTik RouterBOARD hEX PoE lite
https://routerboard.com/RB750UPr2

Specifications:
- SoC: Qualcomm QCA9531 (650MHz)
- RAM: 64MB
- Storage: 16MB NOR SPI flash
- Ethernet: 5x100M (1 PoE in, 1 PoE out)
- USB: Type A

This ethernet router is based on the same platform as the wireless router hAP.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: add support for RB951Ui-2nD
Thibaut VARENE [Tue, 7 Feb 2017 18:10:04 +0000 (19:10 +0100)]
ar71xx: add support for RB951Ui-2nD

This patch adds support for the MikroTik RouterBOARD hAP
https://routerboard.com/RB951Ui-2nD

Specifications:
- SoC: Qualcomm QCA9531 (650MHz)
- RAM: 64MB
- Storage: 16MB NOR SPI flash
- Wireless: builtin QCA9531, 2x2:2
- Ethernet: 5x100M (1 PoE in, 1 PoE out)
- USB: Type A

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: provide support for RB-941-2nD via mach-rbspi.c
Thibaut VARENE [Tue, 7 Feb 2017 14:23:30 +0000 (15:23 +0100)]
ar71xx: provide support for RB-941-2nD via mach-rbspi.c

This patch implements support for the hAP lite in mach-rbspi.c

hAP lite was supported via mach-rb941.c, so this file is removed
as well as the corresponding build bits.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoar71xx: add support for RB mAP L-2nD
Thibaut VARENE [Tue, 7 Feb 2017 11:06:33 +0000 (12:06 +0100)]
ar71xx: add support for RB mAP L-2nD

This patch adds support for the MikroTik RouterBOARD mAP lite
https://routerboard.com/RBmAPL-2nD

Specifications:
- SoC: Qualcomm QCA9533 (650MHz)
- RAM: 64MB
- Storage: 16MB NOR SPI flash
- Wireless: builtin QCA9533, 2x2:2
- Ethernet: 1x100M

This is another 16M SPI NOR mikrotik device. The machine file is named
mach-rbspi.c because I plan to add support for several of the other spi-based
RouterBOARD devices in subsequent patches: they share most of the hardware
and thus the same codebase.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
7 years agoebtables: update to last commit
Ansuel Smith [Fri, 10 Feb 2017 15:18:47 +0000 (16:18 +0100)]
ebtables: update to last commit

Refreshed patches

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
7 years agofeeds: add option to force feed update despite modified files
Jo-Philipp Wich [Tue, 14 Feb 2017 17:35:57 +0000 (18:35 +0100)]
feeds: add option to force feed update despite modified files

Implement a new flag "-f" for the feeds update command which causes the
script to fall back to a more agressive git update strategy in case there
are locally modified files in the feeds directory.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
7 years agoprocd: update to latest git HEAD
John Crispin [Wed, 15 Feb 2017 08:59:46 +0000 (09:59 +0100)]
procd: update to latest git HEAD

5f91241 procd: add cancel_timeout on rc scripts when a runtime_timeout is specified
961dc69 procd: stop service using SIGKILL if SIGTERM failed to do so

Signed-off-by: John Crispin <john@phrozen.org>
7 years agohostapd: mv netifd.sh hostapd.sh
Daniel Albers [Sun, 12 Feb 2017 19:23:20 +0000 (20:23 +0100)]
hostapd: mv netifd.sh hostapd.sh

same name for the file on the host and target

Signed-off-by: Daniel Albers <daniel.albers@public-files.de>
7 years agoprocd: fix default timeout for reload trigger actions
Denis Osvald [Tue, 14 Feb 2017 16:08:49 +0000 (17:08 +0100)]
procd: fix default timeout for reload trigger actions

Default trigger action timeout was added to procd.sh in commit f88e3a4c0
(procd: add default timeout for reload trigger actions)
However, the timeout value was not placed under the correct JSON-script
array nesting level and thus did not apply.

To fix this and make the timeout actually apply to the reload triggers,
we place it in the correct scope, that is the per-trigger array.

Fixes: f88e3a4c0abb60bb76a7678dd30dfdc8a808a2f1
Signed-off-by: Denis Osvald <denis.osvald@sartura.hr>
7 years agoramips: replace remaining instances of ralink, port-map
Daniel Golle [Tue, 14 Feb 2017 13:08:59 +0000 (14:08 +0100)]
ramips: replace remaining instances of ralink, port-map

Some boards were apparently forgotten when ralink,portmap was renamed
to mediatek,portmap -- probably because they used the long obsolete
ralink,port-map attribute.
If this commit breaks ethernet wan/lan assignment, this is because
the port-map attribute wasn't actually parsed, you'll have to replace
"wllll" by "llllw" in the dts file belonging to that board (and send
a patch doing that!)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
7 years agoramips: fix mt7621 ethernet support for v4.9
John Crispin [Wed, 15 Feb 2017 08:11:41 +0000 (09:11 +0100)]
ramips: fix mt7621 ethernet support for v4.9

Signed-off-by: John Crispin <john@phrozen.org>
7 years agokernel: add missing symbol for v4.9
John Crispin [Wed, 15 Feb 2017 08:11:11 +0000 (09:11 +0100)]
kernel: add missing symbol for v4.9

Signed-off-by: John Crispin <john@phrozen.org>