add hotplug stuff to trunk/

SVN-Revision: 2364
This commit is contained in:
Felix Fietkau 2005-11-07 01:12:51 +00:00
parent 14a88822fd
commit 2e8e51060f
25 changed files with 148 additions and 73 deletions

View File

@ -3,7 +3,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=base-files
PKG_RELEASE:=4
PKG_RELEASE:=6
PKG_BUILD_DIR:=$(BUILD_DIR)/base-files
REV:=${shell svn info | grep Revision | cut -d ' ' -f 2}
@ -16,9 +16,6 @@ include $(TOPDIR)/package/rules.mk
IDIR_BASE:=$(PKG_BUILD_DIR)/base-files
IPKG_BASE:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_RELEASE)_$(ARCH).ipk
IDIR_HOTPLUG:=$(PKG_BUILD_DIR)/hotplug
IPKG_HOTPLUG:=$(PACKAGE_DIR)/hotplug_$(PKG_RELEASE)_$(ARCH).ipk
UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version}
IDIR_UCLIBC:=$(PKG_BUILD_DIR)/uclibc
IPKG_UCLIBC:=$(PACKAGE_DIR)/uclibc_$(UCLIBC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
@ -27,7 +24,7 @@ LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version}
IDIR_LIBGCC:=$(PKG_BUILD_DIR)/libgcc
IPKG_LIBGCC:=$(PACKAGE_DIR)/libgcc_$(LIBGCC_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
PACKAGES:=$(IPKG_BASE) $(IPKG_UCLIBC) $(IPKG_LIBGCC) $(IPKG_HOTPLUG)
PACKAGES:=$(IPKG_BASE) $(IPKG_UCLIBC) $(IPKG_LIBGCC)
$(PKG_BUILD_DIR)/.prepared:
mkdir -p $(PKG_BUILD_DIR) $(PACKAGE_DIR)
@ -74,12 +71,6 @@ $(IPKG_LIBGCC):
-$(STRIP) $(IDIR_LIBGCC)/lib/*
$(IPKG_BUILD) $(IDIR_LIBGCC) $(PACKAGE_DIR)
$(IPKG_HOTPLUG):
$(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_HOTPLUG) ipkg/hotplug.control $(PKG_RELEASE) $(ARCH)
mkdir -p $(IDIR_HOTPLUG)/sbin
install -m0755 files/hotplug $(IDIR_HOTPLUG)/sbin
$(IPKG_BUILD) $(IDIR_HOTPLUG) $(PACKAGE_DIR)
package-clean:
rm -f $(PACKAGES)

View File

@ -41,12 +41,14 @@ do_ifup() {
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
${gateway:+$DEBUG route add default gw $gateway}
[ -f /etc/resolv.conf ] && return
debug "# --- creating /etc/resolv.conf ---"
for dns in $(nvram get ${2}_dns); do
echo "nameserver $dns" >> /etc/resolv.conf
done
[ -f /etc/resolv.conf ] || {
debug "# --- creating /etc/resolv.conf ---"
for dns in $(nvram get ${2}_dns); do
echo "nameserver $dns" >> /etc/resolv.conf
done
}
env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" &
;;
dhcp)
DHCP_IP=$(nvram get ${2}_ipaddr)
@ -64,6 +66,7 @@ do_ifup() {
sleep 1
kill -9 $oldpid
}
# hotplug events are handled by /usr/share/udhcpc/default.script
;;
none|"")
;;

View File

@ -1,6 +1,5 @@
#!/bin/ash
# $Id$
[ "${INTERFACE%%[0-9]*}" = "wds" ] && {
ifconfig $INTERFACE 0.0.0.0 up
/usr/sbin/brctl addif br0 $INTERFACE
}

View File

@ -0,0 +1,49 @@
mount_storage() {
cd /dev/discs
for dev in disc*; do
[ -f /tmp/.${dev}_id ] || {
echo ${INTERFACE}${PRODUCT} > /tmp/.${dev}_id
mount | grep /mnt/${dev} || (
[ -d /mnt/. ] || {
mkdir -p /tmp/mnt
ln -s /tmp/mnt /
}
cd $dev
for part in part*; do
path=/mnt/${dev}_${part##*part}
mkdir -p ${path}
mount ${part} ${path}
done
)
}
done
}
umount_storage() {
for tmp in /tmp/.*_id; do
id=$(cat $tmp 2>&-)
[ "${INTERFACE}${PRODUCT}" = "$id" ] && {
rm -f $tmp
disc=${tmp##*disc}
disc=${disc%%_id}
for disc in /mnt/disc${disc}*; do
umount -f $disc || umount -l $disc
done
}
done
}
[ -f /proc/bus/usb/devices ] || mount -t usbfs none /proc/bus/usb
case "$ACTION" in
add)
case "${INTERFACE%%/*}" in
8) mount_storage ;;
esac
;;
remove)
case "${INTERFACE%%/*}" in
8) umount_storage ;;
esac
;;
esac

View File

@ -0,0 +1,11 @@
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOGNAME=root
USER=root
export PATH LOGNAME USER
[ \! -z "$1" -a -d /etc/hotplug.d/$1 ] && {
for script in $(ls /etc/hotplug.d/$1/* 2>&-); do (
[ -f $script ] && . $script
); done
}

View File

@ -1,13 +1,19 @@
#!/bin/ash
#!/bin/sh
[ $# = 0 ] && { echo " $0 <group>"; exit; }
. /etc/functions.sh
. /etc/network.overrides
. /etc/network.overrides
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
type=$1
debug "### ifdown $type ###"
if=$(nvram get ${type}_ifname)
proto=$(nvram get ${type}_proto)
if_valid $if && $DEBUG ifconfig $if down
kill $(cat /var/run/${if}.pid 2>&-) 2>&-
[ "$if" = "ppp0" ] && killall pppd
killall ifup.$proto >&- 2>&-
case "$proto" in
pptp|pppoe) killall pppd >&- 2>&- ;;
static) env -i ACTION="ifdown" INTERFACE="$if" PROTO=static /sbin/hotplug "iface" ;;
esac

View File

@ -1,42 +1,51 @@
#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
# (slightly modified for OpenWrt)
[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
RESOLV_CONF="/tmp/resolv.conf"
hotplug_event() {
nvram show 2>&- | grep _proto=dhcp | {
while :; do
read FOO
[ -z "$FOO" ] && break
FOO="${FOO%%_*}"
[ "$(nvram get ${FOO}_ifname)" = "${interface}" ] || continue
env -i ACTION="$1" INTERFACE="${FOO}" PROTO=dhcp /sbin/hotplug iface
done
}
}
case "$1" in
deconfig)
ifconfig $interface 0.0.0.0
;;
deconfig)
ifconfig $interface 0.0.0.0
hotplug_event ifdown
;;
renew|bound)
ifconfig $interface $ip \
netmask ${subnet:-255.255.255.0} \
broadcast ${broadcast:-+}
renew|bound)
ifconfig $interface $ip \
netmask ${subnet:-255.255.255.0} \
broadcast ${broadcast:-+}
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
for i in $router ; do
route add default gw $i dev $interface
done
fi
echo -n > $RESOLV_CONF
${domain:+echo search $domain} >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do :; done
for i in $router ; do
route add default gw $i dev $interface
done
fi
echo -n > $RESOLV_CONF
${domain:+echo search $domain} >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
hotplug_event ifup
# user rules
[ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
done
;;
;;
esac
exit 0

View File

@ -1,4 +0,0 @@
Package: hotplug
Priority: optional
Section: net
Description: Hotplug script for WDS

View File

@ -39,5 +39,4 @@ $(IPKG_BUSYBOX):
$(MAKE) CC=$(TARGET_CC) CROSS="$(TARGET_CROSS)" PREFIX="$(IDIR_BUSYBOX)" \
EXTRA_CFLAGS="$(TARGET_CFLAGS)" -C $(PKG_BUILD_DIR) install
$(STRIP) $(IDIR_BUSYBOX)/bin/busybox
-chmod a+x $(IDIR_BUSYBOX)/usr/share/udhcpc/default.script
$(IPKG_BUILD) $(IDIR_BUSYBOX) $(PACKAGE_DIR)

View File

@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ntpclient
PKG_VERSION:=2003_194
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_MD5SUM:=94e84d5c6023c5e1f3890b28d0a08c92
PKG_SOURCE_URL:=http://doolittle.faludi.com/ntpclient
@ -26,8 +26,8 @@ $(PKG_BUILD_DIR)/.built:
touch $@
$(IPKG_NTPCLIENT):
install -d -m0755 $(IDIR_NTPCLIENT)/etc/init.d
install -m0755 ./files/ntpclient.init $(IDIR_NTPCLIENT)/etc/init.d/S60ntpclient
install -d -m0755 $(IDIR_NTPCLIENT)/etc/hotplug.d/iface
install -m0755 ./files/ntpclient.init $(IDIR_NTPCLIENT)/etc/hotplug.d/iface/10-ntpclient
install -d -m0755 $(IDIR_NTPCLIENT)/usr/sbin
install -m0755 $(PKG_BUILD_DIR)/ntpclient $(IDIR_NTPCLIENT)/usr/sbin/
$(RSTRIP) $(IDIR_NTPCLIENT)

View File

@ -1,2 +1,11 @@
#!/bin/sh
/usr/sbin/ntpclient -c 1 -s -h pool.ntp.org &
server=$(nvram get ntp_server)
case "$ACTION" in
ifup)
ps x | grep '[n]tpclient' >&- || {
route -n 2>&- | grep '0.0.0.0' >&- && /usr/sbin/ntpclient -c 1 -s -h ${server:-pool.ntp.org} &
}
;;
ifdown)
route -n 2>&- | grep '0.0.0.0' >&- || killall ntpclient 2>&- >&- ;;
esac

View File

@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ppp
PKG_VERSION:=2.4.3
PKG_RELEASE:=6
PKG_RELEASE:=7
PKG_MD5SUM:=848f6c3cafeb6074ffeb293c3af79b7c
PKG_SOURCE_URL:=ftp://ftp.samba.org/pub/ppp/
@ -82,6 +82,8 @@ $(IPKG_PPP):
ln -sf /tmp/resolv.conf $(IDIR_PPP)/etc/ppp/resolv.conf
install -m0600 ./files/etc/ppp/chap-secrets $(IDIR_PPP)/etc/ppp/
install -m0644 ./files/etc/ppp/options $(IDIR_PPP)/etc/ppp/
install -m0755 ./files/etc/ppp/ip-up $(IDIR_PPP)/etc/ppp/
install -m0755 ./files/etc/ppp/ip-down $(IDIR_PPP)/etc/ppp/
install -d -m0755 $(IDIR_PPP)/etc/ppp/peers
install -m0644 ./files/etc/ppp/peers/sample $(IDIR_PPP)/etc/ppp/peers/
install -d -m0755 $(IDIR_PPP)/usr/sbin

View File

@ -0,0 +1,2 @@
#!/bin/sh
[ -z "$6" ] || env -i ACTION="ifdown" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"

View File

@ -0,0 +1,2 @@
#!/bin/sh
[ -z "$6" ] || env -i ACTION="ifup" INTERFACE="$6" PROTO=ppp /sbin/hotplug "iface"

View File

@ -31,6 +31,7 @@ while :; do
usepeerdns \
defaultroute \
linkname $type \
ipparam $type \
user "$USERNAME" \
password "$PASSWORD" \
mtu $MTU mru $MTU \

View File

@ -32,6 +32,7 @@ while :; do
usepeerdns \
defaultroute \
linkname $type \
ipparam $type \
user "$USERNAME" \
password "$PASSWORD" \
mtu $MTU mru $MTU \

View File

@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=pptp
PKG_VERSION:=1.6.0
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_MD5SUM:=9a706327fb9827541d7c86d48ceb9631
PKG_SOURCE_URL:=@SF/pptpclient

View File

@ -22,7 +22,7 @@ while :; do
IDLETIME=$(nvram get ppp_idletime)
IDLETIME=${IDLETIME:+lcp-echo-failure $IDLETIME}
MTU=$(nvram get ppp_mtu)
MTU=${MTU:+ mtu $MTU mru $MTU}
MTU=${MTU:-1452}
do_ifup $PPTP_PROTO $type
@ -38,10 +38,12 @@ while :; do
usepeerdns \
defaultroute \
replacedefaultroute \
linkname $type \
linkname "$type" \
ipparam "$type" \
user "$USERNAME" \
password "$PASSWORD" \
$MTU \
mtu $MTU \
mru $MTU \
$IDLETIME \
$REDIAL
done &

View File

@ -5,7 +5,6 @@ bridge
busybox
dnsmasq
dropbear
hotplug
iptables
kmod-atm
kmod-cpmac

View File

@ -5,7 +5,6 @@ bridge
busybox
dnsmasq
dropbear
hotplug
iptables
kmod-atm
kmod-cpmac

View File

@ -5,7 +5,6 @@ busybox
dnsmasq
dropbear
iptables
hotplug
kmod-cpmac
libgcc
mtd

View File

@ -5,7 +5,6 @@ busybox
dnsmasq
dropbear
iptables
hotplug
kmod-brcm-et
kmod-brcm-wl
kmod-diag

View File

@ -5,7 +5,6 @@ busybox
dnsmasq
dropbear
iptables
hotplug
kmod-net-natsemi
libgcc
mtd

View File

@ -5,7 +5,6 @@ busybox
dnsmasq
dropbear
iptables
hotplug
kmod-brcm-et
kmod-brcm-wl
kmod-diag

View File

@ -5,7 +5,6 @@ busybox
dnsmasq
dropbear
iptables
hotplug
kmod-net-natsemi
kmod-ppp
kmod-gre