OpenWrt Forum Archive

Topic: Lantiq XWAY WAVE300

The content of this topic has been archived between 30 Mar 2018 and 30 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

brrrrr, nop.

now i build again.

stuck again
lnl error fixed

.............................................
../../../wireless/shared/libmtlkwls.a ../../../tools/shared/linux/libmtlkc.a -Wl,--end-group -lpthread -lrt -lm -lnl 
mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand/tools/shared/linux/libmtlkc.a(mtlknlink.o): In function `parse_nl_cb':
mtlknlink.c:(.text+0x48): undefined reference to `genlmsg_parse'
/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand/tools/shared/linux/libmtlkc.a(mtlknlink.o): In function `mtlk_nlink_create':
mtlknlink.c:(.text+0x13c): undefined reference to `genl_connect'
mtlknlink.c:(.text+0x154): undefined reference to `genl_ctrl_resolve'
collect2: error: ld returned 1 exit status
make[4]: *** [drvhlpr] Error 1
make[4]: Leaving directory `/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand/tools/mttools/drvhlpr'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory `/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand/tools/mttools'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand/tools'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/cornelus/source-master/WAVE300/driver/builds/ugw5.1-vrx288-nand'
make: *** [all] Error 2

Can you send me the whole folder, so I can try to compile it on my machine? It is possible that there is something in ENV not set right

@blackadder1000, have you used the original firmware files (.bin) for your TD-W8980 router? I was wondering if, in order to have this "CHI magic" coming, we need to upload the specific firmware for the chipset. In this case yours is PSB8224

@Mandrake
I'm using the original firmware files from the 8980 firmware dated 14/05/2015 (I believe the last one issued). Extracted the files using binwalk from /lib/firmware

Here's a listing of the files there (ignore the permissions):

rw-rw---- 1 root everybody  24000 2017-08-30 19:19 ProgModel_A_CB_38_RevA_wave300.bin
-rw-rw---- 1 root everybody  48000 2017-08-30 19:19 ProgModel_A_CB_wave300.bin
-rw-rw---- 1 root everybody  24000 2017-08-30 19:19 ProgModel_A_nCB_38_RevA.bin
-rw-rw---- 1 root everybody  24000 2017-08-30 19:19 ProgModel_A_nCB_38_RevA_wave300.bin
-rw-rw---- 1 root everybody  48000 2017-08-30 19:20 ProgModel_A_nCB_wave300.bin
-rw-rw---- 1 root everybody 190208 2017-08-30 19:19 ap_upper_wave300.bin
-rw-rw---- 1 root everybody  90496 2017-08-30 19:19 contr_lm.bin

I renamed ap_upper_wave300.bin to ap_upper.bin. I also copied it as sta_upper.bin

Hi all,

I'm trying to enable 5 GHz wireless on my TP-LINK 9980 (it use WAVE 300 too) for a while.
From this I read this topic, I don't sure if WAVE 300 5 GHz work on openWrt now or not ?

I've download from Mandrake-Lee and vittorio88 's github.
and unrar it, I don't know how to install it. Can you guide me how to install it on openWrt ? what command to execute ?


for my information
I've use flash version 8970 and I can now bring up 2.4 GHz.

root@OpenWrt:~# lspci
00:0e.0 Wireless controller: Lantiq Wave300 PSB8224 [Hyperion III] (rev 01)
01:00.0 PCI bridge: Lantiq MIPS SoC PCI Express Port (rev 01)
02:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) (rev 01)

thanks.

(Last edited by apirak.pu on 31 Aug 2017, 08:42)

cornelus2009 wrote:

same error


LDFLAGS="-L${STAGING_DIR}/target-mips_24kc_musl/usr/lib/"
LDFLAGS="-L${DEFAULT_TOOLCHAIN_PATH}/usr/lib/"

You are overwriting the LDFLAGS variable instead of adding to it.
In my environment, the first variable is correct, and you shouldn't point to the TOOLCHAIN path, yet the target-mips path for -L of LDFLAGS.


Good luck!

apirak.pu wrote:

Hi all,

I'm trying to enable 5 GHz wireless on my TP-LINK 9980 (it use WAVE 300 too) for a while.
From this I read this topic, I don't sure if WAVE 300 5 GHz work on openWrt now or not ?

I've download from Mandrake-Lee and vittorio88 's github.
and unrar it, I don't know how to install it. Can you guide me how to install it on openWrt ? what command to execute ?


for my information
I've use flash version 8970 and I can now bring up 2.4 GHz.

root@OpenWrt:~# lspci
00:0e.0 Wireless controller: Lantiq Wave300 PSB8224 [Hyperion III] (rev 01)
01:00.0 PCI bridge: Lantiq MIPS SoC PCI Express Port (rev 01)
02:00.0 Network controller: Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express) (rev 01)

thanks.


Nobody has gotten it to work yet, however it seems good progress is being made.
You need to download the OpenWRT SDK first.
You can then follow the instructions in INSTRUCTIONS.txt to compile the driver.

If you are not familiar with cross-compiling, then you should wait until someone gets the driver to work unless you intend to spend hundreds of hours on it.

thanks vittorio88,

I'll try follow your instruction, don't care what time it takes.
If I can help this chip work, there will be new things to do with this device a lot more.

I'll update you if I go any further.

fight on!!!

apirak.pu wrote:

thanks vittorio88,

I'll try follow your instruction, don't care what time it takes.
If I can help this chip work, there will be new things to do with this device a lot more.

I'll update you if I go any further.

fight on!!!


big_smile

Hello everyone,

  • I have merged all changes from Vittorio88 into the branch "Dual-license"

  • Also I have made some fixes and updated the instructions.txt in order to show a workaround for the "-lnl" issue. I will explain here at the end

  • Please all testers, download the sources from https://github.com/Mandrake-Lee/WAVE300 … se-BSD_GPL.

  • Our goal is to make everything self-explanatory but cross-compiling is not an out-of-the-box thing. You need to invest some time reading and learning

  • Also you can check the wiki https://github.com/Mandrake-Lee/WAVE300/wiki and support it. I will try to do updates whenever it is significant

Regarding the -lnl issue, bear in mind this only happens if MTTOOLS are to be built. Basically the original code was designed to use libnl package. For our purposes, libnl-tiny is good enough and this is also the default package in openwrt/LEDE. Therefore the code is searching for a library named "libnl.so" whereas we have a "libnl-tiny.so".

If this is your case, just rename the file to "libnl.so" and you will have it. At least that worked for me smile

Regards!

Hello everybody!

Thanks Mandrake for taking the time to bring in my code.
I advise everybody to work off of Mandrake's branch now.

I am still stuck at the driver not printing anything.

In order to further troubleshoot, I would be grateful if one (Mandrake or blackadder1000) of you shared your built kernel modules with me. (I have shared my contact info on this thread already)

I am working with the following specs:

  • Mandrake's latest sources on branch Dual-License-BSD_GPL

  • target: UGW5.1 for VRX288

  • package: libnl-tiny

  • distro: lede-sdk-17.01.2-lantiq-xrx200_gcc-5.4.0_musl-1.1.16.Linux-x86_64

It doesn't have to match all the specs, but I believe VRX288 and lede 17.x.y are hard-requirements for the kernel module to load on my target.

Thanks,
Vittorio

GPL Dumps! We have fresh GPL Dumps! Get 'em while they're hot!

https://www.downloads.netgear.com/files … 46-GPL.zip
Note: there is also a 1.0.0.50 version, however, it appears Netgear has pulled it because I get an invalid link error...


In here I found:
D6100_V1.0.0.46_0.0.46_src_GPL/package/lantiq-wave300/src-3.4.1.0.22_Custom.00.09.71efed499d43

Before you get too excited, I checked, and it appears the driver source files have been omitted sad

There are, however, interesting release notes, and a bucket-load of firmware images.

I hope this can help, possibly those that are stuck "waiting for CHI magic".

Hello guys.
I've got a question. Where I can find bin files for driver?

I was able to compile driver for my TD-W9980 and I'd like to test it.

Cheers wyatt_

Hi Wyatt_,

I'd suggest you get the ones in the post of Vittorio88, the bins with "wave300" in the name.

You have to dig a bit in the tarball but it's not complicated.

I'd say that firmware it's the best bet we can make today.

You will have to rename some files though.

https://www.downloads.netgear.com/files … 46-GPL.zip

Mandrake

Thanks Mandrake

There are lot's of files. How do you know which files are required? I was following INSTRUCTIONS.txt and bin files have different than in netgear zip.

I'm aware that you're still working on it.

wyatt_

(Last edited by wyatt_ on 22 Sep 2017, 17:25)

Hi again.

If someone is interested, below can find my dmesg:

[ 3560.592202] mtlkroot: module license 'Proprietary' taints kernel.
[ 3560.596982] Disabling lock debugging due to kernel taint
[ 3560.607135] [0003260840] mtlk0(mtlk_cdev_init:316): Max nodex set to 1048575
 
 
[ 3647.241527] mtlk: unknown parameter 'cdebug' ignored
[ 3647.245735] [0003347480] mtlk2(mtlk_dfg_init:681): Starting MTLK
[ 3647.251153] [0003347488] mtlk0(__mtlk_print_endianess:3867): The system is Big endian (0xbeadfeed, 0xedfeadbe)
[ 3647.261123] [0003347496] mtlk1(mtlk_df_proc_node_create:125): Proc node root/ created
[ 3647.268964] [0003347504] mtlk1(mtlk_df_proc_node_create:127): Proc node root/mtlk created
[ 3647.277139] [0003347512] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry mtlk/version created
[ 3647.286275] [0003347520] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry mtlk/topology created
[ 3647.295596] [0003347532] mtlk0(mtlk_fast_mem_print_info:105): Using normal memory for hot context
[ 3647.304403] PCI: Enabling device 0000:00:0e.0 (0000 -> 0002)
[ 3647.310067] [0003347544] mtlk2(_mtlk_bus_drv_map_resource:247): BAR0=0x18800000 Len=0x1000 VA=0xb8800000
[ 3647.319522] [0003347556] mtlk2(_mtlk_bus_drv_map_resource:247): BAR1=0x18000000 Len=0x800000 VA=0xb8000000
[ 3647.329260] [0003347564] mtlk0(_mtlk_df_user_alloc_devname:6511): NDEV Name pattern: wlan%d
[ 3647.337610] [0003347572] mtlk1(mtlk_df_proc_node_create:127): Proc node mtlk/wlan1 created
[ 3647.345823] [0003347580] mtlk1(mtlk_df_proc_node_create:127): Proc node wlan1/Debug created
[ 3647.354179] [0003347588] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/hw_limits created
[ 3647.363573] [0003347600] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/reg_limits created
[ 3647.373062] [0003347608] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/antenna_gain created
[ 3647.382734] [0003347620] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry wlan1/do_debug_assert created
[ 3647.392382] [0003347628] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry wlan1/lm created
[ 3647.400913] [0003347636] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry wlan1/um created
[ 3647.409443] [0003347644] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry wlan1/shram created
[ 3647.418243] [0003347652] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/General created
[ 3647.427470] [0003347664] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/MACStats created
[ 3647.436774] [0003347672] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/igmp created
[ 3647.445738] [0003347680] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry Debug/ResetStats created
[ 3647.454964] [0003347692] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/aocs_history created
[ 3647.464624] [0003347700] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/aocs_table created
[ 3647.474112] [0003347708] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/aocs_channels created
[ 3647.483863] [0003347720] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/aocs_penalties created
[ 3647.493697] [0003347728] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry Debug/aocs_cl created
[ 3647.502661] [0003347736] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/L2NAT created
[ 3647.511714] [0003347748] mtlk1(_mtlk_df_proc_node_add_entry:229): Proc entry Debug/L2NAT_ClearTable created
[ 3647.521463] [0003347756] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/ReorderingStats created
[ 3647.531382] [0003347768] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry wlan1/EECaps created
[ 3647.540523] [0003347776] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/SendQueue created
[ 3647.549923] [0003347784] mtlk1(mtlk_df_proc_node_add_seq_entry:438): Proc entry Debug/serializer_dump created
[ 3647.559853] [0003347796] mtlk1(mtlk_print_drv_info:8042): *********************************************************
[ 3647.570270] [0003347804] mtlk1(mtlk_print_drv_info:8043): * Driver Compilation Details:
[ 3647.578272] [0003347812] mtlk1(mtlk_print_drv_info:8044): *********************************************************
[ 3647.588749] [0003347824] mtlk1(mtlk_print_drv_info:8046): * CONFIG=PLATFORM_UGW51_VRX288_NAND COMPONENTS LIN_DRV BUS_PCI_PCIE LINDRV_HW LINDRV_HW_PCIE LINDRV_HW_PCIG3 RF_MANAGEMENT_MTLK HOSTAP_06 DEBUG TXMM_HISTORY_LENGTH=3 NO_FW_RESET_ON_STOP RT_LOGGER_FUNCTIONS MAX_DLEVEL=2 USE_GENL_DEF USE_GENL DEVELOPMENT_PLATFORM ENVIRONMENT_NAME="ugw5.1-vrx288-nand" HOST_TYPE="mips-linux"
[ 3647.622315] [0003347856] mtlk1(mtlk_print_drv_info:8046): * CFLAGS=
[ 3647.628579] [0003347864] mtlk1(mtlk_print_drv_info:8046): * MTLK_KERNEL_CFLAGS=
[ 3647.635896] [0003347872] mtlk1(mtlk_print_drv_info:8046): * KERNELDIR=/home/dawid/source/build_dir/target-mips_24kc_musl-1.1.16/linux-lantiq_xrx200/linux-4.4.87
[ 3647.650265] [0003347884] mtlk1(mtlk_print_drv_info:8046): * CROSS_COMPILE=/home/dawid/WAVE300/driver/builds/ugw5.1-vrx288-nand/../../support/mtlkfront.sh /home/dawid/source/staging_dir/toolchain-mips_24kc_gcc-5.4.0_musl-1.1.16/bin/mips-openwrt-linux-
[ 3647.672446] [0003347908] mtlk1(mtlk_print_drv_info:8046): * HOSTNAME=
[ 3647.678890] [0003347916] mtlk1(mtlk_print_drv_info:8049): *********************************************************
[ 3647.689349] [0003347924] mtlk0(mtlk_core_pdb_fast_handles_open:33): Open Hot-path parameters
[ 3647.697891] [0003347932] mtlk1(mtlk_qos_set_map:152): Set 802.11 TID-to-AC mapping
[ 3647.705394] [0003347940] mtlk2(_mtlk_20_40_set_limit_to_20:1207): Limit to 20 flag is set to 0
[ 3647.713980] [0003347948] mtlk2(_mtlk_core_ability_control_callback:12248): called
[ 3647.721471] [0003347956] mtlk2(_mtlk_core_ability_control_callback:12248): called
[ 3647.729098] [0003347964] mtlk2(_mtlk_bus_drv_init:336): mtlk IRQ 0x1e
[ 3647.786496] [0003348020] mtlk2(_mtlk_mmb_load_firmware:1763): Loading 'sta_upper.bin' of 190208 bytes
[ 3647.820358] [0003348056] mtlk2(_mtlk_mmb_load_firmware:1792): Loading 'contr_lm.bin' of 90496 bytes
[ 3647.894797] [0003348132] mtlk3(_mtlk_mmb_wait_chi_magic:2099): Wait for CHI Magic failed (wait_res=0 value=0x23502350)
[ 3647.904793] [0003348140] mtlk3(MTLK_STEPS_ERROR_SD:54): STARTCTRL: hw_mmb_card:HW_WAIT_CHI_MAGIC_START FAILED! step (152)
[ 3647.915304] [0003348152] mtlk3(MTLK_STEPS_ERROR_S:48): STARTCTRL: hw_mmb_card START FAILED! Initiating rollback...
[ 3647.925756] [0003348160] mtlk3(MTLK_STEPS_ERROR_SD:54): STARTCTRL: bus_drv:BUS_MMB_START_CARD_INIT FAILED! step (152)
[ 3647.936432] [0003348172] mtlk3(MTLK_STEPS_ERROR_S:48): STARTCTRL: bus_drv INIT FAILED! Initiating rollback...
[ 3647.946454] [0003348180] mtlk0(mtlk_txmm_cleanup:917): Usage Peak=0 (Total=2)
[ 3647.953564] [0003348188] mtlk0(mtlk_txmm_cleanup:917): Usage Peak=0 (Total=32)
[ 3647.960865] CPU 0 Unable to handle kernel paging request at virtual address 00000044, epc == 81495a34, ra == 81495a14
[ 3647.971389] Oops[#1]:
[ 3647.973605] CPU: 0 PID: 15205 Comm: insmod Tainted: P                4.4.61 #0
[ 3647.980824] task: 81c14f18 ti: 82f46000 task.ti: 82f46000
[ 3647.986214] $ 0   : 00000000 00000001 00000002 82452400
[ 3647.991435] $ 4   : 8245243c 8260619c 00000000 00000017
[ 3647.996657] $ 8   : 00000000 8245243c ad922b40 4b955af7
[ 3648.001880] $12   : 00070010 00000001 00000000 ffffffff
[ 3648.007102] $16   : 82d6de40 02080020 0000001c 00000001
[ 3648.012324] $20   : 00000024 814a0000 82606180 00000005
[ 3648.017547] $24   : 00000000 00000100                  
[ 3648.022769] $28   : 82f46000 82f47aa0 82452414 81495a14
[ 3648.027993] Hi    : 0000005f
[ 3648.030865] Lo    : 59999b17
[ 3648.033748] epc   : 81495a34 0x81495a34 [mtlkroot@81490000+0xd4a0]
[ 3648.039925] ra    : 81495a14 0x81495a14 [mtlkroot@81490000+0xd4a0]
[ 3648.046096] Status: 1100fc03 KERNEL EXL IE
[ 3648.050276] Cause : 00800008 (ExcCode 02)
[ 3648.054278] BadVA : 00000044
[ 3648.057152] PrId  : 00019556 (MIPS 34Kc)
[ 3648.061067] Modules linked in: mtlk(P+) mtlkroot(P) ltq_ptm_vr9 ath9k ath9k_common iptable_nat ath9k_hw ath wireguard pppoe nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_hashlimit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT pppox ppp_async owl_loader nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack ltq_deu_vr9 iptable_mangle iptable_filter ip_tables crc_ccitt compat drv_dsl_cpe_api ledtrig_usbport drv_mei_cpe ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables pppoatm ppp_generic slhc ip6_udp_tunnel udp_tunnel br2684 atm drv_ifxos usb_storage uhci_hcd ohci_platform ohci_hcd sd_mod scsi_mod f2fs ext4 jbd2 mbcache crc32c_generic dwc2 gpio_button_hotplug cryptomgr aead crypto_null
[ 3648.145242] Process insmod (pid: 15205, threadinfo=82f46000, task=81c14f18, tls=77dd1d48)
[ 3648.153416] Stack : 80cc0664 80440000 00000003 81031ca0 00000000 00000001 82606180 8149c5a0
[ 3648.153416]    81cbb9a8 0000001c 00000000 00000000 80cc0664 b8800000 804d0000 814942a0
[ 3648.153416]    838ac800 80cc0000 80cc0664 00000002 00000005 00070010 804b8060 81cbb980
[ 3648.153416]    fffffff9 80cc0000 80cc0000 838ac800 80cc0000 8149437c 8308e14d 00300000
[ 3648.153416]    82fe1400 fffffff9 80cc0000 81c64000 fffffff9 80cc0000 80cc0000 838ac800
[ 3648.153416]    ...
[ 3648.188928] Call Trace:[<814942a0>] 0x814942a0 [mtlkroot@81490000+0xd4a0]
[ 3648.195746] [<8149437c>] 0x8149437c [mtlkroot@81490000+0xd4a0]
[ 3648.201582] [<80c57958>] 0x80c57958 [mtlk@80c00000+0xc6ea0]
[ 3648.207150] [<80c82294>] 0x80c82294 [mtlk@80c00000+0xc6ea0]
[ 3648.212711] [<8176cccc>] 0x8176cccc [mtlk@80c00000+0xc6ea0]
[ 3648.218313] [<801f4b24>] 0x801f4b24
[ 3648.221746] [<8021d7a4>] 0x8021d7a4
[ 3648.225246] [<8021dfc8>] 0x8021dfc8
[ 3648.228709] [<800a24ec>] 0x800a24ec
[ 3648.232210] [<8021e240>] 0x8021e240
[ 3648.235674] [<8021e1b4>] 0x8021e1b4
[ 3648.239154] [<8021c01c>] 0x8021c01c
[ 3648.242642] [<803d23f4>] 0x803d23f4
[ 3648.246136] [<8021d49c>] 0x8021d49c
[ 3648.249604] [<80c34d64>] 0x80c34d64 [mtlk@80c00000+0xc6ea0]
[ 3648.255184] [<8021e884>] 0x8021e884
[ 3648.258658] [<8176cfc0>] 0x8176cfc0 [mtlk@80c00000+0xc6ea0]
[ 3648.264233] [<801bbb64>] 0x801bbb64
[ 3648.267714] [<8176ce30>] 0x8176ce30 [mtlk@80c00000+0xc6ea0]
[ 3648.273274] [<8000c88c>] 0x8000c88c
[ 3648.276762] [<8003e8f0>] 0x8003e8f0
[ 3648.280273] [<800779d8>] 0x800779d8
[ 3648.283725] [<800b9154>] 0x800b9154
[ 3648.287213] [<80079024>] 0x80079024
[ 3648.290689] [<80077000>] 0x80077000
[ 3648.294176] [<8002723c>] 0x8002723c
[ 3648.297647] [<800794ec>] 0x800794ec
[ 3648.301137] [<8000482c>] 0x8000482c
[ 3648.304611] [<80006c58>] 0x80006c58
[ 3648.308091]
[ 3648.309565]
[ 3648.309565] Code: 8fa2004c  24e7ffff  00e23821 <8c020044> 00e2102b  14400013  3c03804d  3c10814a  9202c680
[ 3648.319554] ---[ end trace b81ef30ce6e4079b ]---

For me it doesn't speak to much.

wyatt_

This new driver source is useless sad

1)
Only usable sources are from 3.2 branch, from https://github.com/Mandrake-Lee/WAVE300, even GPLed 3.1 is useless (missing sources for RF). And radio fw should match to this version - so you should try firmware from 3.2.
I think the newest you can find is TD-W8980_V1_131012.zip , please extract them with 7zip or download from here
https://ufile.io/yha8i

You should modprobe mtlk driver with parameter ap=1 - this is necessary to set an access point!

This should be sufficient to boot radio chip (fw sends CHI Magic packet to driver and unusable mtlk0 interface appears).

Next stages:
2) you should copy 4 ProgModel files, to be able to do scanning (it is necessary to bring interface up, as mtlk driver verifies for possible bandwidth 40/20 MHz)
3) verify with ifconfig mtlk0 up - it will take start scanning and finally brings interface up (you will see a new wireless network)
...
4) For WPA, an old version for hostapd is needed (1.1 works, I don't remeber if 2.1 too). wpad from LEDE will not work - mtlk driver for hostapd conflicts with LEDE patches, and after compiling it just doesn't work.
I can find a binary blob, customized to work with OpenWRT AA (in both AP and sta mode). Atheros/Qualcomm driver should use standard wpad from LEDE.
5) I have the driver for OpenWRT to work with mtlk driver, it needs LuCI patches and library patching to get statistics (IOCTL) about connected clients. It should work with LEDE

(Last edited by lpm11 on 22 Sep 2017, 21:15)

Wow Lpm11!

This seems like the last piece of the jigsaw in order to bring up the driver. Greatly appreciated.

Gents (Vittorio, Wyatt_, Apirak, Blackadder), if you can confirm points 1 to 3, I will update the sources with these instructions and the link with the only useable firmware files.

Unfortunately, my platform utilizes PCIe and the lantiq driver is broken. I need first to repair that before testing anything.

@Lpm11, is there a kind of checking between the loaded firmware and rflib? If so, it could be removed from the sources and be more flexible.

Regarding point 4; it would be great if you could share what you made and we will figure out how to overcome the wpa issue.

Little by little guys,
Mandrake

lpm11 wrote:

This new driver source is useless sad

1)
Only usable sources are from 3.2 branch, from https://github.com/Mandrake-Lee/WAVE300, even GPLed 3.1 is useless (missing sources for RF). And radio fw should match to this version - so you should try firmware from 3.2.
I think the newest you can find is TD-W8980_V1_131012.zip , please extract them with 7zip or download from here
https://ufile.io/yha8i

You should modprobe mtlk driver with parameter ap=1 - this is necessary to set an access point!

This should be sufficient to boot radio chip (fw sends CHI Magic packet to driver and unusable mtlk0 interface appears).

Next stages:
2) you should copy 4 ProgModel files, to be able to do scanning (it is necessary to bring interface up, as mtlk driver verifies for possible bandwidth 40/20 MHz)
3) verify with ifconfig mtlk0 up - it will take start scanning and finally brings interface up (you will see a new wireless network)
...
4) For WPA, an old version for hostapd is needed (1.1 works, I don't remeber if 2.1 too). wpad from LEDE will not work - mtlk driver for hostapd conflicts with LEDE patches, and after compiling it just doesn't work.
I can find a binary blob, customized to work with OpenWRT AA (in both AP and sta mode). Atheros/Qualcomm driver should use standard wpad from LEDE.
5) I have the driver for OpenWRT to work with mtlk driver, it needs LuCI patches and library patching to get statistics (IOCTL) about connected clients. It should work with LEDE

lpm11 wrote:

This new driver source is useless sad

1)
Only usable sources are from 3.2 branch, from https://github.com/Mandrake-Lee/WAVE300, even GPLed 3.1 is useless (missing sources for RF). And radio fw should match to this version - so you should try firmware from 3.2.
I think the newest you can find is TD-W8980_V1_131012.zip , please extract them with 7zip or download from here
https://ufile.io/yha8i

You should modprobe mtlk driver with parameter ap=1 - this is necessary to set an access point!

This should be sufficient to boot radio chip (fw sends CHI Magic packet to driver and unusable mtlk0 interface appears).


I can confirm the firmware shared by lpm11 works.

root@vitto-rtr1:~/badder_mtlk_v3# insmod mtlkroot.ko 
[  546.688696] [0000246644] mtlk0(mtlk_cdev_init:316): Max nodex set to 1048575
root@vitto-rtr1:~/badder_mtlk_v3# insmod mtlk.ko 
[  550.782194] [0000250736] mtlk0(__mtlk_print_endianess:3869): The system is Big endian (0xbeadfeed, 0xedfeadbe)
[  550.791070] [0000250744] mtlk0(mtlk_fast_mem_print_info:105): Using normal memory for hot context
[  550.799776] PCI: Enabling device 0000:00:0e.0 (0000 -> 0002)
[  550.805569] [0000250760] mtlk0(_mtlk_df_user_alloc_devname:6511): NDEV Name pattern: wlan%d
[  550.814109] [0000250768] mtlk0(mtlk_core_pdb_fast_handles_open:33): Open Hot-path parameters
[  550.924063] [0000250880] mtlk3(_mtlk_mmb_wait_chi_magic:2086): Value output from CHI VA 0xbeadfeed)
[  550.957647] [0000250912] mtlk0(_mtlk_core_start:9001): CID-0000: Driver version: 3.2.1.1.48..PciG3.PcieG3.Debug
[  550.957647] MAC/PHY versions:
[  550.957647] sta_upper.bin: @@@ VERSION INFO @@@ version number: FW_3.2.1_r5437 MIPS:  Upper CPU(TMC AGG STA) interface: PCI  phy type: real phy on Mar 28 2012 at 11:00:19@@@ END @@@
[  550.957647] contr_lm.bin: @@@ VERSION INFO @@@ version number: FW_3.2.1_r5437 MIPS:  Lower MAC  interface: --  phy type: real phy on Mar 28 2012 at 10:59:46@@@ END @@@
[  550.957647] 
[  552.099480] [0000252052] mtlk0(mtlk_eeprom_check_ee_data:2094): Options mask is 0x00
[  552.107045] [0000252060] mtlk4(load_default_hw_table:1768): No HW limits is available for this platform (0x1a30:0x0700, type 0x38 rev 0x42)
[  552.121541] CPU 1 Unable to handle kernel paging request at virtual address 00000000, epc == 8614b6f4, ra == 8614b6e4
[  552.130790] Oops[#1]:
[  552.132995] CPU: 1 PID: 1542 Comm: insmod Tainted: P                4.4.79 #0
[  552.140119] task: 878c9038 ti: 86ad6000 task.ti: 86ad6000
[  552.145511] $ 0   : 00000000 00000001 00000000 00098600
[  552.150721] $ 4   : 86bdcd04 38010000 86ed1326 0000001e
[  552.155949] $ 8   : 00000000 86ad7aba 00000010 86ef0a80
[  552.161168] $12   : 000000fc 000000fc 00000000 00000000
[  552.166388] $16   : 86ad7ab4 86bdcd04 861f0000 861d1114
[  552.171611] $20   : 861d3e90 861f0000 861d0000 861d0000
[  552.176837] $24   : 00000010 00000000                  
[  552.182058] $28   : 86ad6000 86ad7a68 861d0000 8614b6e4
[  552.187278] Hi    : 70e3b671
[  552.190165] Lo    : b5d28736
[  552.194003] epc   : 8614b6f4 mtlk_df_ui_set_mac_addr+0x58/0x84 [mtlk]
[  552.200483] ra    : 8614b6e4 mtlk_df_ui_set_mac_addr+0x48/0x84 [mtlk]
[  552.205918] Status: 1100c303 KERNEL EXL IE 
[  552.210090] Cause : 0080000c (ExcCode 03)
[  552.214100] BadVA : 00000000
[  552.216977] PrId  : 00019556 (MIPS 34Kc)
[  552.220882] Modules linked in: mtlk(P+) mtlkroot(P) ltq_ptm_vr9 pppoe nf_conntrack_ipv6 iptable_nat ipt_REJECT ipt_MASQUERADE xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_]
[  552.285739] Process insmod (pid: 1542, threadinfo=86ad6000, task=878c9038, tls=77a39d48)
[  552.293822] Stack : 861f0000 861d1114 861d3e90 861f0000 861d0000 86951804 868c6a00 861290fc
          861dd728 00000006 00000024 861cd304 861d11a0 861d6eec 00000000 000000c3
          861d11a0 861d0000 86ecf798 00098600 00000000 00000000 00000000 00000000
          00000000 00000000 868c6a00 861dd728 00000000 861f0000 00000000 861ddb24
          861d0000 861d0000 861f0000 86155b38 86ad7b34 86154a6c 86951000 868c6a00
          ...
[  552.329330] Call Trace:
[  552.332786] [<8614b6f4>] mtlk_df_ui_set_mac_addr+0x58/0x84 [mtlk]
[  552.339772] [<861290fc>] mtlk_core_get_is_ht_cfg+0x2380/0x672c [mtlk]
[  552.345745] 
[  552.346242] 
Code: 8c420004  9a030003  8c420204 <a8430000> b8430003  92030004  a0430004  92030005  a0430005 
[  552.356255] ---[ end trace 0af25bcb6ac2793f ]---
[  552.364070] Fatal exception: panic in 5 seconds

It panics shortly later. I have yet to determine why (code porting incomplete or binary mismatch).
I am currently using drivers built for me by blackadder1000 for OpenWRT on LEDE (???) because the modules I build do not print or do anything even though they appear to insmod properly.

Hello

The same situation here.

[58956.451820] [0058658312] mtlk0(mtlk_fast_mem_print_info:105): Using normal memory for hot context
[58956.460541] PCI: Enabling device 0000:00:0e.0 (0000 -> 0002)
[58956.466251] [0058658324] mtlk0(_mtlk_df_user_alloc_devname:6511): NDEV Name pattern: wlan%d
[58956.474764] [0058658332] mtlk0(mtlk_core_pdb_fast_handles_open:33): Open Hot-path parameters
[58956.483072] [0058658340] mtlk4(_mtlk_core_get_max_stas_supported_by_fw:3227): Cannot get MAX STAs supported by FW. Forcing default
[58956.672810] [0058658532] mtlk0(_mtlk_core_start:9001): CID-0000: Driver version: 3.2.1.1.48..PciG3.PcieG3.Debug
[58956.672810] MAC/PHY versions:
[58956.672810] ap_upper.bin: @@@ VERSION INFO @@@ version number: FW_3.2.1_r5437 MIPS:  Upper CPU(TMC AGG AP) interface: PCI  phy type: real phy on Mar 28 2012 at 11:00:01@@@ END @@@
[58956.672810] contr_lm.bin: @@@ VERSION INFO @@@ version number: FW_3.2.1_r5437 MIPS:  Lower MAC  interface: --  phy type: real phy on Mar 28 2012 at 10:59:46@@@ END @@@
[58956.672810] 
[58957.812633] [0058659672] mtlk0(mtlk_eeprom_check_ee_data:2094): Options mask is 0x00
[58957.819549] [0058659680] mtlk4(load_default_hw_table:1768): No HW limits is available for this platform (0x1a30:0x0700, type 0x38 rev 0x41)
[58957.832450] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 81b46770, ra == 81b46760
[58957.842286] Oops[#1]:
[58957.844434] CPU: 0 PID: 2293 Comm: insmod Tainted: P                4.4.61 #0
[58957.851566] task: 82615420 ti: 82322000 task.ti: 82322000
[58957.856956] $ 0   : 00000000 80610000 00000000 00098600
[58957.862178] $ 4   : 82085684 38010000 00000000 82354120
[58957.867400] $ 8   : 00000000 82323b0a 00000010 00002710
[58957.872622] $12   : 00000000 00000000 00000000 0007ca34
[58957.877845] $16   : 82323b04 82085684 81bc0000 00000000
[58957.883067] $20   : 81bc0000 82fca200 81917200 b8800000
[58957.888290] $24   : 00000010 ea01dd17                  
[58957.893512] $28   : 82322000 82323ac0 804d0000 81b46760
[58957.898735] Hi    : 70e3b671
[58957.901607] Lo    : b5d28736
[58957.904491] epc   : 81b46770 0x81b46770 [mtlk@81b00000+0xc6ea0]
[58957.910406] ra    : 81b46760 0x81b46760 [mtlk@81b00000+0xc6ea0]
[58957.916317] Status: 1100fc03    KERNEL EXL IE 
[58957.920497] Cause : 0080000c (ExcCode 03)
[58957.924498] BadVA : 00000000
[58957.927373] PrId  : 00019556 (MIPS 34Kc)
[58957.931287] Modules linked in: mtlk(P+) mtlkroot(P) ltq_ptm_vr9 ath9k ath9k_common iptable_nat ath9k_hw ath wireguard pppoe nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_hashlimit xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT pppox ppp_async owl_loader nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_nat nf_log_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack ltq_deu_vr9 iptable_mangle iptable_filter ip_tables crc_ccitt compat drv_dsl_cpe_api ledtrig_usbport drv_mei_cpe ip6t_REJECT nf_reject_ipv6 nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables x_tables pppoatm ppp_generic slhc ip6_udp_tunnel udp_tunnel br2684 atm drv_ifxos usb_storage uhci_hcd ohci_platform ohci_hcd sd_mod scsi_mod f2fs ext4 jbd2 mbcache crc32c_generic dwc2 gpio_button_hotplug cryptomgr aead crypto_null
[58958.015462] Process insmod (pid: 2293, threadinfo=82322000, task=82615420, tls=77bb7d48)
[58958.023549] Stack : 81bc0000 00000000 81bc0000 81911804 81911804 81911804 82fca200 81b26414
[58958.023549]       81917690 82034e6c 81910000 8203c800 81bb7558 00000000 81bc5c10 00000002
[58958.023549]       00000012 00098600 0000010c 00000000 00000000 00000000 00000000 00000000
[58958.023549]       82fca200 00000000 81bc0000 81bc0000 00000000 81b4f3f4 81b81fc8 82fca200
[58958.023549]       819103b0 8191026c 8191026c 81b4ec18 82085804 00000000 82085804 82fca200
[58958.023549]       ...
[58958.059061] Call Trace:[<81b26414>] 0x81b26414 [mtlk@81b00000+0xc6ea0]
[58958.065599] [<82034e6c>] 0x82034e6c [mtlkroot@82030000+0xd4a0]
[58958.071440] [<81b4f3f4>] 0x81b4f3f4 [mtlk@81b00000+0xc6ea0]
[58958.077001] [<81b81fc8>] 0x81b81fc8 [mtlk@81b00000+0xc6ea0]
[58958.082578] [<81b4ec18>] 0x81b4ec18 [mtlk@81b00000+0xc6ea0]
[58958.088166] [<8262cbd8>] 0x8262cbd8 [mtlk@81b00000+0xc6ea0]
[58958.093756] [<801f4b24>] 0x801f4b24
[58958.097189] [<8021d7a4>] 0x8021d7a4
[58958.100689] [<8021dfc8>] 0x8021dfc8
[58958.104152] [<800a24ec>] 0x800a24ec
[58958.107653] [<8021e240>] 0x8021e240
[58958.111117] [<8021e1b4>] 0x8021e1b4
[58958.114597] [<8021c01c>] 0x8021c01c
[58958.118085] [<803d23f4>] 0x803d23f4
[58958.121579] [<8021d49c>] 0x8021d49c
[58958.125047] [<81b34d64>] 0x81b34d64 [mtlk@81b00000+0xc6ea0]
[58958.130627] [<8021e884>] 0x8021e884
[58958.134101] [<8262cfc0>] 0x8262cfc0 [mtlk@81b00000+0xc6ea0]
[58958.139677] [<801bbb64>] 0x801bbb64
[58958.143158] [<8262ce30>] 0x8262ce30 [mtlk@81b00000+0xc6ea0]
[58958.148717] [<8000c88c>] 0x8000c88c
[58958.152206] [<8003e8f0>] 0x8003e8f0
[58958.155713] [<800779d8>] 0x800779d8
[58958.159168] [<800b9154>] 0x800b9154
[58958.162656] [<80079024>] 0x80079024
[58958.166132] [<80077000>] 0x80077000
[58958.169620] [<8002723c>] 0x8002723c
[58958.173090] [<800794ec>] 0x800794ec
[58958.176580] [<8000482c>] 0x8000482c
[58958.180054] [<80006c58>] 0x80006c58
[58958.183534] 
[58958.185008] 
[58958.185008] Code: 8c420004  9a030003  8c420200 <a8430000> b8430003  92030004  a0430004  92030005  a0430005 
[58958.195039] ---[ end trace 36e978c98dada3d6 ]---

Hi all,

Sad to say but I'm quite used now to not progress as far as we want.

Nonetheless, this a big leap forward!

I have updated the documentation in the git in order to reflect the latest findings regarding the firmware.

In particular I have created a README_FW inside /lantiq_fw. Here we can find the link to the working binaries.

    https://github.com/Mandrake-Lee/WAVE300 … se-BSD_GPL

Take care,
Mandrake

I am pleased to report that lpm11's firmware loads correctly on my hardware.

Please see the OTT dmesg log here:
https://pastebin.com/wkQ7yNjm

I loaded the kernel modules as follows:
insmod mtlkroot.ko cdebug=2
insmod mtlk.ko ap=1 debug=2

(note that mtlk.ko uses debug and mtlkroot.ko uses cdebug)

I copied lpm11's ProgModel files to /lib/firmware

However, I can't currently bring the interface up. I have a new interface wlan1 but the command:
ifconfig wlan1 up
errors "ifconfig: SIOCSIFFLAGS: Resource temporarily unavailable"

I'll keep working this problem

Thanks all!

when I try to bring the interface up dmesg reports:

[0000182056] mtlk3(_mtlk_core_ap_set_initial_channel:3319): CID-0000: Failed to open - Country not specified
[  482.178127] [0000182064] mtlk3(_mtlk_core_activate:3384): Cannot set initial channel (-14)

Does anyone know how to set the country code?

Hi Blackadder,

Maybe it's a longshot, but in the sources from Vittorio88, there's a folder /scripts that looks to me like a CLI to setup the wave300.
    https://www.downloads.netgear.com/files … 46-GPL.zip

More in particular, there's a script called mtk_init_country.sh
    https://pastebin.com/Ya25wQ2C

I believe this can be of some help.

Good luck!
Mandrake

blackadder1000 wrote:

when I try to bring the interface up dmesg reports:

[0000182056] mtlk3(_mtlk_core_ap_set_initial_channel:3319): CID-0000: Failed to open - Country not specified
[  482.178127] [0000182064] mtlk3(_mtlk_core_activate:3384): Cannot set initial channel (-14)

Does anyone know how to set the country code?