Skip to content
Snippets Groups Projects
Commit cd0a932a authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

gluon-setup-mode: provide alternative rc.d directory for procd

parent 60e0a560
No related branches found
No related tags found
No related merge requests found
Showing
with 165 additions and 88 deletions
#!/bin/sh /etc/rc.common
START=15
SETUP_MODE_ADDR=192.168.1.1
SETUP_MODE_NETMASK=255.255.255.0
SETUP_MODE_DHCP_RANGE=192.168.1.2,192.168.1.254
delete_interface() {
[ "$1" = 'loopback' ] || uci_remove network "$1"
}
check_enable() {
config_get enabled "$1" enabled
config_get configured "$1" configured
if [ "$enabled" = 1 -o "$configured" != 1 ]; then
export enable=1
fi
}
setup_network() {
(
export UCI_CONFIG_DIR=/var/gluon/setup-mode/config
mkdir -p "$UCI_CONFIG_DIR"
cp /etc/config/network "$UCI_CONFIG_DIR"
config_load network
config_foreach delete_interface interface
uci_add network interface setup
uci_set network setup ifname "$(lua -e 'print(require("gluon.sysconfig").setup_ifname)')"
uci_set network setup type 'bridge'
uci_set network setup proto 'static'
uci_set network setup ipaddr "$SETUP_MODE_ADDR"
uci_set network setup netmask "$SETUP_MODE_NETMASK"
uci_commit network
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
service_start /sbin/netifd -c "$UCI_CONFIG_DIR"
setup_switch() { return 0; }
include /lib/network
setup_switch
)
}
start() {
enable=0
config_load gluon-setup-mode
config_foreach check_enable setup_mode
if [ "$enable" = '1' ]; then
lua -luci -e 'require "luci.model.uci"; uci_state=luci.model.uci.cursor_state(); uci_state:section("gluon-setup-mode", "setup_mode", nil, { running = "1" }); uci_state:save("gluon-setup-mode")'
uci set 'gluon-setup-mode.@setup_mode[0].enabled=0'
uci commit gluon-setup-mode
setup_network
/usr/sbin/telnetd -l /lib/gluon/setup-mode/ash-login
/etc/init.d/dropbear start
/usr/sbin/uhttpd -h /lib/gluon/setup-mode/www -x /cgi-bin -A 1 -R -p 0.0.0.0:80
/usr/sbin/dnsmasq -p 0 -F $SETUP_MODE_DHCP_RANGE -l /tmp/dhcp.leases -O option:router
/etc/init.d/led start
# correctly finish firstboot
/etc/init.d/done boot
. /etc/diag.sh
get_status_led
status_led_set_timer 1000 300
# block further boot
while true; do sleep 1; done
fi
}
/etc/init.d/dropbear
\ No newline at end of file
/etc/init.d/log
\ No newline at end of file
S20network
\ No newline at end of file
/etc/init.d/boot
\ No newline at end of file
/etc/init.d/umount
\ No newline at end of file
/etc/init.d/sysfixtime
\ No newline at end of file
/etc/init.d/boot
\ No newline at end of file
/etc/init.d/system
\ No newline at end of file
/etc/init.d/sysctl
\ No newline at end of file
/etc/init.d/log
\ No newline at end of file
#!/bin/sh /etc/rc.common
if /etc/init.d/haveged enabled; then
. /etc/init.d/haveged
fi
#!/bin/sh /etc/rc.common
START=15
boot() {
lua -luci -e 'require "luci.model.uci"; uci_state=luci.model.uci.cursor_state(); uci_state:section("gluon-setup-mode", "setup_mode", nil, { running = "1" }); uci_state:save("gluon-setup-mode")'
uci set 'gluon-setup-mode.@setup_mode[0].enabled=0'
uci commit gluon-setup-mode
}
#!/bin/sh /etc/rc.common
SETUP_MODE_ADDR=192.168.1.1
SETUP_MODE_NETMASK=255.255.255.0
START=20
STOP=90
USE_PROCD=1
delete_interface() {
[ "$1" = 'loopback' ] || uci_remove network "$1"
}
prepare_config() {
(
export UCI_CONFIG_DIR=/var/gluon/setup-mode/config
mkdir -p "$UCI_CONFIG_DIR"
cp /etc/config/network "$UCI_CONFIG_DIR"
config_load network
config_foreach delete_interface interface
uci_add network interface setup
uci_set network setup ifname "$(lua -e 'print(require("gluon.sysconfig").setup_ifname)')"
uci_set network setup type 'bridge'
uci_set network setup proto 'static'
uci_set network setup ipaddr "$SETUP_MODE_ADDR"
uci_set network setup netmask "$SETUP_MODE_NETMASK"
uci_commit network
)
}
init_switch() {
setup_switch() { return 0; }
include /lib/network
setup_switch
}
start_service() {
prepare_config
init_switch
procd_open_instance
procd_set_param command /sbin/netifd -c /var/gluon/setup-mode/config
procd_set_param respawn
procd_set_param watch network.interface
[ -e /proc/sys/kernel/core_pattern ] && {
procd_set_param limits core="unlimited"
echo '/tmp/%e.%p.%s.%t.core' > /proc/sys/kernel/core_pattern
}
procd_close_instance
}
reload_service() {
init_switch
ubus call network reload
/sbin/wifi reload_legacy
}
stop_service() {
/sbin/wifi down
}
service_running() {
ubus -t 30 wait_for network.interface
/sbin/wifi reload_legacy
}
restart() {
ifdown -a
sleep 1
trap '' TERM
stop "$@"
start "$@"
}
shutdown() {
ifdown -a
stop
}
/etc/init.d/dropbear
\ No newline at end of file
#!/bin/sh /etc/rc.common
START=50
USE_PROCD=1
PROG=/usr/sbin/telnetd
start_service() {
procd_open_instance
procd_set_param command "$PROG" -F -l /lib/gluon/setup-mode/ash-login
procd_close_instance
}
#!/bin/sh /etc/rc.common
START=50
USE_PROCD=1
UHTTPD_BIN="/usr/sbin/uhttpd"
start_service() {
procd_open_instance
procd_set_param respawn
procd_set_param command "$UHTTPD_BIN" -f -h /lib/gluon/setup-mode/www -x /cgi-bin -A 1 -R -p 0.0.0.0:80
procd_close_instance
}
#!/bin/sh /etc/rc.common
SETUP_MODE_DHCP_RANGE=192.168.1.2,192.168.1.254
START=60
USE_PROCD=1
PROG=/usr/sbin/dnsmasq
start_service() {
procd_open_instance
procd_set_param command $PROG -k -p 0 -F $SETUP_MODE_DHCP_RANGE -l /tmp/dhcp.leases -O option:router
procd_set_param respawn
procd_close_instance
}
/etc/init.d/done
\ No newline at end of file
#!/bin/sh /etc/rc.common
START=96
start() {
. /etc/diag.sh
get_status_led
status_led_set_timer 1000 300
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment