summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xhyra-build.sh3
-rw-r--r--rc/init.rc1
-rw-r--r--sys/kern/init_main.c4
3 files changed, 7 insertions, 1 deletions
diff --git a/hyra-build.sh b/hyra-build.sh
index caa6e45..28ceb10 100755
--- a/hyra-build.sh
+++ b/hyra-build.sh
@@ -44,6 +44,9 @@ sysroot_skel() {
mkdir -p base/usr/bin/
mkdir -p base/boot/
mkdir -p base/usr/include/sys/
+ mkdir -p base/usr/rc
+
+ cp -r rc/* base/usr/rc
cp -f sys/include/sys/*.h base/usr/include/sys
# Populate ESP
diff --git a/rc/init.rc b/rc/init.rc
new file mode 100644
index 0000000..88b5a2d
--- /dev/null
+++ b/rc/init.rc
@@ -0,0 +1 @@
+osh
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index cd05af7..43142ec 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -46,8 +46,10 @@
#if defined(_INSTALL_MEDIA)
#define _START_PATH "/usr/sbin/install"
+#define _START_ARG NULL
#else
#define _START_PATH "/usr/bin/osh"
+#define _START_ARG "/usr/rc/init.rc"
#endif /* _INSTALL_MEDIA */
struct proc g_proc0;
@@ -64,7 +66,7 @@ start_init(void)
{
struct proc *td = this_td();
struct execve_args execve_args;
- char *argv[] = { _START_PATH, NULL };
+ char *argv[] = { _START_PATH, _START_ARG, NULL };
char *envp[] = { NULL };
execve_args.pathname = argv[0];