Skip to content
Snippets Groups Projects
Commit 6a8d8235 authored by Jonas Höglund's avatar Jonas Höglund
Browse files

Initial Commit

parents
Branches
No related tags found
No related merge requests found
Showing
with 909 additions and 0 deletions
#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id$
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=base-files
PKG_RELEASE:=8
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
ifeq ($(REV),)
REV:=0
endif
include $(INCLUDE_DIR)/package.mk
ifneq ($(DUMP),1)
TARGET:=-$(BOARD)-$(KERNEL)
UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version 2>/dev/null}
LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version 2>/dev/null}
else
UCLIBC_VERSION:=<UCLIBC_VERSION>
LIBGCC_VERSION:=<LIBGCC_VERSION>
endif
CONFIG_PACKAGE_base-files$(TARGET):=$(CONFIG_PACKAGE_base-files)
define Package/base-files$(TARGET)
SECTION:=base
CATEGORY:=Base system
DEFAULT:=y
TITLE:=Base filesystem for OpenWrt
DESCRIPTION:=\
This package contains a base filesystem and system scripts for OpenWrt.
URL:=http://openwrt.org/
VERSION:=$(PKG_RELEASE)-$(REV)
endef
define -ar7-2.4/conffiles
/etc/config/network
endef
define -aruba-2.6/conffiles
/etc/config/network
endef
define -au1000-2.6/conffiles
/etc/config/network
endef
define -rb532-2.6/conffiles
/etc/config/network
endef
define -sibyte-2.6/conffiles
/etc/config/network
endef
define -x86-2.6/conffiles
/etc/config/network
endef
define -xscale-2.6/conffiles
/etc/config/network
endef
define Package/base-files$(TARGET)/conffiles
/etc/banner
/etc/hosts
/etc/inittab
/etc/group
/etc/passwd
/etc/profile
/etc/shells
/etc/ipkg.conf
/etc/sysctl.conf
$(call $(TARGET)/conffiles)
endef
define Package/libgcc
SECTION:=libs
CATEGORY:=Base system
DEFAULT:=y
DEPENDS:=@!NATIVE_TOOLCHAIN
TITLE:=GCC support library
URL:=http://gcc.gnu.org/
VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
endef
define Package/libpthread
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=@!NATIVE_TOOLCHAIN
TITLE:=POSIX thread library
URL:=http://uclibc.org/
VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
endef
define Package/uclibc
SECTION:=libs
CATEGORY:=Base system
DEFAULT:=y
DEPENDS:=@!NATIVE_TOOLCHAIN
TITLE:=C library embedded systems
URL:=http://uclibc.org/
VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
endef
define Build/Compile/ar7
$(TARGET_CC) -o $(PKG_BUILD_DIR)/adam2patcher src/adam2patcher.c
endef
define Build/Compile/brcm
$(TARGET_CC) -o $(PKG_BUILD_DIR)/jffs2root src/jffs2root.c
endef
define Build/Compile
$(call Build/Compile/$(BOARD))
endef
define Package/base-files$(TARGET)/install-ar7
mkdir -p $(1)/sbin
$(CP) $(PKG_BUILD_DIR)/adam2patcher $(1)/sbin
endef
define Package/base-files$(TARGET)/install-brcm
rm -f $(1)/etc/config/network
mkdir -p $(1)/sbin
$(CP) $(PKG_BUILD_DIR)/jffs2root $(1)/sbin
endef
define Package/base-files$(TARGET)/install
$(CP) ./default/* $(1)/
if [ -d $(BOARD)-$(KERNEL) ]; then \
$(CP) $(BOARD)-$(KERNEL)/* $(1)/; \
fi
$(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
$(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
mkdir -p $(1)/dev
mkdir -p $(1)/etc/crontabs
mkdir -p $(1)/jffs
mkdir -p $(1)/lib
mkdir -p $(1)/mnt
mkdir -p $(1)/proc
mkdir -p $(1)/tmp
mkdir -p $(1)/usr/lib
mkdir -p $(1)/usr/bin
mkdir -p $(1)/sys
mkdir -p $(1)/www
ln -sf /proc/mounts $(1)/etc/mtab
rm -f $(1)/var
ln -sf /tmp $(1)/var
mkdir -p $(1)/etc
$(call Package/base-files$(TARGET)/install-$(BOARD),$(1))
endef
define Package/libgcc/install
install -m0755 -d $(1)/lib
$(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
endef
define Package/libpthread/install
install -m0755 -d $(1)/lib
$(CP) $(STAGING_DIR)/lib/libpthread.so.* $(1)/lib/
$(CP) $(STAGING_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
endef
define Package/uclibc/install
install -m0755 -d $(1)/lib
for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
$(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
$(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
done
endef
$(eval $(call BuildPackage,base-files$(TARGET)))
$(eval $(call BuildPackage,libgcc))
$(eval $(call BuildPackage,libpthread))
$(eval $(call BuildPackage,uclibc))
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
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"
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"
}
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
mount -o move $2/sys /sys
return 0
}
}
mountdp() { # <device> <mount_point> <ignored> <fs>
dev=$1; mnt=$2; shift 2; opt=$*
mount $dev $mnt $opt
dupe $mnt $rom
pivot $mnt /rom
}
ramoverlay() {
mkdir -p /tmp/root
mountdp /tmp/root /mnt -o bind
}
[ "${0##*/}" = "firstboot" ] && {
[ -z "$rom" ] && {
echo "You do not have a squashfs partition; aborting"
echo "(firstboot cannot be run on jffs2 based firmwares)"
exit 1
}
[ "$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
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
}
# Network configuration file
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 static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
#!/bin/sh /etc/rc.common
# ADAM2 patcher for Netgear DG834 and compatible
# Copyright (C) 2006 OpenWrt.org
start() {
MD5="$(md5sum /dev/mtdblock/0 | awk '{print $1}')"
[ "$MD5" = "0530bfdf00ec155f4182afd70da028c1" ] && {
mtd unlock adam2
/sbin/adam2patcher /dev/mtdblock/0
}
rm -f /etc/init.d/S00adam2 /sbin/adam2patcher >&- 2>&-
}
#!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount none /proc -t proc
[ -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
#!/bin/sh
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
mtd erase OpenWrt
else
mount -o remount,rw /dev/root /
fi
else
. /bin/firstboot
echo "switching to jffs2"
mount /dev/mtdblock/4 /jffs -t jffs2
pivot /jffs /rom || {
echo "jffs2 unusable; using ramdisk"
ramoverlay
}
fi
fi
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
mount -t sysfs none /sys 2>&-
# Network configuration file
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
# Copyright (C) 2006 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 type bridge
option ifname "eth0 ath0"
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
mount none /proc -t proc
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 filesystem
mount | grep jffs2 >&-
if [ $? = 0 ] ; then
if [ $(cat /proc/mtd | wc -l) = 6 ]; then
mtd erase filesystem
jffs2root --move
else
mount -o remount,rw /dev/root /
fi
else
. /bin/firstboot
fi
fi
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
mount -t sysfs none /sys 2>&-
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
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"
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"
}
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
mount -o move $2/sys /sys
return 0
}
}
mountdp() { # <device> <mount_point> <ignored> <fs>
dev=$1; mnt=$2; shift 2; opt=$*
mount $dev $mnt $opt
dupe $mnt $rom
pivot $mnt /rom
}
ramoverlay() {
mkdir -p /tmp/root
mountdp /tmp/root /mnt -o bind
}
[ "${0##*/}" = "firstboot" ] && {
[ -z "$rom" ] && {
echo "You do not have a squashfs partition; aborting"
echo "(firstboot cannot be run on jffs2 based firmwares)"
exit 1
}
[ "$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
}
# Copyright (C) 2006 OpenWrt.org
config wifi-device wl0
option type broadcom
option channel 5
config wifi-iface
option device wl0
option mode ap
option ssid OpenWrt
option hidden 0
option encryption none
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
start() {
[ -e /etc/config/network ] && exit 0
mkdir -p /etc/config
(
if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
# WGT634u
echo boardtype=wgt634u
else
strings /dev/mtdblock/3
fi
) | awk '
function p(cfgname, name) {
if (c[name] != "") print " option " cfgname " \"" c[name] "\""
}
BEGIN {
FS="="
c["lan_ifname"]="eth0.0 wl0"
c["wan_ifname"]="eth0.1"
c["vlan0ports"]="1 2 3 4 5*"
c["vlan1ports"]="0 5"
}
($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") {
nvram[$1] = $2
}
END {
# v1 hardware
if (nvram["boardtype"] == "bcm94710dev") {
# Asus WL-500g
if (nvram["boardnum"] == "asusX") {
c["lan_ifname"]="eth0 eth1 wl0" # FIXME
c["wan_ifname"]=""
}
}
if (nvram["boardtype"] == "wgt634u") {
c["vlan0ports"] = "0 1 2 3 5*"
c["vlan1ports"] = "4 5"
c["lan_ifname"] = "eth0.0 ath0"
}
if ((nvram["boardtype"] == "0x0467") || (nvram["boardtype"] == "0x042f")) {
c["vlan0ports"] = "0 1 2 3 5*"
c["vlan1ports"] = "4 5"
}
# WAP54G
if ((nvram["boardnum"] == "2") || \
(nvram["boardnum"] == "1024")) {
c["lan_ifname"]="eth0 wl0"
c["wan_ifname"]=""
}
print "#### VLAN configuration "
print "config switch eth0"
p("vlan0", "vlan0ports")
p("vlan1", "vlan1ports")
print ""
print ""
print "#### Loopback configuration"
print "config interface loopback"
print " option ifname \"lo\""
print " option proto static"
print " option ipaddr 127.0.0.1"
print " option netmask 255.0.0.0"
print ""
print ""
print "#### LAN configuration"
print "config interface lan"
print " option type bridge"
p("ifname", "lan_ifname")
print " option proto static"
print " option ipaddr 192.168.1.1"
print " option netmask 255.255.255.0"
print ""
print ""
print "#### WAN configuration"
print "config interface wan"
p("ifname", "wan_ifname")
print " option proto dhcp"
}' > /etc/config/network
}
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount none /proc -t proc
[ -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
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
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
mount -o remount,rw /dev/root /
else
. /bin/firstboot
is_dirty
[ $? != 0 ] && {
echo "switching to jffs2"
mount /dev/mtdblock/4 /jffs -t jffs2
pivot /jffs /rom
} || {
echo "jffs2 unusable; using ramdisk"
ramoverlay
}
fi
fi
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
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"
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"
}
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
mount -o move $2/sys /sys
return 0
}
}
mountdp() { # <device> <mount_point> <ignored> <fs>
dev=$1; mnt=$2; shift 2; opt=$*
mount $dev $mnt $opt
dupe $mnt $rom
pivot $mnt /rom
}
ramoverlay() {
mkdir -p /tmp/root
mountdp /tmp/root /mnt -o bind
}
[ "${0##*/}" = "firstboot" ] && {
[ -z "$rom" ] && {
echo "You do not have a squashfs partition; aborting"
echo "(firstboot cannot be run on jffs2 based firmwares)"
exit 1
}
[ "$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
}
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
start() {
[ -e /etc/config/network ] && exit 0
mkdir -p /etc/config
(
if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
# WGT634u
echo boardtype=wgt634u
else
strings /dev/mtdblock/3
fi
) | awk '
function p(cfgname, name) {
if (c[name] != "") print " option " cfgname " \"" c[name] "\""
}
BEGIN {
FS="="
c["lan_ifname"]="eth0.0 wl0"
c["wan_ifname"]="eth0.1"
c["vlan0ports"]="1 2 3 4 5*"
c["vlan1ports"]="0 5"
}
($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") {
nvram[$1] = $2
}
END {
# v1 hardware
if (nvram["boardtype"] == "bcm94710dev") {
# Asus WL-500g
if (nvram["boardnum"] == "asusX") {
c["lan_ifname"]="eth0 eth1 wl0" # FIXME
c["wan_ifname"]=""
}
}
if (nvram["boardtype"] == "wgt634u") {
c["vlan0ports"] = "0 1 2 3 5*"
c["vlan1ports"] = "4 5"
c["lan_ifname"] = "eth0.0 ath0"
}
if ((nvram["boardtype"] == "0x0467") || (nvram["boardtype"] == "0x042f")) {
c["vlan0ports"] = "0 1 2 3 5*"
c["vlan1ports"] = "4 5"
}
# WAP54G
if ((nvram["boardnum"] == "2") || \
(nvram["boardnum"] == "1024")) {
c["lan_ifname"]="eth0 wl0"
c["wan_ifname"]=""
}
print "#### VLAN configuration "
print "config switch eth0"
p("vlan0", "vlan0ports")
p("vlan1", "vlan1ports")
print ""
print ""
print "#### Loopback configuration"
print "config interface loopback"
print " option ifname \"lo\""
print " option proto static"
print " option ipaddr 127.0.0.1"
print " option netmask 255.0.0.0"
print ""
print ""
print "#### LAN configuration"
print "config interface lan"
print " option type bridge"
p("ifname", "lan_ifname")
print " option proto static"
print " option ipaddr 192.168.1.1"
print " option netmask 255.255.255.0"
print ""
print ""
print "#### WAN configuration"
print "config interface wan"
p("ifname", "wan_ifname")
print " option proto dhcp"
}' > /etc/config/network
}
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount none /proc -t proc
[ -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
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
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
mount -o remount,rw /dev/root /
else
. /bin/firstboot
is_dirty
[ $? != 0 ] && {
echo "switching to jffs2"
mount /dev/mtdblock/4 /jffs -t jffs2
pivot /jffs /rom
} || {
echo "jffs2 unusable; using ramdisk"
ramoverlay
}
fi
fi
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
mount -t sysfs none /sys 2>&-
#!/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-1)
}
}
EOF
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment