diff options
Diffstat (limited to 'target/linux/ps3/petitboot')
-rwxr-xr-x | target/linux/ps3/petitboot/base-files/bin/login | 45 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/base-files/etc/banner | 6 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/base-files/etc/config/network | 11 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/base-files/etc/config/system | 3 | ||||
-rwxr-xr-x | target/linux/ps3/petitboot/base-files/etc/init.d/boot | 73 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/base-files/etc/inittab | 7 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/base-files/etc/sysctl.conf | 11 | ||||
-rwxr-xr-x | target/linux/ps3/petitboot/base-files/sbin/initrun | 18 | ||||
-rwxr-xr-x | target/linux/ps3/petitboot/base-files/sbin/ps3-bl-option | 119 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/defconfig-ps3-petitboot | 19 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/profiles/000-Default.mk | 19 | ||||
-rw-r--r-- | target/linux/ps3/petitboot/target.mk | 6 |
12 files changed, 337 insertions, 0 deletions
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 000000000..b17efcdf4 --- /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/ps3-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 000000000..4d671c7ba --- /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/network b/target/linux/ps3/petitboot/base-files/etc/config/network new file mode 100644 index 000000000..3c1805fb9 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/config/network @@ -0,0 +1,11 @@ +# Copyright (C) 2006-2012 OpenWrt.org + +config interface loopback + option ifname lo + option proto static + option ipaddr 127.0.0.1 + option netmask 255.0.0.0 + +config interface lan + option ifname eth0 + option proto dhcp 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 000000000..67ffe8319 --- /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 000000000..c84c6873d --- /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_port "$cfg" log_port + config_get log_file "$cfg" log_file + + [ -z $log_file -a -z "$log_size" ] && log_size=16 + [ -x /sbin/syslogd ] && syslogd ${log_size:+-C $log_size} \ + ${log_file:+-O $log_file} ${log_ip:+-L -R $log_ip} + [ -x /sbin/klogd ] && 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 + + apply_uci_config + config_load system + config_foreach system_config system + + mkdir -p /var/run + mkdir -p /var/log + mkdir -p /var/lock + mkdir -p /var/state + mkdir -p /tmp/.uci + 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 000000000..96abea984 --- /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/etc/sysctl.conf b/target/linux/ps3/petitboot/base-files/etc/sysctl.conf new file mode 100644 index 000000000..1af007925 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/etc/sysctl.conf @@ -0,0 +1,11 @@ +kernel.panic=3 +net.ipv4.conf.default.arp_ignore=1 +net.ipv4.conf.all.arp_ignore=1 +net.ipv4.ip_forward=1 +net.ipv4.icmp_echo_ignore_broadcasts=1 +net.ipv4.icmp_ignore_bogus_error_responses=1 +net.ipv4.tcp_ecn=1 +net.ipv4.tcp_fin_timeout=30 +net.ipv4.tcp_keepalive_time=120 +net.ipv4.tcp_timestamps=0 +net.core.netdev_max_backlog=30 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 000000000..1c3363fcc --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/sbin/initrun @@ -0,0 +1,18 @@ +#!/bin/sh +# Run petitboot at first startup, otherwise run a 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 diff --git a/target/linux/ps3/petitboot/base-files/sbin/ps3-bl-option b/target/linux/ps3/petitboot/base-files/sbin/ps3-bl-option new file mode 100755 index 000000000..972c00ae1 --- /dev/null +++ b/target/linux/ps3/petitboot/base-files/sbin/ps3-bl-option @@ -0,0 +1,119 @@ +#!/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 -n " +SYNOPSIS + ps3-bl-option [OPTION] +DESCRIPTION + Get and set PS3 bootloader options in flash. +OPTIONS + -m, --get-video-mode + Get the bootloader video mode. + -M, --set-video-mode value + Set the bootloader video mode. + -o, --get-bootloader-timeout + Get the bootloader timeout in seconds. + -O, --set-bootloader-timeout value + Set the bootloader timeout in seconds. + -p, --get-bootloader-default + Get the default bootloader menu item. + -P, --set-bootloader-default value + Set the default bootloader menu item. + -t, --get-telnet-enabled + Get the telnet enabled flag. + -T, --set-telnet-enabled value + Set the telnet enabled flag. + -h, --help + Print a help message. +SEE ALSO + ps3-flash-util(8) +" +} + +bad_arg() { + echo "ERROR: bad arg" >&2; + usage + exit 1 +} + +if [ "$#" -eq 0 ] ; then + bad_arg +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 +bootloader="3" + +# keys +item="1" +video="2" +flags="3" +timeout="4" + +# flags +telnet="1" + +case "$1" in + -m | --get-video-mode) + ps3-flash-util --db-print ${bootloader} ${video} + ;; + -M | --set-video-mode) + ps3-flash-util --db-write-half ${bootloader} ${video} $2 + ;; + -o | --get-bootloader-timeout) + ps3-flash-util --db-print ${bootloader} ${timeout} + ;; + -O | --set-bootloader-timeout) + ps3-flash-util --db-write-half ${bootloader} ${timeout} $2 + ;; + -p | --get-bootloader-default) + ps3-flash-util --db-print ${bootloader} ${item} + ;; + -P | --set-bootloader-default) + ps3-flash-util --db-write-word ${bootloader} ${item} $2 + ;; + -t | --get-telnet-enabled) + get_flag ${bootloader} ${flags} ${telnet} + ;; + -T | --set-telnet-enabled) + set_flag ${bootloader} ${flags} ${telnet} $2 + ;; + -h | --help) + usage + exit 0 + ;; + *) + bad_arg + ;; +esac diff --git a/target/linux/ps3/petitboot/defconfig-ps3-petitboot b/target/linux/ps3/petitboot/defconfig-ps3-petitboot new file mode 100644 index 000000000..72a2551af --- /dev/null +++ b/target/linux/ps3/petitboot/defconfig-ps3-petitboot @@ -0,0 +1,19 @@ +# Configuration overrides + +CONFIG_TARGET_ps3=y + +CONFIG_BUSYBOX_CONFIG_GETTY=y +CONFIG_BUSYBOX_CONFIG_FDISK=y +CONFIG_BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE=y +# CONFIG_BUSYBOX_CONFIG_BRCTL is not set +# CONFIG_BUSYBOX_CONFIG_HTTPD is not set +CONFIG_BUSYBOX_CONFIG_TFTP=y +CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_GET=y + +# CONFIG_PACKAGE_udevtrigger is not set +CONFIG_UDEV_ENABLE_DEBUG=y + +CONFIG_PETITBOOT_DEBUG=y +CONFIG_PETITBOOT_PS3=y +# CONFIG_PETITBOOT_AUTORUN_GUI is not set +CONFIG_PETITBOOT_AUTORUN_CUI=y diff --git a/target/linux/ps3/petitboot/profiles/000-Default.mk b/target/linux/ps3/petitboot/profiles/000-Default.mk new file mode 100644 index 000000000..61cfc0796 --- /dev/null +++ b/target/linux/ps3/petitboot/profiles/000-Default.mk @@ -0,0 +1,19 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/Default + NAME:=Default PS3 Petitboot profile + PACKAGES:=-dnsmasq -iptables -opkg -ppp -ppp-mod-pppoe -kmod-ipt-nathelper \ + -firewall -mtd -hotplug2 -swconfig \ + kexec-tools ps3-utils petitboot +endef + +define Profile/Default/Description + Default PS3 Petitboot profile +endef +$(eval $(call Profile,Default)) + diff --git a/target/linux/ps3/petitboot/target.mk b/target/linux/ps3/petitboot/target.mk new file mode 100644 index 000000000..845c4316d --- /dev/null +++ b/target/linux/ps3/petitboot/target.mk @@ -0,0 +1,6 @@ +BOARDNAME:=Petitboot +FEATURES+=fpu ramdisk + +define Target/Description + Build Petitboot bootloader +endef |