Hello,
I have D7800 with last LEDE and some modifications (TARGET_OPTIMIZATION .. hard, memory - 512MB - wifi firmware loading ... ) .
I'm trying compile packages for dsl/vdsl VRX300 .. but I'm stuck on first -- ltq-ifxos ...
error below :
drv_ifxos: Making Linux 2.6.x kernel object
/LEDEO3/build_dir/target-arm_cortex-a15+neon-vfpv4_glibc-2.24_eabi/linux-ipq806x/lib_ifxos-1.5.19/src/linux/ifxos_linux_socket_drv.c: In function 'IFXOS_SocketSendTo':
/LEDEO3/build_dir/target-arm_cortex-a15+neon-vfpv4_glibc-2.24_eabi/linux-ipq806x/lib_ifxos-1.5.19/src/linux/ifxos_linux_socket_drv.c:183:33: error: 'WRITE' undeclared (first use in this function)
iov_iter_init(&msg.msg_iter, WRITE, &iov, 1, bufSize_byte);
Can anyone help me with the build of packages ?
Sry I'm not a developer ...
Hi,
Good to see someone else doing the exact same thing I am doing. Unfortunately I am not much of a dev either, however hopefully we can work together to figure it out, and maybe a real dev will chime in with tips.
To hopefully answer your question (well this is what I did anyway) was to change WRITE to 1 (assumption based on other defines of WRITE) and it recompiled fine. Google is a bit vague on what the valid values are for the direction parameter for iov_iter_init().
Ideally you do this change as a patch using quilt (https://lede-project.org/docs/guide-developer/use-patches-with-buildsystem).
Unfortunately it gets a bit harder after this, so good to have help!
Analyse configuration to see what packages/modules are used to configure and run the DSL interface. This list may contain extraneous items, or I may have missed some (let me know):
dsl-cpe-api-vrx - 4.16.5.4-1
dsl-cpe-api-vrx-nonbond - 4.16.5.4-1
dsl-cpe-control-vrx - 4.16.5.4-1
dsl-cpe-control-vrx-nonbond - 4.16.5.4-1
dsl-cpe-mei-vrx - 1.4.9.7-1
dsl-cpe-mei-vrx-nonbond - 1.4.9.7-1
dsl-vr10-firmware-xdsl - 07.07.04.03.00.07_07.07.01.08.00.01-1
dsl-vr10-firmware-xdsl-b - 07.07.03.03.00.07_07.07.01.0C.00.02-1
kmod-dni_enet - 3.4.103-1
kmod-ltq-ifxos - 3.4.103+1.5.14-3
kmod-ppp - 3.4.103-1
kmod-pppoa - 3.4.103-1
ltq-oam - 2.4.0.7-1
ltq_qoscmd - 2.3.7-2
ltq_vrx320_datapath_drv - 1.0.0-1
ppp - 2.4.5-10
ppp-mod-pppoa - 2.4.5-10
Get DSL package source from this archive. As above, let me know if I missed anything:
dsl-cpe-api-vrx : INSTALLS: drv_dsl_cpe_api_vrx-4.16.5.4.tar.gz
dsl-cpe-api-vrx-nonbond : as above
dsl-cpe-control-vrx : INSTALLS: dsl_cpe_control_vrx-4.16.5.4.tar.gz
dsl-cpe-control-vrx-nonbond : as above
dsl-cpe-mei-vrx-nonbond : as above
dsl-vr10-firmware-xdsl : INSTALLS: dsl_vr10_firmware_xdsl-07.07.06.0E.01.07_07.07.02.08.00.01.tar.gz
dsl-vr10-firmware-xdsl-b : INSTALLS: dsl_vr10_firmware_xdsl-07.07.03.03.00.07_07.07.01.0C.00.02.tar.gz
ltq-oam : INSTALLS: none
ltq_qoscmd : INSTALLS: none
ltq_vrx320_datapath_drv : INSTALLS: none
dsl-cpe-mei-vrx : INSTALLS: drv_mei_cpe-1.4.9.7.tar.gz
kmod-dni_enet : INSTALLS: acquired partial source from R7800 sources (dni_enet.c from R7800 qca-nss-gmac)
qca-nss-gmac : INSTALLS: custom src in package
kmod-ltq-ifxos : INSTALLS: lib_ifxos-1.5.14.tar.gz
kmod-ppp : ALREADY IN TRUNK
kmod-pppoa : ALREADY IN TRUNK
ppp : ALREADY IN TRUNK
ppp-mod-pppoa : ALREADY IN TRUNK
Determine if any of these packages map to a more recent package in trunk. Some of the lantiq packages did so I edited the package Makefile to include TARGET_ipq806x:
dsl-cpe-api-vrx = TRUNK PACKAGE: package/kernel/lantiq/ltq-vdsl
dsl-cpe-api-vrx-nonbond : as above
dsl-cpe-control-vrx = TRUNK PACKAGE: package/network/config/ltq-vdsl-app
dsl-cpe-control-vrx-nonbond : as above
dsl-cpe-mei-vrx-nonbond : as above
dsl-vr10-firmware-xdsl = SIMILAR TO TRUNK PACKAGE: package/firmware/lantiq/dsl-vrx200-firmware-xdsl
dsl-vr10-firmware-xdsl-b = SIMILAR TO TRUNK PACKAGE: package/firmware/lantiq/dsl-vrx200-firmware-xdsl
ltq-oam : NO EQUIVALENT IN TRUNK - Port?
ltq_qoscmd : NO EQUIVALENT IN TRUNK - Port?
ltq_vrx320_datapath_drv : NO EQUIVALENT IN TRUNK - Port?
dsl-cpe-mei-vrx = TRUNK PACKAGE: package/kernel/lantiq/ltq-vdsl-mei
kmod-dni_enet : NO EQUIVALENT IN TRUNK, not required since qca-nss-gmac was removed?
qca-nss-gmac : REPLACED WITH stmmac (lists.openwrt.org/pipermail/openwrt-devel/2015-May/033269.html) - OK?
kmod-ltq-ifxos = TRUNK PACKAGE: /kernel/lantiq/ltq-ifxos
kmod-ppp : EXISTING - OK?
kmod-pppoa : EXISTING - OK?
ppp : EXISTING - OK?
ppp-mod-pppoa : EXISTING - OK?
So where have I got to? The package build order is evolving and I have so far managed to build all the EXISTING items in the list above, and ltq-ifxos and kmod-dni_enet.
I am currently stuck on building dsl-cpe-mei-vrx (which is ltq-vdsl-mei in trunk). I am getting errors like "-mfloat-abi=hard and soft cannot be used together" and when I "fix" that the errors continue.
So I am going back to first principles and looking at recreating the package Makefile and patching the source (drv_mei_cpe-1.5.17.6.tar.gz) to work with trunk.
As I mentioned before I am new to this and any advice or background on what has changed between Attitude Adjustment 12.09.1 and trunk, that may help to determine which packages are required would be great.
Thanks.
Hi,
Like you I did exactly the same steps (even I sent info to netgear about broken archive ...)
Also I changed memory size in qcom-ipq8064-d7800.dts file to : reg = <0x42000000 0x1e000000> "
( D7800 have 512 MB RAM) ...and other small changes ..
It looks like it works everything except dls/vdsl ...
I'm not sure whether we need all these packages ....
ltq-oam :
ltq_qoscmd :
kmod-dni_enet :
qca-nss-gmac
Cool, so between this post and the one on OpenWRT: https://forum.openwrt.org/viewtopic.php?pid=351629#p351629, hopefully we'll be able to figure this out. I'll ignore the packages you mentioned, just need to know which one to build next. If you agree it should be ltq-vdsl-mei then we need to sort the required patches to go from lantiq to ipq806x. Any ideas?
Yes, ltq-vdsl-mei -- drv_mei_cpe-1.5.17.6.tar.gz it's the next what we need ...
I think Lantiq dsl is on PCIe bus so we need ltq_vrx320_datapath_drv driver (I'm working on it now )
How about" -mfloat-abi=hard and soft " have you any ideas ?
For sure it's related to use hard float optimization, but we have fpu so why not use it fully.
My settings -- CONFIG_TARGET_OPTIMIZATION="-O2 -pipe -march=armv7-a -mcpu=cortex-a9 -mfpu=neon-vfpv4 -mtune=cortex-a15 -mfloat-abi=hard" .
From what I have googled, the kernel is always compiled with -mfloat-abi=soft so it doesn't have to rely on the hardware fpu (more reliable?), so that means kernel modules cannot use -mfloat-abi=hard. So assuming need to use soft...
drv_mei_cpe configure does have device parameters: --with-max-device=1 and --with-lines-per-device=1, so I'm looking at compiling that too. So far no luck, I did find the following in source/rules.mk:
ifeq ($(CONFIG_SOFT_FLOAT),y)
SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
TARGET_CFLAGS+= -mfloat-abi=soft
else
SOFT_FLOAT_CONFIG_OPTION:=
TARGET_CFLAGS+= -mfloat-abi=hard
However setting CONFIG_SOFT_FLOAT breaks the compiler... May need to recompile the lot...
I'm almost sure we have to set proper CFLAGS or other flags in Makefile for drv_mei_cpe and other dsl packages ... regarding "-mfloat-abi=hard and soft cannot be used together" ...
We need a real developer to look into dsl packages compile problems ...
@dissent1 yeah maybe. Or maybe my device has only 256MB RAM. (Now as i think about it: i remember that my D7800 is a BETA-Test Unit. Maybe they switched then to more RAM in production) I had never a problem with starting the kernel.
Only as i tried the 512MB Patch and this was very funny because the router then don't react on anything. Only power off.
Reset button is also dead.