diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile
index 96e12a390aad225d9f4c9303e61dcd9760dcf664..893742600762f95d709969f8df279230fc1864a3 100644
--- a/target/linux/ar71xx/Makefile
+++ b/target/linux/ar71xx/Makefile
@@ -15,7 +15,7 @@ LINUX_VERSION:=2.6.28.7
 
 include $(INCLUDE_DIR)/target.mk
 
-DEFAULT_PACKAGES += hostapd-mini kmod-madwifi
+DEFAULT_PACKAGES += hostapd-mini kmod-madwifi kmod-gpio-leds
 
 define Target/Description
 	Build firmware images for Atheros AR71xx/AR913x based boards
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index c96456759c803d0d58b3693c290e629a068362f6..720be1c1e0f904ea5078ec5f029eb4b1206d04f8 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -179,6 +179,16 @@ define Image/Build/Profile/TLWR941NDV2
 	$(call Image/Build/Template/TPLINK/$(1),tl-wr941ndv2,board=TL-WR941ND,TL-WR941NDv2)
 endef
 
+define Image/Build/Profile/Default
+	$(call Image/Build/Profile/DIR615C1,$(1))
+	$(call Image/Build/Profile/MZKW04NU,$(1))
+	$(call Image/Build/Profile/TEW632BRP,$(1))
+	$(call Image/Build/Profile/TEW652BRP,$(1))
+	$(call Image/Build/Profile/TLWR941NDV2,$(1))
+	$(call Image/Build/Profile/UBNTRS,$(1))
+	$(call Image/Build/Profile/WP543,$(1))
+endef
+
 define Image/Build/squashfs
 	$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
 endef
@@ -187,13 +197,7 @@ define Image/Build
 	$(call Image/Build/$(1))
 	dd if=$(KDIR)/root.$(1) of=$(IMGNAME)-root.$(1) bs=128k conv=sync
 
-	$(call Image/Build/Profile/DIR615C1,$(1))
-	$(call Image/Build/Profile/MZKW04NU,$(1))
-	$(call Image/Build/Profile/TEW632BRP,$(1))
-	$(call Image/Build/Profile/TEW652BRP,$(1))
-	$(call Image/Build/Profile/UBNTRS,$(1))
-	$(call Image/Build/Profile/WP543,$(1))
-	$(call Image/Build/Profile/TLWR941NDV2,$(1))
+	$(call Image/Build/Profile/$(PROFILE),$(1))
 endef
 
 $(eval $(call BuildImage))
diff --git a/target/linux/ar71xx/profiles/00-default.mk b/target/linux/ar71xx/profiles/00-default.mk
new file mode 100644
index 0000000000000000000000000000000000000000..5b9df1d5608d83b202a0ddf22a3d8652bf5e06f3
--- /dev/null
+++ b/target/linux/ar71xx/profiles/00-default.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/Default
+	NAME:=Default
+	PACKAGES:=
+endef
+
+define Profile/Default/Description
+	Default package set compatible with most boards.
+endef
+$(eval $(call Profile,Default))
diff --git a/target/linux/ar71xx/profiles/compex.mk b/target/linux/ar71xx/profiles/compex.mk
new file mode 100644
index 0000000000000000000000000000000000000000..468c25179e5462868c551bddb3f4520726934386
--- /dev/null
+++ b/target/linux/ar71xx/profiles/compex.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/WP543
+	NAME:=Compex WP543
+	PACKAGES:=kmod-usb-ohci kmod-usb2
+endef
+
+define Profile/WP543/Description
+	Package set optimized for the Compex WP543
+endef
+
+$(eval $(call Profile,WP543))
diff --git a/target/linux/ar71xx/profiles/d-link.mk b/target/linux/ar71xx/profiles/d-link.mk
new file mode 100644
index 0000000000000000000000000000000000000000..0aa50a640d735012a88739ba399514ad8f545e80
--- /dev/null
+++ b/target/linux/ar71xx/profiles/d-link.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/DIR615C1
+	NAME:=D-Link DIR-615 rev. C1
+	PACKAGES:=kmod-ath9k
+endef
+
+define Profile/DIR615C1/Description
+	Package set optimized for the D-Link DIR-615 rev. C1.
+endef
+
+$(eval $(call Profile,DIR615C1))
diff --git a/target/linux/ar71xx/profiles/planex.mk b/target/linux/ar71xx/profiles/planex.mk
new file mode 100644
index 0000000000000000000000000000000000000000..df92b1670efc2169263dc143adbfb6f8f042eab1
--- /dev/null
+++ b/target/linux/ar71xx/profiles/planex.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/MZKW04NU
+	NAME:=Planex MZK-W04NU
+	PACKAGES:=kmod-ath9k kmod-usb-ohci kmod-usb2
+endef
+
+define Profile/MZKW04NU/Description
+	Package set optimized for the Planex MZK-W04NU.
+endef
+
+$(eval $(call Profile,MZKW04NU))
diff --git a/target/linux/ar71xx/profiles/tp-link.mk b/target/linux/ar71xx/profiles/tp-link.mk
new file mode 100644
index 0000000000000000000000000000000000000000..db60e1d1f7759425405cbe6fc219116b35921fb0
--- /dev/null
+++ b/target/linux/ar71xx/profiles/tp-link.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/TLWR941ND
+	NAME:=TP-LINK TL-WR941ND
+	PACKAGES:=kmod-ath9k
+endef
+
+define Profile/TLWR941ND/Description
+	Package set optimized for the TP-LINK TL-WR941ND.
+endef
+
+$(eval $(call Profile,TLWR941ND))
diff --git a/target/linux/ar71xx/profiles/trendnet.mk b/target/linux/ar71xx/profiles/trendnet.mk
new file mode 100644
index 0000000000000000000000000000000000000000..3a40fbcaee7b482383ddf47936404f2aa35e4e29
--- /dev/null
+++ b/target/linux/ar71xx/profiles/trendnet.mk
@@ -0,0 +1,28 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/TEW632BRP
+	NAME:=TRENDNet TEW-632BRP
+	PACKAGES:=kmod-ath9k
+endef
+
+define Profile/TEW632BRP/Description
+	Package set optimized for the TRENDNet TEW-632BRP.
+endef
+
+$(eval $(call Profile,TEW632BRP))
+
+define Profile/TEW652BRP
+	NAME:=TRENDNet TEW-652BRP
+	PACKAGES:=kmod-ath9k
+endef
+
+define Profile/TEW652BRP/Description
+	Package set optimized for the TRENDNet TEW-652BRP.
+endef
+
+$(eval $(call Profile,TEW652BRP))
diff --git a/target/linux/ar71xx/profiles/ubnt.mk b/target/linux/ar71xx/profiles/ubnt.mk
new file mode 100644
index 0000000000000000000000000000000000000000..e7b20deaa0cea5542b846829372b9afd672123ee
--- /dev/null
+++ b/target/linux/ar71xx/profiles/ubnt.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/UBNTRS
+	NAME:=Ubiquiti RouterStation
+	PACKAGES:=kmod-usb-ohci kmod-usb2
+endef
+
+define Profile/UBNTRS/Description
+	Package set optimized for the Ubiquiti RouterStation
+endef
+
+$(eval $(call Profile,UBNTRS))