Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • firmware/gluon
  • 0x4A6F/gluon
  • patrick/gluon
3 results
Select Git revision
Loading items
Show changes
Commits on Source (29)
Showing
with 164 additions and 54 deletions
...@@ -184,6 +184,7 @@ gluon-tools: FORCE ...@@ -184,6 +184,7 @@ gluon-tools: FORCE
+$(GLUONMAKE_EARLY) package/lua/host/install +$(GLUONMAKE_EARLY) package/lua/host/install
prepare-tmpinfo: FORCE prepare-tmpinfo: FORCE
@+$(MAKE) -r -s tmp/.prereq-build OPENWRT_BUILD= QUIET=0
mkdir -p tmp/info mkdir -p tmp/info
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA="" $(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA=""
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1" $(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
...@@ -205,7 +206,7 @@ feeds: FORCE ...@@ -205,7 +206,7 @@ feeds: FORCE
+$(GLUONMAKE_EARLY) prepare-tmpinfo +$(GLUONMAKE_EARLY) prepare-tmpinfo
config: FORCE config: FORCE
+$(NO_TRACE_MAKE) scripts/config/conf OPENWRT_BUILD=0 +$(NO_TRACE_MAKE) scripts/config/conf OPENWRT_BUILD= QUIET=0
+$(GLUONMAKE) prepare-tmpinfo +$(GLUONMAKE) prepare-tmpinfo
( \ ( \
cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \ cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \
......
...@@ -54,9 +54,9 @@ copyright = '2015, Project Gluon' ...@@ -54,9 +54,9 @@ copyright = '2015, Project Gluon'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '2015.1' version = '2015.1.2'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '2015.1' release = '2015.1.2'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
......
...@@ -49,6 +49,8 @@ Releases ...@@ -49,6 +49,8 @@ Releases
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
releases/v2015.1.2
releases/v2015.1.1
releases/v2015.1 releases/v2015.1
releases/v2014.4 releases/v2014.4
releases/v2014.3.1 releases/v2014.3.1
...@@ -100,9 +102,10 @@ ar71xx-generic ...@@ -100,9 +102,10 @@ ar71xx-generic
- TL-MR3040 (v1, v2) - TL-MR3040 (v1, v2)
- TL-MR3220 (v1, v2) - TL-MR3220 (v1, v2)
- TL-MR3420 (v1, v2) - TL-MR3420 (v1, v2)
- TL-WA701N/ND (v1) - TL-WA701N/ND (v1, v2)
- TL-WA750RE (v1) - TL-WA750RE (v1)
- TL-WA801N/ND (v2) - TL-WA801N/ND (v1, v2)
- TL-WA830RE (v1, v2)
- TL-WA850RE (v1) - TL-WA850RE (v1)
- TL-WA860RE (v1) - TL-WA860RE (v1)
- TL-WA901N/ND (v2, v3) - TL-WA901N/ND (v2, v3)
...@@ -112,8 +115,8 @@ ar71xx-generic ...@@ -112,8 +115,8 @@ ar71xx-generic
- TL-WR1043N/ND (v1, v2) - TL-WR1043N/ND (v1, v2)
- TL-WR703N (v1) - TL-WR703N (v1)
- TL-WR710N (v1) - TL-WR710N (v1)
- TL-WR740N (v1, v3, v4) - TL-WR740N (v1, v3, v4, v5)
- TL-WR741N/ND (v1, v2, v4) - TL-WR741N/ND (v1, v2, v4, v5)
- TL-WR743N/ND (v1, v2) - TL-WR743N/ND (v1, v2)
- TL-WR841N/ND (v3, v5, v7, v8, v9) - TL-WR841N/ND (v3, v5, v7, v8, v9)
- TL-WR842N/ND (v1, v2) - TL-WR842N/ND (v1, v2)
......
Gluon 2015.1.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA830RE (v1)
New features
~~~~~~~~~~~~
The `x86-generic` and `x86-kvm_guest` images now support two ethernet interfaces by default. If two interfaces exist during
the first boot, `eth0` will be used as LAN and `eth1` as WAN.
Bugfixes
~~~~~~~~
* Fix German "Expert Mode" label (was "Export Mode")
* Fix download of OpenSSL during build (because of broken OpenSSL download servers...)
* Fix ABI break causing kernel panics when trying to use network-related modules from the official OpenWrt repository (like `kmod-pppoe`)
* Fix race conditions breaking parallel build occasionally
* A broken network configuration would be generated when an older Gluon version was updated to 2015.1 with
``mesh_on_lan`` enabled in `site.conf`
* Minor announced/alfred JSON format fixes (don't output empty lists where empty objects would be expected)
Gluon 2015.1.2
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA701N/ND (v2)
- TL-WA801N/ND (v1)
- TL-WA830RE (v2)
- TL-WR740N / TL-WR741ND (v5)
New features
~~~~~~~~~~~~
* Ubiquiti Loco M, Picostation M and Rocket M now get their own images (which are just copies of the Bullet M image)
so it's more obvious for users which image to use
* The x86-generic images now contain the e1000e ethernet driver by default
Bugfixes
~~~~~~~~
* Fix download of OpenSSL during build because of broken OpenSSL download servers (again...)
* Fix another ABI incompatiblity with the upstream kernel modules which prevented loading some filesystem-related modules
* Fix potential MAC address conflicts on x86 target when using mesh-on-wan/lan
* Fix signal strength indicators on TP-LINK CPE210/510
* Fix the model name string on some NETGEAR WNDR3700v2
* Fix 5GHz WLAN switching channels and losing connectivity when other WLANs using the same channel are detected (including other Gluon nodes...); see https://github.com/freifunk-gluon/gluon/issues/386
* Fix DNS resolution for mesh VPN on IPv6-only WAN; see https://github.com/freifunk-gluon/gluon/issues/397
Known issues
~~~~~~~~~~~~
* gluon-mesh-batman-adv-15: batman-adv compat 15 doesn't handle fragmentation correctly when there are multiple different MTUs involved. In particular,
this breaks transmission of large packets which are first fragmented for mesh-on-lan/wan and are then sent over the mesh VPN, which has an even smaller MTU.
We hope this will be fixed in batman-adv soon, until then we can't really recommend anything but to avoid mesh-on-lan/wan with gluon-mesh-batman-adv-15.
See https://github.com/freifunk-gluon/gluon/issues/435
...@@ -15,6 +15,8 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_IP_RULE=y ...@@ -15,6 +15,8 @@ CONFIG_BUSYBOX_CONFIG_FEATURE_IP_RULE=y
CONFIG_BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS=y CONFIG_BUSYBOX_CONFIG_FEATURE_IP_SHORT_FORMS=y
CONFIG_BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT=y CONFIG_BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_KERNEL_DIRECT_IO=y
CONFIG_ATH_USER_REGD=y CONFIG_ATH_USER_REGD=y
CONFIG_PACKAGE_ATH_DEBUG=y CONFIG_PACKAGE_ATH_DEBUG=y
CONFIG_ATH10K_CT_COMMUNITY_FW=y CONFIG_ATH10K_CT_COMMUNITY_FW=y
......
...@@ -48,10 +48,6 @@ else ...@@ -48,10 +48,6 @@ else
export HOSTCC_WRAPPER:=$(HOSTCC) export HOSTCC_WRAPPER:=$(HOSTCC)
endif endif
ifeq ($(FORCE),)
.config scripts/config/conf scripts/config/mconf: tmp/.prereq-build
endif
SCAN_COOKIE?=$(shell echo $$$$) SCAN_COOKIE?=$(shell echo $$$$)
export SCAN_COOKIE export SCAN_COOKIE
......
GLUON_FEEDS='openwrt gluon routing luci' GLUON_FEEDS='openwrt gluon routing luci'
OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git
OPENWRT_COMMIT=179bab8b1700d74b28cc6cd25322f9a1ad670107 OPENWRT_COMMIT=10b1d597b97bf9038d18eb8c7c5a8d127c72e5da
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f PACKAGES_OPENWRT_COMMIT=289cc1505143e4b6cfaaabd452143e159dd22d25
PACKAGES_OPENWRT_BRANCH=for-14.07 PACKAGES_OPENWRT_BRANCH=for-14.07
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
module('gluon.announce', package.seeall) module('gluon.announce', package.seeall)
fs = require 'luci.fs' fs = require 'luci.fs'
json = require 'luci.json'
uci = require('luci.model.uci').cursor() uci = require('luci.model.uci').cursor()
util = require 'luci.util' util = require 'luci.util'
...@@ -15,7 +16,7 @@ local function collect_entry(entry) ...@@ -15,7 +16,7 @@ local function collect_entry(entry)
end end
function collect_dir(dir) function collect_dir(dir)
local ret = {} local ret = { [json.null] = true }
for _, entry in ipairs(fs.dir(dir)) do for _, entry in ipairs(fs.dir(dir)) do
if entry:sub(1, 1) ~= '.' then if entry:sub(1, 1) ~= '.' then
......
...@@ -27,7 +27,7 @@ msgid "Longitude" ...@@ -27,7 +27,7 @@ msgid "Longitude"
msgstr "Längengrad" msgstr "Längengrad"
msgid "Altitude" msgid "Altitude"
msgstr "Höhenmeter über Normalnull" msgstr "Höhe"
msgid "Show node on the map" msgid "Show node on the map"
msgstr "Knoten auf der Karte anzeigen" msgstr "Knoten auf der Karte anzeigen"
......
...@@ -15,19 +15,18 @@ local util = require 'luci.util' ...@@ -15,19 +15,18 @@ local util = require 'luci.util'
local try_files = { local try_files = {
'/sys/class/ieee80211/phy0/macaddress', '/sys/class/net/eth0/address'
'/sys/class/net/eth0/address',
} }
if platform.match('ar71xx', 'generic', {'tl-wdr3600', 'tl-wdr4300'}) then if not util.contains({'x86', 'brcm2708'}, platform.get_target()) then
table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress') table.insert(try_files, 1, '/sys/class/ieee80211/phy0/macaddress')
end end
if platform.match('ar71xx', 'generic', {'unifi-outdoor-plus'}) then if platform.match('ar71xx', 'generic', {'tl-wdr3600', 'tl-wdr4300'}) then
table.insert(try_files, 1, '/sys/class/ieee80211/phy1/macaddress')
elseif platform.match('ar71xx', 'generic', {'unifi-outdoor-plus'}) then
table.insert(try_files, 1, '/sys/class/net/eth0/address') table.insert(try_files, 1, '/sys/class/net/eth0/address')
end elseif platform.match('ar71xx', 'generic', {'archer-c5', 'archer-c7'}) then
if platform.match('ar71xx', 'generic', {'archer-c5', 'archer-c7'}) then
table.insert(try_files, 1, '/sys/class/net/eth1/address') table.insert(try_files, 1, '/sys/class/net/eth1/address')
end end
......
...@@ -27,7 +27,7 @@ msgid "Don't switch off the device in any circumstance!" ...@@ -27,7 +27,7 @@ msgid "Don't switch off the device in any circumstance!"
msgstr "Unterbrich auf keinen Fall die Stromversorgung!" msgstr "Unterbrich auf keinen Fall die Stromversorgung!"
msgid "Expert Mode" msgid "Expert Mode"
msgstr "Export Mode" msgstr "Expert Mode"
msgid "Firmware image" msgid "Firmware image"
msgstr "Firmware-Datei" msgstr "Firmware-Datei"
......
local json = require 'luci.json'
local util = require 'luci.util'
local fs = require 'nixio.fs'
local ifname_address_cache = {} local ifname_address_cache = {}
function ifname2address(ifname) function ifname2address(ifname)
...@@ -26,7 +22,7 @@ function batadv() ...@@ -26,7 +22,7 @@ function batadv()
if mac1 ~= nil and mac1 == mac2 then if mac1 ~= nil and mac1 == mac2 then
ifaddress = ifname2address(ifname) ifaddress = ifname2address(ifname)
if interfaces[ifaddress] == nil then if interfaces[ifaddress] == nil then
interfaces[ifaddress] = { neighbours = {} } interfaces[ifaddress] = { neighbours = { [json.null] = true } }
end end
interfaces[ifaddress].neighbours[mac1] = { tq = tonumber(tq) interfaces[ifaddress].neighbours[mac1] = { tq = tonumber(tq)
...@@ -35,7 +31,9 @@ function batadv() ...@@ -35,7 +31,9 @@ function batadv()
end end
end end
if next(interfaces) then
return interfaces return interfaces
end end
end
return batadv() return batadv()
local json = require 'luci.json'
local util = require 'luci.util'
local fs = require 'nixio.fs'
local iwinfo = require 'iwinfo' local iwinfo = require 'iwinfo'
function neighbours(iface) function neighbours(iface)
...@@ -12,8 +9,10 @@ function neighbours(iface) ...@@ -12,8 +9,10 @@ function neighbours(iface)
} }
end end
if next(stations) then
return stations return stations
end end
end
function interfaces() function interfaces()
local interfaces = {} local interfaces = {}
...@@ -38,4 +37,6 @@ for address, iface in pairs(interfaces()) do ...@@ -38,4 +37,6 @@ for address, iface in pairs(interfaces()) do
wifi[address] = { neighbours = neighbours(iface) } wifi[address] = { neighbours = neighbours(iface) }
end end
if next(wifi) then
return wifi return wifi
end
...@@ -48,5 +48,6 @@ end ...@@ -48,5 +48,6 @@ end
return { return {
wireless = nil_table(wireless), wireless = nil_table(wireless),
tunnel = nil_table(tunnel), tunnel = nil_table(tunnel),
other = nil_table(other) other = nil_table(other),
[json.null] = true
} }
#!/usr/bin/lua #!/usr/bin/lua
local sysconfig = require 'gluon.sysconfig'
local util = require 'gluon.util' local util = require 'gluon.util'
local uci = require('luci.model.uci').cursor() local uci = require('luci.model.uci').cursor()
if sysconfig.wan_ifname:match('%.') then
-- fix up duplicate mac addresses (for mesh-on-WAN) -- fix up duplicate mac addresses (for mesh-on-WAN)
uci:set('network', 'wan', 'macaddr', util.generate_mac(1, 0)) uci:set('network', 'wan', 'macaddr', util.generate_mac(1, 0))
uci:save('network') uci:save('network')
uci:commit('network') uci:commit('network')
end
#!/usr/bin/lua #!/usr/bin/lua
local site = require 'gluon.site_config' local site = require 'gluon.site_config'
local uci = require 'luci.model.uci'
local util = require 'gluon.util' local util = require 'gluon.util'
local sysconfig = require 'gluon.sysconfig' local sysconfig = require 'gluon.sysconfig'
local c = uci.cursor() local uci = require('luci.model.uci').cursor()
local lutil = require 'luci.util'
if sysconfig.lan_ifname then if sysconfig.lan_ifname and not uci:get('network', 'mesh_lan') then
if not c:get('network', 'mesh_lan') then local enable = site.mesh_on_lan
c:section('network', 'interface', 'mesh_lan',
if enable then
local interfaces = uci:get('network', 'client', 'ifname')
if interfaces and lutil.contains(interfaces:split(' '), sysconfig.lan_ifname) then
enable = false
end
end
uci:section('network', 'interface', 'mesh_lan',
{ ifname = sysconfig.lan_ifname { ifname = sysconfig.lan_ifname
, proto = 'batadv' , proto = 'batadv'
, mesh = 'bat0' , mesh = 'bat0'
, macaddr = util.generate_mac(1, 1) , macaddr = util.generate_mac(1, 1)
, auto = site.mesh_on_lan and 1 or 0 , auto = enable and 1 or 0
}) })
end
uci:save('network')
uci:commit('network')
end end
c:save('network')
c:commit('network')
#!/usr/bin/lua
local uci = require('luci.model.uci').cursor()
if uci:get('system', 'rssid_wlan0') then
uci:set('system', 'rssid_wlan0', 'dev', 'mesh0')
uci:save('system')
uci:commit('system')
end
...@@ -18,7 +18,10 @@ start() { ...@@ -18,7 +18,10 @@ start() {
mkdir -p $RESOLV_CONF_DIR mkdir -p $RESOLV_CONF_DIR
/lib/gluon/wan-dnsmasq/update.lua /lib/gluon/wan-dnsmasq/update.lua
LD_PRELOAD=libpacketmark.so LIBPACKETMARK_MARK=$PACKET_MARK service_start /usr/sbin/dnsmasq -x $SERVICE_PID_FILE -u root -i lo -p $PORT -h -r $RESOLV_CONF export LD_PRELOAD=libpacketmark.so
export LIBPACKETMARK_MARK=$PACKET_MARK
service_start /usr/sbin/dnsmasq -x $SERVICE_PID_FILE -u root -i lo -p $PORT -h -r $RESOLV_CONF
} }
stop() { stop() {
......
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Thu, 28 May 2015 03:48:14 +0200
Subject: build: prevent race condition between tool symlink creation
Filter out STAGING_DIR_HOST binary path to prevent picking up grep from this
path.
diff --git a/tools/Makefile b/tools/Makefile
index 137ad61..c24bca1 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -120,7 +120,7 @@ $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
define PrepareCommand
$(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR_HOST)/.prepared
@mkdir -p "$$(dir $$@)"; rm -f "$$@"
- @export FILE="$$$$(which $(2) 2>/dev/null | grep -v 'not found' | head -n1)"; [ -n "$$$$FILE" ] || { \
+ @export PATH="$(subst $(space),:,$(filter-out $(STAGING_DIR_HOST)/%,$(subst :,$(space),$(PATH))))"; export FILE="$$$$(which $(2) 2>/dev/null | grep -v 'not found' | head -n1)"; [ -n "$$$$FILE" ] || { \
echo "Command $(1) not found."; false; \
}; ln -s "$$$$FILE" "$$@"