summaryrefslogtreecommitdiff
path: root/target/linux/ps3/petitboot/base-files/sbin
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ps3/petitboot/base-files/sbin')
-rwxr-xr-xtarget/linux/ps3/petitboot/base-files/sbin/initrun17
1 files changed, 16 insertions, 1 deletions
diff --git a/target/linux/ps3/petitboot/base-files/sbin/initrun b/target/linux/ps3/petitboot/base-files/sbin/initrun
index e253c24b3a..1c3363fcc8 100755
--- a/target/linux/ps3/petitboot/base-files/sbin/initrun
+++ b/target/linux/ps3/petitboot/base-files/sbin/initrun
@@ -1,3 +1,18 @@
#!/bin/sh
+# Run petitboot at first startup, otherwise run a login.
-/bin/ash --login
+sbindir=/usr/sbin
+localstatedir=/var/petitboot
+
+petitboot=$sbindir/petitboot
+run_once=$localstatedir/.run-once
+
+if [ ! -f $run_once -a -x $petitboot ]; then
+ # quiet console
+ echo 3 > /proc/sys/kernel/printk
+ mkdir -p $localstatedir
+ touch $run_once
+ exec $petitboot --timeout
+fi
+
+exec /bin/ash --login