From f83e49ca1dddcb9eb99faa5333ef9f0a213c9db0 Mon Sep 17 00:00:00 2001 From: Tim Niemeyer Date: Sun, 18 Nov 2012 21:18:16 +0100 Subject: [PATCH] Fonera: again support little foneras This adds support for the old and little foneras. Signed-off-by: Tim Niemeyer --- bsp/board_fonera.bsp | 80 ++++++------ bsp/fonera/.config | 24 ++-- bsp/fonera/kernel_config-3.3 | 115 ++++++++++++++++++ .../root_file_system/etc/config/network | 36 ++++-- bsp/fonera/root_file_system/etc/crontabs/root | 20 +-- bsp/fonera/root_file_system/etc/rc.local | 51 ++++++++ 6 files changed, 254 insertions(+), 72 deletions(-) create mode 100644 bsp/fonera/kernel_config-3.3 create mode 100755 bsp/fonera/root_file_system/etc/rc.local diff --git a/bsp/board_fonera.bsp b/bsp/board_fonera.bsp index 34fcbec2..cbd6b7a0 100644 --- a/bsp/board_fonera.bsp +++ b/bsp/board_fonera.bsp @@ -8,6 +8,7 @@ board_prepare() { board_prebuild() { cp ./bsp/$machine/.config $target/.config + cp ./bsp/$machine/kernel_config-3.3 $target/target/linux/atheros/config-3.3 cp -r ./bsp/$machine/root_file_system/* $target/files/ } @@ -22,57 +23,66 @@ board_flash() { # i thought they are already there.. #svn export http://svn.freifunk-ol.de/firmware/Trunk/flash_tools + if [ "$1" = "" ] + then + echo "$0 flash "; + exit 1 + fi + + if [ ! "`whoami`" = "root" ] then echo "You need to be root to flash!" exit 1 fi - echo "Do not plugin your router now, you will be asked to do this later!" - echo "Stopping Network manager and starting normal network and tftp server..." - if [ -f /etc/rc.d/networkmanager ];then - /etc/rc.d/networkmanager stop - /etc/rc.d/tftpd start - elif [ -f /etc/init.d/networkmanager ];then - /etc/init.d/networkmanager stop - /etc/init.d/tftpd start - elif [ -f /usr/sbin/invoke-rc.d ];then - invoke-rc.d tftpd-hpa start || invoke-rc.d tftpd-hpa start || invoke-rc.d tftpd-hpa start || echo "FAILED TO START TFTD" - invoke-rc.d network-manager stop - fi - - ifconfig $1 up - - echo "Clearing Firewall!" - iptables -F - iptables -P INPUT ACCEPT - iptables -P OUTPUT ACCEPT +# echo "Do not plugin your router now, you will be asked to do this later!" +# echo "Stopping Network manager and starting normal network and tftp server..." +# if [ -f /etc/rc.d/networkmanager ];then +# /etc/rc.d/networkmanager stop +# /etc/rc.d/tftpd start +# elif [ -f /etc/init.d/networkmanager ];then +# /etc/init.d/networkmanager stop +# /etc/init.d/tftpd start +# elif [ -f /usr/sbin/invoke-rc.d ];then +# invoke-rc.d tftpd-hpa start || invoke-rc.d tftpd-hpa start || invoke-rc.d tftpd-hpa start || echo "FAILED TO START TFTD" +# invoke-rc.d network-manager stop +# fi +# +# ifconfig $1 up +# +# echo "Clearing Firewall!" +# iptables -F +# iptables -P INPUT ACCEPT +# iptables -P OUTPUT ACCEPT echo "Flashing now! Please plugin your router into the powerline now" echo "In some cases you have to set a symlink to libpcap to make flashing work (Tim told me that it is evil if I do that for you):" echo "ln -s /usr/lib/libpcap.so.1.1.1 /usr/lib/libpcap.so.0.8" + echo "better use \"aptitude install libpcap0.8:i386\"" - cd ./flash_tools/fonera-flash/ - ./build_libpcap.sh - cd ../../ + #cd ./flash_tools/fonera-flash/ + #./build_libpcap.sh + #cd ../../ - LD_LIBRARY_PATH=`pwd`flash_tools/fonera-flash/libpcap-0.8.1/ - export LD_LIBRARY_PATH + #LD_LIBRARY_PATH=`pwd`flash_tools/fonera-flash/libpcap-0.8.1/ + #export LD_LIBRARY_PATH - arch=`uname -m` + #arch=`uname -m` + arch=i686 ./flash_tools/fonera-flash/ap51-flash-$arch $1 ./bin/openwrt-$machine-root.squashfs ./bin/openwrt-$machine-vmlinux.lzma freifunc - echo "Starting Networkmanager again" - sleep 5; - if [ -f /etc/rc.d/networkmanager ];then - /etc/rc.d/networkmanager start - elif [ -f /etc/init.d/networkmanager ];then - /etc/init.d/networkmanager start - elif [ -f /usr/sbin/invoke-rc.d ];then - invoke-rc.d tftpd-hpa stop - invoke-rc.d network-manager start - fi + #echo "Starting Networkmanager again" + #sleep 5; + #if [ -f /etc/rc.d/networkmanager ];then +# /etc/rc.d/networkmanager start +# elif [ -f /etc/init.d/networkmanager ];then +# /etc/init.d/networkmanager start +# elif [ -f /usr/sbin/invoke-rc.d ];then +# invoke-rc.d tftpd-hpa stop +# invoke-rc.d network-manager start +# fi } board_clean() { diff --git a/bsp/fonera/.config b/bsp/fonera/.config index fef62bbc..8b1d7941 100644 --- a/bsp/fonera/.config +++ b/bsp/fonera/.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # OpenWrt version: Attitude Adjustment (r33502) -# Fri Sep 28 22:44:50 2012 +# Sat Nov 17 22:50:09 2012 # CONFIG_HAVE_DOT_CONFIG=y # CONFIG_TARGET_ppc40x is not set @@ -883,7 +883,7 @@ CONFIG_BUSYBOX_CONFIG_MESG=y # # CONFIG_BUSYBOX_CONFIG_ADD_SHELL is not set # CONFIG_BUSYBOX_CONFIG_REMOVE_SHELL is not set -# CONFIG_BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS is not set +CONFIG_BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS=y # CONFIG_BUSYBOX_CONFIG_USE_BB_PWD_GRP is not set # CONFIG_BUSYBOX_CONFIG_USE_BB_CRYPT is not set # CONFIG_BUSYBOX_CONFIG_ADDUSER is not set @@ -1478,11 +1478,11 @@ CONFIG_PACKAGE_kmod-crypto-arc4=y CONFIG_PACKAGE_kmod-leds-gpio=y # CONFIG_PACKAGE_kmod-ledtrig-default-on is not set # CONFIG_PACKAGE_kmod-ledtrig-gpio is not set -# CONFIG_PACKAGE_kmod-ledtrig-heartbeat is not set +CONFIG_PACKAGE_kmod-ledtrig-heartbeat=y # CONFIG_PACKAGE_kmod-ledtrig-morse is not set CONFIG_PACKAGE_kmod-ledtrig-netdev=y # CONFIG_PACKAGE_kmod-ledtrig-netfilter is not set -# CONFIG_PACKAGE_kmod-ledtrig-timer is not set +CONFIG_PACKAGE_kmod-ledtrig-timer=y # CONFIG_PACKAGE_kmod-ledtrig-usbdev is not set # @@ -2372,7 +2372,7 @@ CONFIG_PACKAGE_fastd=y # CONFIG_PACKAGE_strongswan-mod-xauth-generic is not set # CONFIG_PACKAGE_strongswan-mod-xcbc is not set # CONFIG_PACKAGE_strongswan-utils is not set -CONFIG_PACKAGE_tinc=y +# CONFIG_PACKAGE_tinc is not set # CONFIG_PACKAGE_uanytun is not set # CONFIG_PACKAGE_uanytun-nocrypt is not set # CONFIG_PACKAGE_uanytun-sslcrypt is not set @@ -2495,7 +2495,7 @@ CONFIG_PACKAGE_wavemon=y # CONFIG_PACKAGE_gpsd is not set # CONFIG_PACKAGE_gpsd-clients is not set # CONFIG_PACKAGE_hostapd is not set -CONFIG_PACKAGE_hostapd-mini=y +# CONFIG_PACKAGE_hostapd-mini is not set # CONFIG_PACKAGE_hostapd-utils is not set # CONFIG_PACKAGE_hpavcfg is not set # CONFIG_PACKAGE_hping3 is not set @@ -2636,13 +2636,16 @@ CONFIG_PACKAGE_tc=y # CONFIG_PACKAGE_whob is not set # CONFIG_PACKAGE_wiviz is not set # CONFIG_PACKAGE_wol is not set +# CONFIG_PACKAGE_wpa-cli is not set # CONFIG_PACKAGE_wpa-supplicant is not set +# CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK is not set +# CONFIG_WPA_RFKILL_SUPPORT is not set CONFIG_WPA_MSG_MIN_PRIORITY=3 # CONFIG_DRIVER_WEXT_SUPPORT is not set # CONFIG_DRIVER_11N_SUPPORT is not set # CONFIG_PACKAGE_wpa-supplicant-mini is not set # CONFIG_PACKAGE_wpad is not set -# CONFIG_PACKAGE_wpad-mini is not set +CONFIG_PACKAGE_wpad-mini=y # CONFIG_PACKAGE_wprobe-export is not set # CONFIG_PACKAGE_wprobe-util is not set # CONFIG_PACKAGE_wshaper is not set @@ -2682,12 +2685,7 @@ CONFIG_PACKAGE_libxtables=y # CONFIG_PACKAGE_libgnutls-extra is not set # CONFIG_PACKAGE_libgnutls-openssl is not set # CONFIG_PACKAGE_libmatrixssl is not set -CONFIG_PACKAGE_libopenssl=y - -# -# Configuration -# -# CONFIG_OPENSSL_ENGINE_CRYPTO is not set +# CONFIG_PACKAGE_libopenssl is not set # CONFIG_PACKAGE_libpolarssl is not set # diff --git a/bsp/fonera/kernel_config-3.3 b/bsp/fonera/kernel_config-3.3 new file mode 100644 index 00000000..1b4d062c --- /dev/null +++ b/bsp/fonera/kernel_config-3.3 @@ -0,0 +1,115 @@ +CONFIG_AR8216_PHY=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ATHEROS_AR2315=y +# CONFIG_ATHEROS_AR2315_PCI is not set +CONFIG_ATHEROS_AR231X=y +# CONFIG_ATHEROS_AR5312 is not set +CONFIG_ATHEROS_WDT=y +# CONFIG_BASE_FULL is not set +CONFIG_BASE_SMALL=1 +CONFIG_BCMA_POSSIBLE=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_CEVT_R4K=y +CONFIG_CEVT_R4K_LIB=y +CONFIG_CMDLINE="console=ttyS0,9600 rootfstype=squashfs,jffs2" +CONFIG_CMDLINE_BOOL=y +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_CPU_BIG_ENDIAN=y +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_MIPS32=y +CONFIG_CPU_MIPS32_R1=y +CONFIG_CPU_MIPSR1=y +CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_HIGHMEM=y +CONFIG_CSRC_R4K=y +CONFIG_CSRC_R4K_LIB=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DMA_NONCOHERENT=y +CONFIG_EARLY_PRINTK=y +CONFIG_ETHERNET_PACKET_MANGLE=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVICE=y +CONFIG_GPIO_SYSFS=y +# CONFIG_HAMRADIO is not set +CONFIG_HARDWARE_WATCHPOINTS=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_HW_RANDOM=y +CONFIG_IMAGE_CMDLINE_HACK=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IP17XX_PHY=y +CONFIG_IRQ_CPU=y +CONFIG_IRQ_FORCED_THREADING=y +# CONFIG_ISDN is not set +# CONFIG_LBDAF is not set +CONFIG_LEDS_GPIO=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_MDIO_BOARDINFO=y +CONFIG_MIPS=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 +# CONFIG_MIPS_MACHINE is not set +CONFIG_MIPS_MT_DISABLED=y +# CONFIG_MODULE_UNLOAD is not set +CONFIG_MTD_AR2315=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_GEOMETRY is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_MYLOADER_PARTS=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-3 +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MVSWITCH_PHY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NET_VENDOR_AR231X=y +CONFIG_PAGEFLAGS_EXTENDED=y +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHYLIB=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_SCSI_DMA is not set +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +# CONFIG_SHMEM is not set +# CONFIG_SLAB is not set +CONFIG_SLOB=y +CONFIG_SWCONFIG=y +CONFIG_SYS_HAS_CPU_MIPS32_R1=y +CONFIG_SYS_HAS_EARLY_PRINTK=y +CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y +CONFIG_SYS_SUPPORTS_ARBIT_HZ=y +CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y +CONFIG_XZ_DEC=y +CONFIG_ZONE_DMA_FLAG=0 diff --git a/bsp/fonera/root_file_system/etc/config/network b/bsp/fonera/root_file_system/etc/config/network index cdde0736..4e677a7a 100644 --- a/bsp/fonera/root_file_system/etc/config/network +++ b/bsp/fonera/root_file_system/etc/config/network @@ -4,19 +4,39 @@ config 'interface' 'loopback' option 'ipaddr' '127.0.0.1' option 'netmask' '255.0.0.0' -#config 'interface' 'lan' -# option 'proto' 'dhcp' -# option 'ifname' 'eth0.1' - config 'interface' 'wlanmesh' option 'mtu' '1528' -config 'interface' 'mesh' - option 'type' 'bridge' - option 'ifname' 'bat0 tap0' - option 'auto' '1' +# this is for MESH on the Ethernet Port +#config 'interface' 'ethmesh1' +# option 'type' 'bridge' +# option 'ifname' 'eth0' +# option 'mtu' '1528' +#config 'interface' 'mesh' +# option 'type' 'bridge' +# option 'ifname' 'bat0 tap0' +# option 'auto' '1' +#END MESH + + + +# this is for CLIENT on the Ethernet Port +#config 'interface' 'mesh' +# option 'type' 'bridge' +# option 'ifname' 'eth0 bat0 tap0' +# option 'auto' '1' +# END CLIENT + + + +# this is for the WAN/VPN on the Ethernet Port config 'interface' 'wan' option 'ifname' 'eth0' option 'proto' 'dhcp' +config 'interface' 'mesh' + option 'type' 'bridge' + option 'ifname' 'bat0 tap0' + option 'auto' '1' +# END WAN/VPN diff --git a/bsp/fonera/root_file_system/etc/crontabs/root b/bsp/fonera/root_file_system/etc/crontabs/root index 307abed5..c806fea9 100644 --- a/bsp/fonera/root_file_system/etc/crontabs/root +++ b/bsp/fonera/root_file_system/etc/crontabs/root @@ -1,22 +1,10 @@ -*/5 * * * * killall klogd -*/5 * * * * killall syslogd -*/5 * * * * killall logger +*/5 * * * * sh /etc/fastdstart.sh; sh /etc/nodewatcher.sh; sh /etc/configurator.sh -*/5 * * * * sh /etc/tincstart.sh -*/5 * * * * sh /etc/nodewatcher.sh -*/5 * * * * sh /etc/configurator.sh -0 * * * * sh /etc/configurator.sh sync_hostname - -15 01 * * * rdate -s time.fu-berlin.de > /dev/null +#15 01 * * * rdate -s time.fu-berlin.de > /dev/null #Enable zapp script if you are running a gateway #*/1 * * * * /etc/init.d/zapp -*/5 * * * * killall -HUP dnsmasq -#* * * * * /usr/sbin/ff_olsr_test_gw -#*/5 * * * * /usr/sbin/ff_olsr_watchdog -#0 */4 * * * /usr/sbin/ff_rdate -#17 * * * * /usr/sbin/ff_mapupdate +#Reboot dir300 every 3 days at 04:05 +#5 4 */3 * * reboot -#Reboot fonera every 2 days at 04:05 -5 4 */2 * * reboot \ No newline at end of file diff --git a/bsp/fonera/root_file_system/etc/rc.local b/bsp/fonera/root_file_system/etc/rc.local new file mode 100755 index 00000000..1e722ae0 --- /dev/null +++ b/bsp/fonera/root_file_system/etc/rc.local @@ -0,0 +1,51 @@ +# Put your custom commands here that should be executed once +# the system init finished. By default this file does nothing. + +batctl if add wlan0-1 + +toLower() { + echo $1 | sed -e "s/A/a/g" -e "s/B/b/g" -e "s/C/c/g" -e "s/D/d/g" -e "s/E/e/g" -e "s/F/f/g" +} + +. /etc/firewall.user + +/etc/init.d/qos disable +/etc/init.d/qos stop + +#busybox-httpd for crawldata +mkdir /tmp/crawldata +httpd -h /tmp/crawldata + +# todo: all devices or only dir300 ? + +# fonera to slow? +sleep 10 + +if uci get network.mesh.macaddr +then + echo "MAC is set already" +else + BRMAC=`ip link | grep br-mesh -A1 | grep link | awk '{ print $2 }'` + BRMAC=`toLower $BRMAC` + WLMAC=`ip link | grep wlan0 -A1 | grep link | awk '{ print $2 }'` + WLMAC=`toLower $WLMAC` + ETMAC=`ip link | grep eth0 -A1 | grep link | awk '{ print $2 }'` + ETMAC=`toLower $ETMAC` + + if [ "$WLMAC" != "" ] && [ "$BRMAC" != "" ] && [ "$BRMAC" != "$ETMAC" ]; then + echo "Fixing wrong MAC on br-mesh" + uci set network.mesh.macaddr=$ETMAC + uci commit + ifconfig br-mesh hw ether $ETMAC + ifconfig br-mesh down + ifconfig br-mesh up + #wait before reboot to generate tinc certificates and to be able + #to login over ssh bevore reboot in case of errors + fi +fi + +# Starting NTP-Client Daemon +# uses to much ram +#ntpd -p "fe80::201:2ff:fe03:405%br-mesh" + +exit 0