--- fbbsrc.703c/src/console.c	2000-09-14 22:16:38.000000000 +0200
+++ fbbsrc.703c.rxq/src/console.c	2004-02-13 19:49:34.000000000 +0100
@@ -893,7 +893,7 @@
 
 #define MEMINFO_FILE "/proc/meminfo"
 
-static char buf[300];
+static char buf[1000];
 
 #define MAX_ROW 3				/* these are a little liberal for flexibility */
 #define MAX_COL 7
@@ -929,6 +929,29 @@
 	for (i = 0; i < MAX_ROW; i++)	/* zero unassigned fields */
 		for (j = 0; j < MAX_COL; j++)
 			row[i][j] = 0;
+	if (!strncmp("MemTotal:", p, 8)) {
+		printf("Asuming 2.6 Kernel\n");
+		while (*p && !isdigit(*p)) p++;
+		l = sscanf(p, "%u%n", &row[meminfo_main][meminfo_total], &k);
+		p += k;
+		while (*p && !strncmp("MemFree:", p, 8)) p++;
+		while (*p && !isdigit(*p)) p++;
+		l = sscanf(p, "%u%n", &row[meminfo_main][meminfo_free], &k);
+		p += k;
+		while (*p && !strncmp("Buffers:", p, 8)) p++;
+		while (*p && !isdigit(*p)) p++;
+		l = sscanf(p, "%u%n", &row[meminfo_main][meminfo_buffers], &k);
+		p += k;
+		while (*p && !strncmp("Cached:", p, 7)) p++;
+		while (*p && !isdigit(*p)) p++;
+		l = sscanf(p, "%u%n", &row[meminfo_main][meminfo_cached], &k);
+		p += k;
+		while (*p && !strncmp("SwapFree:", p, 9)) p++;
+		while (*p && !isdigit(*p)) p++;
+		l = sscanf(p, "%u%n", &row[meminfo_swap][meminfo_free], &k);
+		p += k;
+		return row;
+	}
 	for (i = 0; i < MAX_ROW && *p; i++)
 	{							/* loop over rows */
 		while (*p && !isdigit (*p))


