diff -ur busybox-1.17.3-akaros-base/include/libbb.h busybox-1.17.3-akaros/include/libbb.h
--- busybox-1.17.3-akaros-base/include/libbb.h	2015-11-03 16:05:17.610100657 -0500
+++ busybox-1.17.3-akaros/include/libbb.h	2015-11-03 16:10:35.950717057 -0500
@@ -1265,8 +1265,20 @@
 #ifdef __GLIBC__
 /* At least glibc has horrendously large inline for this, so wrap it */
 unsigned long long bb_makedev(unsigned int major, unsigned int minor) FAST_FUNC;
+unsigned int bb_major(unsigned long long dev) FAST_FUNC;
+unsigned int bb_minor(unsigned long long dev) FAST_FUNC;
+#ifdef makedev
 #undef makedev
+#endif
 #define makedev(a,b) bb_makedev(a,b)
+#ifdef major
+#undef major
+#endif
+#define major(a) bb_major(a)
+#ifdef minor
+#undef minor
+#endif
+#define minor(a) bb_minor(a)
 #endif
 
 
diff -ur busybox-1.17.3-akaros-base/libbb/makedev.c busybox-1.17.3-akaros/libbb/makedev.c
--- busybox-1.17.3-akaros-base/libbb/makedev.c	2015-11-03 16:05:17.522098264 -0500
+++ busybox-1.17.3-akaros/libbb/makedev.c	2015-11-03 16:12:53.898427762 -0500
@@ -19,6 +19,18 @@
 unsigned long long FAST_FUNC bb_makedev(unsigned int major, unsigned int minor);
 unsigned long long FAST_FUNC bb_makedev(unsigned int major, unsigned int minor)
 {
-	return makedev(major, minor);
+	return ((major << 16) | minor);
+}
+
+unsigned int FAST_FUNC bb_major(unsigned long long dev);
+unsigned int FAST_FUNC bb_major(unsigned long long dev)
+{
+	return ((dev >> 16) & 0xFFFF);
+}
+
+unsigned int FAST_FUNC bb_minor(unsigned long long dev);
+unsigned int FAST_FUNC bb_minor(unsigned long long dev)
+{
+	return (dev & 0xFFFF);
 }
 #endif
