large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
SVN-Revision: 3588
This commit is contained in:
parent
e4b534024d
commit
ee27e41337
58 changed files with 931 additions and 795 deletions
|
@ -333,6 +333,3 @@ config BR2_PACKAGE_IMAGEBUILDER
|
|||
|
||||
endmenu
|
||||
|
||||
source "package/Sysconf.in"
|
||||
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
#
|
||||
|
||||
menu "Runtime Configuration"
|
||||
choice
|
||||
bool "Telnet access"
|
||||
default BR2_SYSCONF_TELNET_FAILSAFE_ONLY
|
||||
|
||||
config BR2_SYSCONF_TELNET_FAILSAFE_ONLY
|
||||
bool "open, failsafe only"
|
||||
|
||||
config BR2_SYSCONF_TELNET_OPEN
|
||||
bool "open"
|
||||
|
||||
endchoice
|
||||
|
||||
menu "Failsafe configuration"
|
||||
|
||||
config BR2_SYSCONF_FAILSAFE_IP
|
||||
string "IP Address"
|
||||
default "192.168.1.1"
|
||||
|
||||
config BR2_SYSCONF_FAILSAFE_NETMASK
|
||||
string "Netmask"
|
||||
default "255.255.255.0"
|
||||
|
||||
config BR2_SYSCONF_FAILSAFE_MAC
|
||||
string "MAC Address"
|
||||
default "00:00:BA:DC:0D:ED"
|
||||
|
||||
endmenu
|
||||
endmenu
|
|
@ -55,23 +55,25 @@ $(IPKG_BASE):
|
|||
$(CP) ./default/* $(IDIR_BASE)
|
||||
$(SED) 's,$$R,r$(REV),g' $(IDIR_BASE)/etc/banner
|
||||
$(SED) 's,$$S,$(BOARD)-$(KERNEL),g' $(IDIR_BASE)/etc/ipkg.conf
|
||||
mkdir -p $(IDIR_BASE)/sys
|
||||
mkdir -p $(IDIR_BASE)/jffs
|
||||
mkdir -p $(IDIR_BASE)/dev
|
||||
mkdir -p $(IDIR_BASE)/etc/crontabs
|
||||
mkdir -p $(IDIR_BASE)/jffs
|
||||
mkdir -p $(IDIR_BASE)/lib
|
||||
mkdir -p $(IDIR_BASE)/mnt
|
||||
mkdir -p $(IDIR_BASE)/proc
|
||||
mkdir -p $(IDIR_BASE)/tmp
|
||||
mkdir -p $(IDIR_BASE)/lib
|
||||
mkdir -p $(IDIR_BASE)/usr/lib
|
||||
mkdir -p $(IDIR_BASE)/usr/bin
|
||||
mkdir -p $(IDIR_BASE)/sys
|
||||
mkdir -p $(IDIR_BASE)/www
|
||||
ln -sf /tmp/resolv.conf $(IDIR_BASE)/etc/resolv.conf
|
||||
ln -sf /proc/mounts $(IDIR_BASE)/etc/mtab
|
||||
rm -rf $(IDIR_BASE)/var
|
||||
rm -f $(IDIR_BASE)/var
|
||||
ln -sf /tmp $(IDIR_BASE)/var
|
||||
-find $(IDIR_BASE) -type d -name CVS | xargs rm -rf
|
||||
-find $(IDIR_BASE) -type d -name .svn | xargs rm -rf
|
||||
-find $(IDIR_BASE) -name '.#*' | xargs rm -f
|
||||
mkdir -p $(IDIR_BASE)/etc
|
||||
-grep \^BR2_SYSCONF $(TOPDIR)/.config > $(IDIR_BASE)/etc/sysconf
|
||||
$(IPKG_BUILD) $(IDIR_BASE) $(PACKAGE_DIR)
|
||||
|
||||
$(IPKG_UCLIBC):
|
||||
|
|
|
@ -1,62 +1,88 @@
|
|||
#!/bin/sh
|
||||
# $Id$
|
||||
|
||||
mount | grep squashfs >&- || {
|
||||
echo "You do not have a squashfs partition; aborting"
|
||||
echo "(firstboot cannot be run on jffs2 based firmwares)"
|
||||
return
|
||||
}
|
||||
rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
|
||||
jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
|
||||
|
||||
[ -f "/tmp/.firstboot" ] && {
|
||||
echo "firstboot is already running"
|
||||
return
|
||||
}
|
||||
touch /tmp/.firstboot
|
||||
|
||||
jdev=$(mount | awk '/jffs2/ {print $3}')
|
||||
|
||||
if [ -z "$jdev" ]; then
|
||||
echo -n "Creating jffs2 partition... "
|
||||
mtd erase OpenWrt >&- 2>&-
|
||||
mount -t jffs2 /dev/mtdblock/4 /jffs
|
||||
dupe() { # <new_root> <old_root>
|
||||
cd $1
|
||||
echo -n "creating directories... "
|
||||
{
|
||||
cd $2
|
||||
find . -xdev -type d
|
||||
echo "./dev ./jffs ./mnt ./proc ./tmp ./sys"
|
||||
# xdev skips mounted directories
|
||||
cd $1
|
||||
} | xargs mkdir -p
|
||||
echo "done"
|
||||
cd /jffs
|
||||
else
|
||||
echo "firstboot has already been run"
|
||||
echo "jffs2 partition is mounted, only resetting files"
|
||||
cd $jdev
|
||||
fi
|
||||
|
||||
exec 2>/dev/null
|
||||
echo -n "setting up symlinks... "
|
||||
for file in $(cd $2; find . -xdev -type f;); do
|
||||
case "$file" in
|
||||
"./rom/note") ;; #nothing
|
||||
"./etc/config"|\
|
||||
"./etc/resolv.conf"|\
|
||||
"./usr/lib/ipkg/info") cp -af $2/$file $file;;
|
||||
*) ln -sf /rom/${file#./*} $file;;
|
||||
esac
|
||||
done
|
||||
for file in $(cd $2; find . -xdev -type l;); do
|
||||
cp -af $2/${file#./*} $file
|
||||
done
|
||||
echo "done"
|
||||
}
|
||||
|
||||
mount /dev/mtdblock/2 /rom -o ro
|
||||
pivot() { # <new_root> <old_root>
|
||||
mount -o move /proc $1/proc && \
|
||||
pivot_root $1 $1$2 && {
|
||||
mount -o move $2/dev /dev
|
||||
mount -o move $2/tmp /tmp
|
||||
}
|
||||
}
|
||||
|
||||
echo -n "creating directories... "
|
||||
{
|
||||
cd /rom
|
||||
find . -type d
|
||||
cd -
|
||||
} | xargs mkdir
|
||||
echo "done"
|
||||
mountdp() { # <device> <mount_point> <ignored> <fs>
|
||||
dev=$1; mnt=$2; shift 2; opt=$*
|
||||
mount $dev $mnt $opt
|
||||
dupe $mnt $rom
|
||||
pivot $mnt /rom
|
||||
}
|
||||
|
||||
echo -n "setting up symlinks... "
|
||||
for file in $(cd /rom; find * -type f; find * -type l;)
|
||||
do {
|
||||
case "${file%/*}" in
|
||||
"usr/lib/ipkg/info"|"etc/config") cp -f /rom/$file $file;;
|
||||
*) ln -sf /rom/$file $file;;
|
||||
esac
|
||||
} done
|
||||
echo "done"
|
||||
ramoverlay() {
|
||||
mkdir -p /tmp/root
|
||||
mountdp /tmp/root /mnt -o bind
|
||||
}
|
||||
|
||||
touch /tmp/resolv.conf
|
||||
ln -s /tmp/resolv.conf /etc/resolv.conf
|
||||
[ "${0##*/}" = "firstboot" ] && {
|
||||
[ -z "$rom" ] && {
|
||||
echo "You do not have a squashfs partition; aborting"
|
||||
echo "(firstboot cannot be run on jffs2 based firmwares)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
umount /rom
|
||||
mount none /jffs/proc -t proc
|
||||
pivot_root /jffs /jffs/rom
|
||||
mount none /dev -t devfs
|
||||
mount none /tmp -t ramfs
|
||||
umount /rom/proc
|
||||
umount /rom/tmp
|
||||
umount /rom/dev
|
||||
[ "$1" = "switch2jffs" ] && {
|
||||
mtd erase OpenWrt
|
||||
mount -o remount,ro none / # try to avoid fs changing while copying
|
||||
mount -o bind / /mnt
|
||||
mount /dev/mtdblock/4 /rom/jffs -t jffs2
|
||||
echo -n "copying files ... "
|
||||
cp -a /mnt/* /rom/jffs
|
||||
umount /mnt
|
||||
echo "done"
|
||||
pivot /rom /mnt
|
||||
mount -o move /mnt /tmp/root
|
||||
pivot /jffs /rom
|
||||
jffs2root --clean
|
||||
exit 0
|
||||
}
|
||||
|
||||
# script run manually
|
||||
[ \! -z "$jffs" ] && {
|
||||
echo "firstboot has already been run"
|
||||
echo "jffs2 partition is mounted, only resetting files"
|
||||
dupe $jffs $rom
|
||||
exit 0
|
||||
}
|
||||
|
||||
mtd erase OpenWrt
|
||||
mountdp /dev/mtdblock/4 /jffs -t jffs2
|
||||
}
|
||||
|
|
32
openwrt/package/base-files/default/bin/ipcalc
Executable file
32
openwrt/package/base-files/default/bin/ipcalc
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
|
||||
awk -f /usr/lib/common.awk -f - $* <<EOF
|
||||
BEGIN {
|
||||
ipaddr=ip2int(ARGV[1])
|
||||
netmask=ip2int(ARGV[2])
|
||||
network=and(ipaddr,netmask)
|
||||
broadcast=or(network,compl(netmask))
|
||||
|
||||
start=or(network,and(ip2int(ARGV[3]),compl(netmask)))
|
||||
limit=network+1
|
||||
if (start<limit) start=limit
|
||||
|
||||
end=start+ARGV[4]
|
||||
limit=or(network,compl(netmask))-1
|
||||
if (end>limit) end=limit
|
||||
|
||||
print "IP="int2ip(ipaddr)
|
||||
print "NETMASK="int2ip(netmask)
|
||||
print "BROADCAST="int2ip(broadcast)
|
||||
print "NETWORK="int2ip(network)
|
||||
print "PREFIX="32-bitcount(compl(netmask))
|
||||
|
||||
# range calculations:
|
||||
# ipcalc <ip> <netmask> <start> <num>
|
||||
|
||||
if (ARGC > 3) {
|
||||
print "START="int2ip(start)
|
||||
print "END="int2ip(end)
|
||||
}
|
||||
}
|
||||
EOF
|
|
@ -1,20 +1,16 @@
|
|||
#!/bin/sh
|
||||
. /etc/sysconf 2>&-
|
||||
|
||||
[ "$FAILSAFE" != "true" ] &&
|
||||
[ "$BR2_SYSCONF_TELNET_FAILSAFE_ONLY" = "y" ] &&
|
||||
grep '^root:[^!]' /etc/passwd >&- 2>&-
|
||||
[ "$?" = "0" -a -z "$FAILSAFE" ] &&
|
||||
{
|
||||
grep '^root:[^!]' /etc/passwd >&- 2>&- &&
|
||||
{
|
||||
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
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
#!/bin/sh
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
WAN=$(nvram get wan_ifname)
|
||||
LAN=$(nvram get lan_ifname)
|
||||
|
||||
iptables -F input_rule
|
||||
iptables -F output_rule
|
||||
iptables -F forwarding_rule
|
||||
iptables -t nat -F prerouting_rule
|
||||
iptables -t nat -F postrouting_rule
|
||||
|
||||
### BIG FAT DISCLAIMER
|
||||
### The "-i $WAN" literally means packets that came in over the $WAN interface;
|
||||
### this WILL NOT MATCH packets sent from the LAN to the WAN address.
|
||||
|
||||
### Allow SSH on the WAN interface
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
|
||||
# iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
|
||||
|
||||
### Port forwarding
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j DNAT --to 192.168.1.2
|
||||
# iptables -A forwarding_rule -i $WAN -p tcp --dport 22 -d 192.168.1.2 -j ACCEPT
|
||||
|
||||
### DMZ (should be placed after port forwarding / accept rules)
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -j DNAT --to 192.168.1.2
|
||||
# iptables -A forwarding_rule -i $WAN -d 192.168.1.2 -j ACCEPT
|
|
@ -1,6 +1,4 @@
|
|||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
|
||||
alias debug=${DEBUG:-:}
|
||||
|
||||
# valid interface?
|
||||
|
@ -13,27 +11,3 @@ if_valid () (
|
|||
hotplug_dev() {
|
||||
env -i ACTION=$1 INTERFACE=$2 /sbin/hotplug net
|
||||
}
|
||||
|
||||
bitcount () {
|
||||
local c=$1
|
||||
echo $((
|
||||
c=((c>> 1)&0x55555555)+(c&0x55555555),
|
||||
c=((c>> 2)&0x33333333)+(c&0x33333333),
|
||||
c=((c>> 4)&0x0f0f0f0f)+(c&0x0f0f0f0f),
|
||||
c=((c>> 8)&0x00ff00ff)+(c&0x00ff00ff),
|
||||
c=((c>>16)&0x0000ffff)+(c&0x0000ffff)
|
||||
))
|
||||
}
|
||||
|
||||
valid_netmask () {
|
||||
return $((-($1)&~$1))
|
||||
}
|
||||
|
||||
ip2int () (
|
||||
set $(echo $1 | tr '\.' ' ')
|
||||
echo $(($1<<24|$2<<16|$3<<8|$4))
|
||||
)
|
||||
|
||||
int2ip () {
|
||||
echo $(($1>>24&255)).$(($1>>16&255)).$(($1>>8&255)).$(($1&255))
|
||||
}
|
||||
|
|
|
@ -1,32 +1,28 @@
|
|||
#!/bin/sh
|
||||
setup_eth()
|
||||
{
|
||||
for part in $(nvram get unused_ifnames); do
|
||||
[ "$part" = "$INTERFACE" ] && exit 0
|
||||
done
|
||||
ifconfig "$INTERFACE" up 2>&- >&-
|
||||
}
|
||||
|
||||
find_name()
|
||||
{
|
||||
pppoa_ifname="atm0" # hack for ppp over atm, which has no ${proto}_ifname
|
||||
interfaces="lan wan wifi $(nvram get ifnames)"
|
||||
for ifname in $interfaces; do
|
||||
for ifname in lan wan wifi ${ifnames}; do
|
||||
IFTYPE="${ifname}"
|
||||
IFPROTO="$(nvram get ${IFTYPE}_proto)"
|
||||
IFACE="$(nvram get ${IFTYPE}_ifname)"
|
||||
eval "IFPROTO=\"\${${IFTYPE}_proto}\""
|
||||
eval "IFACE=\"\${${IFTYPE}_ifname}\""
|
||||
case "$IFPROTO" in
|
||||
""|none);;
|
||||
static|dhcp)
|
||||
[ "${IFACE}" = "$INTERFACE" ] && return 0
|
||||
[ "${IFACE%%[0-9]*}" = "br" ] && {
|
||||
for part in $(nvram get ${IFTYPE}_ifnames); do
|
||||
eval "ifs=\"\${${IFTYPE}_ifnames}\""
|
||||
for part in $ifs; do
|
||||
[ "$part" = "$INTERFACE" ] && return 0
|
||||
done
|
||||
}
|
||||
;;
|
||||
pppoa)
|
||||
[ "$INTERFACE" = "atm0" \
|
||||
-a -x /sbin/ifup.${IFPROTO} ] && return 0
|
||||
;;
|
||||
*)
|
||||
[ "$(nvram get ${IFTYPE}_device)" = "$INTERFACE" \
|
||||
eval "device=\"\${${IFTYPE}_device}\""
|
||||
[ "$device" = "$INTERFACE" \
|
||||
-a -x /sbin/ifup.${IFPROTO} ] && return 0
|
||||
;;
|
||||
esac
|
||||
|
@ -39,17 +35,18 @@ find_name()
|
|||
|
||||
do_ifup() {
|
||||
if="$3"
|
||||
if_proto="$(nvram get ${2}_proto)"
|
||||
eval "if_proto=\"\${${2}_proto}\""
|
||||
|
||||
pidfile=/var/run/${if}.pid
|
||||
[ -f $pidfile ] && $DEBUG kill $(cat $pidfile)
|
||||
|
||||
case "$1" in
|
||||
static)
|
||||
ip=$(nvram get ${2}_ipaddr)
|
||||
ip6=$(nvram get ${2}_ip6addr)
|
||||
netmask=$(nvram get ${2}_netmask)
|
||||
gateway=$(nvram get ${2}_gateway)
|
||||
eval "ip=\"\${${2}_ipaddr}\""
|
||||
eval "ip6=\"\${${2}_ip6addr}\""
|
||||
eval "netmask=\"\${${2}_netmask}\""
|
||||
eval "gateway=\"\${${2}_gateway}\""
|
||||
eval "dns=\"\${${2}_dns}\""
|
||||
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
[ -n "$ip6" ] && $DEBUG ifconfig $if add $ip6
|
||||
|
@ -58,24 +55,25 @@ do_ifup() {
|
|||
|
||||
[ -f /tmp/resolv.conf ] || {
|
||||
debug "# --- creating /tmp/resolv.conf ---"
|
||||
for dns in $(nvram get ${2}_dns); do
|
||||
echo "nameserver $dns" >> /tmp/resolv.conf
|
||||
for ns in $dns; do
|
||||
echo "nameserver $ns" >> /tmp/resolv.conf
|
||||
done
|
||||
}
|
||||
|
||||
env -i ACTION="ifup" INTERFACE="${2}" PROTO=static /sbin/hotplug "iface" &
|
||||
;;
|
||||
dhcp)
|
||||
DHCP_IP=$(nvram get ${2}_ipaddr)
|
||||
DHCP_NETMASK=$(nvram get ${2}_netmask)
|
||||
eval "ip=\"\${${2}_ipaddr}\""
|
||||
eval "netmask=\"\${${2}_netmask}\""
|
||||
eval "hostname=\"\${${2}_hostname}\""
|
||||
|
||||
$DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
|
||||
|
||||
DHCP_ARGS="-i $if ${DHCP_IP:+-r $DHCP_IP} -b -p $pidfile"
|
||||
DHCP_HOSTNAME=$(nvram get ${2}_hostname)
|
||||
DHCP_HOSTNAME=${DHCP_HOSTNAME%%.*}
|
||||
[ -z $DHCP_HOSTNAME ] || DHCP_ARGS="$DHCP_ARGS -H $DHCP_HOSTNAME"
|
||||
[ "$if_proto" = "pptp" ] && DHCP_ARGS="$DHCP_ARGS -n -q" || DHCP_ARGS="$DHCP_ARGS -R &"
|
||||
${DEBUG:-eval} "udhcpc $DHCP_ARGS"
|
||||
args="-i $if ${ip:+-r $ip} -b -p $pidfile"
|
||||
hostname="${hostname%%.*}"
|
||||
args="$args${hostname:+ -H $hostname}"
|
||||
[ "$if_proto" = "pptp" ] && args="$args -n -q" || args="$args -R &"
|
||||
${DEBUG:-eval} "udhcpc $args"
|
||||
# hotplug events are handled by /usr/share/udhcpc/default.script
|
||||
;;
|
||||
*)
|
||||
|
@ -88,25 +86,23 @@ do_ifup() {
|
|||
|
||||
do_register()
|
||||
{
|
||||
case "${INTERFACE%%[0-9]*}" in
|
||||
eth) setup_eth;;
|
||||
esac
|
||||
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && {
|
||||
find_name || {
|
||||
case "${INTERFACE%%[0-9]*}" in
|
||||
wds)
|
||||
for tmp in lan wifi; do
|
||||
[ -z "$IFPROTO" ] && [ "$(nvram get ${tmp}_ifname)" = "br0" ] && {
|
||||
IFPROTO="$(nvram get ${tmp}_proto)"
|
||||
for ifname in lan wifi; do
|
||||
eval "if=\"\${${ifname}_ifname}\""
|
||||
[ -z "$IFPROTO" ] && [ "$if" = "br0" ] && {
|
||||
eval "IFPROTO=\"\${${2}_proto}\""
|
||||
IFTYPE="${tmp}"
|
||||
}
|
||||
done
|
||||
[ -z "$IFPROTO" ] && return 0
|
||||
;;
|
||||
atm)
|
||||
for tmp in lan wan wifi $(nvram get ifnames); do
|
||||
[ "$(nvram get ${tmp}_proto)" = "pppoa" ] && {
|
||||
for tmp in lan wan wifi ${ifnames}; do
|
||||
eval "if_proto=\"\${${2}_proto}\""
|
||||
[ "$if_proto" = "pppoa" ] && {
|
||||
do_ifup "pppoa" "$tmp" "$INTERFACE"
|
||||
return 0
|
||||
}
|
||||
|
@ -122,16 +118,16 @@ do_register()
|
|||
case "${INTERFACE%%[0-9]*}" in
|
||||
ppp|atm);;
|
||||
*)
|
||||
mac=$(nvram get ${IFTYPE}_hwaddr)
|
||||
eval "mac=\"\${${IFTYPE}_hwaddr}\""
|
||||
${mac:+$DEBUG ifconfig $INTERFACE down hw ether $mac}
|
||||
;;
|
||||
esac
|
||||
|
||||
if="$(nvram get ${IFTYPE}_ifname)"
|
||||
eval "if=\"\${${IFTYPE}_ifname}\""
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
if_valid "$INTERFACE" && {
|
||||
ifconfig "$if" 2>&- >&- || {
|
||||
stp=$(nvram get ${IFTYPE}_stp)
|
||||
eval "stp=\"\${${IFTYPE}_stp}\""
|
||||
$DEBUG brctl addbr "$if"
|
||||
$DEBUG brctl setfd "$if" 0
|
||||
$DEBUG brctl stp "$if" "${stp:-0}"
|
||||
|
@ -151,8 +147,9 @@ do_register()
|
|||
}
|
||||
|
||||
do_unregister() {
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && find_name
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && return 0
|
||||
[ -z "$IFTYPE" -o -z "$IFPROTO" ] && {
|
||||
find_name || return 0
|
||||
}
|
||||
|
||||
[ "${IFACE%%[0-9]*}" = "br" ] && {
|
||||
if [ "$INTERFACE" != "$IFACE" ]; then
|
||||
|
|
|
@ -1,14 +1,9 @@
|
|||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
|
||||
[ "$(uname -r|grep -c 2.4)" = "1" ] && {
|
||||
echo "S" > /proc/jffs2_bbc
|
||||
}
|
||||
|
||||
[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
|
||||
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
|
||||
|
||||
HOSTNAME=$(nvram get wan_hostname)
|
||||
HOSTNAME=${HOSTNAME%%.*}
|
||||
HOSTNAME=${wan_hostname%%.*}
|
||||
echo ${HOSTNAME:=OpenWrt}>/proc/sys/kernel/hostname
|
||||
|
||||
mkdir -p /var/run
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/sh
|
||||
. /etc/functions.sh
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
case "$1" in
|
||||
start|restart)
|
||||
# ifup lan
|
||||
# ifup wan
|
||||
# ifup wifi
|
||||
# wifi up
|
||||
|
||||
for route in $(nvram get static_route); do {
|
||||
eval "set $(echo $route | sed 's/:/ /g')"
|
||||
$DEBUG route add -net $1 netmask $2 gw $3 metric $4 dev $5
|
||||
} done
|
||||
;;
|
||||
esac
|
|
@ -1,2 +1,2 @@
|
|||
#!/bin/sh
|
||||
if awk -F: '/^root:/ && $2 !~ /\!/ {exit 1}' /etc/passwd 2>/dev/null || test $FAILSAFE; then telnetd -l /bin/login; fi
|
||||
if awk -F: '/^root:/ && $2 !~ /\!/ {exit 1}' /etc/passwd 2>/dev/null; then telnetd -l /bin/login; fi
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
#!/bin/sh
|
||||
[ -d /etc/crontabs ] || mkdir -p /etc/crontabs
|
||||
[ -e /var/spool/cron/crontabs ] || {
|
||||
mkdir -p /var/spool/cron
|
||||
ln -s /etc/crontabs /var/spool/cron/crontabs
|
||||
} && crond -c /etc/crontabs
|
||||
mkdir -p /var/spool/cron
|
||||
ln -s /etc/crontabs /var/spool/cron/crontabs
|
||||
crond -c /etc/crontabs
|
||||
|
|
9
openwrt/package/base-files/default/etc/init.d/S98done
Executable file
9
openwrt/package/base-files/default/etc/init.d/S98done
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
sysctl -p >&-
|
||||
|
||||
# automagically run firstboot
|
||||
{ mount|grep "on / type tmpfs" 1>&-; } && {
|
||||
lock /tmp/.switch2jffs
|
||||
firstboot switch2jffs
|
||||
lock -u /tmp/.switch2jffs
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
# set leds to normal state
|
||||
[ -f /proc/sys/diag ] && echo "0x00" > /proc/sys/diag
|
||||
sysctl -p >&-
|
|
@ -1,8 +1,10 @@
|
|||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
syslog_ip=$(nvram get log_ipaddr)
|
||||
ipcalc -s "$syslog_ip" || syslog_ip=""
|
||||
syslogd -C 16 ${syslog_ip:+-L -R $syslog_ip}
|
||||
${FAILSAFE:+exit}
|
||||
|
||||
[ -f /etc/config/network ] && . /etc/config/network
|
||||
eval $(ipcalc "$log_ipaddr")
|
||||
[ "$log_ipaddr" = "$IP" ] || log_ipaddr=""
|
||||
syslogd -C 16 ${log_ipaddr:+-L -R $log_ipaddr}
|
||||
klogd
|
||||
#${FAILSAFE:+telnetd -l /bin/login; ifup lan; exit}
|
||||
for i in /etc/init.d/S*; do
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
::sysinit:/etc/init.d/rcS
|
||||
::shutdown:/sbin/halt
|
||||
tts/0::askfirst:/bin/ash --login
|
||||
#tts/1::askfirst:/bin/ash --login
|
||||
|
|
|
@ -1,24 +1,11 @@
|
|||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||
mount none /proc -t proc
|
||||
insmod diag
|
||||
[ -f /proc/sys/diag ] && echo 0x01 > /proc/sys/diag
|
||||
sleep 1
|
||||
if [ -f /proc/sys/reset ] && [ $(cat /proc/sys/reset) = 1 -o "$(nvram get failsafe)" = 1 ]; then
|
||||
export FAILSAFE=true
|
||||
[ -x /usr/sbin/nvram -a "$(nvram get boot_wait)" != "on" ] && {
|
||||
nvram set boot_wait=on
|
||||
nvram commit
|
||||
}
|
||||
while :; do { echo $(((X=(X+1)%8)%2)) > /proc/sys/diag; sleep $((X==0)); } done &
|
||||
fi
|
||||
|
||||
mount_root ${FAILSAFE:+failsafe}
|
||||
|
||||
# automagically run firstboot
|
||||
[ -z "$FAILSAFE" -a -z "$(nvram get no_root_swap)" ] && {
|
||||
{ mount|grep "on / type jffs2" 1>&-; } || firstboot
|
||||
[ -f /etc/preinit.arch ] && . /etc/preinit.arch
|
||||
[ -z "$FAILSAFE" ] || {
|
||||
echo /bin/true > /proc/sys/kernel/hotplug
|
||||
telnetd -l /bin/login <> /dev/null 2>&1
|
||||
}
|
||||
|
||||
mount_root ${FAILSAFE:+failsafe}
|
||||
exec /sbin/init
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
/usr/bin/killall5 -9
|
||||
#umount -ar
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# bypass the normal hotplug path for firmware loading
|
||||
# would otherwise cause problems with drivers like bcm43xx
|
||||
[ "$1" = "firmware" -a "$ACTION" = "add" ] && {
|
||||
[ -f "/lib/firmware/$FIRMWARE" ] && {
|
||||
echo 1 > "/sys$DEVPATH/loading"
|
||||
|
@ -8,13 +11,8 @@
|
|||
exit 0
|
||||
}
|
||||
|
||||
[ -e /tmp/.failsafe ] && {
|
||||
export FAILSAFE=true
|
||||
} || {
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
}
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
. /etc/config/network
|
||||
|
||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||
LOGNAME=root
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
#!/bin/sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
. /etc/config/network
|
||||
|
||||
debug "### ifdown $type ###"
|
||||
type=$1
|
||||
|
||||
if_proto=$(nvram get ${type}_proto)
|
||||
if=$(nvram get ${type}_ifname)
|
||||
eval "if_proto=\"\${${type}_proto}\""
|
||||
eval "if=\"\${${type}_ifname}\""
|
||||
[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
|
||||
|
||||
case "$if_proto" in
|
||||
pppoa) hotplug_dev unregister atm0; exit 0 ;;
|
||||
""|none) exit 0;;
|
||||
esac
|
||||
|
||||
[ "${if%%[0-9]*}" = "ppp" ] && if="$(nvram get ${type}_device)"
|
||||
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
for sif in $(nvram get ${type}_ifnames); do
|
||||
hotplug_dev unregister "$sif"
|
||||
done
|
||||
fi
|
||||
|
||||
hotplug_dev unregister "$if"
|
||||
|
|
|
@ -1,32 +1,34 @@
|
|||
#!/bin/sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
. /etc/config/network
|
||||
|
||||
ifdown $1
|
||||
|
||||
debug "### ifup $type ###"
|
||||
type=$1
|
||||
|
||||
if_proto=$(nvram get ${type}_proto)
|
||||
if=$(nvram get ${type}_ifname)
|
||||
eval "if_proto=\"\${${type}_proto}\""
|
||||
eval "if=\"\${${type}_ifname}\""
|
||||
[ "${if%%[0-9]}" = "ppp" ] && eval "if=\"\${${type}_device}\""
|
||||
|
||||
case "$if_proto" in
|
||||
pppoa) hotplug_dev register atm0; exit 0 ;;
|
||||
pppoe)
|
||||
ifconfig nas0 2>&- >&- || {
|
||||
hotplug_dev register atm0
|
||||
exit 0
|
||||
# PPPoE over ATM
|
||||
[ "$if" = "nas0" ] && {
|
||||
ifconfig nas0 2>&- >&- || {
|
||||
hotplug_dev register atm0
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
;;
|
||||
none|"") exit 0;;
|
||||
esac
|
||||
|
||||
[ "${if%%[0-9]*}" = "ppp" ] && if="$(nvram get ${type}_device)"
|
||||
|
||||
if [ "${if%%[0-9]}" = "br" ]; then
|
||||
for sif in $(nvram get ${type}_ifnames); do
|
||||
eval "ifnames=\"\${${type}_ifnames}\""
|
||||
for sif in $ifnames; do
|
||||
hotplug_dev register "$sif"
|
||||
done
|
||||
else
|
||||
|
|
|
@ -1,40 +1,34 @@
|
|||
#!/bin/sh
|
||||
. /etc/nvram.sh
|
||||
is_clean() {
|
||||
grep Broadcom /proc/cpuinfo 2>&- >&- || return 0
|
||||
OFFSET="$((0x$(dd if=/dev/mtdblock/1 bs=1 skip=$((0x14)) count=2 2>&- | hexdump | grep 0000000 | cut -d ' ' -f 2) - 1))"
|
||||
dd if=/dev/mtdblock/1 bs=1 skip=$OFFSET count=1 2>&- | hexdump -v | grep ' 0000' > /dev/null && return 255 || return 0
|
||||
is_dirty() {
|
||||
grep Broadcom /proc/cpuinfo >&- || return 1
|
||||
OFFSET="$(($(hexdump -v /dev/mtdblock/1 -s 20 -n 2 -e '"%d"')-1))"
|
||||
return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"')
|
||||
}
|
||||
|
||||
size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
|
||||
mount none /tmp -t tmpfs -o size=$size
|
||||
|
||||
if [ "$1" != "failsafe" ]; then
|
||||
mtd unlock linux
|
||||
mount | grep jffs2 >&-
|
||||
if [ $? = 0 ] ; then
|
||||
if [ $(cat /proc/mtd | wc -l) = 6 ]; then
|
||||
echo 5 > /proc/sys/diag
|
||||
mtd unlock linux
|
||||
mtd erase OpenWrt
|
||||
jffs2root --move
|
||||
else
|
||||
mtd unlock rootfs
|
||||
mount -o remount,rw /dev/root /
|
||||
fi
|
||||
else
|
||||
if [ -z "$(nvram get no_root_swap)" ]; then
|
||||
is_clean || {
|
||||
mtd erase OpenWrt
|
||||
mtd unlock linux
|
||||
jffs2root --clean
|
||||
}
|
||||
mtd unlock OpenWrt
|
||||
mount -t jffs2 /dev/mtdblock/4 /jffs
|
||||
pivot_root /jffs /jffs/rom
|
||||
mount none /proc -t proc
|
||||
mount none /dev -t devfs
|
||||
umount /rom/proc /rom/dev >&-
|
||||
fi
|
||||
. /bin/firstboot
|
||||
is_dirty
|
||||
[ $? != 0 ] && {
|
||||
mount /dev/mtdblock/4 /jffs
|
||||
pivot /jffs /rom
|
||||
} || ramoverlay
|
||||
fi
|
||||
fi
|
||||
mount none /tmp -t tmpfs -o nosuid,nodev,mode=1777,size=50%
|
||||
|
||||
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
|
||||
mkdir -p /dev/pts
|
||||
mount none /dev/pts -t devpts
|
||||
grep sysfs /proc/filesystems >&- && mount -t sysfs none /sys
|
||||
mount -t sysfs none /sys 2>&-
|
||||
|
|
66
openwrt/package/base-files/default/usr/lib/common.awk
Normal file
66
openwrt/package/base-files/default/usr/lib/common.awk
Normal file
|
@ -0,0 +1,66 @@
|
|||
function portstr(type, str) {
|
||||
gsub(/-/, ":", str)
|
||||
if (insmod_mport != 1) {
|
||||
print "insmod ipt_multiport >&- 2>&-"
|
||||
insmod_mport = 1
|
||||
}
|
||||
if (type == "src") return " -m multiport --sports " str
|
||||
else return " -m multiport --dports " str
|
||||
}
|
||||
|
||||
function str2ipt(str) {
|
||||
str2data(str)
|
||||
_cmd = ""
|
||||
if (_l["src"] != "") _cmd = _cmd " -s " _l["src"]
|
||||
if (_l["dest"] != "") _cmd = _cmd " -d " _l["dest"]
|
||||
if (_l["proto"] != "") {
|
||||
_cmd = _cmd " -p " _l["proto"]
|
||||
}
|
||||
# scripts need to check for proto="" and emit two rules in that case
|
||||
if ((_l["proto"] == "") || (_l["proto"] == "tcp") || (_l["proto"] == "udp")) {
|
||||
if (_l["sport"] != "") _cmd = _cmd portstr("src", _l["sport"])
|
||||
if (_l["dport"] != "") _cmd = _cmd portstr("dest", _l["dport"])
|
||||
}
|
||||
if (_l["layer7"] != "") {
|
||||
if (insmod_l7 != 1) {
|
||||
print "insmod ipt_layer7 >&- 2>&-"
|
||||
insmod_l7 = 1
|
||||
}
|
||||
_cmd = _cmd " -m layer7 --l7proto " _l["layer7"]
|
||||
}
|
||||
return _cmd
|
||||
}
|
||||
|
||||
function str2data(str) {
|
||||
delete _l
|
||||
_n = split(str, _o, "[\t ]")
|
||||
for (_i = 1; _i <= _n; _i++) {
|
||||
_n2 = split(_o[_i], _c, "=")
|
||||
if (_n2 == 2) _l[_c[1]] = _c[2]
|
||||
}
|
||||
}
|
||||
|
||||
function bitcount(c) {
|
||||
c=and(rshift(c, 1),0x55555555)+and(c,0x55555555)
|
||||
c=and(rshift(c, 2),0x33333333)+and(c,0x33333333)
|
||||
c=and(rshift(c, 4),0x0f0f0f0f)+and(c,0x0f0f0f0f)
|
||||
c=and(rshift(c, 8),0x00ff00ff)+and(c,0x00ff00ff)
|
||||
c=and(rshift(c,16),0x0000ffff)+and(c,0x0000ffff)
|
||||
return c
|
||||
}
|
||||
|
||||
function validate_netmask(nm) {
|
||||
return and(-nm,compl(nm))
|
||||
}
|
||||
|
||||
function ip2int(ip) {
|
||||
for (ret=0,n=split(ip,a,"\."),x=1;x<=n;x++) ret=or(lshift(ret,8),a[x])
|
||||
return ret
|
||||
}
|
||||
|
||||
function int2ip(ip,ret,x) {
|
||||
ret=and(ip,255)
|
||||
ip=rshift(ip,8)
|
||||
for(;x<3;ret=and(ip,255)"."ret,ip=rshift(ip,8),x++);
|
||||
return ret
|
||||
}
|
40
openwrt/package/base-files/default/usr/lib/parse-config.awk
Normal file
40
openwrt/package/base-files/default/usr/lib/parse-config.awk
Normal file
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
line=$0
|
||||
gsub(/^[ \t]*/, "")
|
||||
gsub(/[ \t]*$/, "")
|
||||
}
|
||||
|
||||
$1 == "@define" {
|
||||
v[$2] = $3
|
||||
}
|
||||
|
||||
$1 == "@ifdef" {
|
||||
if_open = 1
|
||||
if (v[$2] != "") noprint = 0
|
||||
else noprint = 1
|
||||
}
|
||||
|
||||
$1 == "@ifndef" {
|
||||
if_open = 1
|
||||
if (v[$2] != "") noprint = 1
|
||||
else noprint = 0
|
||||
}
|
||||
|
||||
$1 == "@else" {
|
||||
if (noprint == 1) noprint = 0
|
||||
else noprint = 1
|
||||
}
|
||||
|
||||
($1 !~ /^@/) && (noprint != 1) {
|
||||
n=split(line "@@", a, /@@/)
|
||||
for (i=1; i<=n; i++) {
|
||||
if ((i % 2) == 1) printf a[i]
|
||||
else printf v[a[i]]
|
||||
}
|
||||
print ""
|
||||
}
|
||||
|
||||
$1 == "@endif" {
|
||||
if_open = 0
|
||||
noprint = 0
|
||||
}
|
|
@ -1,18 +1,17 @@
|
|||
#!/bin/sh
|
||||
[ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
|
||||
. /etc/config/network
|
||||
|
||||
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
|
||||
}
|
||||
for ifname in lan wan wifi ${ifnames}; do
|
||||
eval "proto=\"\${${ifname}_proto}\""
|
||||
eval "if=\"\${${ifname}_ifname}\""
|
||||
[ "$proto" = "dhcp" ] || continue
|
||||
[ "$if" = "$interface" ] || continue
|
||||
env -i ACTION="$1" INTERFACE="$ifname" PROTO=dhcp /sbin/hotplug iface
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
|
@ -26,22 +25,20 @@ case "$1" in
|
|||
broadcast ${broadcast:-+}
|
||||
|
||||
if [ -n "$router" ] ; then
|
||||
|
||||
if [ "$router" != "$(route -n | grep '^0.0.0.0' | grep $interface | awk '{ print $2 }')" ] ; then
|
||||
while route del default gw 0.0.0.0 dev $interface 2>&- ; do
|
||||
echo "removing old default route"
|
||||
done
|
||||
for i in $router ; do
|
||||
route add default gw $i dev $interface
|
||||
done
|
||||
fi
|
||||
echo "deleting routers"
|
||||
while route del default gw 0.0.0.0 dev $interface >&- 2>&- ; do :; done
|
||||
|
||||
for i in $router ; do
|
||||
echo "adding router $i"
|
||||
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
|
||||
echo "adding dns $i"
|
||||
echo "nameserver $i" >> $RESOLV_CONF
|
||||
done
|
||||
|
||||
hotplug_event ifup
|
||||
|
|
|
@ -209,6 +209,12 @@ config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
|
|||
Enables the 'hdparm -d' option to get/set using_dma flag.
|
||||
This is dangerous stuff, so you should probably say N.
|
||||
|
||||
config BUSYBOX_CONFIG_LOCK
|
||||
bool "lock"
|
||||
default y
|
||||
help
|
||||
Small utility for using locks in scripts
|
||||
|
||||
config BUSYBOX_CONFIG_MAKEDEVS
|
||||
bool "makedevs"
|
||||
default n
|
||||
|
|
|
@ -395,14 +395,14 @@ endif
|
|||
|
||||
config BUSYBOX_CONFIG_IPCALC
|
||||
bool "ipcalc"
|
||||
default y
|
||||
default n
|
||||
help
|
||||
ipcalc takes an IP address and netmask and calculates the
|
||||
resulting broadcast, network, and host range.
|
||||
|
||||
config BUSYBOX_CONFIG_FEATURE_IPCALC_FANCY
|
||||
bool " Fancy IPCALC, more options, adds 1 kbyte"
|
||||
default y
|
||||
default n
|
||||
depends on BUSYBOX_CONFIG_IPCALC
|
||||
help
|
||||
Adds the options hostname, prefix and silent to the output of "ipcalc".
|
||||
|
|
61
openwrt/package/busybox/patches/220-awk_bitops.patch
Normal file
61
openwrt/package/busybox/patches/220-awk_bitops.patch
Normal file
|
@ -0,0 +1,61 @@
|
|||
--- busybox-1.00/editors/awk.c.orig 2004-09-24 05:24:27 -04:00
|
||||
+++ busybox-1.00/editors/awk.c 2006-03-08 02:16:52 -05:00
|
||||
@@ -271,7 +271,8 @@
|
||||
/* builtins */
|
||||
enum {
|
||||
B_a2=0, B_ix, B_ma, B_sp, B_ss, B_ti, B_lo, B_up,
|
||||
- B_ge, B_gs, B_su
|
||||
+ B_ge, B_gs, B_su,
|
||||
+ B_an, B_co, B_ls, B_or, B_rs, B_xo,
|
||||
};
|
||||
|
||||
/* tokens and their corresponding info values */
|
||||
@@ -311,6 +312,8 @@
|
||||
"\5while" NTC
|
||||
"\4else" NTC
|
||||
|
||||
+ "\3and" "\5compl" "\6lshift" "\2or"
|
||||
+ "\6rshift" "\3xor"
|
||||
"\5close" "\6system" "\6fflush" "\5atan2" /* BUILTIN */
|
||||
"\3cos" "\3exp" "\3int" "\3log"
|
||||
"\4rand" "\3sin" "\4sqrt" "\5srand"
|
||||
@@ -364,6 +367,8 @@
|
||||
ST_WHILE,
|
||||
0,
|
||||
|
||||
+ OC_B|B_an|P(0x83), OC_B|B_co|P(0x41), OC_B|B_ls|P(0x83), OC_B|B_or|P(0x83),
|
||||
+ OC_B|B_rs|P(0x83), OC_B|B_xo|P(0x83),
|
||||
OC_FBLTIN|Sx|F_cl, OC_FBLTIN|Sx|F_sy, OC_FBLTIN|Sx|F_ff, OC_B|B_a2|P(0x83),
|
||||
OC_FBLTIN|Nx|F_co, OC_FBLTIN|Nx|F_ex, OC_FBLTIN|Nx|F_in, OC_FBLTIN|Nx|F_lg,
|
||||
OC_FBLTIN|F_rn, OC_FBLTIN|Nx|F_si, OC_FBLTIN|Nx|F_sq, OC_FBLTIN|Nx|F_sr,
|
||||
@@ -1942,6 +1947,30 @@
|
||||
strncpy(s, as[0]+i, n);
|
||||
s[n] = '\0';
|
||||
setvar_p(res, s);
|
||||
+ break;
|
||||
+
|
||||
+ case B_an:
|
||||
+ setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1]));
|
||||
+ break;
|
||||
+
|
||||
+ case B_co:
|
||||
+ setvar_i(res, ~(long)getvar_i(av[0]));
|
||||
+ break;
|
||||
+
|
||||
+ case B_ls:
|
||||
+ setvar_i(res, (long)getvar_i(av[0]) << (long)getvar_i(av[1]));
|
||||
+ break;
|
||||
+
|
||||
+ case B_or:
|
||||
+ setvar_i(res, (long)getvar_i(av[0]) | (long)getvar_i(av[1]));
|
||||
+ break;
|
||||
+
|
||||
+ case B_rs:
|
||||
+ setvar_i(res, (long)((unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1])));
|
||||
+ break;
|
||||
+
|
||||
+ case B_xo:
|
||||
+ setvar_i(res, (long)getvar_i(av[0]) ^ (long)getvar_i(av[1]));
|
||||
break;
|
||||
|
||||
case B_lo:
|
13
openwrt/package/busybox/patches/230-passwd_salt.patch
Normal file
13
openwrt/package/busybox/patches/230-passwd_salt.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- busybox-1.00/loginutils/passwd.c 2006-03-26 06:07:37 -05:00
|
||||
+++ busybox-1.00/loginutils/passwd.c 2006-03-26 06:09:03 -05:00
|
||||
@@ -386,7 +386,9 @@
|
||||
bzero(orig, sizeof(orig));
|
||||
|
||||
if (algo == 1) {
|
||||
- cp = pw_encrypt(pass, "$1$");
|
||||
+ char salt[6]="$1$\0\0\0";
|
||||
+ memcpy(salt+3,crypt_make_salt(),3);
|
||||
+ cp = pw_encrypt(pass, salt);
|
||||
} else
|
||||
cp = pw_encrypt(pass, crypt_make_salt());
|
||||
bzero(pass, sizeof pass);
|
167
openwrt/package/busybox/patches/340-lock_util.patch
Normal file
167
openwrt/package/busybox/patches/340-lock_util.patch
Normal file
|
@ -0,0 +1,167 @@
|
|||
diff -urN busybox.old/include/applets.h busybox.dev/include/applets.h
|
||||
--- busybox.old/include/applets.h 2006-04-05 01:06:29.000000000 +0200
|
||||
+++ busybox.dev/include/applets.h 2006-04-05 01:19:09.000000000 +0200
|
||||
@@ -167,6 +167,7 @@
|
||||
USE_LN(APPLET(ln, ln_main, _BB_DIR_BIN, _BB_SUID_NEVER))
|
||||
USE_LOADFONT(APPLET(loadfont, loadfont_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
|
||||
USE_LOADKMAP(APPLET(loadkmap, loadkmap_main, _BB_DIR_SBIN, _BB_SUID_NEVER))
|
||||
+USE_LOCK(APPLET_NOUSAGE(lock, lock_main, _BB_DIR_BIN, _BB_SUID_NEVER))
|
||||
USE_LOGGER(APPLET(logger, logger_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
|
||||
USE_LOGIN(APPLET(login, login_main, _BB_DIR_BIN, _BB_SUID_ALWAYS))
|
||||
USE_LOGNAME(APPLET(logname, logname_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
|
||||
diff -urN busybox.old/miscutils/Config.in busybox.dev/miscutils/Config.in
|
||||
--- busybox.old/miscutils/Config.in 2006-03-22 22:16:24.000000000 +0100
|
||||
+++ busybox.dev/miscutils/Config.in 2006-04-05 01:07:12.000000000 +0200
|
||||
@@ -209,6 +209,12 @@
|
||||
Enables the 'hdparm -d' option to get/set using_dma flag.
|
||||
This is dangerous stuff, so you should probably say N.
|
||||
|
||||
+config CONFIG_LOCK
|
||||
+ bool "lock"
|
||||
+ default y
|
||||
+ help
|
||||
+ Small utility for using locks in scripts
|
||||
+
|
||||
config CONFIG_MAKEDEVS
|
||||
bool "makedevs"
|
||||
default n
|
||||
diff -urN busybox.old/miscutils/Makefile.in busybox.dev/miscutils/Makefile.in
|
||||
--- busybox.old/miscutils/Makefile.in 2006-03-22 22:16:24.000000000 +0100
|
||||
+++ busybox.dev/miscutils/Makefile.in 2006-04-05 01:10:50.000000000 +0200
|
||||
@@ -20,6 +20,7 @@
|
||||
MISCUTILS-$(CONFIG_EJECT) += eject.o
|
||||
MISCUTILS-$(CONFIG_HDPARM) += hdparm.o
|
||||
MISCUTILS-$(CONFIG_LAST) += last.o
|
||||
+MISCUTILS-$(CONFIG_LOCK) += lock.o
|
||||
MISCUTILS-${CONFIG_LESS} += less.o
|
||||
MISCUTILS-$(CONFIG_MAKEDEVS) += makedevs.o
|
||||
MISCUTILS-$(CONFIG_MOUNTPOINT) += mountpoint.o
|
||||
diff -urN busybox.old/miscutils/lock.c busybox.dev/miscutils/lock.c
|
||||
--- busybox.old/miscutils/lock.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ busybox.dev/miscutils/lock.c 2006-04-05 01:07:12.000000000 +0200
|
||||
@@ -0,0 +1,125 @@
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/file.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <signal.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <unistd.h>
|
||||
+#include <stdio.h>
|
||||
+#include "busybox.h"
|
||||
+
|
||||
+static int unlock = 0;
|
||||
+static int shared = 0;
|
||||
+static int waitonly = 0;
|
||||
+static int fd;
|
||||
+static char *file;
|
||||
+
|
||||
+static void usage(char *name)
|
||||
+{
|
||||
+ fprintf(stderr, "Usage: %s [-suw] <filename>\n"
|
||||
+ " -s Use shared locking\n"
|
||||
+ " -u Unlock\n"
|
||||
+ " -w Wait for the lock to become free, don't acquire lock\n"
|
||||
+ "\n", name);
|
||||
+ exit(1);
|
||||
+}
|
||||
+
|
||||
+static void exit_unlock(int sig)
|
||||
+{
|
||||
+ flock(fd, LOCK_UN);
|
||||
+ unlink(file);
|
||||
+ exit(0);
|
||||
+}
|
||||
+
|
||||
+static int do_unlock(void)
|
||||
+{
|
||||
+ FILE *f;
|
||||
+ int i;
|
||||
+
|
||||
+ f = fopen(file, "r");
|
||||
+ fscanf(f, "%d", &i);
|
||||
+ if (i > 0)
|
||||
+ kill(i, SIGTERM);
|
||||
+ fclose(f);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int do_lock(void)
|
||||
+{
|
||||
+ int pid;
|
||||
+ char pidstr[8];
|
||||
+
|
||||
+ if ((fd = open(file, O_RDWR | O_CREAT, 0700)) < 0) {
|
||||
+ fprintf(stderr, "Can't open %s\n", file);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ if (flock(fd, (shared ? LOCK_SH : LOCK_EX)) < 0) {
|
||||
+ fprintf(stderr, "Can't lock %s\n", file);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ pid = fork();
|
||||
+
|
||||
+ if (pid < 0)
|
||||
+ return -1;
|
||||
+
|
||||
+ if (pid == 0) {
|
||||
+ signal(SIGKILL, exit_unlock);
|
||||
+ signal(SIGTERM, exit_unlock);
|
||||
+ signal(SIGINT, exit_unlock);
|
||||
+ if (waitonly)
|
||||
+ exit_unlock(0);
|
||||
+ else
|
||||
+ while (1)
|
||||
+ sleep(1);
|
||||
+ } else {
|
||||
+ if (!waitonly) {
|
||||
+ lseek(fd, 0, SEEK_SET);
|
||||
+ ftruncate(fd, 0);
|
||||
+ sprintf(pidstr, "%d\n", pid);
|
||||
+ write(fd, pidstr, strlen(pidstr));
|
||||
+ close(fd);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#ifndef CONFIG_LOCK
|
||||
+int main(int argc, char **argv)
|
||||
+#else
|
||||
+int lock_main(int argc, char **argv)
|
||||
+#endif
|
||||
+{
|
||||
+ char **args = &argv[1];
|
||||
+ int c = argc - 1;
|
||||
+
|
||||
+ while ((*args != NULL) && (*args)[0] == '-') {
|
||||
+ char *ch = *args;
|
||||
+ while (*(++ch) > 0) {
|
||||
+ switch(*ch) {
|
||||
+ case 'w':
|
||||
+ waitonly = 1;
|
||||
+ break;
|
||||
+ case 's':
|
||||
+ shared = 1;
|
||||
+ break;
|
||||
+ case 'u':
|
||||
+ unlock = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ c--;
|
||||
+ args++;
|
||||
+ }
|
||||
+
|
||||
+ if (c != 1)
|
||||
+ usage(argv[0]);
|
||||
+
|
||||
+ file = *args;
|
||||
+ if (unlock)
|
||||
+ return do_unlock();
|
||||
+ else
|
||||
+ return do_lock();
|
||||
+}
|
|
@ -31,6 +31,6 @@ $(IPKG_DNSMASQ):
|
|||
$(STRIP) $(IDIR_DNSMASQ)/usr/sbin/*
|
||||
install -d -m0755 $(IDIR_DNSMASQ)/etc/init.d/
|
||||
install -m0644 ./files/dnsmasq.conf $(IDIR_DNSMASQ)/etc/dnsmasq.conf
|
||||
install -m0755 ./files/S50dnsmasq $(IDIR_DNSMASQ)/etc/init.d/S50dnsmasq
|
||||
install -m0755 ./files/dnsmasq.init $(IDIR_DNSMASQ)/etc/init.d/S50dnsmasq
|
||||
$(IPKG_BUILD) $(IDIR_DNSMASQ) $(PACKAGE_DIR)
|
||||
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
#!/bin/sh
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
# interface to use for DHCP
|
||||
iface=lan
|
||||
|
||||
ifname=$(nvram get ${iface}_ifname)
|
||||
ipaddr=$(nvram get ${iface}_ipaddr)
|
||||
netmask=$(nvram get ${iface}_netmask)
|
||||
|
||||
# check for existing DHCP server
|
||||
udhcpc -n -q -R -s /bin/true -i $ifname >&- || {
|
||||
|
||||
ipaddr=$(ip2int $ipaddr)
|
||||
netmask=$(ip2int ${netmask:-255.255.255.0})
|
||||
network=$((ipaddr&netmask))
|
||||
|
||||
start=$(nvram get dhcp_start)
|
||||
start=$((network+${start:-100}))
|
||||
end=$(nvram get dhcp_num)
|
||||
end=$((start+${end:-150}))
|
||||
|
||||
wanproto=$(nvram get wan_proto)
|
||||
[ -z "$wanproto" -o "$wanproto" = "none" ] || wanif=$(nvram get wan_ifname)
|
||||
|
||||
args="-K -F $(int2ip $start),$(int2ip $end),$(int2ip $netmask),12h ${wanif:+-I ${wanif} }"
|
||||
}
|
||||
dnsmasq ${args}
|
|
@ -9,9 +9,15 @@ local=/lan/
|
|||
domain=lan
|
||||
expand-hosts
|
||||
|
||||
@ifdef dhcp_enable
|
||||
dhcp-range=@@start@@,@@end@@,@@netmask@@,@@lease@@
|
||||
@endif
|
||||
@ifdef wan_ifname
|
||||
except-interface=@@wan_ifname@@
|
||||
@endif
|
||||
|
||||
# enable dhcp (start,end,netmask,leasetime)
|
||||
dhcp-authoritative
|
||||
#dhcp-range=192.168.1.100,192.168.1.250,255.255.255.0,12h
|
||||
dhcp-leasefile=/tmp/dhcp.leases
|
||||
|
||||
# use /etc/ethers for static hosts; same format as --dhcp-host
|
||||
|
|
45
openwrt/package/dnsmasq/files/dnsmasq.init
Normal file
45
openwrt/package/dnsmasq/files/dnsmasq.init
Normal file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
. /etc/config/network
|
||||
|
||||
# The following is to automatically configure the DHCP settings
|
||||
# based on config settings. Feel free to replace all this crap
|
||||
# with a simple "dnsmasq" and manage everything via the
|
||||
# /etc/dnsmasq.conf config file
|
||||
|
||||
[ -f /etc/dnsmasq.conf ] || exit
|
||||
|
||||
args=""
|
||||
iface=lan
|
||||
eval "ifname=\${${iface}_ifname}"
|
||||
|
||||
dhcp_enable="${dhcp_enable:-1}"
|
||||
dhcp_start="${dhcp_start:-100}"
|
||||
dhcp_num="${dhcp_num:-50}"
|
||||
dhcp_lease="${dhcp_lease:-12h}"
|
||||
|
||||
# if dhcp_enable is unset and there is a dhcp server on the network already, default to dhcp_enable=0
|
||||
[ -z "$dhcp_enable" ] && udhcpc -n -q -R -s /bin/true -i $ifname >&- && dhcp_enable="${dhcp_enable:-0}"
|
||||
|
||||
# dhcp_enable=0 disables the dhcp server
|
||||
(
|
||||
[ -z "$dhcp_enable" -o "$dhcp_enable" -eq 1 ] && {
|
||||
# no existing DHCP server?
|
||||
|
||||
# calculate settings
|
||||
eval "ipaddr=\${${iface}_ipaddr}"
|
||||
eval "netmask=\${${iface}_netmask}"
|
||||
eval $(ipcalc $ipaddr $netmask ${dhcp_start:-100} ${dhcp_num:-150})
|
||||
|
||||
# and pass the args via config parser defines
|
||||
echo "@define dhcp_enable 1"
|
||||
echo "@define netmask $NETMASK"
|
||||
echo "@define start $START"
|
||||
echo "@define end $END"
|
||||
echo "@define lease ${dhcp_lease:-12h}"
|
||||
}
|
||||
|
||||
# ignore requests from wan interface
|
||||
[ -z "$wan_proto" -o "$wan_proto" = "none" ] || echo "@define wan_ifname $wan_ifname"
|
||||
|
||||
cat /etc/dnsmasq.conf
|
||||
) | awk -f /usr/lib/parse-config.awk | dnsmasq -C /proc/self/fd/0
|
|
@ -1,10 +1,10 @@
|
|||
. /etc/functions.sh
|
||||
NAME=ez-ipupdate
|
||||
CONFIG=/etc/$NAME.conf
|
||||
COMMAND=/usr/sbin/$NAME
|
||||
|
||||
[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
|
||||
[ -x $COMMAND ] && [ -r $CONFIG ] && {
|
||||
IFNAME=$(nvram get ${INTERFACE}_ifname)
|
||||
$COMMAND -c $CONFIG -i $IFNAME 2>&1 | logger -t $NAME
|
||||
eval "ifname=\"\${${INTERFACE}_ifname}\""
|
||||
$COMMAND -c $CONFIG -i $ifname 2>&1 | logger -t $NAME
|
||||
} &
|
||||
}
|
||||
|
|
|
@ -72,6 +72,13 @@ $(PKG_BUILD_DIR)/.built:
|
|||
touch $@
|
||||
|
||||
$(IPKG_IPTABLES):
|
||||
install -d -m0755 $(IDIR_IPTABLES)/etc/config
|
||||
install -m0644 ./files/firewall.config $(IDIR_IPTABLES)/etc/config/firewall
|
||||
install -d -m0755 $(IDIR_IPTABLES)/etc/init.d
|
||||
install -m0755 ./files/firewall.init $(IDIR_IPTABLES)/etc/init.d/S45firewall
|
||||
install -m0755 ./files/firewall.user $(IDIR_IPTABLES)/etc/
|
||||
install -d -m0755 $(IDIR_IPTABLES)/usr/lib
|
||||
install -m0644 ./files/firewall.awk $(IDIR_IPTABLES)/usr/lib
|
||||
install -d -m0755 $(IDIR_IPTABLES)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables $(IDIR_IPTABLES)/usr/sbin/
|
||||
install -d -m0755 $(IDIR_IPTABLES)/usr/lib/iptables
|
||||
|
|
64
openwrt/package/iptables/files/firewall.awk
Normal file
64
openwrt/package/iptables/files/firewall.awk
Normal file
|
@ -0,0 +1,64 @@
|
|||
BEGIN {
|
||||
print "proto=\"$wan_proto\""
|
||||
print "[ -z \"$proto\" -o \"$proto\" = \"none\" ] && exit"
|
||||
print "ifname=\"$wan_ifname\""
|
||||
print "[ -z \"$ifname\" ] && exit"
|
||||
print ""
|
||||
print "iptables -X input_$ifname 2>&- >&-"
|
||||
print "iptables -N input_$ifname"
|
||||
print "iptables -X forward_$ifname 2>&- >&-"
|
||||
print "iptables -N forward_$ifname"
|
||||
print "iptables -t nat -X prerouting_$ifname 2>&- >&-"
|
||||
print "iptables -t nat -N prerouting_$ifname"
|
||||
print ""
|
||||
print "iptables -A input_rule -i \"$ifname\" -j input_$ifname"
|
||||
print "iptables -A forwarding_rule -i \"$ifname\" -j forward_$ifname"
|
||||
print "iptables -t nat -A prerouting_rule -i \"$ifname\" -j prerouting_$ifname"
|
||||
print ""
|
||||
FS=":"
|
||||
}
|
||||
|
||||
($1 == "accept") || ($1 == "drop") || ($1 == "forward") {
|
||||
delete _opt
|
||||
str2data($2)
|
||||
if ((_l["proto"] == "") && (_l["sport"] _l["dport"] != "")) {
|
||||
_opt[0] = " -p tcp"
|
||||
_opt[1] = " -p udp"
|
||||
} else {
|
||||
_opt[0] = ""
|
||||
}
|
||||
}
|
||||
|
||||
($1 == "accept") {
|
||||
target = " -j ACCEPT"
|
||||
for (o in _opt) {
|
||||
print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
|
||||
print "iptables -A input_$ifname " _opt[o] str2ipt($2) target
|
||||
print ""
|
||||
}
|
||||
}
|
||||
|
||||
($1 == "drop") {
|
||||
for (o in _opt) {
|
||||
print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) " -j DROP"
|
||||
print ""
|
||||
}
|
||||
}
|
||||
|
||||
($1 == "forward") {
|
||||
target = " -j DNAT --to " $3
|
||||
fwopts = ""
|
||||
if ($4 != "") {
|
||||
if ((_l["proto"] == "tcp") || (_l["proto"] == "udp") || (_l["proto"] == "")) {
|
||||
if (_l["proto"] != "") fwopts = " -p " _l["proto"]
|
||||
fwopts = fwopts " --dport " $4
|
||||
target = target ":" $4
|
||||
}
|
||||
else fwopts = ""
|
||||
}
|
||||
for (o in _opt) {
|
||||
print "iptables -t nat -A prerouting_$ifname" _opt[o] str2ipt($2) target
|
||||
print "iptables -A forward_$ifname " _opt[o] " -d " $3 fwopts " -j ACCEPT"
|
||||
print ""
|
||||
}
|
||||
}
|
46
openwrt/package/iptables/files/firewall.config
Normal file
46
openwrt/package/iptables/files/firewall.config
Normal file
|
@ -0,0 +1,46 @@
|
|||
# RULE SYNTAX:
|
||||
#
|
||||
# forward:<match>:<target>[:<port>]
|
||||
# - forwards all packets matched by <match> to <target>,
|
||||
# optionally changing the port to <port>
|
||||
#
|
||||
# accept:<match>
|
||||
# - accepts all traffic matched by <match>
|
||||
#
|
||||
# drop:<match>
|
||||
# - drops all traffic matched by <match>
|
||||
#
|
||||
#
|
||||
# MATCHING OPTIONS:
|
||||
#
|
||||
# src=<ip>
|
||||
# - match the source ip <ip>
|
||||
#
|
||||
# dest=<ip>
|
||||
# - match the destination ip <ip>
|
||||
#
|
||||
# proto=<proto>
|
||||
# - match the protocol by name or number
|
||||
#
|
||||
# sport=<port(s)>
|
||||
# - match the source port(s), see below for syntax
|
||||
#
|
||||
# dport=<port(s)>
|
||||
# - match the destination port(s), see below for syntax
|
||||
#
|
||||
#
|
||||
#
|
||||
# PORT SYNTAX:
|
||||
#
|
||||
# You can enter an arbitrary list of ports and port ranges in the following format:
|
||||
# - 22,53,993,1000-1024
|
||||
#
|
||||
# If you don't set the protocol to tcp or udp, it will apply to both
|
||||
#
|
||||
#
|
||||
#
|
||||
# EXAMPLES:
|
||||
#
|
||||
# drop:dport=22 src=1.3.3.7
|
||||
# accept:proto=tcp dport=22
|
||||
# forward:dport=60168:192.168.1.2:60169
|
|
@ -1,14 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
## Please make changes in /etc/firewall.user
|
||||
${FAILSAFE:+exit}
|
||||
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ "$FAILSAFE" != "true" -a -e /etc/config/network ] && . /etc/config/network
|
||||
|
||||
WAN=$(nvram get wan_ifname)
|
||||
LAN=$(nvram get lan_ifname)
|
||||
. /etc/config/network
|
||||
WAN="$wan_ifname"
|
||||
LAN="$lan_ifname"
|
||||
|
||||
## CLEAR TABLES
|
||||
for T in filter nat; do
|
||||
|
@ -38,7 +34,7 @@ iptables -t nat -N postrouting_rule
|
|||
iptables -A INPUT -j input_rule
|
||||
|
||||
# allow
|
||||
iptables -A INPUT ${WAN:+-i \! $WAN} -j ACCEPT # allow from lan/wifi interfaces
|
||||
[ -z "$WAN" ] || iptables -A INPUT -i \! $WAN -j ACCEPT # allow from lan/wifi interfaces
|
||||
iptables -A INPUT -p icmp -j ACCEPT # allow ICMP
|
||||
iptables -A INPUT -p gre -j ACCEPT # allow GRE
|
||||
|
||||
|
@ -94,3 +90,6 @@ iptables -t nat -N postrouting_rule
|
|||
|
||||
## USER RULES
|
||||
[ -f /etc/firewall.user ] && . /etc/firewall.user
|
||||
[ -n "$WAN" -a -e /etc/config/firewall ] && {
|
||||
awk -f /usr/lib/common.awk -f /usr/lib/firewall.awk /etc/config/firewall | ash
|
||||
}
|
31
openwrt/package/iptables/files/firewall.user
Executable file
31
openwrt/package/iptables/files/firewall.user
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
. /etc/config/network
|
||||
|
||||
WAN="$wan_ifname"
|
||||
LAN="$lan_ifname"
|
||||
|
||||
iptables -F input_rule
|
||||
iptables -F output_rule
|
||||
iptables -F forwarding_rule
|
||||
iptables -t nat -F prerouting_rule
|
||||
iptables -t nat -F postrouting_rule
|
||||
|
||||
### BIG FAT DISCLAIMER
|
||||
## The "-i $WAN" is used to match packets that come in via the $WAN interface.
|
||||
## it WILL NOT MATCH packets sent from the $WAN ip address -- you won't be able
|
||||
## to see the effects from within the LAN.
|
||||
|
||||
### Open port to WAN
|
||||
## -- This allows port 22 to be answered by (dropbear on) the router
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
|
||||
# iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
|
||||
|
||||
### Port forwarding
|
||||
## -- This forwards port 8080 on the WAN to port 80 on 192.168.1.2
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8080 -j DNAT --to 192.168.1.2:80
|
||||
# iptables -A forwarding_rule -i $WAN -p tcp --dport 80 -d 192.168.1.2 -j ACCEPT
|
||||
|
||||
### DMZ
|
||||
## -- Connections to ports not handled above will be forwarded to 192.168.1.2
|
||||
# iptables -t nat -A prerouting_rule -i $WAN -j DNAT --to 192.168.1.2
|
||||
# iptables -A forwarding_rule -i $WAN -d 192.168.1.2 -j ACCEPT
|
|
@ -1,16 +1,14 @@
|
|||
[ "${INTERFACE%%[0-9]*}" = "atm" ] && {
|
||||
case "$ACTION" in
|
||||
register)
|
||||
[ "$(nvram get pppoe_atm)" = 1 ] && {
|
||||
VPI=$(nvram get atm_vpi)
|
||||
VCI=$(nvram get atm_vci)
|
||||
case "$(nvram get atm_encaps)" in
|
||||
[ "$pppoe_atm" = 1 ] && {
|
||||
case "$atm_encaps" in
|
||||
0|vc) ENCAPS=0 ;;
|
||||
1|llc) ENCAPS=1 ;;
|
||||
*) ENCAPS=0 ;;
|
||||
esac
|
||||
insmod br2684 2>&- >&-
|
||||
br2684ctl -c0 -e${ENCAPS} -a${VPI:-8}.${VCI:-35} &
|
||||
br2684ctl -c0 -e${ENCAPS} -a${atm_vpi:-8}.${atm_vci:-35} &
|
||||
}
|
||||
;;
|
||||
unregister)
|
||||
|
|
|
@ -96,7 +96,7 @@ image_check_bcom(int imagefd, const char *mtd)
|
|||
}
|
||||
|
||||
/* check if image fits to mtd device */
|
||||
fd = mtd_open(mtd, O_RDWR);
|
||||
fd = mtd_open(mtd, O_RDWR | O_SYNC);
|
||||
if(fd < 0) {
|
||||
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
|
||||
exit(1);
|
||||
|
@ -113,6 +113,7 @@ image_check_bcom(int imagefd, const char *mtd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -148,7 +149,7 @@ int mtd_check(char *mtd)
|
|||
struct mtd_info_user mtdInfo;
|
||||
int fd;
|
||||
|
||||
fd = mtd_open(mtd, O_RDWR);
|
||||
fd = mtd_open(mtd, O_RDWR | O_SYNC);
|
||||
if(fd < 0) {
|
||||
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
|
||||
return 0;
|
||||
|
@ -171,7 +172,7 @@ mtd_unlock(const char *mtd)
|
|||
struct mtd_info_user mtdInfo;
|
||||
struct erase_info_user mtdLockInfo;
|
||||
|
||||
fd = mtd_open(mtd, O_RDWR);
|
||||
fd = mtd_open(mtd, O_RDWR | O_SYNC);
|
||||
if(fd < 0) {
|
||||
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
|
||||
exit(1);
|
||||
|
@ -222,7 +223,7 @@ mtd_erase(const char *mtd)
|
|||
struct mtd_info_user mtdInfo;
|
||||
struct erase_info_user mtdEraseInfo;
|
||||
|
||||
fd = mtd_open(mtd, O_RDWR);
|
||||
fd = mtd_open(mtd, O_RDWR | O_SYNC);
|
||||
if(fd < 0) {
|
||||
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
|
||||
exit(1);
|
||||
|
@ -260,8 +261,9 @@ mtd_write(int imagefd, const char *mtd, int quiet)
|
|||
size_t r, w, e;
|
||||
struct mtd_info_user mtdInfo;
|
||||
struct erase_info_user mtdEraseInfo;
|
||||
int ret = 0;
|
||||
|
||||
fd = mtd_open(mtd, O_RDWR);
|
||||
fd = mtd_open(mtd, O_RDWR | O_SYNC);
|
||||
if(fd < 0) {
|
||||
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
|
||||
exit(1);
|
||||
|
@ -318,7 +320,8 @@ mtd_write(int imagefd, const char *mtd, int quiet)
|
|||
}
|
||||
if (!quiet)
|
||||
fprintf(stderr, "\b\b\b\b");
|
||||
|
||||
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -463,6 +466,8 @@ int main (int argc, char **argv)
|
|||
break;
|
||||
}
|
||||
|
||||
sync();
|
||||
|
||||
if (boot)
|
||||
kill(1, 15); // send SIGTERM to init for reboot
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/sh
|
||||
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} &
|
||||
route -n 2>&- | grep '^0.0.0.0' >&- && /usr/sbin/ntpclient -c 1 -s -h ${ntp_server:-pool.ntp.org} &
|
||||
}
|
||||
;;
|
||||
ifdown)
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
LAN_IF=$(nvram get lan_ifname)
|
||||
WIFI_IF=$(nvram get wifi_ifname)
|
||||
OPTIONS="$LAN_IF $WIFI_IF"
|
||||
OPTIONS="$lan_ifname $wifi_ifname"
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#!/bin/sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
. /etc/config/network
|
||||
type=$1
|
||||
|
||||
[ "$(nvram get ${type}_proto)" = "pppoa" ] || {
|
||||
eval "proto=\"\${${type}_proto}\""
|
||||
[ "$proto" = "pppoa" ] || {
|
||||
echo "$0: ${type}_proto isn't pppoa"
|
||||
exit
|
||||
}
|
||||
|
@ -14,32 +13,24 @@ for module in slhc ppp_generic pppoatm; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
VPI=$(nvram get atm_vpi)
|
||||
VCI=$(nvram get atm_vci)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 1 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
KEEPALIVE=${ppp_redialperiod:+lcp-echo-interval $ppp_redialperiod lcp-echo-failure 5}
|
||||
case "$ppp_demand" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
DEMAND=${ppp_idletime:+demand idle $ppp_idletime}
|
||||
[ -f /etc/ppp/filter ] && DEMAND=${DEMAND:+precompiled-active-filter /etc/ppp/filter $DEMAND}
|
||||
;;
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1500}
|
||||
MTU=${ppp_mtu:-1500}
|
||||
|
||||
/usr/sbin/pppd \
|
||||
plugin pppoatm.so ${VPI:-8}.${VCI:-35} \
|
||||
plugin pppoatm.so ${atm_vpi:-8}.${atm_vci:-35} \
|
||||
usepeerdns \
|
||||
defaultroute \
|
||||
linkname $type \
|
||||
ipparam $type \
|
||||
user "$USERNAME" \
|
||||
password "$PASSWORD" \
|
||||
user "$ppp_username" \
|
||||
password "$ppp_passwd" \
|
||||
mtu $MTU mru $MTU \
|
||||
$DEMAND \
|
||||
$KEEPALIVE
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#!/bin/sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
. /etc/functions.sh
|
||||
. /etc/network.overrides
|
||||
[ -e /etc/config/network ] && . /etc/config/network
|
||||
. /etc/config/network
|
||||
type=$1
|
||||
|
||||
[ "$(nvram get ${type}_proto)" = "pppoe" ] || {
|
||||
eval "proto=\"\${${type}_proto}\""
|
||||
[ "$proto" = "pppoe" ] || {
|
||||
echo "$0: ${type}_proto isn't pppoe"
|
||||
exit
|
||||
}
|
||||
|
@ -14,22 +13,16 @@ for module in slhc ppp_generic pppox pppoe; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
IFNAME=$(nvram get ${type}_device)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 1 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
eval "IFNAME=\"\${${type}_device}\""
|
||||
KEEPALIVE=${ppp_redialperiod:+lcp-echo-interval $ppp_redialperiod lcp-echo-failure 5}
|
||||
case "$ppp_demand" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
DEMAND=${ppp_idletime:+demand idle $ppp_idletime}
|
||||
[ -f /etc/ppp/filter ] && DEMAND=${DEMAND:+precompiled-active-filter /etc/ppp/filter $DEMAND}
|
||||
;;
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1492}
|
||||
MTU=${ppp_mtu:-1492}
|
||||
|
||||
ifconfig $IFNAME up
|
||||
/usr/sbin/pppd \
|
||||
|
@ -39,8 +32,8 @@ ifconfig $IFNAME up
|
|||
defaultroute \
|
||||
linkname $type \
|
||||
ipparam $type \
|
||||
user "$USERNAME" \
|
||||
password "$PASSWORD" \
|
||||
user "$ppp_username" \
|
||||
password "$ppp_passwd" \
|
||||
mtu $MTU mru $MTU \
|
||||
$DEMAND \
|
||||
$KEEPALIVE \
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
#!/bin/sh
|
||||
. /etc/functions.sh
|
||||
[ $# = 0 ] && { echo " $0 <group>"; exit; }
|
||||
. /etc/config/network
|
||||
type=$1
|
||||
|
||||
[ "$(nvram get ${type}_proto)" = "pptp" ] || exit
|
||||
eval "proto=\"\${${type}_proto}\""
|
||||
[ "$proto" = "pptp" ] || {
|
||||
echo "$0: ${type}_proto isn't pptp"
|
||||
exit
|
||||
}
|
||||
|
||||
[ -d "/var/lock" ] || mkdir -p /var/lock || exit 1
|
||||
|
||||
|
@ -10,35 +15,21 @@ for module in slhc ppp_generic ppp_async ip_gre; do
|
|||
/sbin/insmod $module 2>&- >&-
|
||||
done
|
||||
|
||||
PPTP_PROTO="$(nvram get pptp_proto)"
|
||||
[ "$PPTP_PROTO" = "static" ] || PPTP_PROTO=""
|
||||
PPTP_PROTO="${PPTP_PROTO:-dhcp}"
|
||||
IP=$(nvram get pptp_server_ip)
|
||||
USERNAME=$(nvram get ppp_username)
|
||||
PASSWORD=$(nvram get ppp_passwd)
|
||||
KEEPALIVE=$(nvram get ppp_redialperiod)
|
||||
KEEPALIVE=${KEEPALIVE:+lcp-echo-interval 10 lcp-echo-failure $KEEPALIVE}
|
||||
DEMAND=$(nvram get ppp_demand)
|
||||
case "$DEMAND" in
|
||||
KEEPALIVE=${ppp_redialperiod:+lcp-echo-interval $ppp_redialperiod lcp-echo-failure 5}
|
||||
case "$ppp_demand" in
|
||||
on|1|enabled)
|
||||
DEMAND=$(nvram get ppp_idletime)
|
||||
DEMAND=${IDLETIME:+demand idle $IDLETIME}
|
||||
DEMAND=${ppp_idletime:+demand idle $ppp_idletime}
|
||||
[ -f /etc/ppp/filter ] && DEMAND=${DEMAND:+precompiled-active-filter /etc/ppp/filter $DEMAND}
|
||||
;;
|
||||
*) DEMAND="persist";;
|
||||
esac
|
||||
MTU=$(nvram get ppp_mtu)
|
||||
MTU=${MTU:-1452}
|
||||
MTU=${ppp_mtu:-1452}
|
||||
|
||||
do_ifup $PPTP_PROTO $type
|
||||
|
||||
# hack for some buggy ISPs
|
||||
NETMASK=$(nvram get ${type}_netmask)
|
||||
IFNAME=$(nvram get ${type}_device)
|
||||
[ -z "$NETMASK" -o -z "$IFNAME" ] || ifconfig $IFNAME netmask $NETMASK
|
||||
[ "$pptp_proto" = "static" ] || pptp_proto="dhcp"
|
||||
do_ifup $pptp_proto $type
|
||||
|
||||
/usr/sbin/pppd \
|
||||
pty "/usr/sbin/pptp $IP --loglevel 0 --nolaunchpppd" \
|
||||
pty "/usr/sbin/pptp $pptp_server_ip --loglevel 0 --nolaunchpppd" \
|
||||
file /etc/ppp/options.pptp \
|
||||
connect /bin/true \
|
||||
usepeerdns \
|
||||
|
@ -46,8 +37,8 @@ IFNAME=$(nvram get ${type}_device)
|
|||
replacedefaultroute \
|
||||
linkname "$type" \
|
||||
ipparam "$type" \
|
||||
user "$USERNAME" \
|
||||
password "$PASSWORD" \
|
||||
user "$ppp_username" \
|
||||
password "$ppp_passwd" \
|
||||
mtu $MTU mru $MTU \
|
||||
$DEMAND \
|
||||
$KEEPALIVE
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
DEFAULT_lan_proto="static"
|
||||
DEFAULT_lan_ifname="br0"
|
||||
DEFAULT_lan_ifnames="eth0"
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
DEFAULT_lan_hwaddr=`echo $(strings /dev/mtdblock/3 | grep -A1 maca | grep :)`
|
||||
DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr##* }
|
||||
DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname=${DEFAULT_lan_proto}
|
||||
lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
DEFAULT_lan_proto="static"
|
||||
DEFAULT_lan_ifname="br0"
|
||||
DEFAULT_lan_ifnames="eth0"
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
# DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname=${DEFAULT_lan_proto}
|
||||
lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
66
openwrt/target/linux/package/base-files/files/brcm-2.4/etc/init.d/S04nvram
Executable file
66
openwrt/target/linux/package/base-files/files/brcm-2.4/etc/init.d/S04nvram
Executable file
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh
|
||||
# NVRAM setup
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
|
||||
# WGT634u
|
||||
grep 'mtd0: 00060000' /proc/mtd 2>&- >&- && exit
|
||||
|
||||
alias debug=${DEBUG:-:}
|
||||
|
||||
nvram_default() {
|
||||
[ -z "$(nvram get $1)" ] && nvram set "$1=$2"
|
||||
}
|
||||
|
||||
nvram_set() { # for the linksys fixup part
|
||||
[ "$(nvram get "$1")" = "$2" -a "$2" != "" ] || {
|
||||
COMMIT=1
|
||||
/usr/sbin/nvram set "$1=$2"
|
||||
}
|
||||
}
|
||||
|
||||
# work around braindead CFE defaults in linksys routers
|
||||
boardtype=$(nvram get boardtype)
|
||||
boardnum=$(nvram get boardnum)
|
||||
boardflags=$(($(nvram get boardflags)))
|
||||
adm_switch="$(( ($boardflags & 0x80) >> 7 ))"
|
||||
|
||||
case "$(( $boardtype ))" in
|
||||
"1800") #0x708
|
||||
if [ "$adm_switch" = 0 ]; then
|
||||
nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
|
||||
[ "$COMMIT" = 1 ] && {
|
||||
nvram_set sdram_config 0x0062
|
||||
nvram_set clkfreq 216
|
||||
nvram_set sdram_ncdl 0x0
|
||||
nvram_set pa0itssit 62
|
||||
nvram_set pa0b0 0x15eb
|
||||
nvram_set pa0b1 0xfa82
|
||||
nvram_set pa0b2 0xfe66
|
||||
nvram_set pa0maxpwr 0x4e
|
||||
}
|
||||
fi
|
||||
;;
|
||||
"1127") #0x467
|
||||
nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
|
||||
[ "$COMMIT" = 1 ] && {
|
||||
nvram_set sdram_config 0x0062
|
||||
nvram_set sdram_ncdl 0x0
|
||||
nvram_set pa0itssit 62
|
||||
nvram_set pa0b0 0x168b
|
||||
nvram_set pa0b1 0xfabf
|
||||
nvram_set pa0b2 0xfeaf
|
||||
nvram_set pa0maxpwr 0x4e
|
||||
}
|
||||
;;
|
||||
esac
|
||||
[ "$COMMIT" = "1" ] && nvram commit
|
||||
|
||||
# hack for some motorola routers
|
||||
nvram unset wl0gpio0
|
||||
|
||||
[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && {
|
||||
# if default wifi mac, set two higher than the lan mac
|
||||
nvram set il0macaddr=$(nvram get et0macaddr|
|
||||
awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
|
||||
}
|
|
@ -50,7 +50,7 @@ END {
|
|||
c["vlan1ports"] = "4 5"
|
||||
c["lan_ifnames"] = "vlan0 ath0"
|
||||
}
|
||||
if (nvram["boardtype"] == "0x0467") {
|
||||
if ((nvram["boardtype"] == "0x0467") || (nvram["boardtype"] == "0x042f")) {
|
||||
c["vlan0ports"] = "0 1 2 3 5*"
|
||||
c["vlan1ports"] = "4 5"
|
||||
}
|
||||
|
@ -101,6 +101,8 @@ END {
|
|||
print ""
|
||||
print "## PPP over Ethernet and PPTP"
|
||||
print "# wan_ifname=\"ppp0\""
|
||||
print "# ppp_username=\"my_username\""
|
||||
print "# ppp_passwd=\"my_password\""
|
||||
print "# pptp_server_ip=\"192.168.0.1\""
|
||||
}
|
||||
' > /etc/config/network
|
||||
|
|
|
@ -1,166 +0,0 @@
|
|||
#!/bin/sh
|
||||
# NVRAM setup
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
|
||||
. /etc/network.overrides
|
||||
alias debug=${DEBUG:-:}
|
||||
|
||||
# WGT634u
|
||||
grep 'mtd0: 00060000' /proc/mtd 2>&- >&- && exit
|
||||
|
||||
remap () {
|
||||
for type in lan wifi wan pppoe
|
||||
do
|
||||
for s in '' s
|
||||
do
|
||||
eval nvram set ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\"
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
nvram_default() {
|
||||
[ -z "$(nvram get $1)" ] && nvram set "$1=$2"
|
||||
}
|
||||
|
||||
nvram_set() { # for the linksys fixup part
|
||||
[ "$(nvram get "$1")" = "$2" -a "$2" != "" ] || {
|
||||
COMMIT=1
|
||||
/usr/sbin/nvram set "$1=$2"
|
||||
}
|
||||
}
|
||||
|
||||
# work around braindead CFE defaults in linksys routers
|
||||
boardtype=$(nvram get boardtype)
|
||||
boardflags=$(($(nvram get boardflags)))
|
||||
[ "$boardtype" = "bcm94710dev" ] && boardtype="0xdeadbeef"
|
||||
adm_switch="$(( ($boardflags & 0x80) >> 7 ))"
|
||||
case "$(( $boardtype ))" in
|
||||
"$((0x708))")
|
||||
if [ "$adm_switch" = 0 ]; then
|
||||
nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
|
||||
[ "$COMMIT" = 1 ] && {
|
||||
nvram_set sdram_config 0x0062
|
||||
nvram_set clkfreq 216
|
||||
nvram_set sdram_ncdl 0x0
|
||||
nvram_set pa0itssit 62
|
||||
nvram_set pa0b0 0x15eb
|
||||
nvram_set pa0b1 0xfa82
|
||||
nvram_set pa0b2 0xfe66
|
||||
nvram_set pa0maxpwr 0x4e
|
||||
}
|
||||
fi
|
||||
;;
|
||||
"$((0x467))")
|
||||
nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
|
||||
[ "$COMMIT" = 1 ] && {
|
||||
nvram_set sdram_config 0x0062
|
||||
nvram_set sdram_ncdl 0x0
|
||||
nvram_set pa0itssit 62
|
||||
nvram_set pa0b0 0x168b
|
||||
nvram_set pa0b1 0xfabf
|
||||
nvram_set pa0b2 0xfeaf
|
||||
nvram_set pa0maxpwr 0x4e
|
||||
}
|
||||
;;
|
||||
esac
|
||||
[ "$COMMIT" = "1" ] && nvram commit
|
||||
|
||||
|
||||
# linksys bug; remove when not using static configuration for lan
|
||||
nvram set lan_proto="static"
|
||||
|
||||
# hacks for wrt54g 1.x hardware
|
||||
[ "$(nvram get boardnum)" = "42" \
|
||||
-a "$(nvram get boardtype)" = "bcm94710dev" ] && {
|
||||
debug "### wrt54g 1.x hack ###"
|
||||
nvram set vlan1hwname="et0"
|
||||
nvram set vlan2hwname="et0"
|
||||
remap eth0 vlan2
|
||||
remap eth1 vlan1
|
||||
}
|
||||
|
||||
# hacks for asus wl-500g deluxe
|
||||
[ "$(nvram get boardtype)" = "bcm95365r" \
|
||||
-a "$(nvram get boardnum)" = "45" ] && {
|
||||
debug "### wl-500g deluxe hacks ###"
|
||||
nvram set vlan0hwname="et0"
|
||||
nvram set vlan1hwname="et0"
|
||||
remap eth0.1 vlan0
|
||||
remap eth0 vlan1
|
||||
|
||||
# set up the vlan*ports variables for the asus wl-500g deluxe
|
||||
# if they don't already exist
|
||||
nvram_default vlan0ports "1 2 3 4 5*"
|
||||
nvram_default vlan1ports "0 5"
|
||||
}
|
||||
|
||||
# hacks for asus
|
||||
case "$(nvram get productid)" in
|
||||
WL300g)
|
||||
debug "### wl-300g hacks ###"
|
||||
nvram set lan_ifnames="eth0 eth2"
|
||||
nvram set wan_ifname="none"
|
||||
;;
|
||||
WLHDD)
|
||||
debug "### wl-hdd hacks ###"
|
||||
nvram set lan_ifnames="eth1 eth2"
|
||||
nvram set wan_ifname="none"
|
||||
;;
|
||||
*)
|
||||
# wl-500g defaults. these are placed here, because WL-HDD and WL-300g
|
||||
# might have the same nvram settings.
|
||||
[ "$(nvram get boardnum)" = "asusX" \
|
||||
-a "$(nvram get boardtype)" = "bcm94710dev" ] && {
|
||||
nvram_default wan_device "eth1"
|
||||
}
|
||||
;;
|
||||
esac
|
||||
|
||||
# hacks for wap54g hardware
|
||||
[ "$(nvram get boardnum)" = "2" \
|
||||
-o "$(nvram get boardnum)" = "1024" ] && {
|
||||
debug "### wap54g hack ###"
|
||||
nvram set wan_ifname="none"
|
||||
}
|
||||
|
||||
# hacks for buffalo wla2-g54l
|
||||
[ "$(nvram get boardnum)" = "00" \
|
||||
-a "$(nvram get product_name)" = "Product_name" \
|
||||
-o "$(nvram get product_name)" = "WLA2-G54L" ] && {
|
||||
debug "### wla2-g54l hacks ###"
|
||||
nvram set wan_ifname="none"
|
||||
nvram set lan_ifnames="vlan0"
|
||||
}
|
||||
|
||||
# needed at least for wrt54gs v1.1 and wrt54g v2.0, v2.2
|
||||
[ \! -z "$(nvram get boardrev)" ] && {
|
||||
nvram_default wl0id 0x4320
|
||||
}
|
||||
|
||||
# defaults
|
||||
nvram_default lan_ifname "br0"
|
||||
nvram_default lan_ifnames "$FAILSAFE_ifnames"
|
||||
|
||||
nvram_default wan_ifname "vlan1"
|
||||
nvram_default wan_device "vlan1"
|
||||
nvram_default wan_proto "dhcp"
|
||||
|
||||
nvram_default wl0_ssid OpenWrt
|
||||
nvram_default wl0_mode ap
|
||||
nvram_default wl0_infra 1
|
||||
nvram_default wl0_radio 1
|
||||
|
||||
WAN_PROTO="$(nvram get wan_proto)"
|
||||
WAN_IFNAME="$(nvram get wan_ifname)"
|
||||
case "$WAN_PROTO" in
|
||||
pp*) [ "${WAN_IFNAME%%[0-9]*}" = "ppp" ] || nvram set wan_ifname=ppp0;;
|
||||
*) [ "${WAN_IFNAME%%[0-9]*}" = "ppp" ] && nvram set wan_ifname="$(nvram get wan_device)";;
|
||||
esac
|
||||
|
||||
[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && {
|
||||
# if default wifi mac, set two higher than the lan mac
|
||||
nvram set il0macaddr=$(nvram get et0macaddr|
|
||||
awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
# hacks for wrt54g 1.x hardware
|
||||
[ "$(nvram get boardnum)" = "42" \
|
||||
-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="vlan0 vlan2 eth2"
|
||||
|
||||
# hacks for asus wl-500g deluxe
|
||||
[ "$(nvram get boardtype)" = "bcm95365r" \
|
||||
-a "$(nvram get boardnum)" = "45" ] && FAILSAFE_ifnames="vlan0 eth1"
|
||||
|
||||
# hacks for wap54g hardware
|
||||
[ "$(nvram get boardnum)" = "2" \
|
||||
-o "$(nvram get boardnum)" = "1024" ] && FAILSAFE_ifnames="eth0 eth1"
|
||||
|
||||
# hack for asus wl-500g hardware
|
||||
[ "$(nvram get boardnum)" = "asusX" \
|
||||
-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="eth0 eth1 eth2"
|
||||
|
||||
FAILSAFE_ifnames=${FAILSAFE_ifnames:-"vlan0 eth1 eth2"}
|
||||
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname="br0"
|
||||
lan_ifnames=$FAILSAFE_ifnames
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
|
@ -50,7 +50,7 @@ END {
|
|||
c["vlan1ports"] = "4 5"
|
||||
c["lan_ifnames"] = "vlan0 ath0"
|
||||
}
|
||||
if (nvram["boardtype"] == "0x0467") {
|
||||
if ((nvram["boardtype"] == "0x0467") || (nvram["boardtype"] == "0x042f")) {
|
||||
c["vlan0ports"] = "0 1 2 3 5*"
|
||||
c["vlan1ports"] = "4 5"
|
||||
}
|
||||
|
@ -101,6 +101,8 @@ END {
|
|||
print ""
|
||||
print "## PPP over Ethernet and PPTP"
|
||||
print "# wan_ifname=\"ppp0\""
|
||||
print "# ppp_username=\"my_username\""
|
||||
print "# ppp_passwd=\"my_password\""
|
||||
print "# pptp_server_ip=\"192.168.0.1\""
|
||||
}
|
||||
' > /etc/config/network
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
DEFAULT_lan_proto="static"
|
||||
DEFAULT_lan_ifname="br0"
|
||||
DEFAULT_lan_ifnames="vlan0 ath0"
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
DEFAULT_lan_hwaddr=${DEFAULT_lan_hwaddr:-${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}}
|
||||
DEFAULT_vlan0hwname="et0"
|
||||
DEFAULT_vlan1hwname="et0"
|
||||
DEFAULT_et0macaddr=$(ifconfig eth0| awk '/eth0/ {print $5 }')
|
||||
DEFAULT_wan_proto="dhcp"
|
||||
DEFAULT_wan_ifname="vlan1"
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname=${DEFAULT_lan_proto}
|
||||
lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
DEFAULT_lan_proto="static"
|
||||
DEFAULT_lan_ifname="br0"
|
||||
DEFAULT_lan_ifnames="eth0"
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname=${DEFAULT_lan_proto}
|
||||
lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
# NVRAM overrides
|
||||
#
|
||||
# This file handles the NVRAM quirks of various hardware.
|
||||
# THIS FILE IS NOT A REPLACEMENT FOR NVRAM
|
||||
|
||||
# Load sysconf defaults
|
||||
[ -f /etc/sysconf ] && . /etc/sysconf
|
||||
|
||||
DEFAULT_lan_proto="static"
|
||||
DEFAULT_lan_ifname="br0"
|
||||
DEFAULT_lan_ifnames="eth0"
|
||||
DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"}
|
||||
DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"}
|
||||
DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}
|
||||
|
||||
# failsafe if reset is held
|
||||
[ "$FAILSAFE" = "true" ] && {
|
||||
echo "### YOU ARE IN FAILSAFE MODE ####"
|
||||
lan_ifname=${DEFAULT_lan_proto}
|
||||
lan_ifnames=${FAILSAFE_ifnames:-${DEFAULT_lan_ifnames}}
|
||||
lan_ipaddr=$DEFAULT_lan_ipaddr
|
||||
lan_netmask=$DEFAULT_lan_netmask
|
||||
lan_hwaddr=$DEFAULT_lan_hwaddr
|
||||
wan_ifname="none"
|
||||
wifi_ifname="none"
|
||||
}
|
Loading…
Reference in a new issue