Search code examples
windows-subsystem-for-linuxcan-bus

WSL2 Virtual can interface error : recv failed with error: 11, remove this node 4


I refered these 2 blogs to enable vcan in WSL2: https://www.reddit.com/r/CarHacking/comments/ot3gjf/socketcancanutils_on_windows/

My environment

OS : Windows 11 Kernel : 5.10.102.1-microsoft-standard-WSL2

Well worked file following the blog copied onto my directory

# .wslconfig
[wsl2]
kernel=C:\\Users\\an\\vmlinux

At the first, my program well executed. enter image description here

After once I rebooted the laptop, below error is shown and can't run my program with errors.

Exception: FAIL of RunCommand "cd /home/metamon/project/autoas/build/posix/posix/ascore && sudo /home/metamon/project/autoas/build/posix/posix/ascore/posix" = 65280:
  File "/home/metamon/project/autoas/SConstruct", line 14:
    objs = SConscript('SConscript',variant_dir=BDIR, duplicate=0) 
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 661:
    return method(*args, **kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 287:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/home/metamon/project/autoas/SConscript", line 3:
    objs = SConscript('com/SConscript')
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 661:
    return method(*args, **kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 287:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/home/metamon/project/autoas/com/SConscript", line 5:
    objs += SConscript('as.application/SConscript')
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 661:
    return method(*args, **kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 287:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/home/metamon/project/autoas/com/as.application/SConscript", line 8:
    objs += SConscript('board.%s/SConscript'%(BOARD))
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 661:
    return method(*args, **kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/python3/dist-packages/SCons/Script/SConscript.py", line 287:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/home/metamon/project/autoas/com/as.application/board.posix/SConscript", line 60:
    RunCommand('cd %s && %s'%(build,target))
  File "/home/metamon/project/autoas/com/as.tool/config.infrastructure.system/building.py", line 656:
    raise Exception('FAIL of RunCommand "%s" = %s'%(cmd, ret))

below is the result of ip a s

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 6a:e2:6d:c3:d5:c4 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether ee:3b:e8:d1:3c:fd brd ff:ff:ff:ff:ff:ff
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:b6:66:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.41.180/20 brd 192.168.47.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:feb6:661e/64 scope link
       valid_lft forever preferred_lft forever
7: can0: <NOARP,UP,LOWER_UP> mtu 72 qdisc noqueue state UNKNOWN group default qlen 1000
    link/can

below is the result of netstat

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  3      [ ]         SEQPACKET  CONNECTED     181280   @00001
unix  3      [ ]         SEQPACKET  CONNECTED     181282   @00002
unix  3      [ ]         STREAM     CONNECTED     101871
unix  3      [ ]         STREAM     CONNECTED     180047   /tmp/pipe_{EA227BA4-EFE0-41E2-A8A0-C5725A4BF67C}
unix  3      [ ]         STREAM     CONNECTED     22634
unix  3      [ ]         SEQPACKET  CONNECTED     181281
unix  3      [ ]         STREAM     CONNECTED     22635
unix  3      [ ]         STREAM     CONNECTED     22637
unix  3      [ ]         SEQPACKET  CONNECTED     181283
unix  3      [ ]         STREAM     CONNECTED     22638
unix  3      [ ]         STREAM     CONNECTED     101854
unix  3      [ ]         SEQPACKET  CONNECTED     181278
unix  3      [ ]         SEQPACKET  CONNECTED     181277
unix  3      [ ]         STREAM     CONNECTED     20611
unix  3      [ ]         STREAM     CONNECTED     181332
unix  3      [ ]         STREAM     CONNECTED     20610
unix  3      [ ]         STREAM     CONNECTED     101842
unix  3      [ ]         STREAM     CONNECTED     181331
unix  3      [ ]         STREAM     CONNECTED     20613
unix  3      [ ]         STREAM     CONNECTED     101853
unix  3      [ ]         STREAM     CONNECTED     179860   /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     20612
unix  3      [ ]         STREAM     CONNECTED     181340
unix  3      [ ]         STREAM     CONNECTED     101839
unix  3      [ ]         STREAM     CONNECTED     181326
unix  3      [ ]         STREAM     CONNECTED     181325
unix  3      [ ]         STREAM     CONNECTED     20609
unix  3      [ ]         STREAM     CONNECTED     101841
unix  3      [ ]         STREAM     CONNECTED     181329
unix  3      [ ]         STREAM     CONNECTED     20608
unix  3      [ ]         STREAM     CONNECTED     101840
unix  3      [ ]         STREAM     CONNECTED     181328
unix  3      [ ]         STREAM     CONNECTED     20649
unix  3      [ ]         STREAM     CONNECTED     101830
unix  3      [ ]         STREAM     CONNECTED     181479
unix  3      [ ]         STREAM     CONNECTED     20648
unix  3      [ ]         STREAM     CONNECTED     101831
unix  3      [ ]         STREAM     CONNECTED     181478
unix  3      [ ]         STREAM     CONNECTED     20652
unix  3      [ ]         STREAM     CONNECTED     181481
unix  3      [ ]         STREAM     CONNECTED     20651
unix  3      [ ]         STREAM     CONNECTED     181480
unix  3      [ ]         STREAM     CONNECTED     20616
unix  3      [ ]         STREAM     CONNECTED     101821
unix  3      [ ]         STREAM     CONNECTED     179863   /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     20615
unix  3      [ ]         STREAM     CONNECTED     101822
unix  3      [ ]         STREAM     CONNECTED     181342
unix  3      [ ]         STREAM     CONNECTED     20647
unix  3      [ ]         STREAM     CONNECTED     101827
unix  3      [ ]         STREAM     CONNECTED     179864   /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     20646
unix  3      [ ]         STREAM     CONNECTED     101826
unix  3      [ ]         STREAM     CONNECTED     181344
unix  3      [ ]         STREAM     CONNECTED     99971
unix  3      [ ]         STREAM     CONNECTED     19490
unix  3      [ ]         STREAM     CONNECTED     180022
unix  3      [ ]         STREAM     CONNECTED     101729   /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     18489
unix  3      [ ]         STREAM     CONNECTED     17696    @/tmp/dbus-gzD9s48avK
unix  3      [ ]         STREAM     CONNECTED     180021
unix  3      [ ]         SEQPACKET  CONNECTED     99968
unix  3      [ ]         STREAM     CONNECTED     18486
unix  3      [ ]         STREAM     CONNECTED     180020
unix  3      [ ]         SEQPACKET  CONNECTED     99969
unix  3      [ ]         STREAM     CONNECTED     18487
unix  3      [ ]         STREAM     CONNECTED     180019
unix  3      [ ]         STREAM     CONNECTED     180018
unix  3      [ ]         STREAM     CONNECTED     44654
unix  3      [ ]         STREAM     CONNECTED     180017
unix  3      [ ]         STREAM     CONNECTED     34
unix  3      [ ]         STREAM     CONNECTED     18490
unix  2      [ ]         SEQPACKET  CONNECTED     19478
unix  3      [ ]         STREAM     CONNECTED     180005
unix  3      [ ]         STREAM     CONNECTED     33       /mnt/wslg/PulseAudioRDPSink
unix  3      [ ]         STREAM     CONNECTED     180004
unix  3      [ ]         STREAM     CONNECTED     99984
unix  3      [ ]         STREAM     CONNECTED     44657
unix  3      [ ]         STREAM     CONNECTED     180003
unix  3      [ ]         STREAM     CONNECTED     99985
unix  3      [ ]         STREAM     CONNECTED     180002
unix  3      [ ]         STREAM     CONNECTED     44655
unix  3      [ ]         STREAM     CONNECTED     19587
unix  3      [ ]         STREAM     CONNECTED     180001
unix  3      [ ]         STREAM     CONNECTED     44656
unix  3      [ ]         STREAM     CONNECTED     19588
unix  3      [ ]         STREAM     CONNECTED     180000
unix  3      [ ]         STREAM     CONNECTED     44661
unix  3      [ ]         STREAM     CONNECTED     19571
unix  3      [ ]         STREAM     CONNECTED     179999
unix  3      [ ]         STREAM     CONNECTED     44662
unix  3      [ ]         STREAM     CONNECTED     19572
unix  3      [ ]         STREAM     CONNECTED     179998
unix  3      [ ]         STREAM     CONNECTED     44659
unix  3      [ ]         STREAM     CONNECTED     99973
unix  3      [ ]         STREAM     CONNECTED     19569
unix  3      [ ]         STREAM     CONNECTED     179877
unix  3      [ ]         STREAM     CONNECTED     44660
unix  3      [ ]         STREAM     CONNECTED     101734   /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     19570
unix  3      [ ]         STREAM     CONNECTED     179876
unix  3      [ ]         STREAM     CONNECTED     44673
unix  3      [ ]         STREAM     CONNECTED     22640    /tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     20653    /mnt/wslg/runtime-dir/vscode-ipc-34e10e6c-f892-4933-b09a-11da1d848c5d.sock
unix  3      [ ]         STREAM     CONNECTED     179869
unix  3      [ ]         STREAM     CONNECTED     44670
unix  3      [ ]         STREAM     CONNECTED     179866
unix  3      [ ]         STREAM     CONNECTED     44671
unix  3      [ ]         STREAM     CONNECTED     179865
unix  3      [ ]         STREAM     CONNECTED     179853
unix  3      [ ]         STREAM     CONNECTED     179852
unix  3      [ ]         STREAM     CONNECTED     99989
unix  3      [ ]         STREAM     CONNECTED     44674
unix  3      [ ]         STREAM     CONNECTED     179851
unix  3      [ ]         STREAM     CONNECTED     99990
unix  3      [ ]         STREAM     CONNECTED     44675
unix  3      [ ]         STREAM     CONNECTED     179850
unix  3      [ ]         STREAM     CONNECTED     180024
unix  3      [ ]         STREAM     CONNECTED     180023
unix  3      [ ]         STREAM     CONNECTED     1073
unix  3      [ ]         STREAM     CONNECTED     1072

I assume that somewhere my socket is running on after reboot.

I would like to find/stop the socket working behind. How can I check and stop?

enter image description here enter image description here https://zhuanlan.zhihu.com/p/561489252


Solution

  • I solved the problem I was caused by configuration.

    So, I rebuild my kernel for vcan as below.

    sudo apt-get update -y
    
    
    sudo apt-get install -y autoconf bison build-essential flex libelf-dev libncurses-dev libssl-dev libtool libudev-dev make
    sudo apt-get install -y bc
    sudo apt install -y dwarves 
    
    
    # check your kernel version
    uname -r
      5.xx.xx.x-microsoft-standard-WSL2 
    
    # download kernel
    wget https://github.com/microsoft/WSL2-Linux-Kernel/archive/refs/tags/linux-msft-wsl-5.xx.xx.x.tar.gz 
    
    # upzip
    tar -xf linux-msft-wsl-5.xx.xx.x.tar.gz # tar -xf linux-msft-wsl-5.10.102.1.tar.gz
    
    # configure & build
    cd WSL2-Linux-Kernel-linux-msft-wsl-5.xx.xx.x/ 
    
    cat /proc/config.gz | gunzip > .config
    make prepare modules_prepare -j $(expr $(nproc) - 1)
    
    
    # Build kernel for x86 & x64
    make -j $(expr $(nproc) - 1) 
    make KCONFIG_CONFIG=Microsoft/config-wsl
    
    # you can finally get bzImage
    

    Move bzImage to your directory and make .wslconfig

    # Copy img file to your directory
    cp arch/x86/boot/bzImage /mnt/c/Users/username/
    
    # make wslconfig
    vi /mnt/c/Users/username/.wslconfig
    
    # .wslconfig
    [wsl2]
    kernel=C:\\Users\\<yourwindowsloginname>\\bzImage
    

    in config-wsl

    # Microsoft/config-wsl
    # config-wsl
    CONFIG_CC_CAN_LINK=y
    CONFIG_CC_CAN_LINK_STATIC=y
    
    # CONFIG_HAMRADIO is not set
    CONFIG_CAN=m
    CONFIG_CAN_RAW=m
    CONFIG_CAN_BCM=m
    CONFIG_CAN_GW=m
    CONFIG_CAN_J1939=m
    CONFIG_CAN_ISOTP=m
    
    # CAN Device Drivers
    CONFIG_CAN_VCAN=m
    CONFIG_CAN_VXCAN=m
    CONFIG_CAN_SLCAN=m
    CONFIG_CAN_DEV=m
    CONFIG_CAN_CALC_BITTIMING=y
    CONFIG_CAN_KVASER_PCIEFD=m
    CONFIG_CAN_C_CAN=m
    # CONFIG_CAN_C_CAN_PLATFORM is not set
        # CONFIG_CAN_C_CAN_PCI is not set
    CONFIG_CAN_CC770=m
    # CONFIG_CAN_CC770_ISA is not set
    # CONFIG_CAN_CC770_PLATFORM is not set
    CONFIG_CAN_IFI_CANFD=m
    CONFIG_CAN_M_CAN=m
    # CONFIG_CAN_M_CAN_PCI is not set
    # CONFIG_CAN_M_CAN_PLATFORM is not set
    CONFIG_CAN_PEAK_PCIEFD=m
    CONFIG_CAN_SJA1000=m
    # CONFIG_CAN_EMS_PCI is not set
    # CONFIG_CAN_EMS_PCMCIA is not set
    # CONFIG_CAN_F81601 is not set
    # CONFIG_CAN_KVASER_PCI is not set
    # CONFIG_CAN_PEAK_PCI is not set
    # CONFIG_CAN_PEAK_PCMCIA is not set
    # CONFIG_CAN_PLX_PCI is not set
    # CONFIG_CAN_SJA1000_ISA is not set
    # CONFIG_CAN_SJA1000_PLATFORM is not set
    CONFIG_CAN_SOFTING=m
    CONFIG_CAN_SOFTING_CS=m
    
    # CAN USB interfaces
    CONFIG_CAN_8DEV_USB=m
    CONFIG_CAN_EMS_USB=m
    CONFIG_CAN_ESD_USB2=m
    CONFIG_CAN_ETAS_ES58X=m
    CONFIG_CAN_GS_USB=m
    CONFIG_CAN_KVASER_USB=m
    CONFIG_CAN_MCBA_USB=m
    CONFIG_CAN_PEAK_USB=m
    CONFIG_CAN_UCAN=m
    # end of CAN USB interfaces
    
    CONFIG_CAN_DEBUG_DEVICES=y
    # end of CAN Device Drivers