## Hardware-Bug
Anscheinend haben alle Geräte der Revision XW von Ubiquiti einen Hardwarebug im Ethernetchip. Das betrifft sowohl die Nanobeam M5, als auch die Nanostation LOCO M5.
Die Nanostation M5 ist nicht betroffen, da in ihr ein Ethernetswitch verbaut ist.
Ursprünglich dachte ich der Hardwarebug wäre nur dann ein Problem, wenn wir die Geräte mit OpenWRT bespielen, da eben noch kein adaquater Workaround in OpenWRT existiert.
Mittlerweile weiß ich aber, das auch mit der orginal Firmware (AirOS) von Ubiquiti der Bug ein Problem darstellt. Sie lösen das Promblem mit einem sehr schnellen Neustart des PHY.
Aber auch hier verliert die Antenne kurz ihre Ethernetverbindung. Wirkich akzeptabel ist das nicht.

[1] https://dev.openwrt.org/ticket/19085 
[2] https://community.ubnt.com/t5/Installation-Troubleshooting/Nanostation-XW-Ethernet-issue/m-p/1164752#U1164752


## Flashing with OpenWRT
It is possible to upload the image via AirOS. But after i did that, i was unable to connect with the device.
I needed to open the glued case (a hammer did the trick) and connect through the serial console.
After changing __/etc/config/network__ from
```
config interface 'lan'
	option ifname 'eth0.1'
```
to
```
config interface 'lan'
	option ifname 'eth0'
```

everything seems to work fine. 

## Images

[[/uploads/nanobeam/open-front.JPG]]
[[/uploads/nanobeam/open-back.JPG]]
[[/uploads/nanobeam/pcb.JPG]]

## Bootlog OpenWRT

```
U-Boot 1.1.4-s776 (Nov 27 2013 - 15:58:45)

Board: Ubiquiti Networks AR9342 board (e815-86041.1122.0030)
Reset: Normal
DRAM:  64 MB
Flash:  8 MB (0xc2, 0x20, 0x17)
Net:   AR8032 Detected
eth0, eth1
Radio: 0777:e815
Hit any key to stop autoboot:  0 
## Booting image at 9f050000 ...
   Image Name:   MIPS OpenWrt Linux-3.10.49
   Created:      2014-10-02   7:10:38 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1107081 Bytes =  1.1 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum at 0x9f050040 ...OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

[    0.000000] Linux version 3.10.49 (bb@builder1) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r42625) ) #3 Wed Oct 1 14:00:51 CEST 2014
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 0001974c (MIPS 74Kc)
[    0.000000] SoC: Atheros AR9342 rev 2
[    0.000000] Clocks: CPU:535.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:40.000MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x03ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x03ffffff]
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=UBNT-NM-XW console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 61076k/65536k available (2369k kernel code, 4460k reserved, 621k data, 272k init, 0k highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Calibrating delay loop... 266.64 BogoMIPS (lpj=1333248)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.090000] NET: Registered protocol family 16
[    0.100000] MIPS: machine is Ubiquiti Nanostation M XW
[    0.310000] bio: create slab <bio-0> at 0
[    0.320000] Switching to clocksource MIPS
[    0.330000] NET: Registered protocol family 2
[    0.330000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[    0.330000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[    0.340000] TCP: Hash tables configured (established 512 bind 512)
[    0.340000] TCP: reno registered
[    0.350000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.350000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.360000] NET: Registered protocol family 1
[    0.380000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.390000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.400000] msgmni has been set to 119
[    0.400000] io scheduler noop registered
[    0.400000] io scheduler deadline registered (default)
[    0.410000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.440000] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11) is a 16550A
[    0.450000] console [ttyS0] enabled, bootconsole disabled
[    0.450000] console [ttyS0] enabled, bootconsole disabled
[    0.460000] ath79-spi ath79-spi: master is unqueued, this is deprecated
[    0.470000] m25p80 spi0.0: found mx25l6405d, expected m25p80
[    0.480000] m25p80 spi0.0: mx25l6405d (8192 Kbytes)
[    0.480000] 5 cmdlinepart partitions found on MTD device spi0.0
[    0.490000] Creating 5 MTD partitions on "spi0.0":
[    0.490000] 0x000000000000-0x000000040000 : "u-boot"
[    0.500000] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.510000] 0x000000050000-0x0000007b0000 : "firmware"
[    0.520000] 2 uimage-fw partitions found on MTD device firmware
[    0.530000] 0x000000050000-0x00000015e4c9 : "kernel"
[    0.530000] mtd: partition "kernel" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[    0.550000] 0x00000015e4c9-0x0000007b0000 : "rootfs"
[    0.550000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only
[    0.570000] mtd: device 4 (rootfs) set to be root filesystem
[    0.570000] 1 squashfs-split partitions found on MTD device rootfs
[    0.580000] 0x000000380000-0x0000007b0000 : "rootfs_data"
[    0.590000] 0x0000007b0000-0x0000007f0000 : "cfg"
[    0.590000] 0x0000007f0000-0x000000800000 : "EEPROM"
[    0.610000] libphy: ag71xx_mdio: probed
[    1.160000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:01 [uid=004dd023, driver=Generic PHY]
[    1.170000] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode:MII
[    1.180000] TCP: cubic registered
[    1.180000] NET: Registered protocol family 17
[    1.190000] Bridge firewalling registered
[    1.190000] 8021q: 802.1Q VLAN Support v1.8
[    1.200000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    1.210000] Freeing unused kernel memory: 272K (8034c000 - 80390000)
procd: Console is alive
procd: - watchdog -
[    3.590000] usbcore: registered new interface driver usbfs
[    3.590000] usbcore: registered new interface driver hub
[    3.600000] usbcore: registered new device driver usb
[    3.610000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.620000] ehci-platform: EHCI generic platform driver
[    3.630000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
procd: - preinit -
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    6.170000] eth0: link up (100Mbps/Full duplex)
jffs2 is ready
jffs2 is ready
[    7.260000] jffs2: notice: (310) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 16 of xref (0 dead, 2 orphan) found.
switching to overlay
[    7.300000] eth0: link down
procd: - early -
procd: - watchdog -
procd: - ubus -
procd: - init -
Please press Enter to activate this console.
[    8.740000] NET: Registered protocol family 10
[    8.750000] nf_conntrack version 0.5.0 (958 buckets, 3832 max)
[    8.760000] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.780000] Loading modules backported from Linux version master-2014-05-22-0-gf2032ea
[    8.790000] Backport generated by backports.git backports-20140320-37-g5c33da0
[    8.800000] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.840000] xt_time: kernel timezone is -0000
[    8.870000] cfg80211: Calling CRDA to update world regulatory domain
[    8.870000] cfg80211: World regulatory domain updated:
[    8.880000] cfg80211:  DFS Master region: unset
[    8.880000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    8.890000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    8.900000] cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    8.910000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[    8.920000] cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)
[    8.920000] cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    8.930000] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    8.940000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[    8.950000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[    9.010000] PPP generic driver version 2.4.2
[    9.020000] NET: Registered protocol family 24
[    9.120000] ieee80211 phy0: Atheros AR9340 Rev:0 mem=0xb8100000, irq=47
[    9.150000] cfg80211: Calling CRDA for country: US
[    9.150000] cfg80211: Regulatory domain changed to country: US
[    9.160000] cfg80211:  DFS Master region: FCC
[    9.160000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    9.170000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[    9.180000] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm), (N/A)
[    9.190000] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2300 mBm), (0 s)
[    9.200000] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[    9.200000] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
procd: - init complete -
[   17.270000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   17.280000] IPv6: ADDRCONF(NETDEV_UP): eth0.1: link is not ready
[   17.280000] device eth0.1 entered promiscuous mode
[   17.290000] device eth0 entered promiscuous mode
[   17.290000] eth0: link up (100Mbps/Full duplex)
[   17.310000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   17.310000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[   17.320000] br-lan: port 1(eth0.1) entered forwarding state
[   17.330000] br-lan: port 1(eth0.1) entered forwarding state
[   19.330000] br-lan: port 1(eth0.1) entered forwarding state
```
