Index: /src/router/services/sysinit/sysinit-whrhpgn.c
===================================================================
--- /src/router/services/sysinit/sysinit-whrhpgn.c	(revision 18568)
+++ /src/router/services/sysinit/sysinit-whrhpgn.c	(revision 18569)
@@ -72,5 +72,5 @@
 	 */
 	fprintf(stderr, "load ATH Ethernet Driver\n");
-	insmod("ag7240_mod");
+	system("insmod ag71xx || insmod ag7240_mod");
 #ifndef HAVE_WNR2000
 	FILE *fp = fopen("/dev/mtdblock/6", "rb");
@@ -92,4 +92,10 @@
 		eval("ifconfig", "eth1", "hw", "ether", mac);
 	}
+#endif
+#ifdef HAVE_SWCONFIG
+		system("swconfig dev eth0 set reset 1");
+		system("swconfig dev eth0 set enable_vlan 0");
+		system("swconfig dev eth0 vlan 1 set ports \"0 1 2 3 4\"");
+		system("swconfig dev eth0 set apply");
 #endif
 	eval("ifconfig", "eth0", "up");
Index: /src/router/services/sysinit/sysinit-wrt400.c
===================================================================
--- /src/router/services/sysinit/sysinit-wrt400.c	(revision 18568)
+++ /src/router/services/sysinit/sysinit-wrt400.c	(revision 18569)
@@ -72,5 +72,5 @@
 	 */
 	fprintf(stderr, "load ag71xx or ag7100_mod Ethernet Driver\n");
-	system("insmod ag71xx || insmod ag7100_mod");
+	system("insmod ag71xx || insmod ag7100_mod || insmod ag7240_mod");
 	char mac1[32];
 	char mac2[32];
