I only have a "vr11-B-dsl.bin" in the folder, all other files are either bsdiff or md5sum files.

I have patched the firmware like that: bspatch vr11-B-dsl.bin release-vr11-B-dsl.bin release-vr11-B-dsl.bin.bsdiff

Does that mean, vr11-B-dsl.bin is the latest firmware and the bspatch just creates an older release version?

Yes, vr11-B-dsl.bin is already the latest Annex B firmware. The .bsdiff files are only needed if you want an Annex A firmware or the older version.

One way to see the version from just the file is to call strings firmware.bin | grep "@(#)". This will return two versions, the first one is the VDSL firmware version, and the second one is the ADSL firmware version.

These should be the DSL firmware versions contained in current AVM firmware:

$ sha256sum *
9e910d6da64c00b0ee62ae83e4001f9f1725e0c541c6a81d32c81bdd69145922  xcpe_8B3617_8B1011_a.bin
33e4fd900b7fb5d28390cb4e8509add6167c718adc46aef1c1f3a172fdeaa6ed  xcpe_8B3617_8B1012_b.bin
12766895a4925ac37c38b92c5a882cfa7ed2b2527033cfb8e2a180f0515b0e7a  xcpe_8D1A17_8D0D11_a.bin
6aa29f5fa48ca8a43430f998b08c67e596e48e5eb8d97fecfbd4f3283e2fd6c6  xcpe_8D1A17_8D0D12_b.bin

for some reason mine seems to be latching on to the old firmware maybe, it's reporting the same version even after copying over a new blob and restarting the dsl_control service, the process list clearly shows the right arguments have been passed to vdsl_cpe_control

maybe because i'm u sing the initramfs way still

Switching to a different DSL firmware once it was already loaded doesn't seem to work at the moment (I didn't look into why this doesn't work).

If you are running from initramfs, the easiest solution for now is probably to build an image with the DSL firmware you want to use (putting it into files/lib/firmware/vdsl.bin before building the image should be enough).

Unloading the kernel modules before switching the firmware should also be possible, but this is tedious, and may crash the system if a connection was already established before (not all of the drivers have working cleanup procedures).

I decided to go ahead and write to flash

yes it's faster with newer dsl blob

I also see in the switch config that ports are getting counted twice, perhaps this is 5.10 kernel specific ?

Here's a patch to increase cpu speed https://github.com/LGA1150/openwrt/commit/a1cb236afcbd6af11bc6ee76a58874e180cbad46.patch

I just pushed a small change to my branch. This primarily fixes the issue that the driver was reading the SKB length for statistics purposes after it is already freed. I also rebased the branch and added notes about my changes to the previous commit messages.

1 Like

i figured out why I was seeing double the ports
/etc/board.d/02_network.orig
/etc/board.d/02_network.rej

:slight_smile:

stats after a 3day+ uptime

/etc/init.d/dsl_control dslstat
{
	"api_version": "4.21.3",
	"firmware_version": "8.13.1.10.1.7",
	"chipset": "Lantiq-VRX500",
	"driver_version": "1.9.3",
	"state": "Showtime with TC-Layer sync",
	"state_num": 7,
	"up": true,
	"uptime": 322986,
	"atu_c": {
		"vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			177,
			197
		],
		"vendor": "Broadcom 177.197",
		"system_vendor_id": [
			181,
			0,
			66,
			68,
			67,
			77,
			0,
			0
		],
		"system_vendor": "Broadcom",
		"version": [
			130,
			123,
			204,
			192,
			0,
			16,
			65,
			65,
			49,
			54,
			49,
			48,
			70,
			83,
			48,
			72
		],
		"serial": [
			65,
			65,
			49,
			54,
			49,
			48,
			70,
			83,
			48,
			72,
			51,
			45,
			48,
			51,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0,
			0
		]
	},
	"power_state": "L0 - Synchronized",
	"power_state_num": 0,
	"xtse": [
		0,
		0,
		0,
		0,
		0,
		0,
		0,
		2
	],
	"annex": "B",
	"standard": "G.993.2",
	"profile": "17a",
	"mode": "G.993.2 (VDSL2, Profile 17a, with down- and upstream vectoring)",
	"upstream": {
		"vector": true,
		"trellis": true,
		"bitswap": true,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 0,
		"data_rate": 41194000,
		"latn": 13.900000,
		"satn": 14.300000,
		"snr": 8.000000,
		"actps": -90.100000,
		"actatp": 1.900000,
		"attndr": 42432000
	},
	"downstream": {
		"vector": true,
		"trellis": true,
		"bitswap": true,
		"retx": true,
		"virtual_noise": false,
		"interleave_delay": 140,
		"data_rate": 112040000,
		"latn": 12.200000,
		"satn": 12.200000,
		"snr": 6.700000,
		"actps": -90.100000,
		"actatp": 13.200000,
		"attndr": 117145600
	},
	"errors": {
		"near": {
			"es": 2,
			"ses": 2,
			"loss": 0,
			"uas": 131,
			"lofs": 0,
			"fecs": 2557,
			"hec": 0,
			"ibe": 0,
			"crc_p": 1133,
			"crcp_p": 0,
			"cv_p": 464,
			"cvp_p": 0,
			"rx_corrupted": 7719,
			"rx_uncorrected_protected": 5648,
			"rx_retransmitted": 0,
			"rx_corrected": 2071,
			"tx_retransmitted": 1413
		},
		"far": {
			"es": 645,
			"ses": 87,
			"loss": 0,
			"uas": 131,
			"lofs": 0,
			"fecs": 144566,
			"hec": 0,
			"ibe": 0,
			"crc_p": 0,
			"crcp_p": 0,
			"cv_p": 0,
			"cvp_p": 0,
			"rx_corrupted": 5455729,
			"rx_uncorrected_protected": 5098347,
			"rx_retransmitted": 0,
			"rx_corrected": 357382,
			"tx_retransmitted": 2749291
		}
	},
	"erb": {
		"sent": 1114599,
		"discarded": 0
	}
}

@janh @wilsonyan Could you sent/link me one of your currently running initramfs and sysupgrade image? I don't want to go through the hassle of building it myself without changing anything.

Current Image from Jans repo with luci:

https://easyupload.io/qu34gj

1 Like

Thank you very much!
Do you also have a initramfs image?

2 Likes

Hello, i tried your build, but i can´t get a PPPoE connection to work, the modem syncs correctly with the latest AVM firmware blob, but i think i have some quirk in my network cfg, tried various configs for my provider Deutsche Telekom, but nothing worked, wanted to ask if someone has some kind of example config for that. Thank you for your hard work on this.

Hi, could you please post your whole log?

For DTAG you need to use PPPoE inside VLAN 7 on top of the PTM interface.
The easiest way to do that is to simply change the device name for the WAN from ptm0 to ptm0.7 (that will implicitly create 802.3Q VLAN with ID 7 on top of ptm0 and use that for PPPoE).

config interface 'wan'
	option device 'ptm0.7'
	option proto 'pppoe'
	option username '002222222222555555555555#0001@t-online.de'
	option password 'XXXXXXXX'
	option ipv6 'auto'

config interface 'wan6'
	option device '@wan'
	option proto 'dhcpv6'
3 Likes

Thank you, that worked like a charm!

1 Like

Generally you have to configure a PPPoE WAN Interface on top of a ptm0 or a certain VLAN within ptm0. E.g. for most German DSL ISPs VLAN 7 (ptm0.7).
For example it works flawless on my 1&1 access (config for Telekom should be the same):


@mm933
Thank you very much!

Also works nice on a 250 Mbit/s access:

root@OpenWrt:~# /etc/init.d/dsl_control dslstat
{
        "api_version": "4.21.3",
        "firmware_version": "8.12.1.7.1.7",
        "chipset": "Lantiq-VRX500",
        "driver_version": "1.9.3",
        "state": "Showtime with TC-Layer sync",
        "state_num": 7,
        "up": true,
        "uptime": 469,
        "atu_c": {
                "vendor_id": [
                        181,
                        0,
                        66,
                        68,
                        67,
                        77,
                        192,
                        26
                ],
                "vendor": "Broadcom 192.26",
                "system_vendor_id": [
                        181,
                        0,
                        66,
                        68,
                        67,
                        77,
                        0,
                        0
                ],
                "system_vendor": "Broadcom",
                "version": [
                        118,
                        49,
                        49,
                        46,
                        48,
                        48,
                        46,
                        48,
                        57,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                ],
                "serial": [
                        72,
                        49,
                        48,
                        75,
                        51,
                        48,
                        48,
                        53,
                        56,
                        55,
                        55,
                        95,
                        48,
                        53,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0
                ]
        },
        "power_state": "L0 - Synchronized",
        "power_state_num": 0,
        "xtse": [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                2
        ],
        "annex": "B",
        "standard": "G.993.2",
        "profile": "35b",
        "mode": "G.993.2 (VDSL2, Profile 35b, with down- and upstream vectoring)                                                                             ",
        "upstream": {
                "vector": true,
                "trellis": true,
                "bitswap": true,
                "retx": true,
                "virtual_noise": false,
                "interleave_delay": 0,
                "data_rate": 46719000,
                "latn": 12.300000,
                "satn": 12.000000,
                "snr": 7.500000,
                "actps": -90.100000,
                "actatp": 1.900000,
                "attndr": 48751000
        },
        "downstream": {
                "vector": true,
                "trellis": true,
                "bitswap": true,
                "retx": true,
                "virtual_noise": true,
                "interleave_delay": 100,
                "data_rate": 261963000,
                "latn": 17.100000,
                "satn": 16.400000,
                "snr": 6.600000,
                "actps": -90.100000,
                "actatp": 14.300000,
                "attndr": 266686104
        },
        "errors": {
                "near": {
                        "es": 0,
                        "ses": 0,
                        "loss": 0,
                        "uas": 114,
                        "lofs": 0,
                        "fecs": 12,
                        "hec": 0,
                        "ibe": 0,
                        "crc_p": 0,
                        "crcp_p": 0,
                        "cv_p": 7,
                        "cvp_p": 0,
                        "rx_corrupted": 40,
                        "rx_uncorrected_protected": 0,
                        "rx_retransmitted": 0,
                        "rx_corrected": 40,
                        "tx_retransmitted": 7
                },
                "far": {
                        "es": 8,
                        "ses": 0,
                        "loss": 0,
                        "uas": 114,
                        "lofs": 0,
                        "fecs": 3242,
                        "hec": 0,
                        "ibe": 0,
                        "crc_p": 0,
                        "crcp_p": 0,
                        "cv_p": 0,
                        "cvp_p": 0,
                        "rx_corrupted": 177590,
                        "rx_uncorrected_protected": 166315,
                        "rx_retransmitted": 0,
                        "rx_corrected": 11275,
                        "tx_retransmitted": 70100
                }
        },
        "erb": {
                "sent": 417,
                "discarded": 0
        }
}

Speedtest is 238 Mbit/s down, 44 Mbit/s up.

3 Likes

@janh How do you see the roadmap to merge your vrx518 branch upstream?

In case it is useful to somebody, here is a Dockerfile that automates the DSL firmware extraction and provides a prepared system for the OpenWRT build with @janh's vrx518 branch: https://pastebin.com/15J2ccmd

2 Likes

Can anybody confirm if analog (not DECT) telephony (FXS?) works with the last status of the vrx518 branch + extracted DSL firmware?

No, similar to other Fritzboxes there is no driver for anything telephony-related.

And regarding your previous question, there is no timeline. But I definitely plan to continue working on this, as I want to use the device as a modem myself.

3 Likes