V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LoneFireBlossom
V2EX  ›  MacBook Pro

我撤回前几天对拓展坞的推荐😅

  •  
  •   LoneFireBlossom · 181 天前 · 3182 次点击
    这是一个创建于 181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前的推荐

    https://www.v2ex.com/t/985464

    遇到的问题

    我原来用 intel MBP 16 ,连这个拓展坞从 Monterey 用到 Sonoma 一直没问题。

    买了个 M1 MAX MBP ,发现只要开启 BetterTouchTool ,系统会时不时不执行触控板的点击操作。( Monterey 12.7-12.7.1 )

    检查到最后,发现原因是大功率充电器(大于 65W )插在 satechi 这个 9 合 1 扩展坞上连接 M1 MAX 的 MacBook 时,拓展坞只有 USB2.0 的速度、并且反复高频断开然后重新连接。

    但是在之前的 intel MBP 上相同的连接方式不会有任何问题。我怀疑是这个拓展坞和 M1 的 Mac 不兼容?

    这个逻辑链条太跳脱了,我检查了五六个小时才终于搞清楚……😅

    这下我只能再买个贝尔金的拓展坞了。

    测试过程中用到的其它变量

    • 绿联拓展坞:插电源线无此问题,给 Mac 充电功率为「充电器功率-15W 」
    • 绿联拓展坞 2 号,带千兆网口的:插电源线连 Mac 无此问题,给 Mac 充电功率为「充电器功率-15W 」
    • 贝尔金老的那款带千兆网口的 6 合 1 拓展坞,:插电源线连 Mac 无此问题,给 Mac 充电功率为 60W
    • 苹果原装 94W 、140W 充电器,Anker 65W 单口充电器、Aohi 100W 双口充电器:只要连接 satechi 拓展坞时的充电功率到了 65W 这个节点(拓展坞扣掉一点,连到电脑上时的充电功率会低一些),就都有此问题
    • M1 MAX 的 MacBook 每个 C 口都有此问题。

    检测 USB 设备连接的方法

    使用 Hammerspoon 加载这段代码,然后进 Hammerspoon 的 console 看实时 log ,就能看到 USB 设备连接断开的情况:

    usbConnectsTimer = hs.timer.new(3, function()
        usbConnectsTimer:stop()
        print("> usb connect for devices: " .. usbConnectsDevs)
        usbConnects = 0
        usbConnectsDevs = nil
      end)
     
      usbDisconnectsTimer = hs.timer.new(3, function()
        usbDisconnectsTimer:stop()
        print("> usb disconnect for devices: " .. usbDisconnectsDevs)
        usbDisconnects = 0
        usbDisconnectsDevs = nil
      end)
     
      usbConnects = 0
      usbDisconnects = 0
      usbDCWatcher = {}
     
      usbMonitor = hs.usb.watcher.new(function(info)
        -- iNotify(log,"USB Monitor: " .. info['eventType'] .. " " .. info['vendorName'] .. " " .. info['productName'])
        local event = info['eventType']
        local vendor = info['vendorName']
        local product = info['productName']
        print("USB Monitor: " .. event .. " " .. vendor .. " " .. product)
        if event == "added" then
          if usbDebugAllConns then
            usbConnectsTimer:setNextTrigger(3)
            usbConnects = usbConnects + 1
            if usbConnectsDevs ~= nil then usbConnectsDevs = usbConnectsDevs .. ", " .. vendor .. " " .. product else usbConnectsDevs = vendor .. " " .. product end
          end
          if usbDebugReconns then
            currTime = hs.timer.secondsSinceEpoch()
            for i, v in pairs(usbDCWatcher) do
              if currTime-v>30 then usbDCWatcher[i] = nil end
            end
            if usbDCWatcher[vendor .. " " .. product] ~= nil then
              print("USB Device reconnect occured: " .. vendor .. " " .. product)
            end
          end
        elseif event == "removed" then
          if usbDebugAllConns then
            usbDisconnectsTimer:setNextTrigger(3)
            usbDisconnects = usbDisconnects + 1
            if usbDisconnectsDevs ~= nil then usbDisconnectsDevs = usbDisconnectsDevs .. ", " .. vendor .. " " .. product else usbDisconnectsDevs = vendor .. " " .. product end
          end
          if usbDebugReconns then usbDCWatcher[vendor .. " " ..product]=hs.timer.secondsSinceEpoch() end
        else print("Unknown USB event in usb watcher") end
      end):start()
     
      function getUsbDevices()
        local devs = hs.usb.attachedDevices()
        local cnt = 0
        local res = {}
        local vendor
        for i,v in pairs(devs) do
          cnt = cnt + 1
          if v['vendorName'] ~= nil then vendor = v['vendorName'] else vendor = "(no vendor)" end
          if v['productName'] ~= nil then product = v['productName'] else product = "(no productname)" end
          table.insert(res,vendor .. " " .. product)
        end
        table.sort(res)
        print("\n" .. table.concat(res,"\n"))
        print(cnt .. " devices attached")
      end
    

    外设重连、断开的 log 展示

    2023-10-28 21:48:58: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:48:58: USB Monitor: removed VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:48:58: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:48:58: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:00: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:00: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:01: USB Monitor: added VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:49:01: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:02: USB Monitor: removed VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:49:02: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:02: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:02: USB Monitor: added VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:49:03: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:03: USB Monitor: added VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:49:03: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub             
    2023-10-28 21:49:03: USB Monitor: removed VIA Labs, Inc.          USB Billboard Device   
    2023-10-28 21:49:03: USB Monitor: removed VIA Labs, Inc.          USB2.0 Hub         
    
    

    往下无限add remove循环。

    在 intel Mac 上连这个拓展坞的 log 就这样直接结束:

    2023-10-29 14:18:19: USB Monitor: added VIA Labs, Inc.          USB3.0 Hub             
    2023-10-29 14:18:19: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-29 14:18:20: USB Monitor: added VIA Labs, Inc.          USB3.0 Hub             
    2023-10-29 14:18:20: USB Monitor: added VIA Labs, Inc.          USB2.0 Hub             
    2023-10-29 14:18:20: USB Monitor: added Realtek USB 10/100/1000 LAN
    2023-10-29 14:18:22: USB Monitor: added VIA Labs, Inc.          USB Billboard Device 
    
    第 1 条附言  ·  167 天前
    上面的问题是 Monterey 里遇到的。
    升级 Ventura 之后这个问题消失了……
    第 2 条附言  ·  167 天前
    不对,我搞错了,这个问题还是存在
    17 条回复    2023-10-31 14:47:27 +08:00
    cpstar
        1
    cpstar  
       181 天前
    DA310 不好使?
    binmiui
        2
    binmiui  
       181 天前
    DELL DA310 和 CalDigit TS4 非常推荐
    zhandouji2023
        3
    zhandouji2023  
       181 天前 via Android
    我买了 Apple 的 c 转 a ,c ,hdmi ,感觉够用了
    LoneFireBlossom
        4
    LoneFireBlossom  
    OP
       181 天前
    @cpstar @binmiui
    几年前就买过戴尔 DA310 ,连在 surface book 2 上可以听到拓展坞发出明显声音,直接退了然后没用过。
    雷电 4 的就算了,还用不到那么高级的东西
    fanxasy
        5
    fanxasy  
       181 天前
    我 CalDigit TS4 养老了
    orzjerry
        6
    orzjerry  
       181 天前
    dock190 洋垃圾。 挺好。
    QingStone
        7
    QingStone  
       181 天前 via iPhone
    绿联,我是不太敢用😅
    aerAzLNE
        8
    aerAzLNE  
       181 天前
    我的建议是,不管啥扩展坞都不要碰和供电相关的东西= =只扩展数据相关的东西就好了
    uleh
        9
    uleh  
       181 天前
    CalDigit
    除了官方、贝尔金,唯一推荐的扩展坞品牌
    LoneFireBlossom
        10
    LoneFireBlossom  
    OP
       181 天前
    @uleh #9 问题是我用的这个 satechi 也是 apple 官方商城在售的品牌😢
    kkwa56188
        11
    kkwa56188  
       181 天前
    CalDigit TS4 的视频输出能力略有不足,
    我选择了 DELL WD22TB4, 很猛, 自带内置风扇的
    zhaidoudou123
        12
    zhaidoudou123  
       181 天前   ❤️ 1
    我的建议是,Macbook Pro C 口那么多,还有 magsafe ,就不要让拓展坞碰充电了
    Ga2en
        13
    Ga2en  
       181 天前
    有没有一种可能就是 Apple 已经不是原来的 Apple 了
    https://v2ex.com/t/986533#reply1
    metalman7511
        14
    metalman7511  
       180 天前
    贝尔金别买了,也是一堆 bug ,直接 caldigit 吧
    LoneFireBlossom
        15
    LoneFireBlossom  
    OP
       180 天前 via iPhone
    @metalman7511 啊?啥 bug
    我已经下单了,求解,有啥问题的话我退掉
    metalman7511
        16
    metalman7511  
       180 天前
    @LoneFireBlossom 和休眠还有显示器有关的 bug ,你可以搜一下贝尔金官网和美国亚马逊 看看评价就知道了
    GoldenSheep
        17
    GoldenSheep  
       179 天前
    caldigit 太贵了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   919 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:55 · PVG 03:55 · LAX 12:55 · JFK 15:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.