just making a pretty straightforward J1939 reader with the socket library:
import socket
with socket.socket(socket.PF_CAN, socket.SOCK_DGRAM, socket.CAN_J1939) as s:
    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    addr = "can3", socket.J1939_NO_NAME, socket.J1939_NO_PGN, socket.J1939_NO_ADDR
    s.bind(addr)
    while True:
        data, addr = s.recvfrom(128)
        print(f'{addr[3]:02x} {addr[2]:05x}')
        for j in range(len(data)):
            if j % 8 == 0 and j != 0:
                print(f'\n{j:05x}    ')
            print(f'{j:02x}')
        print('\n')
running this give me this error:
AttributeError: module 'socket' has no attribute 'CAN_J1939'
i'm not sure why the heck this error is firing.  i have can-utils installed and a couple other J1939 libs when i wrote the Buildroot, so i don't know why this is popping up.  plus, i'm running v3.10 on the SoC and the CAN_J1939 has be available since v3.5.  :P  don't even know how to troubleshoot this one...  O_o