From 970eeff92b9cc9ffe5de788b1f204c22a5fd251f Mon Sep 17 00:00:00 2001 From: Hamish Guthrie Date: Thu, 18 Dec 2008 11:46:28 +0000 Subject: re-arrange ps3 tree git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13680 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ps3/petitboot/base-files/bin/login | 45 ++++++++ target/linux/ps3/petitboot/base-files/etc/banner | 6 ++ .../ps3/petitboot/base-files/etc/config/system | 3 + .../linux/ps3/petitboot/base-files/etc/init.d/boot | 73 +++++++++++++ target/linux/ps3/petitboot/base-files/etc/inittab | 7 ++ .../linux/ps3/petitboot/base-files/sbin/bl-option | 113 +++++++++++++++++++++ target/linux/ps3/petitboot/base-files/sbin/initrun | 3 + target/linux/ps3/petitboot/target.mk | 5 + 8 files changed, 255 insertions(+) create mode 100755 target/linux/ps3/petitboot/base-files/bin/login create mode 100644 target/linux/ps3/petitboot/base-files/etc/banner create mode 100644 target/linux/ps3/petitboot/base-files/etc/config/system create mode 100755 target/linux/ps3/petitboot/base-files/etc/init.d/boot create mode 100644 target/linux/ps3/petitboot/base-files/etc/inittab create mode 100755 target/linux/ps3/petitboot/base-files/sbin/bl-option create mode 100755 target/linux/ps3/petitboot/base-files/sbin/initrun create mode 100644 target/linux/ps3/petitboot/target.mk (limited to 'target/linux/ps3/petitboot') diff --git a/target/linux/ps3/petitboot/base-files/bin/login b/target/linux/ps3/petitboot/base-files/bin/login new file mode 100755 index 0000000000..2e649f04fe --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/bin/login @@ -0,0 +1,45 @@ +#!/bin/sh +# Copyright (C) 2008 OpenWrt.org + +bl_option=/sbin/bl-option + +if [ ! -f $bl_option ] || + [ ! `$bl_option --get-telnet-enabled` ] || + [ `$bl_option --get-telnet-enabled` = "0" ]; then + echo \ +" + === IMPORTANT ========================== + Telnet login is disabled for security + reasons. Enabling telnet login on the + host will allow any user connected to + the same network to login to the host. + + You can enable telnet login with the + following command in the host console: + + # $bl_option -T 1 + + You can disable telnet login with the + following command in the host console: + + # $bl_option -T 0 + ---------------------------------------- +" + exit 0 +fi + +grep '^root:[^!]' /etc/passwd >&- 2>&- +[ "$?" = "0" -a -z "$FAILSAFE" ] && +{ + echo "Login failed." + exit 0 +} || { +cat << EOF + === IMPORTANT ============================ + Use 'passwd' to set your login password + this will disable telnet and enable SSH + ------------------------------------------ +EOF +} + +exec /bin/ash --login diff --git a/target/linux/ps3/petitboot/base-files/etc/banner b/target/linux/ps3/petitboot/base-files/etc/banner new file mode 100644 index 0000000000..4d671c7ba5 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/banner @@ -0,0 +1,6 @@ + _____ _____ _____ + | _ || ___||___ | + | __||___ ||___ | + |__| |_____||_____| + L I N U X + diff --git a/target/linux/ps3/petitboot/base-files/etc/config/system b/target/linux/ps3/petitboot/base-files/etc/config/system new file mode 100644 index 0000000000..67ffe8319c --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/config/system @@ -0,0 +1,3 @@ +config system + option hostname ps3-linux + option log_file /var/log/messages diff --git a/target/linux/ps3/petitboot/base-files/etc/init.d/boot b/target/linux/ps3/petitboot/base-files/etc/init.d/boot new file mode 100755 index 0000000000..2897f3a7da --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/init.d/boot @@ -0,0 +1,73 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006 OpenWrt.org + +START=10 + +system_config() { + local cfg="$1" + local hostname + + config_get hostname "$cfg" hostname + echo "${hostname:-OpenWrt}" > /proc/sys/kernel/hostname + + config_get conloglevel "$cfg" conloglevel + [ -n "$conloglevel" ] && dmesg -n "$conloglevel" + + config_get timezone "$cfg" timezone + [ -z "$timezone" ] && timezone=UTC + echo "$timezone" > /tmp/TZ + + config_get log_ip "$cfg" log_ip + config_get log_size "$cfg" log_size + config_get log_file "$cfg" log_file + # use a shared mem buffer for local default + [ -z $log_file -a -z "$log_size" ] && log_size=16 + syslogd ${log_size:+-C $log_size} ${log_file:+-O $log_file} \ + ${log_ip:+-L -R $log_ip} + klogd +} + +apply_uci_config() {( + include /lib/config + uci_apply_defaults +)} + +start() { + [ -f /proc/mounts ] || /sbin/mount_root + [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc + [ -f /proc/net/vlan/config ] && vconfig set_name_type DEV_PLUS_VID_NO_PAD + + mkdir -p /var/run + mkdir -p /var/log + mkdir -p /var/lock + mkdir -p /var/state + mkdir -p /tmp/.uci + + apply_uci_config + config_load system + config_foreach system_config system + + chown 0700 /tmp/.uci + touch /var/log/wtmp + touch /var/log/lastlog + touch /tmp/resolv.conf.auto + ln -sf /tmp/resolv.conf.auto /tmp/resolv.conf + [ "$FAILSAFE" = "true" ] && touch /tmp/.failsafe + + killall -q hotplug2 + [ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \ + --max-children 1 --no-coldplug & + + # the coldplugging of network interfaces needs to happen later, so we do it manually here + for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do + /usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug-call net + done + + # create /dev/root if it doesn't exist + [ -e /dev/root ] || { + rootdev=$(awk 'BEGIN { RS=" "; FS="="; } $1 == "root" { print $2 }' < /proc/cmdline) + [ -n "$rootdev" ] && ln -s "$rootdev" /dev/root + } + + load_modules /etc/modules.d/* +} diff --git a/target/linux/ps3/petitboot/base-files/etc/inittab b/target/linux/ps3/petitboot/base-files/etc/inittab new file mode 100644 index 0000000000..96abea9842 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/inittab @@ -0,0 +1,7 @@ +::sysinit:/etc/init.d/rcS S boot +::shutdown:/etc/init.d/rcS K stop +::ctrlaltdel:/sbin/reboot +::restart:/sbin/init +tty1::respawn:/sbin/initrun +tty2::askfirst:/bin/ash --login +tty3::askfirst:/bin/ash --login diff --git a/target/linux/ps3/petitboot/base-files/sbin/bl-option b/target/linux/ps3/petitboot/base-files/sbin/bl-option new file mode 100755 index 0000000000..8eea93d979 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/sbin/bl-option @@ -0,0 +1,113 @@ +#!/bin/sh +# +# Copyright (C) 2008 Sony Computer Entertainment Inc. +# Copyright 2008 Sony Corp. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +usage() { + echo "" >&2 + echo "SYNOPSIS" >&2 + echo " bl-option [OPTION]" >&2 + echo "" >&2 + echo "DESCRIPTION" >&2 + echo " Get and set PS3 bootloader options in flash." >&2 + echo "" >&2 + echo "OPTIONS" >&2 + echo " -m, --get-video-mode" >&2 + echo " Get the bootloader video mode." >&2 + echo "" >&2 + echo " -M, --set-video-mode value" >&2 + echo " Set the bootloader video mode." >&2 + echo "" >&2 + echo " -p, --get-petitboot-default" >&2 + echo " Get the default Petitboot menu item." >&2 + echo "" >&2 + echo " -P, --set-petitboot-default value" >&2 + echo " Set the default Petitboot menu item." >&2 + echo "" >&2 + echo " -t, --get-telnet-enabled" >&2 + echo " Get the telnet enabled flag." >&2 + echo "" >&2 + echo " -T, --set-telnet-enabled value" >&2 + echo " Set the telnet enabled flag." >&2 + echo "" >&2 + echo " -h, --help" >&2 + echo " Print a help message." >&2 + echo "" >&2 + echo "SEE ALSO" >&2 + echo " ps3-flash-util(8)" >&2 + echo "" >&2 + exit 1 +} + +if [ "$#" -eq 0 ] ; then + echo "ERROR: bad arg" >&2; + usage +fi + +get_flag() { + flags=`ps3-flash-util --db-print $1 $2` + echo $(( ${flags:-0} & $3 )) +} + +set_flag() { + flags=`ps3-flash-util --db-print $1 $2` + + if [ $4 -eq 0 ]; then + ps3-flash-util --db-write-half $1 $2 $(( ${flags:-0} & ~$3 )) + else + ps3-flash-util --db-write-half $1 $2 $(( ${flags:-0} | $3 )) + fi +} + +# owners +petitboot="3" + +# keys +menu="1" +video="2" +flags="3" + +# flags +telnet="1" + +case "$1" in + -m | --get-video-mode) + ps3-flash-util --db-print ${petitboot} ${video} + ;; + -M | --set-video-mode) + ps3-flash-util --db-write-half ${petitboot} ${video} $2 + ;; + -p | --get-petitboot-default) + ps3-flash-util --db-print ${petitboot} ${menu} + ;; + -P | --set-petitboot-default) + ps3-flash-util --db-write-word ${petitboot} ${menu} $2 + ;; + -t | --get-telnet-enabled) + get_flag ${petitboot} ${flags} ${telnet} + ;; + -T | --set-telnet-enabled) + set_flag ${petitboot} ${flags} ${telnet} $2 + ;; + -h | --help) + usage + ;; + *) + echo "ERROR: bad arg $1" >&2; + usage + ;; +esac diff --git a/target/linux/ps3/petitboot/base-files/sbin/initrun b/target/linux/ps3/petitboot/base-files/sbin/initrun new file mode 100755 index 0000000000..e253c24b3a --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/sbin/initrun @@ -0,0 +1,3 @@ +#!/bin/sh + +/bin/ash --login diff --git a/target/linux/ps3/petitboot/target.mk b/target/linux/ps3/petitboot/target.mk new file mode 100644 index 0000000000..b0ebcd036c --- /dev/null +++ b/target/linux/ps3/petitboot/target.mk @@ -0,0 +1,5 @@ +BOARDNAME:=Petitboot + +define Target/Description + Build Petitboot bootloader +endef -- cgit v1.2.3