diff --git a/package/gluon-core/files/usr/lib/lua/gluon/model.lua b/package/gluon-core/files/usr/lib/lua/gluon/model.lua
new file mode 100644
index 0000000000000000000000000000000000000000..a09c067219f6398cb5ccaef9e4c7320167358682
--- /dev/null
+++ b/package/gluon-core/files/usr/lib/lua/gluon/model.lua
@@ -0,0 +1,21 @@
+local util = require 'luci.util'
+
+
+module 'gluon.model'
+
+
+-- This must be generalized as soon as we support other OpenWrt archs
+local board_name, model = util.exec('. /lib/functions.sh; . /lib/ar71xx.sh; ar71xx_board_detect; echo "$AR71XX_BOARD_NAME"; echo "$AR71XX_MODEL"'):match('([^\n]+)\n([^\n]+)')
+
+
+function get_arch()
+	return 'ar71xx'
+end
+
+function get_board_name()
+	return board_name
+end
+
+function get_model()
+	return model
+end