base-files: allow users to delect debug level during boot

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 38909
This commit is contained in:
John Crispin 2013-11-25 08:34:55 +00:00
parent 91de2648e9
commit 93e9a71538
5 changed files with 60 additions and 11 deletions

View file

@ -260,6 +260,26 @@ mtd_get_mac_ascii()
[ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty" [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
} }
mtd_get_blob()
{
local mtdname="$1"
local offset="$2"
local count="$3"
local firmware="$4"
local part
part=$(find_mtd_part "$mtdname")
if [ -z "$part" ]; then
echo "mtd_get_blob: partition $mtdname not found!" >&2
return 1
fi
dd if=$part of=$firmware bs=1 skip=$offset count=$count 2>/dev/null || {
echo "mtd_get_blob: failed to extract $firmware from $part" >&2
return 1
}
}
mtd_get_mac_binary() { mtd_get_mac_binary() {
local mtdname="$1" local mtdname="$1"
local offset="$2" local offset="$2"

View file

@ -5,7 +5,7 @@
fs_wait_for_key () { fs_wait_for_key () {
local timeout=$3 local timeout=$3
local timer local timer
local do_failsafe local do_keypress
local keypress_true="$(mktemp)" local keypress_true="$(mktemp)"
local keypress_wait="$(mktemp)" local keypress_wait="$(mktemp)"
local keypress_sec="$(mktemp)" local keypress_sec="$(mktemp)"
@ -40,6 +40,7 @@ fs_wait_for_key () {
} & } &
echo "Press the [$1] key and hit [enter] $2" echo "Press the [$1] key and hit [enter] $2"
echo "Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level"
# if we're on the console we wait for input # if we're on the console we wait for input
{ {
while [ -r $keypress_wait ]; do while [ -r $keypress_wait ]; do
@ -48,14 +49,22 @@ fs_wait_for_key () {
[ -n "$timer" ] || timer=1 [ -n "$timer" ] || timer=1
timer="${timer%%\ *}" timer="${timer%%\ *}"
[ $timer -ge 1 ] || timer=1 [ $timer -ge 1 ] || timer=1
do_failsafe="" do_keypress=""
{ {
read -t "$timer" do_failsafe read -t "$timer" do_keypress
if [ "$do_failsafe" = "$1" ]; then case "$do_keypress" in
$1)
echo "true" >$keypress_true echo "true" >$keypress_true
;;
1 | 2 | 3 | 4)
echo "$do_keypress" >/tmp/debug_level
;;
*)
continue;
;;
esac
lock -u $keypress_wait lock -u $keypress_wait
rm -f $keypress_wait rm -f $keypress_wait
fi
} }
done done
} }

View file

@ -1,14 +1,14 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=procd PKG_NAME:=procd
PKG_VERSION:=2013-11-20 PKG_VERSION:=2013-11-22
PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://nbd.name/luci2/procd.git PKG_SOURCE_URL:=git://nbd.name/luci2/procd.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=21d307367eb991f7494ce43087a5edb94288d08f PKG_SOURCE_VERSION:=dc3988c38546c37a02030af8201048272caa7ded
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
CMAKE_INSTALL:=1 CMAKE_INSTALL:=1

View file

@ -6,10 +6,24 @@ START=50
USE_PROCD=1 USE_PROCD=1
PROG=/usr/sbin/crond PROG=/usr/sbin/crond
validate_cron_section() {
uci_validate_section system system "${1}" \
'cronloglevel:uinteger'
}
start_service () { start_service () {
[ -z "$(ls /etc/crontabs/)" ] && return 1 [ -z "$(ls /etc/crontabs/)" ] && return 1
loglevel=$(uci_get "system.@system[0].cronloglevel") loglevel=$(uci_get "system.@system[0].cronloglevel")
[ -z "${loglevel}" ] || {
/sbin/validate_data uinteger "${loglevel}"
[ "$?" -eq 0 ] || {
echo "validation failed"
return 1
}
}
mkdir -p /var/spool/cron mkdir -p /var/spool/cron
ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null
@ -17,3 +31,8 @@ start_service () {
procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5} procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5}
procd_close_instance procd_close_instance
} }
service_triggers()
{
procd_add_validation validate_cron_section
}

View file

@ -21,7 +21,8 @@ rt2x00_eeprom_extract() {
rt2x00_eeprom_die "failed to extract from $mtd" rt2x00_eeprom_die "failed to extract from $mtd"
} }
[ -e /lib/firmware/$FIRMWARE ] && exit 0 FW="/lib/firmware/$FIRMWARE"
[ -e "$FW" ] && exit 0
. /lib/ramips.sh . /lib/ramips.sh