diff options
Diffstat (limited to 'target/linux/lantiq/base-files/etc')
9 files changed, 502 insertions, 0 deletions
diff --git a/target/linux/lantiq/base-files/etc/diag.sh b/target/linux/lantiq/base-files/etc/diag.sh new file mode 100644 index 0000000..26f0a3c --- /dev/null +++ b/target/linux/lantiq/base-files/etc/diag.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# Copyright (C) 2012-2013 OpenWrt.org + +. /lib/functions/leds.sh + +status_led="power" + +set_state() { + [ -d /sys/class/leds/power2/ ] && { + + case "$1" in + preinit) + led_set_attr "power2" "trigger" "heartbeat" + status_led_on + ;; + failsafe) + led_off "power2" + status_led_set_timer 100 100 + ;; + done) + led_off "power2" + ;; + esac + return + } + + case "$1" in + preinit) + status_led_set_heartbeat + ;; + failsafe) + [ -d /sys/class/leds/power1 ] && { + status_led_off + led_timer "power1" 100 100 + } || status_led_set_timer 100 100 + ;; + done) + status_led_on + led_off "power1" + ;; + esac +} diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom new file mode 100644 index 0000000..5f1cb00 --- /dev/null +++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -0,0 +1,60 @@ +#!/bin/sh +# based on gabors ralink wisoc implementation + +rt2x00_eeprom_die() { + echo "rt2x00 eeprom: " "$*" + exit 1 +} + +rt2x00_eeprom_extract() { + local part=$1 + local offset=$2 + local count=$3 + local swab=$4 + local mtd + + . /lib/functions.sh + + mtd=$(find_mtd_part $part) + [ -n "$mtd" ] || \ + rt2x00_eeprom_die "no mtd device found for partition $part" + + if [ $swab -gt 0 ]; then + dd if=$mtd of=/lib/firmware/$FIRMWARE bs=2 skip=$offset count=$count conv=swab || \ + rt2x00_eeprom_die "failed to extract from $mtd" + else + dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count || \ + rt2x00_eeprom_die "failed to extract from $mtd" + fi +} + +[ -e /lib/firmware/$FIRMWARE ] && exit 0 +. /lib/functions/lantiq.sh + +case "$FIRMWARE" in +"RT2860.eeprom" ) + local board=$(lantiq_board_name) + case $board in + ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519) + rt2x00_eeprom_extract "board_config" 520 256 1 + ;; + ARV7525PW) + rt2x00_eeprom_extract "board_config" 1040 512 0 + ;; + *) + rt2x00_eeprom_die "board $board is not supported yet" + ;; + esac + ;; +"RT3062.eeprom" ) + local board=$(lantiq_board_name) + case $board in + VGV7510KW22) + rt2x00_eeprom_extract "board_config" 520 256 1 + ;; + *) + rt2x00_eeprom_die "board $board is not supported yet" + ;; + esac + ;; +esac diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata new file mode 100644 index 0000000..0d8084f --- /dev/null +++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -0,0 +1,51 @@ +#!/bin/sh +# Based on ar71xx 11-ath10k-caldata and 10-rt2x00-eeprom + +ath10k_caldata_die() { + echo "ath10k caldata: " "$*" + exit 1 +} + +ath10k_caldata_extract() { + local part=$1 + local offset=$2 + local mtd + + . /lib/functions.sh + + mtd=$(find_mtd_part $part) + [ -n "$mtd" ] || \ + ath10k_caldata_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=2116 || \ + ath10k_caldata_die "failed to extract from $mtd" +} + +ath10k_caldata_set_macaddr() { + local macaddr=$1 + + macaddr_2bin $macaddr | dd of=/lib/firmware/$FIRMWARE \ + conv=notrunc bs=1 seek=6 count=6 +} + +[ -e /lib/firmware/$FIRMWARE ] && exit 0 +. /lib/functions.sh +. /lib/functions/system.sh +. /lib/functions/lantiq.sh + +case "$FIRMWARE" in +"ath10k/cal-pci-0000:02:00.0.bin") + local board=$(lantiq_board_name) + case $board in + BTHOMEHUBV5A) + local lan_mac=$(mtd_get_mac_binary caldata 4364) + local wifi_mac=$(macaddr_add "$lan_mac" 3) + ath10k_caldata_extract "caldata" 20480 + ath10k_caldata_set_macaddr $wifi_mac + ;; + *) + ath10k_caldata_die "board $board is not supported yet" + ;; + esac + ;; +esac diff --git a/target/linux/lantiq/base-files/etc/init.d/dsl_fs b/target/linux/lantiq/base-files/etc/init.d/dsl_fs new file mode 100755 index 0000000..ccba4ae --- /dev/null +++ b/target/linux/lantiq/base-files/etc/init.d/dsl_fs @@ -0,0 +1,35 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2014 OpenWrt.org + +. $IPKG_INSTROOT/lib/functions.sh + +START=30 + +boot() { + MTD=$(find_mtd_index dsl_fw) + + grep /lib/firmware/lantiq /proc/mounts && umount /lib/firmware/lantiq + + mkdir -p /lib/firmware/lantiq + [ "$MTD" -gt 0 ] || return 0 + + mount -t tmpfs none /lib/firmware/lantiq + case "$(dd if=/dev/mtd$MTD bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')" in + 1985) + mkdir -p /tmp/fw_mnt + mount -t jffs2 /dev/mtdblock$MTD /tmp/fw_mnt + cp -a /tmp/fw_mnt/*.bin /lib/firmware/lantiq/ + umount /tmp/fw_mnt + rmdir /tmp/fw_mnt + ;; + 1f8b) + tar xz -C /lib/firmware/lantiq < /dev/mtd$MTD + ;; + *) + echo "No DSL firmware detected in /dev/mtd$MTD (dsl_fw)" + return 0 + ;; + esac + + [ -e /lib/firmware/vdsl.bin ] || ln -s /lib/firmware/lantiq/vr9_dsl_fw_annex_b.bin /lib/firmware/vdsl.bin +} diff --git a/target/linux/lantiq/base-files/etc/init.d/esi b/target/linux/lantiq/base-files/etc/init.d/esi new file mode 100755 index 0000000..ca79070 --- /dev/null +++ b/target/linux/lantiq/base-files/etc/init.d/esi @@ -0,0 +1,7 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2013 OpenWrt.org + +START=19 +start() { + esi $(printf '%012X' $((1+0x$(tr -d : </sys/class/net/eth0/address)))) 2>/dev/console || : +} diff --git a/target/linux/lantiq/base-files/etc/inittab b/target/linux/lantiq/base-files/etc/inittab new file mode 100644 index 0000000..46a1312 --- /dev/null +++ b/target/linux/lantiq/base-files/etc/inittab @@ -0,0 +1,3 @@ +::sysinit:/etc/init.d/rcS S boot +::shutdown:/etc/init.d/rcS K stop +ttyLTQ0::askfirst:/bin/ash --login diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/01_leds b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds new file mode 100644 index 0000000..b9e5420 --- /dev/null +++ b/target/linux/lantiq/base-files/etc/uci-defaults/01_leds @@ -0,0 +1,77 @@ +#!/bin/sh +# +# Copyright (C) 2011 OpenWrt.org +# based on ar71xx +# + +. /lib/functions/uci-defaults.sh +. /lib/functions/lantiq.sh + +[ -e "/sys/class/leds/wifi" ] && ucidef_set_led_wlan "wifi" "wifi" "wifi" "phy0tpt" +[ -e "/sys/class/leds/usb" ] && ucidef_set_led_usbdev "usb" "usb" "usb" "1-1" +[ -e "/sys/class/leds/usb2" ] && ucidef_set_led_usbdev "usb2" "usb2" "usb2" "2-1" +[ -e "/sys/class/leds/internet" ] && ucidef_set_led_netdev "internet" "internet" "internet" "pppoe-wan" + +board=$(lantiq_board_name) + +case "$board" in +VG3503J) + ucidef_set_led_netdev "vdsl" "vdsl" "bt:green:dsl" "ptm0" + ;; +BTHOMEHUBV2B) + ucidef_set_led_default "power" "power" "soc:blue:power" "1" +# ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0radio" + ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0tpt" + ucidef_set_led_netdev "internet" "internet" "soc:blue:broadband" "pppoa-wan" + ucidef_set_led_usbdev "usb" "usb" "soc:blue:phone" "1-1" + ;; +BTHOMEHUBV3A|BTHOMEHUBV5A) + ucidef_set_led_default "power" "power" "soc:blue:power" "1" + ucidef_set_led_wlan "wifi" "wifi" "soc:blue:wireless" "phy0tpt" + ucidef_set_led_netdev "internet" "internet" "soc:blue:broadband" "pppoa-wan" + ;; +VGV7510KW22) + ucidef_set_led_default "power" "power" "power" "1" + ucidef_set_led_default "power2" "power2" "power2" "0" + ucidef_set_led_wlan "wifi" "wifi" "wifi" "phy0radio" + ucidef_set_led_netdev "dsl" "dsl" "dsl" "nas0" + ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan" + ;; +VGV7519) + ucidef_set_led_default "power" "power" "power" "0" + ucidef_set_led_default "power2" "power2" "power2" "1" + ucidef_set_led_wlan "wireless_yellow" "wireless_yellow" "wireless_yellow" "phy0radio" + ucidef_set_led_netdev "internet_yellow" "internet_yellow" "internet_yellow" "nas0" + ucidef_set_led_netdev "broadband_yellow" "broadband_yellow" "broadband_yellow" "pppoe-wan" + ;; +P2812HNUF*) + ucidef_set_led_default "power" "power" "power" "0" + ucidef_set_led_default "power2" "power2" "power2" "1" + ucidef_set_led_wlan "wireless_green" "wireless_green" "wireless_green" "phy0radio" + ucidef_set_led_netdev "dsl" "dsl" "dsl" "nas0" + ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan" + ;; +ARV7519RW22) + ucidef_set_led_default "power" "power" "power" "1" + ucidef_set_led_netdev "internet_green" "internet_green" "internet_green" "pppoe-wan" + ucidef_set_led_netdev "lan" "lan" "lan" "eth0.1" + ;; +ARV8539PW22) + ucidef_set_led_default "power" "power" "soc:green:power" "1" + ucidef_set_led_default "power2" "power2" "soc:red:power" "0" + ucidef_set_led_wlan "wifi" "wifi" "soc:green:wireless" "phy0tpt" + ucidef_set_led_netdev "dsl" "dsl" "soc:green:dsl" "nas0" + ucidef_set_led_netdev "online" "online" "soc:green:online" "pppoe-wan" + ;; +*) + ;; +esac + +for a in `ls /sys/class/leds/`; do + grep -q "\[none\]" /sys/class/leds/$a/trigger + [ $? -eq 0 ] && ucidef_set_led_default $a $a $a `cat /sys/class/leds/$a/brightness` +done + +ucidef_commit_leds + +exit 0 diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/02_network b/target/linux/lantiq/base-files/etc/uci-defaults/02_network new file mode 100644 index 0000000..b22060c --- /dev/null +++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network @@ -0,0 +1,211 @@ +#!/bin/sh +# +# Copyright (C) 2011-2012 OpenWrt.org +# + +[ -e /etc/config/network ] && exit 0 + +set_atm_wan() { + local vpi=$1 + local vci=$2 + local encaps=$3 + local payload=$4 + uci batch <<EOF +set network.atm='atm-bridge' +set network.atm.vpi='$vpi' +set network.atm.vci='$vci' +set network.atm.encaps='$encaps' +set network.atm.payload='$payload' +set network.wan='interface' +set network.wan.ifname='nas0' +set network.wan.proto='pppoe' +set network.wan.username='foo' +set network.wan.password='bar' +set network.wan.ipv6='1' +set network.wan6='interface' +set network.wan6.ifname='@wan' +set network.wan6.proto='dhcpv6' +EOF +} + +set_adsl_modem() { + local annex=$1 + local firmware=$2 + uci batch <<EOF +set network.dsl='adsl' +set network.dsl.annex='$annex' +set network.dsl.firmware='$firmware' +EOF +} + +set_vdsl_modem() { + local annex=$1 + local firmware=$2 + local tone=$3 + local xfer_mode=$4 + uci batch <<EOF +set network.dsl='vdsl' +set network.dsl.annex='$annex' +set network.dsl.firmware='$firmware' +set network.dsl.tone='$tone' +set network.dsl.xfer_mode='$xfer_mode' +EOF +} + +. /lib/functions/uci-defaults.sh +. /lib/functions/lantiq.sh + +touch /etc/config/network + +ucidef_set_interface_loopback +ucidef_set_interface_lan 'eth0' + +vpi=1 +vci=32 +annex="a" +encaps="llc" +payload="bridged" +lan_mac="" +wan_mac="" + +board=$(lantiq_board_name) + +case "$board" in +# adm6996 +ARV4510PW) + lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t" + ;; + +ARV4520PW) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t" + ;; + +ACMP252|GIGASX76X) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "4 3 2 1 5t" + ;; + +# ar8316 +ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22|ARV8539PW22) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5" + ;; + +# rtl8306g +ARV7519PW) + lan_mac=$(mtd_get_mac_binary board_config 22) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4t" + ;; + +WBMR) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5" + ;; + +VG3503J) + ucidef_set_interface_lan 'eth0' + uci set network.lan.type='none' + ;; + +DGN3500*) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t" + ;; + +GR7000) + ucidef_set_interface_wan "eth0" + uci set network.lan.ifname='' + ;; + +H201L) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4t" + ;; + +#rtl8306g +P2601HNFX) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t" + ;; + +P2812HNUF*) + lan_mac=$(mtd_get_mac_ascii uboot-env ethaddr) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan 'eth0.1' + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 4 5 6t" + ;; + +TDW8970|TDW8980) + lan_mac=$(mtd_get_mac_binary boardconfig 61696) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan 'eth0.1' + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 2 4 5 6t" + ;; + +ARV7519RW22) + lan_mac=$(mtd_get_mac_binary boardconfig 22) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 2 3 4 5 6t" + ;; + +BTHOMEHUBV2B|BTHOMEHUBV3A) + lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr) + wan_mac=$(macaddr_add "$lan_mac" 1) + ;; + +BTHOMEHUBV5A) + lan_mac=$(mtd_get_mac_binary caldata 4364) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan 'eth0.1' + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 4 6t" + ;; + +VGV7519) + lan_mac=$(mtd_get_mac_binary board_config 22) + wan_mac=$(macaddr_add "$lan_mac" 1) + ;; + +VGV7510KW22) + lan_mac=$(mtd_get_mac_binary board_config 22) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan 'eth0.1' + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "2 3 4 5 6t" + ;; + +esac + +[ -z "$(ls /lib/modules/`uname -r`/ltq_atm*)" ] || set_atm_wan "$vpi" "$vci" "$encaps" "$payload" + +if [ -n "$(grep "system type.*: VR9" /proc/cpuinfo)" ]; then + set_vdsl_modem "$annex" "/lib/firmware/vdsl.bin" "av" "ptm" +else + set_adsl_modem "$annex" "/lib/firmware/adsl.bin" +fi + +[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac +[ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac + +uci commit network + +exit 0 diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps b/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps new file mode 100644 index 0000000..e75fb84 --- /dev/null +++ b/target/linux/lantiq/base-files/etc/uci-defaults/03_wireless-wps @@ -0,0 +1,16 @@ +. /lib/functions.sh +. /lib/functions/lantiq.sh + +set_wps() { + uci set wireless.$1.wps_pushbutton=0 + uci set wireless.$1.wps_device_name="OpenWrt - $(lantiq_board_model)" +} + +board=$(lantiq_board_name) +case $board in +WBMR) + config_load wireless + config_foreach set_wps wifi-iface + uci commit wireless + ;; +esac |