MathiasJeschkeRestricted
Jump to navigation
Jump to search
Wifi Benchmark
- ath <--> ath0 ~ 1 MByte/s
- ath <--> prism2 ~ ?? MByte/s
- ath <--> prism2/ath <--> ath ~ ?? MByte/s (2 Channels)
Get versions from neighbour beacons
$ click-align /mnt/mj/brn/dump_sdp.click | /tmp/clickrun/click
Get versions via telnet (Ethernet conn. required)
#!/bin/sh ADD_HOSTS="mn11" exec 2>&- if [ -z $1 ] then for i in $(seq 21 55) do HOSTS="$HOSTS wgt$i" done HOSTS="$HOSTS $ADD_HOSTS" else HOSTS="$1" fi for i in $HOSTS do echo -n "$i " echo -n "read sdp/sdp.meta" | netcat -w 1 $i 7777 | sed -n 4p | sed 's/.*\(version="[0-9]*"\).*\(start_time="[0-9]*"\).*/\1 \2/' |tr '\012' ' ' echo done
Kernel-Click
- Checkout latest click
svn co svn://merkur.sardmn.informatik.hu-berlin.de/brn/archives/click-20051012/
- Checkout BRN sources
cd click-20051012 cd elements svn co svn://merkur.sardmn.informatik.hu-berlin.de/brn/platform/wgt634u/brn/src brn cd .. sh conf_geode.sh cd linuxmodule vi build.sh sh build.sh
Minimal Kernel-Click-Config for SDP
FromDevice(wlan0) //, PROMISC true -> Prism2Decap() -> ExtraDecap() -> FilterPhyErr() -> filter :: FilterTX(); filter[0] -> WifiDupeFilter() -> mgm_clf :: Classifier(0/00%0f, -); // management frames mgm_clf[0] //handle mgmt frames -> Discard; mgm_clf[1] //handle other frames (data) -> WifiDecap() -> Classifier(12/8086) -> EtherDecap() -> brnclf :: Classifier(0/01, //BrnSDP 0/02, //BrnTFTP - //other ); brnclf[0] // sdp -> to_user_click::Null; brnclf[1] // tftp -> to_user_click; to_user_click -> PushMACHeader() -> Print(to_user_click) -> WifiEncap(0x00, 0:0:0:0:0:0) -> ToHostSniffers(wlan0); brnclf[2] //dsr -> Discard;
Symbol problem with i586
- elements/brn/brnlinktable.hh
- Vector<EtherAddress> last_route;
Telnet/IP access
Files for Geode Nodes
- /brn/sdp/library/0
- /brn/sdp/current -> library/0
- /brn/sdp/current_id (contains 0)
- /brn/start.sh
- /brn/ath_hal.ko
- /brn/ath_pci.ko
- /brn/click-align
- /usr/sbin/click-align -> /brn/click-align
- /etc/rc2.d/S99brnstart -> /brn/start.sh
- /var/updatelink -> /tmp/sdp
- /usr/sbin/rcclick -> /var/updatelink/current/activate
- /var/update/fallback-stage1
- /usr/sbin/click-align -> /brn/click-align
echo 'savedefault --default=1 --once' | grub --batch
Links
brn-hu-wlan1.dyndns.org -> 141.20.192.200
ifconfig eth1 up wl scan wl scnaresults wl join <essid> [key xxxxxxxxxx]
VMware Server for OSP
- VM duplizieren
- vmx-Files anpassen (MAC-Adressen)
- VMs in Server eintragen (/etc/vmware/vm-list)
- auf private setzen (/etc/vmware/vm-list-private)
- Was ist mit den UUID der VMs?
- Nutzer und Passwörter generieren und setzen (home: /vmware/home/osp01..osp12)
ssh sarprk -p 22xx -l root
- VM TODO
- Zeit-Problem lösen / NTP einrichten
- Software
MRTG
$ yast -i mrtg
click-core für linux-2.6.16.13
Index: linuxmodule/proclikefs.c =================================================================== --- linuxmodule/proclikefs.c (Revision 2589) +++ linuxmodule/proclikefs.c (Arbeitskopie) @@ -222,8 +222,15 @@ struct list_head *p; DEBUG("killing files"); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) file_list_lock(); + list_for_each(p, &sb->s_files) { + struct file *filp = list_entry(p, struct file, f_u.fu_list); + filp->f_op = dummy; + } + file_list_unlock(); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) + file_list_lock(); for (p = sb->s_files.next; p != &sb->s_files; p = p->next) { struct file *filp = list_entry(p, struct file, f_list); filp->f_op = dummy; @@ -259,7 +266,11 @@ /* Prepend children to dentry_tree */ next = active->d_subdirs.next; while (next != &active->d_subdirs) { - struct dentry *child = list_entry(next, struct dentry, d_child); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 16) + struct dentry *child = list_entry(next, struct dentry, d_u.d_child); +#else + struct dentry *child = list_entry(next, struct dentry, d_child); +#endif next = next->next; d_drop(child); child->d_fsdata = (void *)dentry_tree; Index: linuxmodule/skbmgr.cc =================================================================== --- linuxmodule/skbmgr.cc (Revision 2589) +++ linuxmodule/skbmgr.cc (Arbeitskopie) @@ -257,7 +257,9 @@ skb->pkt_bridged = 0; #endif skb->prev = NULL; +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 15) skb->list = NULL; +#endif skb->sk = NULL; #if HAVE_LINUX_SKBUFF_SECURITY skb->security = 0; Index: include/click/packet.hh =================================================================== --- include/click/packet.hh (Revision 2589) +++ include/click/packet.hh (Arbeitskopie) @@ -197,9 +197,27 @@ #ifdef CLICK_LINUXMODULE - const Timestamp ×tamp_anno() const { return *(const Timestamp*) &skb()->stamp; } - Timestamp ×tamp_anno() { return *(Timestamp*) &skb()->stamp; } - void set_timestamp_anno(const Timestamp &tv) { memcpy(&skb()->stamp, &tv, 8); } + const Timestamp ×tamp_anno() const { + # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 13) + return *(const Timestamp *) &skb()->stamp; + # else + return *(const Timestamp *) &skb()->tstamp; + # endif + } + Timestamp ×tamp_anno() { + # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 13) + return *(Timestamp *) &skb()->stamp; + # else + return *(Timestamp *) &skb()->tstamp; + # endif + } + void set_timestamp_anno(const Timestamp &tv) { + # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 13) + memcpy(&skb()->stamp, &tv, 8); + # else + memcpy(&skb()->tstamp, &tv, 8); + # endif + } net_device *device_anno() const { return skb()->dev; } void set_device_anno(net_device *dev) { skb()->dev = dev; } PacketType packet_type_anno() const { return (PacketType)(skb()->pkt_type & PACKET_TYPE_MASK); } @@ -440,7 +458,9 @@ { struct sk_buff *b = skb(); b->next = b->prev = 0; +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 15) b->list = 0; +#endif skbmgr_recycle_skbs(b); } #endif Index: conf_mips.sh =================================================================== --- conf_mips.sh (Revision 2589) +++ conf_mips.sh (Arbeitskopie) @@ -1,3 +1,4 @@ #! /bin/sh -./configure --host=mipsel-linux --build=i686-pc-linux-gnu --with-linux=`pwd`/../../platform/wgt634u/linux-kernel-2.6.12-rc3/ --enable-tools=host CFLAGS="-mlong-calls -g -O2" +./configure --host=mipsel-linux --build=i686-pc-linux-gnu --with-linux=/tmp/WGT634U-Linux-2.6.16.13/linux-2.6.16.13-mips-click/ --enable-tools=host CFLAGS="-mlong-calls -g -O2" +#./configure --host=mipsel-linux --build=i686-pc-linux-gnu --with-linux=/tmp/WGT634U-Linux-2.6.16.13/linux-2.6.16.13-mips-click/ --enable-tools=host --disable-int64 CFLAGS="-mlong-calls -g -O2" Index: elements/standard/script.cc =================================================================== --- elements/standard/script.cc (Revision 2589) +++ elements/standard/script.cc (Arbeitskopie) @@ -597,7 +597,7 @@ accum += (what == AR_ADD || first ? arg : -arg); first = false; } - str = String(accum); + str = String((unsigned long) accum); return 0; } Index: elements/standard/counter.cc =================================================================== --- elements/standard/counter.cc (Revision 2589) +++ elements/standard/counter.cc (Arbeitskopie) @@ -62,7 +62,7 @@ if (!PARSECMD(cp_pop_spacevec(count_call), &_count_trigger)) return errh->error("'COUNT_CALL' first word should be unsigned (count)"); else if (cp_errno == CPE_OVERFLOW) - errh->error("COUNT_CALL too large; max %s", String(_count_trigger).c_str()); + errh->error("COUNT_CALL too large; max %s", String((unsigned long) _count_trigger).c_str()); _count_trigger_h = new HandlerCall(count_call); } else _count_trigger = (counter_t)(-1); @@ -71,7 +71,7 @@ if (!PARSECMD(cp_pop_spacevec(byte_count_call), &_byte_trigger)) return errh->error("'BYTE_COUNT_CALL' first word should be unsigned (count)"); else if (cp_errno == CPE_OVERFLOW) - errh->error("BYTE_COUNT_CALL too large; max %s", String(_count_trigger).c_str()); + errh->error("BYTE_COUNT_CALL too large; max %s", String((unsigned long) _count_trigger).c_str()); _byte_trigger_h = new HandlerCall(byte_count_call); } else _byte_trigger = (counter_t)(-1);
Nightly Build
$ svn co svn://repos.majes.de:8690/studienarbeit/nightly-build
BRN -at- Stanford
Nodes:
Revisions:
- Kernel: 2700 (svn://brn-svn.sar.informatik.hu-berlin.de/BerlinRoofNet/trunk/platform/wgt634u/linux-2.6.16.13-mips-click)
- click: build: Sep 20 2006 17:53:58 by jmueller@brn-suse093-4, $Rev: 2831 $ (svn://brn-svn.sar.informatik.hu-berlin.de/BerlinRoofNet/trunk/click/click-core)
- click-config: 2827 (svn://brn-svn/BerlinRoofNet/trunk/click/configurations/main) -- differences between r2827 and shipped firmware: http://openwgt.informatik.hu-berlin.de/brn/diff-to-r2827.diff
Troubleshooting
- Routing get nicht?
- NVRAM-Einstellungen auf default oder falsch