BT Home Hub 5.0 Type A
Information on this page also applies to the 'Plusnet Hub One' and 'BT Business Hub 5'. This is a router manufactured by Sagemcom under contract for BT. The OEM design is a Askey RTV7505W-D18.
There is also a Type B based on BCM63268, but for 802.11ac it uses the BCM4360 which has no open drivers, so it's a far less attractive target.
Supported Versions
Past Issues
- The WAN-to-LAN/Wifi performance in older OpenWrt versions is degraded for all xrx200 devices since February 2018 due to a bug. The bug and solutions are described further down this wiki page. For devices using OpenWrt 19 and later it should be fine again since they integrate this commit). There may still be a 60 Mbps download cap due to CPU limitations in which case enabling “Software Offloading” will help.
- 22.03 and development snapshots introduce a boot loop bug. A serial connection is required to reinstall OpenWrt if the HH5a is unable to break out of the boot loop. Release 22.03.4 should fix this issue since integrating this commit.
- 23.05.0 has some issues in the GSWIP driver that causes problems with the DSA switch configuration. 23.05.4 should fix most of it since integrating these commits.
Hardware Highlights
Downloads
Branch | Type | Download link | |
---|---|---|---|
n/a | UART u-boot (allows booting via serial console) for installing OpenWrt/LEDE. | lede-lantiq-bthomehubv5a_ram-u-boot.asc | |
n/a | Image which can be booted via TFTP to simplify the switch from OEM firmware to OpenWrt/LEDE | lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin | |
n/a | OpenWrt/LEDE Installation Guide for BT Home Hub 5A - Download and study this essential 220 page guide. It includes novice setup instructions for popular configurations | DropboxMirror | |
n/a | BT HH5A OpenWrt LEDE Windows Instructions - serial link instructions with useful screen shots | DropboxMirror | |
n/a | Safe easy serial access without soldering, takes 10 mins (PDF) | dmcdonnell |
Installation
Installation over serial
To install OpenWrt on your HH5A or to recover from a failed u-boot flash you can boot the device via UART (serial console). This requires that:
- you are able to connect to the serial console of the device (using for example a USB to serial adapter)
- you are able to create an electrical connection to four points on the device PCB (easy no-soldering approach linked in download table, or you can solder a few wires to SMD solder points)
See the download table above for how to get serial access in 10 minutes WITHOUT soldering or you can solder a few wires to SMD solder points (a bit fiddly).
If you do choose to solder, be sure to glue of fix the wires to the PCB so that you don't pull the pads off or break the solder connection when you move the router. You're going to need to connect the wires to an adapter, plug and unplug a USB drive and ethernet cable and even small stresses on tiny soldering joins might break them.
The baud rate is 115200.
Once you have prepared everything you can boot u-boot via UART:
- Power off your HH5A
- Enable UART boot by connecting boot_sel2 to GND.
- Power on your device
You should see a message similar to this:ROM VER: 1.1.4 CFG 04 UART
- IMPORTANT: Remove the connection between boot_sel2 and GND as QUICKLY as possible. There have reported cases where HH5a remains stuck in 'CFG 04' which may have been caused by electronic component damage.
- Load u-boot via serial console into the device's memory (this takes approx. 3 minutes): lede-lantiq-bthomehubv5a_ram-u-boot.asc using the instructions for Microsoft Windows or Linux as follows.
If you're having trouble be sure to check that your serial adapter is working correctly: if you connect the tx and rx pins on your adapter you should see your keys echoed back to you when you type in the console. This is sometimes called a loopback test. It's possible for just transmission or reception to be broken.
Microsoft Windows
Download and study the “Serial console instructions using MS Windows” and “LEDE Installation Guide for BT Home Hub 5A” documents listed in the Downloads section of this page.
Linux
You can use picocom to connect as follows:
picocom -b 115200 /dev/ttyUSB0 --send-cmd="cat"
In picocom, press <Ctrl-a> <Ctrl-s> and enter the full path to the lede-lantiq-bthomehubv5a_ram-u-boot.asc
to send the bootcode.
nb. Do NOT use the u-boot.asc found in OpenWrt downloads page. TFTP does not work.
Alternatively, open another terminal and execute the following command to send the bootcode
cat lede-lantiq-bthomehubv5a_ram-u-boot.asc > /dev/ttyUSB0
Now you should see the BTHOMEHUBV5A#
u-boot prompt.
Note that operating in this mode is atypically slow. The CPU clock (normally 500MHz) and buses (normally 250MHz) are running at 125MHz for some reason, but the installed system will run at full speed.
(one reason that it's running very slowly is that the cache is turned off for the serially loaded u-boot build)
Installing OpenWrt/LEDE (switching from original BT/Plusnet firmware to OpenWrt/LEDE)
Use these instructions to install all stable and snapshot builds of LEDE released after 30 November 2016, and all stable and snapshots of OpenWrt released from January 2018.
Go to HomeHub 5 Type A install image web page and download the following files:
LEDE custom U-boot: | lede-lantiq-bthomehubv5a_ram-u-boot.asc |
LEDE HH5A installation image: | lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin |
A sysupgrade image: | Latest squashfs-sysupgrade.bin - see table above |
It is also recommended to download and study the 190 page OpenWrt/LEDE Installation Guide for BT Home Hub 5A and the BT HH5A Openwrt LEDE Windows instructions. Both documents contain screenshots of each step of the installation process and other useful information but it basically boils down to the following steps:
- Make sure all serial connections are right (pins and tty address/COM port) and working at 115200 kbps baud rate.
- Open up a Serial console to communicate with the router. For Linux you can use
cu
,screen
,minicom
,putty
or GTKTerm. For Windows you can use Putty, TeraTerm, Termite or Arduino's Serial Monitor. Test to see if everything works by booting up the router and and seeing all the boot process on screen. - Boot the router in
UART Mode
mode by grounding theboot_sel2
pin when powering up then removing from ground as soon as you seeCFG 04
on screen. - Copy the binary contents in:
openwrt-lantiq-bthomehubv5a_ram-u-boot.asc
orlede-lantiq-bthomehubv5a_ram-u-boot.asc
file then paste it into the serial terminal and hit Enter to send it over (it may take a minute or two and screen will fill up with*
). - Configure PC with static IP address 192.168.1.2, and connect to any yellow LAN port on the HomeHub over ethernet. Ensure that the address 192.168.1.1 is free for the HomeHub to use.
- Serve
lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin
over TFTP. For Windows users, you can use TFTPD64.exe then setting the Server Interface at192.168.1.2
and Current Directory to where the install file is. On a Linux machine:mkdir -p /tftpboot wget -O /tftpboot/lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin https://github.com/mkresin/BTHH5a-installimage/releases/download/v0.1/lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin chmod 777 /tftpboot atftpd --bind-address 192.168.1.2 --daemon --no-fork /tftpboot/
- Over the serial console, type the following:
tftpboot 0x81000000 lede-lantiq-xrx200-BTHOMEHUBV5A-installimage.bin; bootm 0x81000000
Upon a successful transfer you should see the row of###
loading. If it shows onlyT
for timeout, make sure your IP addresses are right, your TFTP program is not blocked and you aren't connected to another network then try again. When the transfer is complete, booting will be very slow - typically takes 7 minutes! - Back up the original stock firmware using the instructions provided on screen. A USB flash drive formatted FAT32 or exFAT is required. Check the size of the file saved to USB flash drive is approx 128 MiB before continuing any further! If you do not create the nand backup, or the saved file is significantly less than 128MiB, and the OpenWRT installation subsequently fails, you will NOT be able to unbrick the hub !!!!
- There are a few scripts that save you time so you don't have to type lots of commands manually. You can run them when
br-lan: entered forwarding state
appears.- Reminder: Did you run the
nanddump
command to save a copy of the original firmware, and to store the file in a safe place? - Run
prepare
script to prepare the LEDE installation. - Carefully read the instructions that the script provides.
- Once the script is finished you have unlocked u-boot and changed the UBI volumes/partitions (LEDE is not installed yet and there is no going back). 1)
- Installing OpenWrt/LEDE is usually easy: get your sysupgrade image onto the router and run
sysupgrade
on it. The router will spew text for a bit before rebooting.- Download the image on your PC, copy it to a memory stick and insert it in the router.
- Due to problems with some memory sticks, it is recommended to copy the file from memory stick to the /tmp folder.
cp /tmp/mounts/USB-A1/openwrt-blah-blah-squashfs-sysupgrade.bin /tmp
- For OpenWrt up to 21.02, use the command:
sysupgrade /tmp/openwrt-blah-blah-squashfs-sysupgrade.bin
. For OpenWrt 22.03 or later, use the command:sysupgrade -n -F /tmp/openwrt-blah-blah-squashfs-sysupgrade.bin
for force the installation. If you get anand upgrade failed
error, you need to reboot the router, upload the install image and try again with 192.168.1.10 IP and sysupgrade from /tmp.
- The device may reboot to CFG 04 again or straight to OpenWrt/LEDE. Power cycle the router if it's gets stuck at CFG 04 prompt.
- If the hub presents you with a 'VR9 #' prompt, execute these two commands, and power cycle the hub to enable LEDE to boot:
setenv bootcmd ubi part UBI\; ubi read \$(loadaddr) kernel\; bootm \$(loadaddr)
thensaveenv
- Once the initial OpenWrt/LEDE firmware has been installed, newer firmware can be installed using the LuCI web interface or sysupgrade (note: snapshot releases don't come with LuCI, you need to install it later). Make a backup of your settings before updating.
If OpenWrt/LEDE installation fails, or you discover there is no wireless interfaces, you should restore the original stock firmware from the earlier 128 MiB Nanddump file you created, and try again to install OpenWRT. See section 5 of the OpenWrt/LEDE Installation Guide for BT Home Hub 5A which describes how to use the restore
script in detail. Restoring stock firmware can be completed in as little as 3 minutes, otherwise, it normally takes just over an hour. Once Nanddump restoration is complete, the script offers the option to install OpenWrt/LEDE again. Otherwise, the hub will reboot and launch stock BT/Plusnet firmware.
Upgrading OpenWrt
Recommend to use the latest stable releases. Note the very development snapshots do not include LuCI.
Note you may need to tick the Force
installation check box and untick the Keep Settings
check box, due to signficant changes relating to DSA after 19.07. Do not restore settings from older versions of LEDE/OpenWrt to later releases as they are likely to be incompatible.
Hardware
Info
Architecture | MIPS |
---|---|
Vendor | Lantiq |
bootloader | U-Boot |
System-On-Chip | Lantiq Xway VR9 VRX268 PSB 80910 (MIPS 34Kc) v1.2.1 |
CPU/Speed | 500 MHz |
NAND Flash | 128MiB Spansion ML01G100BHI00 |
RAM Chip | Samsung K4T1G164QF-BCF7 |
RAM Specs | DDR2 128MiB @ 250MHz |
Wireless | Atheros AR9287 b/g/n 2×2 + Qualcomm QCA9880-BR4A a/b/g/n+ac 3×3 |
Ethernet | 5x 10/100/1000 BASE-TX Ethernet Interface (1x WAN, 4x LAN) (2x XWAY VR9 GPHY 11G & 3x XWAY PEF7071 via RGMII) |
Switch | Internal configurable (Infineon) |
xDSL | Lantiq XWAY VRX208 ADSL1/2/2+ (G.992.1/3/5) Annexes A, B, I, M, L (adsl annex j is not supported) VDSL1 (G.993.1, T1.424, TS 101 270), VDSL2 (G.993.2), ITU-T G 998.2 Bonding, EFM (IEEE 802.3ah) |
USB | 1x USB 2.0 |
Phone | no |
Serial | Yes |
GPIO Buttons | WPS, Restart and Reset buttons |
Power | External 12V 1.5A, with a 3.0 X 5.5 X 12mm connector |
Case opening
There are 6 retaining clips along the top of the HH5A.
Use a metal spudger and insert as shown below. Work your way along the top of the HH5A. This will start to release the first 4 plastic retaining clips. Insert an old credit card into the exposed gap to stop the clips from re-engaging.
Position the spudger as shown below so it is to the right of the hidden retaining clip and above the rear vent slots. Then lift the spudger to pry off the front panel.
This will release the 5th retaining clip as shown below. Repeat for the other side for the last retaining clip.
There are two retaining clips on each of the sides of the case. Position the spudger as shown below for the first clip and pry off the front panel as shown below.
Position for the second clip. Repeat procedure for the other side of the case.
Use brute force and pull the top edge of the front panel away from the case. This will release the retaining clips along the bottom of the case.
The retaining clips on the left and right sides of the front panel are often broken. Remove any loose bits of plastic.
PCB Photos
The motherboard and chassis close-up: Youtube video
Serial
Resistor number | Function | Info | Notes |
R77 | Serial TX | Below the NAND flash | Use the solder to the pad right of it |
R78 | Serial RX | Directly below R77, and to the left. | Use the solder pad to the right of it |
R45 | boot_sel2 | Below R78 to the right. | Use the solder pad above it |
R46 | boot_sel3 | Front of the PCB, next to SW4 (WPS button) | Not used for installation over serial |
GND | USB socket shield and other locations. | Use the solder pad for WPS switch closest to NAND flash. |
Serial uses Baud rate 115200.
To boot via UART you need to pull boot_sel2 (results in CFG 0x4) to GND momentarily when powering up the device. Do NOT leave boot_sel2 connected to GND any longer than necessarily because it has been known to cause the device to remain 'stuck in CFG 0x4' UART mode)
Video of UART/BOOT soldering and installing TFTP-server (macOS) ➥ https://youtu.be/ims6RT3NcoE
OpenWrt 18 and 19, slow WAN to LAN throughput
Update: This issue has been resolved in daily snapshots since thisthis commit). It is included in OpenWrt 21:
If you have an internet connection which is significantly faster than 70 Mbps, you may observe the maximum internet to LAN throughput with OpenWrt 18/19 is lower compared to LEDE 17.01. The following commit caused the throughput to drop from 140+ Mbps to 70+ Mbps when SMP is enabled.
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=916e33fa1e14b97daf8c9bf07a1b36f9767db679
Only one instead of both cores is used to steer packets to the LAN. OpenWrt bug 2573
Some workarounds are described in this thread:
OpenWrt forum link to modified 18.06.x image which removes the above mentioned commit.
Software Flow Offloading can also be enabled in OpenWrt 19 or later, BUT it is not compatible with Smart Queue Management (SQM).
It is also worth testing with irqbalance running (after installing with “opkg install irqbalance”).
Enhancements
Hardware
Read below instructions if USB port does not provide enough power for your use case
In some cases, it may be the case that USB port does not provide enough power to run a portable HDD or even a USB stick. As it has been tested there also seems to be a reboot issue when hot-plugging a USB device. This issue is related to low power output from the USB port although the supplied power adapter provides more than enough juice for the router.
The IC used for the USB seems not to handle much load for any USB peripherals. This can be solved through using an external 12V to 5V DC-DC stepdown circuit. These circuits are easily available online in smaller forms or you can build one yourself if you please. We only need to connect the +(positive) terminal of the circuit to the +(positive) of USB and let the -(negative/ground) handle the USB itself.
For this to work, you need to remove the L9
component from the back of the USB port. This will break the connection from the USB + terminal and let you provide another power source. Once you have removed the above component, proceed to connect your circuit with the router. Choose a safe spot for the circuit to stay, possibly cover its base with some hot glue. So it does not short-circuit any chips on the PCB. Now you need two wires for the input connection, one for +ve and other one is ground. Ground can be linked from any metal holders, just like the USB outer-panel. The +ve wire needs to come from the power adapter, for this to work properly use the middle pin on the power switch. This way when you power off the device the USB power will be switched off. Once you have connected the wires for input, you only need +ve wire from the circuit output and connect it to the USB +ve, from where we removed the L9 component. Be sure to connect directly to USB +ve and not to the IC +ve output.
This will remove the strain on the USB power IC and no more problems will occur from the USB hot-plugging and you can also use a portable HDD even if it was not working before. Tested with Seagate Expansion Portable HDD 500 GBs (USB 3.0).
See the below pic for more info (click on the image for a larger picture):
If the router sits in confined spaces and ambient temperature regularly exceeds 40°C, a heatsink can be applied onto the CPU to improve thermal dissipation. Use a heatsink no taller than 1cm and no wider than 3cm x 3cm. A thermal adhesive pad or glue (like 8329TFS) can be used to hold the heatsink in place. Make sure you don't touch capacitor C128.
The WiFi interfaces are surrounded by exposed PCB traces which can be used to solder a RF/EMI shield onto it. RF shields help block unwanted signals and even it's own WiFi signal from interfering with the controller chip, thus improving signal quality. Designs for the shields can be found here or here and can be sent online to a fab.
Software
WPS isn't installed out-of-the-box. You need to remove “wpad-basic-wolfssl” package and then install “wpad-wolfssl” and “hostapd-utils” to enable it at the push button and the LuCI switch in WiFi settings. Other useful packages include “luci-app-upnp” for DLNA playback and certain online games, “luci-app-ddns” for running a server, “luci-app-wol” to wake up ethernet devices and “luci-app-sqm” to adjust QoS settings (not compatible with Software Offloading).
“WMM Mode” needs to be enabled for WiFi speeds above 54Mbps, however some WiFi clients, particularly Broadcom WiFi 802.11n, may crash.
Newer DSL firmware can be found here and WiFi 5 firmware can be found here or alternatively use the kmod-ath10k
and ath10k-firmware-qca988x
packages.
ADSL/VDSL Configuration Examples
Depending on your ISP and the firmware on their DSLAM, you may need to try different DSL firmware versions. There is a list of firmware versions at https://xdarklight.github.io/lantiq-xdsl-firmware-info/
You install these by placing them at /lib/firmware/lantiq-vrx200-a.bin
and /lib/firmware/lantiq-vrx200-b.bin
(use WinSCP for Windows users) and then referencing them in “Network>Interfaces>DSL>Firmware File” in LuCI. It is recommended to keep several versions around and symlinking them, so you can easily swap versions.
United Kingdom - Quick Setup with LuCI
VoIP service over SOGEA lines isn't supported yet, meaning you can't access the ISP's embedded landline service part (a.k.a. Digital Voice) via Asterisk if your connection type is SOGEA.
Openreach uses Annex A (DSL over POTS) for syncing with the DSLAM in its VDSL network (the reported 'Annex B' in LuCI is the bandplan) so make sure you use the right DSL firmware as Openreach may ban your line for using an uncompliant equipment.
Refer section 7.5 of the Open/WrtLEDE Installation Guide for BT Home Hub 5A for more details of popular ISPs in the UK.
For VDSL (FTTC):
- Go to LuCI → Network → Interfaces.
- Set 'DSL' parameters to 'Annex A + L + M(all)' and 'tone' set to 'A43C + J43 + A43', select PTM, and VDSL.
- Edit the 'WAN' interface → Physical Settings tab.
- Select 'Custom Interface' and enter 'ptm0.101' or 'dsl0.101' for LEDE 17 and OpenWrt 18 respectively to set vlan 101 for BT Openreach network compatibility.
For most ISPs except for TalkTalk and Sky/NOW broadband:
- Edit the 'WAN' interface.
- Choose PPPoE protocol.
- Enter username and password.
For TalkTalk:
- Edit the 'WAN' interface.
- Choose DHCP protocol.
For Sky Broadband:
- Edit the 'WAN' interface.
- Choose DHCP protocol.
- Go to Advanced Settings tab in that interface.
- Change 'Client ID to send when requesting DHCP' with the hex value of the
yourmacaddress@skydsl|XXXXXXXX
that you get from Wireshark on your OEM router. - Do the same for 'WAN6'.
Learn more here: http://www.skyuser.co.uk/forum/sky-broadband-fibre-help/50483-generic-open-wrt-sky-fibre-mer-guide.html
/etc/config/network
should look like this when you're done configuring a PPPoE BT OpenReach connection on OpenWrt:
config dsl 'dsl' option annex 'a' option tone 'a' option ds_snr_offset '0' option xfer_mode 'ptm' option line_mode 'vdsl' config interface 'wan' option ifname 'dsl0.101' option proto 'pppoe' option username 'YOURUSERNAMEHERE' option password 'YOURPASSWORDHERE'
For ADSL (PPPoA):
- Go to LuCI → Network → Interfaces'.
- Set 'DSL' parameters to 'Annex A(all)' and 'tone' set to 'A43C + J43 + A43', select ATM, and ADSL.
- Important: Remove the 'ATM bridge' section as this is incompatible with PPPoA connections.
For most ISPs.
- Edit the 'WAN' interface.
- Choose PPPoA protocol.
- Enter username and password.
- PPPoA Encapsulation: VC-Mux
- VCI: 38
- VPI: 0
Sky Broadband may also accept username: install@o2broadband.co.uk with no password with PPPoA protocol otherwise you need to extract the username and password with Wireshark on your OEM router.
For ADSL (PPPoE):
- Go to LuCI → Network → Interfaces.
- Set 'DSL' parameters to 'Annex A(all)' and 'tone' set to 'A43C + J43 + A43', select ATM, and ADSL.
- Set 'ATM bridge' parameters, VCI: 38, VPI: 0. Encapsulation mode: LLC
- Edit the 'WAN' interface → Physical Settings tab.
- Select 'Custom Interface' and enter 'nas0' or 'dsl0' for LEDE 17 and OpenWrt 18 respectively.
BT and Plusnet support PPPoE protocol. (Sky/NOW and TalkTalk do not support PPPoE on ADSL)
- Edit the 'WAN' interface.
- Choose PPPoE protocol.
- Enter username and password.
For other configurations, such as 'VDSL Bridge modem' (to emulate old Openreach VDSL modems), refer to the OpenWrt/LEDE Installation Guide for BT Home Hub 5A for instructions.
1und1 (Germany) VDSL2 (Annex B) example
Because of my bad dsl signal I need to increase the ds_snr_offset. It's work very well with DSL Firmware 5.7.x, 5.8.x, 5.9.x.
BusyBox v1.28.3 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r6790-264feab1e7 ----------------------------------------------------- root@openwrt:~# /etc/init.d/dsl_control status ATU-C Vendor ID: Broadcom 177.140 ATU-C System Vendor ID: Broadcom Chipset: Lantiq-VRX200 Firmware Version: 5.9.0.12.1.7 API Version: 4.17.18.6 XTSE Capabilities: 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2 Annex: B Line Mode: G.993.5 (VDSL2 with down- and upstream vectoring) Profile: 17a Line State: UP [0x801: showtime_tc_sync] Forward Error Correction Seconds (FECS): Near: 0 / Far: 253237 Errored seconds (ES): Near: 49 / Far: 80 Severely Errored Seconds (SES): Near: 20 / Far: 23 Loss of Signal Seconds (LOSS): Near: 5 / Far: 4 Unavailable Seconds (UAS): Near: 769 / Far: 769 Header Error Code Errors (HEC): Near: 0 / Far: 0 Non Pre-emtive CRC errors (CRC_P): Near: 0 / Far: 0 Pre-emtive CRC errors (CRCP_P): Near: 0 / Far: 0 Power Management Mode: L0 - Synchronized Latency [Interleave Delay]: 0.13 ms [Fast] 0.0 ms [Fast] Data Rate: Down: 87.737 Mb/s / Up: 33.865 Mb/s Line Attenuation (LATN): Down: 12.4 dB / Up: 10.8 dB Signal Attenuation (SATN): Down: 12.4 dB / Up: 10.7 dB Noise Margin (SNR): Down: 6.5 dB / Up: 9.7 dB Aggregate Transmit Power (ACTATP): Down: -1.3 dB / Up: 14.4 dB Max. Attainable Data Rate (ATTNDR): Down: 94.912 Mb/s / Up: 36.224 Mb/s Line Uptime Seconds: 167968 Line Uptime: 1d 22h 39m 28s root@gw01:~# cat /etc/config/network .... cut .... config atm-bridge 'atm' option vpi '1' option vci '32' option encaps 'llc' option payload 'bridged' option nameprefix 'dsl' config dsl 'dsl' option annex 'b' option firmware '/lib/firmware/vr9-B-dsl.bin' option tone 'bv' option xfer_mode 'ptm' option line_mode 'vdsl' option ds_snr_offset '30' config interface 'wan' option proto 'pppoe' option username 'H1und1/0123-456@online.de' option password 'XXXxxxXXX' option ipv6 'auto' option ifname 'dsl0.7' config device 'wan_dev' option macaddr '18:83:xx:xx:xx:xx' option name 'dsl0'
rt.ru (Russia) ADSL2 (Annex A) example
It's work very well with DSL Firmware 5.9.0.
BusyBox v1.28.3 () built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 18.06-SNAPSHOT, r7102-3f3a2c966a ----------------------------------------------------- root@gw03:~# /etc/init.d/dsl_control status ATU-C Vendor ID: FF,B5,47,53,50,4E,00,20 ATU-C System Vendor ID: 00,00,30,30,30,30,00,00 Chipset: Lantiq-VRX200 Firmware Version: 5.9.0.10.0.1 API Version: 4.17.18.6 XTSE Capabilities: 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0 Annex: A Line Mode: G.992.5 (ADSL2+) Profile: Line State: UP [0x801: showtime_tc_sync] Forward Error Correction Seconds (FECS): Near: 0 / Far: 18 Errored seconds (ES): Near: 0 / Far: 0 Severely Errored Seconds (SES): Near: 0 / Far: 0 Loss of Signal Seconds (LOSS): Near: 0 / Far: 0 Unavailable Seconds (UAS): Near: 24 / Far: 24 Header Error Code Errors (HEC): Near: 0 / Far: 0 Non Pre-emtive CRC errors (CRC_P): Near: 0 / Far: 0 Pre-emtive CRC errors (CRCP_P): Near: 0 / Far: 0 Power Management Mode: L0 - Synchronized Latency [Interleave Delay]: 15.75 ms [Interleave] 8.0 ms [Interleave] Data Rate: Down: 8.191 Mb/s / Up: 896 Kb/s Line Attenuation (LATN): Down: 1.5 dB / Up: 16.6 dB Signal Attenuation (SATN): Down: 1.9 dB / Up: 16.6 dB Noise Margin (SNR): Down: 29.2 dB / Up: 12.6 dB Aggregate Transmit Power (ACTATP): Down: 18.4 dB / Up: 12.4 dB Max. Attainable Data Rate (ATTNDR): Down: 23.928 Mb/s / Up: 992 Kb/s Line Uptime Seconds: 32469 Line Uptime: 9h 1m 9s root@gw03:~# cat /etc/config/network ... config atm-bridge 'atm' option encaps 'llc' option payload 'bridged' option nameprefix 'dsl' option vci '35' option vpi '0' config dsl 'dsl' option annex 'a' option tone 'a' option xfer_mode 'atm' option line_mode 'adsl' option ds_snr_offset '0' option firmware '/lib/firmware/vr9-A-dsl.bin' config interface 'wan' option proto 'pppoe' option ipv6 'auto' option username 't00000000@ga' option password '................' option ifname 'dsl0' config device 'wan_dev' option macaddr 'xx:xx:xx:xx:xx:xx' option name 'dsl0' config interface 'wan6' option ifname 'pppoe-wan' option proto 'dhcpv6' ...
A1 (Austria) VDSL2 (Annex B) example
VDSL works with an extracted firmware file
root@HomeHub5A:~# /etc/init.d/dsl_control status ATU-C Vendor ID: Broadcom 178.24 ATU-C System Vendor ID: Broadcom Chipset: Lantiq-VRX200 Firmware Version: 5.9.1.4.0.7 API Version: 4.17.18.6 XTSE Capabilities: 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2 Annex: B Line Mode: G.993.5 (VDSL2 with down- and upstream vectoring) Profile: 17a Line State: UP [0x801: showtime_tc_sync] Forward Error Correction Seconds (FECS): Near: 0 / Far: 3 Errored seconds (ES): Near: 13 / Far: 828 Severely Errored Seconds (SES): Near: 0 / Far: 276 Loss of Signal Seconds (LOSS): Near: 0 / Far: 27 Unavailable Seconds (UAS): Near: 33168786 / Far: 33168786 Header Error Code Errors (HEC): Near: 0 / Far: 0 Non Pre-emtive CRC errors (CRC_P): Near: 20 / Far: 0 Pre-emtive CRC errors (CRCP_P): Near: 0 / Far: 0 Power Management Mode: L0 - Synchronized Latency [Interleave Delay]: 0.15 ms [Fast] 0.0 ms [Fast] Data Rate: Down: 40.954 Mb/s / Up: 10.240 Mb/s Line Attenuation (LATN): Down: 23.2 dB / Up: 31.4 dB Signal Attenuation (SATN): Down: 21.3 dB / Up: 32.1 dB Noise Margin (SNR): Down: 9.3 dB / Up: 13.4 dB Aggregate Transmit Power (ACTATP): Down: 9.1 dB / Up: 14.2 dB Max. Attainable Data Rate (ATTNDR): Down: 42.860 Mb/s / Up: 19.177 Mb/s Line Uptime Seconds: 40802 Line Uptime: 11h 20m 2s
Network config: vLAN from ISP is 0.2
cat /etc/config/network config interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fdac:7c59:094f::/48' config atm-bridge 'atm' option vpi '1' option vci '32' option encaps 'llc' option payload 'bridged' option nameprefix 'dsl' config dsl 'dsl' option tone 'av' option ds_snr_offset '0' option line_mode 'vdsl' option annex 'b' option firmware '/lib/modules/vr9-B-dsl.bin' config interface 'lan' option type 'bridge' option ifname 'eth0.1' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config device 'lan_dev' option name 'eth0.1' option macaddr '00:00:00:00:00:00' config interface 'wan' option ifname 'dsl0.2' option proto 'pppoe' option username 'user from ISP' option password 'pass from ISP' option peerdns '0' option ipv6 'auto' list dns '1.1.1.2' list dns '1.0.0.2' config device 'wan_dev' option name 'dsl0' option macaddr '00:00:00:00:00:00' config interface 'wan6' option ifname '@wan' option proto 'dhcpv6' option reqprefix 'auto' option reqaddress 'try' config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '6t 5 4 2 1 0' option vid '1' config switch_vlan option device 'switch0' option vlan '2' option ports '6t' option vid '2'
Tweak (The Netherlands) VDSL2 (Annex B) example
VDSL used to work with a newer firmware, but in early February 2021 it started running slowly on a 8/1 fallback profile.
The version that works right now is 5.7.6.10.0.7.
root@homehub:~# /etc/init.d/dsl_control status ATU-C Vendor ID: Broadcom 178.30 ATU-C System Vendor ID: Broadcom Chipset: Lantiq-VRX200 Firmware Version: 5.7.6.10.0.7 API Version: 4.17.18.6 XTSE Capabilities: 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2 Annex: B Line Mode: G.993.5 (VDSL2 with down- and upstream vectoring) Profile: 17a Line State: UP [0x801: showtime_tc_sync] Forward Error Correction Seconds (FECS): Near: 0 / Far: 2 Errored seconds (ES): Near: 0 / Far: 3 Severely Errored Seconds (SES): Near: 0 / Far: 0 Loss of Signal Seconds (LOSS): Near: 0 / Far: 0 Unavailable Seconds (UAS): Near: 99 / Far: 99 Header Error Code Errors (HEC): Near: 0 / Far: 0 Non Pre-emtive CRC errors (CRC_P): Near: 0 / Far: 0 Pre-emtive CRC errors (CRCP_P): Near: 0 / Far: 0 Power Management Mode: L0 - Synchronized Latency [Interleave Delay]: 0.15 ms [Fast] 0.0 ms [Fast] Data Rate: Down: 60.839 Mb/s / Up: 23.120 Mb/s Line Attenuation (LATN): Down: 8.3 dB / Up: 6.4 dB Signal Attenuation (SATN): Down: 8.4 dB / Up: 6.3 dB Noise Margin (SNR): Down: 5.0 dB / Up: 6.4 dB Aggregate Transmit Power (ACTATP): Down: -5.6 dB / Up: 12.5 dB Max. Attainable Data Rate (ATTNDR): Down: 64.368 Mb/s / Up: 33.830 Mb/s Line Uptime Seconds: 1819 Line Uptime: 30m 19s
m-net (Germany) PPoE through WAN port example (DSA)
It is necessary to tag the port used for the connection. When using DSA, switch configuration is not needed.
BusyBox v1.35.0 (2022-01-15 22:05:55 UTC) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt SNAPSHOT, r18589-e821849c4f ----------------------------------------------------- root@openwrt:~# cat /etc/config/network config interface 'loopback' option device 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' config globals 'globals' option ula_prefix 'fd90:2947:a695::/48' config atm-bridge 'atm' option vpi '1' option vci '32' option encaps 'llc' option payload 'bridged' option nameprefix 'dsl' config dsl 'dsl' option annex 'a' option tone 'av' option ds_snr_offset '0' config device option name 'br-lan' option type 'bridge' list ports 'lan1' list ports 'lan2' list ports 'lan3' list ports 'lan4' list ports 'wan' config device option name 'lan1' option macaddr '18:62:2c:45:7a:1a' config device option name 'lan2' option macaddr '18:62:2c:45:7a:1a' config device option name 'lan3' option macaddr '18:62:2c:45:7a:1a' config device option name 'lan4' option macaddr '18:62:2c:45:7a:1a' config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config device option name 'dsl0' option macaddr '18:62:2c:45:7a:1b' config interface 'wan6' option device '@wan' option proto 'dhcpv6' config interface 'wan' option device 'br0.40' option proto 'pppoe' option username 'heremyuser@mdsl.mnet-online.de' option password 'heremypassword' option ipv6 '1' config device option name 'br0' option type 'bridge' list ports 'wan' config bridge-vlan option device 'br0' option vlan '40' list ports 'wan:t'
Switch
Case label | swconfig/kernel port number |
---|---|
1 | 4 |
2 | 2 |
3 | 0 |
4 | 1 |
WAN (red) | 5 |
- | 6 (CPU) |
- | 3 (unused) |
Depending on your version of LuCI and your /etc/board.json
, LuCI may display ports in various orders (matching the labels/matching the swconfig numbering/not matching anything) and may or may not list the WAN port even though it's available via swconfig.
- If LuCI lists seven ports (Port 0 -- Port 5 + CPU), it's probably using the swconfig numbering and ignoring
/etc/board.json
. Put up with the internal numbering or upgrade LuCI. On the bright side, you don't need to edit anything to make use of the WAN port. - If LuCI lists five ports (LAN 1 -- LAN 4 + CPU), it's probably using either the case label numbering or a made-up numbering. Either way, it's probably based on
/etc/board.json
. You can either use/etc/config/network
instead or edit /etc/board.json to make the UI include the WAN port (and if necessary, correct the numbering).
Notes about this quirky layout:
- According to swconfig
eth0
is the (only) interface through which the switch is configured, yet if you want to see traffic on switch port 5 (WAN) you'll need to add it to a VLAN and you'll see the traffic oneth1.N
, which isn't presented as a choice in LuCI. (eth1 seems to behave both as a second CPU port and as a physical port on the switch, depending on context.)- For example, in the typical wired-WAN setup where you've put ports 1--4 in VLAN 1 and the WAN port in VLAN 2, you'd set Interfaces → WAN → Physical Settings → Custom Interface:
eth1.2
.
- Since commit 3ea9c85e (mid-Aug 2016) LuCI can hide some of the layout oddness.
/etc/board.d/02_network
generates/etc/board.json
which newer LuCI uses when presenting the Network → Switch page.- OpenWrt has an incorrect
/etc/board.d/02_network
as of r48941, but (with newer LuCI) you can edit /etc/board.json. - LEDE has a correct
/etc/board.d/02_network
as of 96f6bd501 so should have a correct/etc/board.json
, but may not expose the WAN port.
- In at least LEDE, at the kernel/driver/switch level the layout seems unlikely to change, so kernel messages and swconfig will use the non-obvious switch port numbering for the foreseeable future.
- It's possible that configurations using
eth1
may be unstable. - LAN and WAN may have been separated this way to avoid "tx ring" kernel errors; more clarity needed.
Example board.json tweak
Assumptions:
- you want to use the WAN port, not DSL, for your uplink
- you're using a LuCI newer than commit 3ea9c85e (mid-Aug 2016) meaning you see LAN 1 -- LAN 4; either you're annoyed that you can't see port 5, or you're annoyed at the UI not matching the labelled ports
- you've made a backup copy of
/etc/board.json
already, or you're confident you can regenerate defaults using/etc/board.d/*
later
Replace /etc/board.json
with the following. Note that by doing this, you're not configuring anything. /etc/board.json
is only meant to describe hardware properties and defaults. The changes to roles
and network
are just for internal consistency. Nonetheless, you should put your own unit's MAC address in network:*:macaddr
.
{ "model": { "id": "BTHOMEHUBV5A", "name": "BT Home Hub 5A" }, "led": { "wifi": { "name": "wifi", "type": "trigger", "sysfs": "bthomehubv5a:blue:wireless", "trigger": "phy0tpt" }, "internet": { "name": "internet", "type": "netdev", "sysfs": "bthomehubv5a:blue:broadband", "device": "nas0", "mode": "link tx rx" }, "dimmed": { "name": "dimmed", "sysfs": "dimmed", "default": "0" } }, "switch": { "switch0": { "enable": true, "reset": true, "ports": [ { "num": 0, "role": "lan", "index": 3 }, { "num": 1, "role": "lan", "index": 4 }, { "num": 2, "role": "lan", "index": 2 }, { "num": 4, "role": "lan", "index": 1 }, { "num": 5, "role": "wan", "index": 5 }, { "num": 6, "device": "eth0", "need_tag": true } ], "roles": [ { "role": "lan", "ports": "0 1 2 4 6t", "device": "eth0.1" } { "role": "wan", "ports": "5 6t", "device": "eth1.2" } ] } }, "network": { "lan": { "ifname": "eth0.1", "protocol": "static", "macaddr": "18:62:2c:XX:XX:XX" }, "wan": { "ifname": "eth1.2", "protocol": "dhcp", "macaddr": <copy this from lan above, bump last octet up by one> } } }
Known Issues
Link references
To update from any previously installed version of OpenWrt, or LEDE prior to r2363 (30 Nov 2016), to LEDE snapshot r2363 and later, it is recommended to restore the stock BT Firmware, and then proceed to install the latest LEDE snapshot from scratch. Alternatively, a 'migrate' script is also available where no original nanddump is available - use earlier 'LEDE install image' v0.1 (Nov 2016) where the 'migrate' script has been tested. v1.0 (Nov 2017) has NOT been tested.