Open sidd-kishan opened 2 years ago
Hi, unfortunately, I don't have access to a Windows machine to set this up. I would be happy to accept any PR featuring these changes.
I just build the tcp_server and upload it to my RP2040. Then my windows 10 machine does not have the driver...
But windows cannot find it....
I recently changed the code to use NCM (Network Control Model). According to Microsoft's documentation, this should be compatible with Windows 11 but not Windows 10.
Sorry, I have no windows 11 machine... Is it simple to configure to use another model which is compatible with Windows 10?
This is from august last year, it seems most users are still on Windows 10. https://techcommunity.microsoft.com/t5/windows-11/why-users-are-not-upgrading-to-windows-11-is-windows-11-a/m-p/3611663
Cool, so went to that file, I swapped the 0 and the 1....
Then I created a build2
directory, and build again.
However the linker is not happy. Could you have a look?
[100%] Building C object apps/tcp_server/CMakeFiles/tcp_server.dir/__/__/pico-extras/lib/lwip/src/apps/http/fs.c.obj
[100%] Building C object apps/tcp_server/CMakeFiles/tcp_server.dir/__/__/pico-extras/src/rp2_common/lwip/lwip_arch.c.obj
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/main.c.obj: in function `linkoutput_fn':
main.c:(.text.linkoutput_fn+0x1c): undefined reference to `tud_network_can_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: main.c:(.text.linkoutput_fn+0x2e): undefined reference to `tud_network_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/main.c.obj: in function `main':
main.c:(.text.startup.main+0x94): undefined reference to `tud_network_recv_renew'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_init':
usbd.c:(.text.tud_init+0xa0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_init+0xd4): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_task':
usbd.c:(.text.tud_task+0x2e0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x2f2): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x348): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x354): undefined reference to `netd_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x364): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x66c): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7de): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7f0): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x8c0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x4): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x8): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0xc): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/iperf_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x10): undefined reference to `netd_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/main.c.obj: in function `linkoutput_fn':
main.c:(.text.linkoutput_fn+0x1c): undefined reference to `tud_network_can_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: main.c:(.text.linkoutput_fn+0x2e): undefined reference to `tud_network_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/main.c.obj: in function `main':
main.c:(.text.startup.main+0x1fe): undefined reference to `tud_network_recv_renew'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_init':
usbd.c:(.text.tud_init+0xa0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_init+0xd4): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_task':
usbd.c:(.text.tud_task+0x2e0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x2f2): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x348): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x354): undefined reference to `netd_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x364): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x66c): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7de): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7f0): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x8c0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x4): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x8): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0xc): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/piccolosdr.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x10): undefined reference to `netd_xfer_cb'
collect2: error: ld returned 1 exit status
make[2]: *** [apps/iperf_server/CMakeFiles/iperf_server.dir/build.make:1640: apps/iperf_server/iperf_server.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:2275: apps/iperf_server/CMakeFiles/iperf_server.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
collect2: error: ld returned 1 exit status
make[2]: *** [apps/piccolosdr/CMakeFiles/piccolosdr.dir/build.make:1640: apps/piccolosdr/piccolosdr.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:2384: apps/piccolosdr/CMakeFiles/piccolosdr.dir/all] Error 2
[100%] Linking CXX executable tcp_server.elf
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/main.c.obj: in function `linkoutput_fn':
main.c:(.text.linkoutput_fn+0x1c): undefined reference to `tud_network_can_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: main.c:(.text.linkoutput_fn+0x2e): undefined reference to `tud_network_xmit'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/main.c.obj: in function `main':
main.c:(.text.startup.main+0x6c): undefined reference to `tud_network_recv_renew'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_init':
usbd.c:(.text.tud_init+0xa0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_init+0xd4): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj: in function `tud_task':
usbd.c:(.text.tud_task+0x2e0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x2f2): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x348): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x354): undefined reference to `netd_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x364): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x66c): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7de): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x7f0): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: usbd.c:(.text.tud_task+0x8c0): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x0): undefined reference to `netd_init'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x4): undefined reference to `netd_reset'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x8): undefined reference to `netd_open'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0xc): undefined reference to `netd_control_xfer_cb'
/usr/lib/gcc/arm-none-eabi/11.2.0/../../../../arm-none-eabi/bin/ld: CMakeFiles/tcp_server.dir/__/__/pico-sdk/lib/tinyusb/src/device/usbd.c.obj:(.rodata._usbd_driver+0x10): undefined reference to `netd_xfer_cb'
collect2: error: ld returned 1 exit status
make[2]: *** [apps/tcp_server/CMakeFiles/tcp_server.dir/build.make:1624: apps/tcp_server/tcp_server.elf] Error 1
make[1]: *** [CMakeFiles/Makefile2:2329: apps/tcp_server/CMakeFiles/tcp_server.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
Thanks.
I found the definition of the first missing reference: pico-sdk/lib/tinyusb/src/class/net/ncm_device.c But I'm not familiar with the CMakefile system, how can I add that file into the build?
I think the source code for this is at the pico-sdk repository. Their CMake is quite complicated. It’s kind of a pain to modify things without breaking it.
— Luigi On Feb 1, 2023 at 2:57 PM -0300, karelv @.***>, wrote:
I found the definition of the first missing reference: pico-sdk/lib/tinyusb/src/class/net/ncm_device.c But I'm not familiar with the CMakefile system, how can I add that file into the build? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
Please connect the RPI PICO and the just the tcp server module to test the rndis compatibility as it will open the path to port the entire project to a low powered devices Window on ARM devices.