diff --git a/Makefile.am b/Makefile.am
index d1a1bd8..6843a7e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,7 +44,8 @@
 	sd_event_loop.hpp \
 	sol/sol_context.hpp \
 	sol/sol_manager.hpp \
-	sd_event_loop.cpp
+	sd_event_loop.cpp \
+	sol/sol_manager.cpp
 
 netipmid_CPPFLAGS = -DNET_IPMID_LIB_PATH=\"/usr/lib/net-ipmid/\"
 netipmid_LDFLAGS = $(SYSTEMD_LIBS) $(CRYPTO_LIBS) $(libmapper_LIBS) $(PHOSPHOR_LOGGING_LIBS) $(LIBADD_DLOPEN) -export-dynamic
diff --git a/sol/sol_manager.cpp b/sol/sol_manager.cpp
new file mode 100644
index 0000000..d26193b
--- /dev/null
+++ b/sol/sol_manager.cpp
@@ -0,0 +1,44 @@
+#include <sys/socket.h>
+#include <sys/un.h>
+#include <cmath>
+#include <phosphor-logging/log.hpp>
+#include "main.hpp"
+#include "sol_context.hpp"
+#include "sol_manager.hpp"
+
+namespace sol
+{
+
+using namespace phosphor::logging;
+
+void Manager::initHostConsoleFd()
+{
+    struct sockaddr_un addr;
+    int rc = 0;
+    int fd = 0;
+
+    fd = socket(AF_UNIX, SOCK_STREAM, 0);
+    if (fd < 0)
+    {
+        log<level::ERR>("Failed to open the host console socket",
+                entry("ERRNO=%d", errno));
+        throw std::runtime_error("Failed to open the host console socket");
+    }
+
+    memset(&addr, 0, sizeof(addr));
+    addr.sun_family = AF_UNIX;
+    memcpy(&addr.sun_path, &CONSOLE_SOCKET_PATH, CONSOLE_SOCKET_PATH_LEN);
+    consoleFD = std::make_unique<CustomFD>(fd);
+    auto& conFD = *(consoleFD.get());
+
+    rc = connect(conFD(), (struct sockaddr *)&addr, sizeof(addr));
+    if (rc < 0)
+    {
+        log<level::ERR>("Failed to connect to host console socket address",
+                entry("ERRNO=%d", errno));
+        consoleFD.reset();
+        throw std::runtime_error("Failed to connect to console server");
+    }
+}
+
+} // namespace sol
