diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..593a98b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,143 @@
+#
+#    Copyright (c) 2010-2012 Nest Labs, Inc.
+#    All rights reserved.
+#
+#    This document is the property of Nest. It is considered
+#    confidential and proprietary information.
+#
+#    This document may not be reproduced or transmitted in any form,
+#    in whole or in part, without the express written permission of
+#    Nest.
+#
+#    Description:
+#      This file is the makefile for udev, the dynamic device node
+#      manager for Linux.
+#
+
+
+include pre.mak
+
+PackageName		:= udev
+
+PackageExtension	:= tar.bz2
+PackageSeparator	:= -
+
+PackagePatchArgs	:= -p1
+
+PackageArchive		:= $(PackageName).$(PackageExtension)
+PackageSourceDir	:= $(PackageName)$(PackageSeparator)$(PackageVersion)
+
+PackageBuildMakefile	= $(call GenerateBuildPaths,Makefile)
+
+CleanPaths		+= $(PackageLicenseFile)
+
+SOURCEDIRS                      = $(PackageSourceDir)
+$(PackageSourceDir)_RULE_TARGET = $(BuildDirectory)/configure
+
+all: $(PackageDefaultGoal)
+
+# Generate the package license contents.
+
+$(PackageSourceDir)/COPYING: $(BuildDirectory)/source
+
+$(PackageLicenseFile): $(PackageSourceDir)/COPYING
+	$(copy-result)
+
+# Extract the source from the archive and apply patches, if any.
+
+$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths)
+	$(expand-and-patch-package)
+
+# Prepare the sources.
+
+.PHONY: source
+source: $(BuildDirectory)/source
+$(BuildDirectory)/source: | $(PackageSourceDir) $(BuildDirectory)
+	$(Verbose)touch $@
+
+# Patch the sources, if necessary.
+
+.PHONY: patch
+patch: $(BuildDirectory)/patch
+$(BuildDirectory)/patch: $(BuildDirectory)/source
+	$(Verbose)touch $@
+
+# Generate the package build makefile.
+
+# Configure the source for building.
+
+.PHONY: configure
+configure: $(BuildDirectory)/configure
+$(BuildDirectory)/configure: $(BuildDirectory)/source | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory)
+	$(Verbose)cd $(BuildDirectory) && \
+	$(CURDIR)/$(PackageSourceDir)/configure \
+	CC="$(CC) $(CPPOPTFLAGS)" CXX="$(CXX) $(CPPOPTFLAGS)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \
+	INSTALL="$(INSTALL) $(INSTALLFLAGS)" \
+	CPPFLAGS="$(call ToolGenerateIncludeArgument,$(LinuxIncludePath))" \
+	GLIB_CFLAGS="$(call ToolGenerateIncludeArgument,$(GlibIncludePaths))" \
+	GLIB_LIBS="$(call GenerateLibraryPathArgument,$(GlibLibraryPath))" \
+	PKG_CONFIG_PATH="$(UsbUtilsPkgConfigPath)" \
+	--build=$(HostTuple) \
+	--host=$(TargetTuple) \
+	--disable-extras \
+	--disable-introspection \
+	--disable-static \
+	--disable-gudev \
+	--enable-shared \
+	--without-selinux \
+	--prefix=/usr \
+	--sysconfdir=/etc \
+	--sbindir=/sbin \
+	--libdir=/usr/lib \
+	--with-rootlibdir=/lib \
+	--libexecdir=/lib/udev \
+	--localstatedir=/var \
+	--with-pci-ids-path=/usr/share/misc/pci.ids
+	$(Verbose)touch $@
+
+# Build the source.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+
+.PHONY: build
+build: $(BuildDirectory)/build
+$(BuildDirectory)/build: $(BuildDirectory)/configure
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all
+	$(Verbose)touch $@
+
+# Stage the build to a temporary installation area.
+#
+# We have to unset MAKEFLAGS since they confuse the package build otherwise.
+#
+# We explictly remove 'libfoo.la' because some packages that depend on
+# these libraries use libtool. If libtool finds a 'libfoo.la' file for
+# a library, it uses the value of 'libdir=<dir>' it finds. In our
+# case, since '--prefix=/usr' this value is '/usr/lib'. It then
+# resolves '-lfoo'. In a cross-compilation environment, this is likely
+# to be neither the right architecture nor the right version to link
+# against. In short, we lose.
+#
+# We could also handle this by removing DESTDIR and setting the prefix
+# to $(ResultDirectory); however, that results in libtool hard-coding
+# $(ResultDirectory) as the RPATH in the linked executables which is
+# NOT what we want either. We lose again.
+#
+# By removing the '*.la' file, we win by ensuring neither a misdirected
+# link nor an RPATH.
+
+$(BuildDirectory)/stage: $(BuildDirectory)/build | $(ResultDirectory)
+	$(Verbose)unset MAKEFLAGS && \
+	$(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install
+	$(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libudev.la)
+	$(Verbose)touch $@
+
+.PHONY: stage
+stage: $(BuildDirectory)/stage
+
+clean:
+	$(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
+	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)
+
+include post.mak
diff --git a/udev.patches/udev-50.description b/udev.patches/udev-50.description
new file mode 100644
index 0000000..012fc5b
--- /dev/null
+++ b/udev.patches/udev-50.description
@@ -0,0 +1 @@
+Poky 2.0.1 Support
diff --git a/udev.patches/udev-50.patch b/udev.patches/udev-50.patch
new file mode 100644
index 0000000..0a39679
--- /dev/null
+++ b/udev.patches/udev-50.patch
@@ -0,0 +1,22 @@
+diff -Naur a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c
+--- a/libudev/libudev-util-private.c	2016-09-08 16:36:45.744010660 -0700
++++ b/libudev/libudev-util-private.c	2016-09-08 16:41:05.863287706 -0700
+@@ -21,6 +21,7 @@
+ #include <grp.h>
+ #include <sys/wait.h>
+ #include <sys/param.h>
++#include <sys/resource.h>
+ 
+ #include "libudev.h"
+ #include "libudev-private.h"
+diff -Naur a/udev/udevd.c b/udev/udevd.c
+--- a/udev/udevd.c	2016-09-08 16:36:45.732010510 -0700
++++ b/udev/udevd.c	2016-09-08 16:41:05.851287555 -0700
+@@ -43,6 +43,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/inotify.h>
+ #include <sys/utsname.h>
++#include <sys/resource.h>
+ 
+ #include "udev.h"
+ #include "sd-daemon.h"
diff --git a/udev.patches/udev-51.description b/udev.patches/udev-51.description
new file mode 100644
index 0000000..861a54d
--- /dev/null
+++ b/udev.patches/udev-51.description
@@ -0,0 +1,2 @@
+To support old kernels without accept4 support, replace the call to accept4 with something equivalent.
+https://bugs.debian.org/cgi-bin/bugreport.cgi?att=2;bug=648325;filename=udev-182.patch
diff --git a/udev.patches/udev-51.patch b/udev.patches/udev-51.patch
new file mode 100644
index 0000000..25922e0
--- /dev/null
+++ b/udev.patches/udev-51.patch
@@ -0,0 +1,38 @@
+diff -Naur a/udev/udev-ctrl.c b/udev/udev-ctrl.c
+--- a/udev/udev-ctrl.c	2011-10-09 16:10:32.974583654 -0700
++++ b/udev/udev-ctrl.c	2016-10-24 13:41:53.973027666 -0700
+@@ -15,6 +15,7 @@
+ #include <stddef.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <fcntl.h>
+ #include <sys/types.h>
+ #include <sys/poll.h>
+ #include <sys/socket.h>
+@@ -176,6 +177,16 @@
+ 	return uctrl->sock;
+ }
+ 
++int replace_accept4(int s, struct sockaddr *addr, socklen_t *addrlen, int flags)
++{
++	int sock = accept(s, addr, addrlen);
++	if (sock < 0) return sock;
++	int res = fcntl(sock, F_SETFL, flags);
++	if (res > -1) return sock;
++	close(sock);
++	return res;
++}
++
+ struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl)
+ {
+ 	struct udev_ctrl_connection *conn;
+@@ -189,7 +200,8 @@
+ 	conn->refcount = 1;
+ 	conn->uctrl = uctrl;
+ 
+-	conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++	//conn->sock = accept4(uctrl->sock, NULL, NULL, SOCK_CLOEXEC|SOCK_NONBLOCK);
++	conn->sock = replace_accept4(uctrl->sock, NULL, NULL, O_NONBLOCK);
+ 	if (conn->sock < 0) {
+ 		if (errno != EINTR)
+ 			err(uctrl->udev, "unable to receive ctrl connection: %m\n");
diff --git a/udev.tar.bz2 b/udev.tar.bz2
new file mode 100644
index 0000000..296a2cb
--- /dev/null
+++ b/udev.tar.bz2
Binary files differ
diff --git a/udev.url b/udev.url
new file mode 100644
index 0000000..d0dd82d
--- /dev/null
+++ b/udev.url
@@ -0,0 +1 @@
+http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-166.tar.bz2
diff --git a/udev.version b/udev.version
new file mode 100644
index 0000000..f07e286
--- /dev/null
+++ b/udev.version
@@ -0,0 +1 @@
+175
