1

(10 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

instalację CLAT

A HW offload tu w ogóle działa?

2

(10 odpowiedzi, napisanych Oprogramowanie / Software)

Potestowałem sobie trochę i mi dziwne rzeczy wychodzą


IPv4 + IP passthrough + HW offload:
https://i.ibb.co/gLFgSy1P/Zrzut-ekranu-2026-06-13-020735.png



IPv6 + IP passthrough + HW offload:
https://i.ibb.co/PGkhFPqq/Zrzut-ekranu-2026-06-13-020646.png


MT7621DAT się nie lubi z IPv6 czy to lokalnie CLAT takie cyrki odwala?

Czy komuś na forum udało się z sukcesem wdrożyć IPv6-only z Orange'a przez modem?
Mam modem Zyxela z ustawionym IP-v6 only, IP passthrough, w upstreamie na wan6 w OpenWRT dostaję /64 i... na tym się kończy. Klienci na LAN nie uzyskują dostępu do internetu, a jednocześnie mam dostęp tylko po adresie IPv6 (lub domenowej openwrt.lan) do samego routera. Sama komunikacja po IPv4 zupełnie ustaje.

Mignęło mi kiedyś w specyfikacji tego switcha to 2.5. Czyli to tylko szyna dla CPU bez wyprowadzenia na porty?

Rewizja z AN8855 się poprawnie zestawia na 2.5Gbps czy tylko gigabit idzie uzyskać?

6

(5 odpowiedzi, napisanych Oprogramowanie / Software)

Czy byłbyś w stanie pomóc z utworzeniem takiego obrazu dla TL-MR6400 v5?
Jak wtedy komunikować się z takim modemem?

7

(5 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Nie. OpenWrt nie posiada takiego trybu pracy. I nie możesz zmostkować interfejsu qmi do lanu (czy innego bridge) to nie zadziała, nie ta warstwa.

A jakimś relayem też nie da się tego zrobić?
Już mam potrójny NAT, chcę to zredukować do niezbędnego minimum.

Cezary napisał/a:

Jeżeli używasz modemu quectela to możesz ręcznie skompliować qmi_wwan_q + quectel-cm, quectel daje możliwość bridgowania ale musisz to zrobić ręcznie

Jest jakaś dokumentacja jak się za to zabrać z przykładami takich kompilacji?

Chciałbym przełączyć router LTE z wgranym OpenWRT w tryb bridge z pełnym IP passthrough, niestety natywnie pakiety nie oferują takiej opcji (a może się mylę?)
Dobrze kminię, że można tu wyłączyć DHCP i po zmostkowaniu interfejsów klient DHCP to łyknie?

#!/bin/sh

[ -n "$INCLUDE_ONLY" ] || {
    . /lib/functions.sh
    . ../netifd-proto.sh
    init_proto "$@"
}

proto_qmi_init_config() {
    available=1
    no_device=1
    proto_config_add_string "device:device"
    proto_config_add_string apn
    proto_config_add_string v6apn
    proto_config_add_string auth
    proto_config_add_string username
    proto_config_add_string password
    proto_config_add_string pincode
    proto_config_add_int delay
    proto_config_add_string modes
    proto_config_add_string pdptype
    proto_config_add_int profile
    proto_config_add_int v6profile
    proto_config_add_string devpath
    proto_config_add_boolean dhcp
    proto_config_add_boolean dhcpv6
    proto_config_add_boolean sourcefilter
    proto_config_add_boolean delegate
    proto_config_add_boolean autoconnect
    proto_config_add_int plmn
    proto_config_add_int timeout
    proto_config_add_int mtu
    proto_config_add_defaults
}

proto_qmi_setup() {
    local interface="$1"

    local connstat dataformat mcc mnc plmn_mode
    local cid_4 cid_6 pdh_4 pdh_6
    local dns1_6 dns2_6 gateway_6 ip_6 ip_prefix_length
    local profile_pdptype

    local delegate ip4table ip6table mtu sourcefilter $PROTO_DEFAULT_OPTIONS
    json_get_vars delegate ip4table ip6table mtu sourcefilter $PROTO_DEFAULT_OPTIONS

    local apn auth delay device modes password pdptype pincode username v6apn
    json_get_vars apn auth delay device modes password pdptype pincode username v6apn

    local profile v6profile devpath dhcp dhcpv6 autoconnect plmn timeout
    json_get_vars profile v6profile devpath dhcp dhcpv6 autoconnect plmn timeout

    [ "$timeout" = "" ] && timeout="10"

    [ "$metric" = "" ] && metric="0"

    [ -n "$ctl_device" ] && device=$ctl_device

    if [ -n "$devpath" ]; then
        local usbmisc_or_wwan_path
        # For usbmisc:
        # /sys/devices/platform/1e1c0000.xhci/usb1/1-2/1-2:1.4/usbmisc/cdc-wdm0
        # Numbers after ":" are the configuration and interface number
        # of the connected modem. There can be multiple interfaces but
        # there will only be a single interface that provides the
        # control channel device. Therefore, check also /*/usbmisc to
        # allow specifying the USB port number the modem is directly
        # connected to.
        # For wwan:
        # /sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0/wwan/wwan0/wwan0qmi0
        # /sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0/mhi0/wwan/wwan0/wwan0qmi0
        for usbmisc_or_wwan_path in \
            "$devpath"/usbmisc/cdc-wdm* \
            "$devpath"/*/usbmisc/cdc-wdm* \
            "$devpath"/*/wwan[0-9]*/wwan[0-9]*qmi* \
            "$devpath"/*/*/wwan[0-9]*/wwan[0-9]*qmi*; do
            [ ! -e "$usbmisc_or_wwan_path" ] && continue
            device="/dev/${usbmisc_or_wwan_path##*/}"
            break
        done
    fi

    [ -n "$device" ] || {
        echo "No control device specified"
        proto_notify_error "$interface" NO_DEVICE
        proto_set_available "$interface" 0
        return 1
    }

    [ -n "$delay" ] && sleep "$delay"

    device="$(readlink -f $device)"
    [ -c "$device" ] || {
        echo "The specified control device does not exist"
        proto_notify_error "$interface" NO_DEVICE
        proto_set_available "$interface" 0
        return 1
    }

    devname="$(basename "$device")"
    devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
    ifname="$( ls "$devpath"/net )"
    [ -n "$ifname" ] || {
        echo "The interface could not be found."
        proto_notify_error "$interface" NO_IFACE
        proto_set_available "$interface" 0
        return 1
    }

    [ -n "$mtu" ] && {
        echo "Setting MTU to $mtu"
        /sbin/ip link set dev $ifname mtu $mtu
    }

    echo "Waiting for SIM initialization"
    local uninitialized_timeout=0
    # timeout 3s for first call to avoid hanging uqmi
    uqmi -d "$device" -t 3000 --get-pin-status > /dev/null 2>&1
    while uqmi -s -d "$device" -t 1000 --get-pin-status | grep '"UIM uninitialized"' > /dev/null; do
        [ -e "$device" ] || return 1
        if [ "$uninitialized_timeout" -lt "$timeout" -o "$timeout" = "0" ]; then
            let uninitialized_timeout++
            sleep 1;
        else
            echo "SIM not initialized"
            proto_notify_error "$interface" SIM_NOT_INITIALIZED
            proto_block_restart "$interface"
            return 1
        fi
    done

    # Check if UIM application is stuck in illegal state
    local uim_state_timeout=0
    while true; do
        json_load "$(uqmi -s -d "$device" -t 2000 --uim-get-sim-state)"
        json_get_var card_application_state card_application_state

        # SIM card is either completely absent or state is labeled as illegal
        # Try to power-cycle the SIM card to recover from this state
        if [ -z "$card_application_state" -o "$card_application_state" = "illegal" ]; then
            echo "SIM in illegal state - Power-cycling SIM"

            # Try to reset SIM application
            uqmi -d "$device" -t 1000 --uim-power-off --uim-slot 1
            sleep 3
            uqmi -d "$device" -t 1000 --uim-power-on --uim-slot 1

            if [ "$uim_state_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
                let uim_state_timeout++
                sleep 5
                continue
            fi

            # Recovery failed
            proto_notify_error "$interface" SIM_ILLEGAL_STATE
            proto_block_restart "$interface"
            return 1
        else
            break
        fi
    done

    if uqmi -s -d "$device" -t 1000 --uim-get-sim-state | grep -q '"Not supported"\|"Invalid QMI command"' &&
       uqmi -s -d "$device" -t 1000 --get-pin-status | grep -q '"Not supported"\|"Invalid QMI command"' ; then
        [ -n "$pincode" ] && {
            uqmi -s -d "$device" -t 1000 --verify-pin1 "$pincode" > /dev/null || uqmi -s -d "$device" -t 1000 --uim-verify-pin1 "$pincode" > /dev/null || {
                echo "Unable to verify PIN"
                proto_notify_error "$interface" PIN_FAILED
                proto_block_restart "$interface"
                return 1
            }
        }
    else
        json_load "$(uqmi -s -d "$device" -t 1000 --get-pin-status)"
        json_get_var pin1_status pin1_status
        if [ -z "$pin1_status" ]; then
            json_load "$(uqmi -s -d "$device" -t 1000 --uim-get-sim-state)"
            json_get_var pin1_status pin1_status
        fi
        json_get_var pin1_verify_tries pin1_verify_tries

        case "$pin1_status" in
            disabled)
                echo "PIN verification is disabled"
                ;;
            blocked)
                echo "SIM locked PUK required"
                proto_notify_error "$interface" PUK_NEEDED
                proto_block_restart "$interface"
                return 1
                ;;
            not_verified)
                [ "$pin1_verify_tries" -lt "3" ] && {
                    echo "PIN verify count value is $pin1_verify_tries this is below the limit of 3"
                    proto_notify_error "$interface" PIN_TRIES_BELOW_LIMIT
                    proto_block_restart "$interface"
                    return 1
                }
                if [ -n "$pincode" ]; then
                    uqmi -s -d "$device" -t 1000 --verify-pin1 "$pincode" > /dev/null 2>&1 || uqmi -s -d "$device" -t 1000 --uim-verify-pin1 "$pincode" > /dev/null 2>&1 || {
                        echo "Unable to verify PIN"
                        proto_notify_error "$interface" PIN_FAILED
                        proto_block_restart "$interface"
                        return 1
                    }
                else
                    echo "PIN not specified but required"
                    proto_notify_error "$interface" PIN_NOT_SPECIFIED
                    proto_block_restart "$interface"
                    return 1
                fi
                ;;
            verified)
                echo "PIN already verified"
                ;;
            *)
                echo "PIN status failed (${pin1_status:-sim_not_present})"
                proto_notify_error "$interface" PIN_STATUS_FAILED
                proto_block_restart "$interface"
                return 1
            ;;
        esac
        json_cleanup
    fi

    if [ -n "$plmn" ]; then
        json_load "$(uqmi -s -d "$device" -t 1000 --get-plmn)"
        json_get_var plmn_mode mode
        json_get_vars mcc mnc || {
            mcc=0
            mnc=0
        }

        if [ "$plmn" = "0" ]; then
            if [ "$plmn_mode" != "automatic" ]; then
                mcc=0
                mnc=0
                echo "Setting PLMN to auto"
            fi
        elif [ "$mcc" -ne "${plmn:0:3}" -o "$mnc" -ne "${plmn:3}" ]; then
            mcc=${plmn:0:3}
            mnc=${plmn:3}
            echo "Setting PLMN to $plmn"
        else
            mcc=""
            mnc=""
        fi
    fi

    # Cleanup current state if any
    uqmi -s -d "$device" -t 1000 --stop-network 0xffffffff --autoconnect > /dev/null 2>&1
    uqmi -s -d "$device" -t 1000 --set-ip-family ipv6 --stop-network 0xffffffff --autoconnect > /dev/null 2>&1

    # Go online
    uqmi -s -d "$device" -t 1000 --set-device-operating-mode online > /dev/null 2>&1

    # Set IP format
    uqmi -s -d "$device" -t 1000 --set-data-format 802.3 > /dev/null 2>&1
    uqmi -s -d "$device" -t 1000 --wda-set-data-format 802.3 > /dev/null 2>&1
    json_load "$(uqmi -s -d "$device" -t 1000 --wda-get-data-format)"
    json_get_var dataformat link-layer-protocol

    if [ "$dataformat" = "raw-ip" ]; then

        [ -f /sys/class/net/$ifname/qmi/raw_ip ] || {
            echo "Device only supports raw-ip mode but is missing this required driver attribute: /sys/class/net/$ifname/qmi/raw_ip"
            return 1
        }

        echo "Device does not support 802.3 mode. Informing driver of raw-ip only for $ifname .."
        echo "Y" > /sys/class/net/$ifname/qmi/raw_ip
    fi

    uqmi -s -d "$device" -t 1000 --sync > /dev/null 2>&1

    uqmi -s -d "$device" -t 20000 --network-register > /dev/null 2>&1

    # PLMN selection must happen after the call to network-register
    if [ -n "$mcc" -a -n "$mnc" ]; then
        uqmi -s -d "$device" -t 1000 --set-plmn --mcc "$mcc" --mnc "$mnc" > /dev/null 2>&1 || {
            echo "Unable to set PLMN"
            proto_notify_error "$interface" PLMN_FAILED
            proto_block_restart "$interface"
            return 1
        }
    fi

    [ -n "$modes" ] && {
        uqmi -s -d "$device" -t 1000 --set-network-modes "$modes" > /dev/null 2>&1
        sleep 3
        # Scan network to not rely on registration-timeout after RAT change
        uqmi -s -d "$device" -t 30000 --network-scan > /dev/null 2>&1
    }

    echo "Waiting for network registration"
    sleep 5
    local registration_timeout=0
    local serving_system=""
    local registration_state=""
    while true; do
        serving_system="$(uqmi -s -d "$device" -t 1000 --get-serving-system 2>/dev/null)"
        registration_state=$(echo "$serving_system" | jsonfilter -e "@.registration" 2>/dev/null)

        [ "$serving_system" = "\"Invalid QMI command\"" ] && break
        [ "$registration_state" = "registered" ] && break

        if [ "$registration_state" = "searching" ] || [ "$registration_state" = "not_registered" ]; then
            if [ "$registration_timeout" -lt "$timeout" ] || [ "$timeout" = "0" ]; then
                [ "$registration_state" = "searching" ] || {
                    echo "Device stopped network registration. Restart network registration"
                    uqmi -s -d "$device" -t 20000 --network-register > /dev/null 2>&1
                }
                let registration_timeout++
                sleep 1
                continue
            fi
            echo "Network registration failed, registration timeout reached"
        else
            # registration_state is 'registration_denied' or 'unknown' or ''
            echo "Network registration failed (reason: '$registration_state')"
        fi

        proto_notify_error "$interface" NETWORK_REGISTRATION_FAILED
        return 1
    done


    echo "Starting network $interface"

    pdptype="$(echo "$pdptype" | awk '{print tolower($0)}')"

    [ "$pdptype" = "ip" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] || pdptype="ip"

    # Configure PDP type and APN for profile 1.
    # In case GGSN rejects IPv4v6 PDP, modem might not be able to
    # establish a non-LTE data session.
    profile_pdptype="$pdptype"
    [ "$profile_pdptype" = "ip" ] && profile_pdptype="ipv4"
    uqmi -s -d "$device" -t 1000 --modify-profile "3gpp,1" --apn "$apn" --pdp-type "$profile_pdptype" > /dev/null 2>&1

    if [ "$pdptype" = "ip" ]; then
        [ -z "$autoconnect" ] && autoconnect=1
        [ "$autoconnect" = 0 ] && autoconnect=""
    else
        [ "$autoconnect" = 1 ] || autoconnect=""
    fi

    [ "$pdptype" = "ip" -o "$pdptype" = "ipv4v6" ] && {
        cid_4=$(uqmi -s -d "$device" -t 1000 --get-client-id wds)
        if ! [ "$cid_4" -eq "$cid_4" ] 2> /dev/null; then
            echo "Unable to obtain client ID"
            proto_notify_error "$interface" NO_CID
            return 1
        fi

        uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --set-ip-family ipv4 > /dev/null 2>&1

        pdh_4=$(uqmi -s -d "$device" -t 5000 --set-client-id wds,"$cid_4" \
            --start-network \
            ${apn:+--apn $apn} \
            ${profile:+--profile $profile} \
            ${auth:+--auth-type $auth} \
            ${username:+--username $username} \
            ${password:+--password $password} \
            ${autoconnect:+--autoconnect})

        # pdh_4 is a numeric value on success
        if ! [ "$pdh_4" -eq "$pdh_4" ] 2> /dev/null; then
            echo "Unable to connect IPv4"
            uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
            proto_notify_error "$interface" CALL_FAILED
            return 1
        fi

        # Check data connection state
        connstat=$(uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --get-data-status)
        [ "$connstat" == '"connected"' ] || {
            echo "No data link!"
            uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
            proto_notify_error "$interface" CALL_FAILED
            return 1
        }
    }

    [ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && {
        cid_6=$(uqmi -s -d "$device" -t 1000 --get-client-id wds)
        if ! [ "$cid_6" -eq "$cid_6" ] 2> /dev/null; then
            echo "Unable to obtain client ID"
            proto_notify_error "$interface" NO_CID
            return 1
        fi

        uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --set-ip-family ipv6 > /dev/null 2>&1

        : "${v6apn:=${apn}}"
        : "${v6profile:=${profile}}"

        pdh_6=$(uqmi -s -d "$device" -t 5000 --set-client-id wds,"$cid_6" \
            --start-network \
            ${v6apn:+--apn $v6apn} \
            ${v6profile:+--profile $v6profile} \
            ${auth:+--auth-type $auth} \
            ${username:+--username $username} \
            ${password:+--password $password} \
            ${autoconnect:+--autoconnect})

        # pdh_6 is a numeric value on success
        if ! [ "$pdh_6" -eq "$pdh_6" ] 2> /dev/null; then
            echo "Unable to connect IPv6"
            uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
            proto_notify_error "$interface" CALL_FAILED
            return 1
        fi

        # Check data connection state
        connstat=$(uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --set-ip-family ipv6 --get-data-status)
        [ "$connstat" == '"connected"' ] || {
            echo "No data link!"
            uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1
            proto_notify_error "$interface" CALL_FAILED
            return 1
        }
    }

    echo "Setting up $ifname"
    proto_init_update "$ifname" 1
    proto_set_keep 1
    proto_add_data
    [ -n "$pdh_4" ] && {
        json_add_string "cid_4" "$cid_4"
        json_add_string "pdh_4" "$pdh_4"
    }
    [ -n "$pdh_6" ] && {
        json_add_string "cid_6" "$cid_6"
        json_add_string "pdh_6" "$pdh_6"
    }
    proto_close_data
    proto_send_update "$interface"

    local zone="$(fw3 -q network "$interface" 2>/dev/null)"

    [ -n "$pdh_6" ] && {
        if [ -z "$dhcpv6" -o "$dhcpv6" = 0 ]; then
            json_load "$(uqmi -s -d $device -t 1000 --set-client-id wds,$cid_6 --get-current-settings)"
            json_select ipv6
            json_get_var ip_6 ip
            json_get_var gateway_6 gateway
            json_get_var dns1_6 dns1
            json_get_var dns2_6 dns2
            json_get_var ip_prefix_length ip-prefix-length

            proto_init_update "$ifname" 1
            proto_set_keep 1
            proto_add_ipv6_address "$ip_6" "128"
            proto_add_ipv6_prefix "${ip_6}/${ip_prefix_length}"
            proto_add_ipv6_route "$gateway_6" "128"
            [ "$defaultroute" = 0 ] || proto_add_ipv6_route "::0" 0 "$gateway_6" "" "" "${ip_6}/${ip_prefix_length}"
            [ "$peerdns" = 0 ] || {
                proto_add_dns_server "$dns1_6"
                proto_add_dns_server "$dns2_6"
            }
            [ -n "$zone" ] && {
                proto_add_data
                json_add_string zone "$zone"
                proto_close_data
            }
            proto_send_update "$interface"
        else
            json_init
            json_add_string name "${interface}_6"
            json_add_string ifname "@$interface"
            [ "$pdptype" = "ipv4v6" ] && json_add_string iface_464xlat "0"
            json_add_string proto "dhcpv6"
            [ -n "$ip6table" ] && json_add_string ip6table "$ip6table"
            proto_add_dynamic_defaults
            # RFC 7278: Extend an IPv6 /64 Prefix to LAN
            json_add_string extendprefix 1
            [ "$delegate" = "0" ] && json_add_boolean delegate "0"
            [ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
            [ -n "$zone" ] && json_add_string zone "$zone"
            json_close_object
            ubus call network add_dynamic "$(json_dump)"
        fi
    }

    [ -n "$pdh_4" ] && {
        if [ "$dhcp" = 0 ]; then
            json_load "$(uqmi -s -d $device -t 1000 --set-client-id wds,$cid_4 --get-current-settings)"
            json_select ipv4
            json_get_var ip_4 ip
            json_get_var gateway_4 gateway
            json_get_var dns1_4 dns1
            json_get_var dns2_4 dns2
            json_get_var subnet_4 subnet

            proto_init_update "$ifname" 1
            proto_set_keep 1
            proto_add_ipv4_address "$ip_4" "$subnet_4"
            proto_add_ipv4_route "$gateway_4" "128"
            [ "$defaultroute" = 0 ] || proto_add_ipv4_route "0.0.0.0" 0 "$gateway_4"
            [ "$peerdns" = 0 ] || {
                proto_add_dns_server "$dns1_4"
                proto_add_dns_server "$dns2_4"
            }
            [ -n "$zone" ] && {
                proto_add_data
                json_add_string zone "$zone"
                proto_close_data
            }
            proto_send_update "$interface"
        else
            json_init
            json_add_string name "${interface}_4"
            json_add_string ifname "@$interface"
            json_add_string proto "dhcp"
            [ -n "$ip4table" ] && json_add_string ip4table "$ip4table"
            proto_add_dynamic_defaults
            [ -n "$zone" ] && json_add_string zone "$zone"
            json_close_object
            ubus call network add_dynamic "$(json_dump)"
        fi
    }
}

qmi_wds_stop() {
    local cid="$1"
    local pdh="$2"

    [ -n "$cid" ] || return

    uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
        --stop-network 0xffffffff \
        --autoconnect > /dev/null 2>&1

    [ -n "$pdh" ] && {
        uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
            --stop-network "$pdh" > /dev/null 2>&1
    }

    uqmi -s -d "$device" -t 1000 --set-client-id wds,"$cid" \
        --release-client-id wds > /dev/null 2>&1
}

proto_qmi_teardown() {
    local interface="$1"

    local device devpath cid_4 pdh_4 cid_6 pdh_6
    json_get_vars device devpath

    [ -n "$ctl_device" ] && device=$ctl_device

    if [ -n "$devpath" ]; then
        local usbmisc_or_wwan_path
        for usbmisc_or_wwan_path in \
            "$devpath"/usbmisc/cdc-wdm* \
            "$devpath"/*/usbmisc/cdc-wdm* \
            "$devpath"/*/wwan[0-9]*/wwan[0-9]*qmi* \
            "$devpath"/*/*/wwan[0-9]*/wwan[0-9]*qmi*; do
            device="/dev/${usbmisc_or_wwan_path##*/}"
        done
    fi

    echo "Stopping network $interface"

    json_load "$(ubus call network.interface.$interface status)"
    json_select data
    json_get_vars cid_4 pdh_4 cid_6 pdh_6

    qmi_wds_stop "$cid_4" "$pdh_4"
    qmi_wds_stop "$cid_6" "$pdh_6"

    proto_init_update "*" 0
    proto_send_update "$interface"
}

[ -n "$INCLUDE_ONLY" ] || {
    add_protocol qmi
}

9

(1 odpowiedzi, napisanych Sprzęt / Hardware)

Udało mi się uruchomić na tym routerze OpenWrt wgrywając po TFTP firmware z TL-MR6400 v5 i dziwi mnie brak oficjalnego wsparcia.
Jest dostępny jakiś datasheet z listą SoC stosowanych w routerach TP-Linka, uwzględniający różnice w rewizjach?

Cezary napisał/a:

Z wersji rozwojowej weź, nie z openwrt 24.10

Są różnice w wersji bootloadera? A jeśli tak, to czy obraz sysupgrade aktualizuje też bootloader?

Dzisiaj mi wykrzaczyło na dobre stabilną wersję 23.05.4 z LUCI (wersja U-boot), router się odpalał w trybie initramfs i nie łykał sysupgrade, udało się go postawić dopiero przez TFTP. Co tu się mogło uwalić tak z dupy?

WED jest tutaj uruchamiany przez edycję linii w /etc/modules.d/mt7915e ? Czy w jakiś inny sposób?

13

(4 odpowiedzi, napisanych Sprzęt / Hardware)

A wykluczyłeś wpływ operatora?

Zastanawiam się - jaki był cel tworzenia sieci gościnnej, skoro chcesz umożliwić komunikację z klientami wewnątrz?

15

(18 odpowiedzi, napisanych Oprogramowanie / Software)

drk napisał/a:

a co z wydajnością? Nie spadanie za bardzo? ten router to nie król wydajności smile

Podwójne NATowanie może spowolnić działanie sieci i utrudnić komunikację na portach

16

(175 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Producent nie dba o to. Z wielkimi bólami łata soft jeżeli musi

A MikroTik? wink

17

(175 odpowiedzi, napisanych Oprogramowanie / Software)

jacgl napisał/a:

Ale nie zauważyłem wpływu na działanie.

Jest uciążliwe w grach multiplayer, wywala z serwerów; przy próbie puszczenia obrazu na telewizor przez DLNA - gdy jest w trakcie takiej "czkawki" - zrywanie połączenia, brak kontroli pilotem nad wyświetlaną treścią i zapętlenia do ostatnio zbuforowanego fragmentu.

18

(175 odpowiedzi, napisanych Oprogramowanie / Software)

ambrozy5 napisał/a:

port3 flapuje jak na mikrotikach :E sprawdz kabel, zmien port , jak nie musisz miec gbita tam to ustaw na 100mbps fdx  i sprawdz, moze zakłocenia na kablu np z sieci en ?

Kupiłem ten router ze względu na gigabit właśnie, głównie do wymiany danych w obrębie sieci lokalnej. Niby kilka metrów przewodu idzie równolegle z przewodami elektrycznymi, ale to chyba nie miałoby aż takiego znaczenia, zwłaszcza że dzieje się to w losowych momentach. Skrętka kat. 5e, a instalacja jednofazowa.

19

(175 odpowiedzi, napisanych Oprogramowanie / Software)

podtor napisał/a:

Zawsze masz 14 dni na zwrot lub reklamację.

Na reklamację to akurat jest 2 lata w przypadku nówki, ale że jest to używka to będzie to rok. Sam router mam od marca.

20

(175 odpowiedzi, napisanych Oprogramowanie / Software)

Już mnie szlag z tym routerem trafia, naprawdę ;_;
Nie jest w stanie mi zapewnić stabilności którą uzyskuję w starych TP-linkach z serii WR74x

[11043.096440] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[11050.059236] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[11053.160911] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15615.012240] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15617.811347] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15618.795140] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15621.487409] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15623.371910] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15626.114062] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15627.435927] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15630.267456] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15631.546892] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15634.237474] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15635.572470] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[15637.971618] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[15896.362537] vlan egress tag control neither untag nor tag.
[15947.621775] vlan egress tag control neither untag nor tag.
[16041.780519] vlan egress tag control neither untag nor tag.
[16053.990388] vlan egress tag control neither untag nor tag.
[16054.001506] vlan egress tag control neither untag nor tag.
[16186.208570] vlan egress tag control neither untag nor tag.
[17712.963957] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[17716.425345] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[17957.876114] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[17960.610285] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[17961.364426] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[17964.171394] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[18127.530080] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[18130.236972] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[18131.510578] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[18134.296395] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[18135.620911] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[18138.360376] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[18139.647116] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[18142.030536] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19128.605132] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19131.944289] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19133.239756] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19135.997831] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19137.266447] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19140.044919] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19141.029703] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19143.795938] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19145.151945] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19147.860977] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19149.178147] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19151.985930] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19152.740068] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19155.529957] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19156.811450] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19159.669969] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19161.005975] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19163.735947] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[19165.032181] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[19167.405116] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[20000.040609] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[20003.097095] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[20004.448322] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[20007.234470] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[20008.558963] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[20011.359415] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[20012.669282] mtk_soc_eth 1e100000.ethernet eth0: port 3 link down
[20014.969634] mtk_soc_eth 1e100000.ethernet eth0: port 3 link up
[20709.154972] vlan egress tag control neither untag nor tag.

21

(175 odpowiedzi, napisanych Oprogramowanie / Software)

Czy ktoś w tym routerze korzysta z jakiegoś stabilniejszego buildu niż ten oficjalny stabilny? Miewam okresowe rozłączenia klientów przewodowych, a sama liczba błędów mi przekracza 14k po 8 dniach pracy.

OpenWrt 19.07.3, r11063-85e04e9f46
 -----------------------------------------------------
root@OpenWrt:~# cat /proc/interrupts
           CPU0       CPU1       
  8:   72986987   72986931  MIPS GIC Local   1  timer
  9:      16772          0  MIPS GIC  63  IPI call
 10:          0  187106890  MIPS GIC  64  IPI call
 11:    7277580          0  MIPS GIC  65  IPI resched
 12:          0    1808552  MIPS GIC  66  IPI resched
 15:         12          0  MIPS GIC  33  ttyS0
 16:        383          0  MIPS GIC  29  xhci-hcd:usb1
 17:  396285729          0  MIPS GIC  10  1e100000.ethernet
 18:         53          0  MIPS GIC  30  gsw
 19:          2  108429911  MIPS GIC  11  mt76x2e
 21:         18  132333241  MIPS GIC  32  mt7603e
ERR:      14112

22

(7 odpowiedzi, napisanych Sprzęt / Hardware)

Do tej pory korzystałem z opcji serwera wydruku z wykorzystaniem p910nd, ale jak wygląda sprawa z CUPSem na tym routerze? Daje sobie radę czy jest to spory narzut na jego moc obliczeniową?

23

(4,539 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Ależ tak jest.

Faktycznie, zawieruszył mi się tick na zegarze czasu rzeczywistego.

24

(4,539 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Lub znajdź sprzęt o parametrach które potrzebujesz i go kup: https://eko.one.pl/routerdatabase/

Ta Twoja szukajka powinna uwzględniać warunek "większe bądź równe" w przypadku liczby portów.

25

(7 odpowiedzi, napisanych Sprzęt / Hardware)

Po ustawieniu i zrestartowaniu radia na razie wszystko działa.
VHT80 i ac nie powodują żadnych problemów z funkcjonowaniem urządzeń w standardzie n?