Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hihihihihi
V2EX  ›  Linux

强烈推荐一款性价比极高的 Linux 本搞 vibe coding

  •  
  •   hihihihihi · 10 days ago · 5295 views

    Linux 笔记本这里讨论过很多次,我自己都多次发帖,我也前后用过折腾过一二十个笔记本,

    60% Apple, 30% Thinkpad X1C/T 系列 10% 杂牌甚至 PAD/Surface 系列

    多多少少都有不满意的对方,大部分是兼容问题,电池问题,驱动问题,启动问题,稳定问题。

    由于目前我自己主要用 AI 来写一些小项目,所以主要考虑轻便,续航高,性能无所谓,由于 M 芯片支持不是太友好,要不然 M 芯片应该是首选。

    后来我研究发现 12 寸的 Macbook+Omarchy 是极品配置

    我以前定制过一台 12 寸的,好像 1.2w 买的,用了半年不习惯(那个时候觉得性能不行发热) 5k 卖了。

    最近在咸鱼花 1000 出头买了一台 16G/256 的极品机,安装 Omarchy 很顺畅,唯一就是要自己改一下设置,要不然盒盖充电后,拔插头,wifi 不能唤醒,需要重新启动。

    如果你对性能要求不高,只是上网,ai vibing ,对品相要求不高,700 多就能买到成色不错的,亮度 20-30,我浏览网页,vibing 一下,大概续航可以做到 8-10 个小时。我自己还有一台 x1 carbon 也装了 omarchy ,续航要比这个少,而且这个很轻 900 克,简直太好用了。

    1000 元不到,还要什么自行车?

    hihihihihi
        1
    hihihihihi  
    OP
       10 days ago
    下面是我让 ai 帮我解决掉 wifi 和充电冲突的问题的脚本


    #!/bin/bash
    # Fix MacBook10,1 suspend/resume WiFi issues caused by BCM4350 brcmfmac PCIe D3 timeout
    #
    # ROOT CAUSE: systemd-sleep hooks run AFTER kernel PM tries to freeze devices.
    # brcmfmac driver is still loaded when kernel calls pci_pm_suspend() -> D3 timeout
    # error -5 -> suspend fails -> retry -> firmware corruption -> WiFi dead.
    #
    # SOLUTION: Use systemd services (Before=sleep.target / After=suspend.target)
    # which execute BEFORE kernel PM freezes and AFTER kernel PM resumes.
    #
    # Run with: sudo bash ~/fix-macbook12-suspend.sh

    set -euo pipefail

    if [[ $EUID -ne 0 ]]; then
    echo "ERROR: Please run with sudo: sudo bash $0"
    exit 1
    fi

    echo "=== 1/6 Removing old systemd-sleep hook ==="

    if [[ -f /etc/systemd/system-sleep/brcmfmac-suspend.sh ]]; then
    rm /etc/systemd/system-sleep/brcmfmac-suspend.sh
    echo "Removed old hook"
    else
    echo "Old hook not found, skipping"
    fi

    echo ""
    echo "=== 2/6 Creating WiFi recovery script ==="

    cat > /usr/local/bin/brcmfmac-recovery.sh << 'SCRIPT'
    #!/bin/bash
    # Full PCIe reset + driver reload for BCM4350 on MacBook10,1
    BRCM_PCI="0000:02:00.0"
    LOG="/var/log/brcmfmac-resume.log"

    log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG"
    }

    log "=== ${1:-manual} START ==="

    # Step 1: Unload everything
    log "Stopping iwd"
    systemctl stop iwd 2>/dev/null

    log "Removing brcmfmac modules"
    modprobe -r brcmfmac_wcc 2>/dev/null || true
    modprobe -r brcmfmac 2>/dev/null || true
    sleep 1

    # Step 2: PCIe bus reset (hardware level)
    if [[ -f "/sys/bus/pci/devices/${BRCM_PCI}/reset" ]]; then
    log "PCIe bus reset"
    echo 1 > "/sys/bus/pci/devices/${BRCM_PCI}/reset" 2>/dev/null && log "reset OK" || log "reset failed"
    sleep 2
    else
    log "No reset file, trying remove+rescan"
    if [[ -d "/sys/bus/pci/devices/${BRCM_PCI}" ]]; then
    echo 1 > "/sys/bus/pci/devices/${BRCM_PCI}/remove" 2>/dev/null || true
    sleep 2
    fi
    echo 1 > /sys/bus/pci/rescan 2>/dev/null || true
    sleep 3
    fi

    # Step 3: Reload driver
    log "Loading brcmfmac"
    modprobe brcmfmac 2>/dev/null && log "brcmfmac OK" || log "brcmfmac FAIL"
    modprobe brcmfmac_wcc 2>/dev/null || true
    sleep 2

    # Step 4: Start iwd
    log "Starting iwd"
    systemctl start iwd 2>/dev/null && log "iwd OK" || log "iwd FAIL"
    sleep 3

    # Step 5: Verify
    if ip link show wlan0 &>/dev/null && iw dev wlan0 info &>/dev/null 2>&1; then
    log "wlan0 functional - SUCCESS"
    else
    log "wlan0 broken, retrying once more"
    modprobe -r brcmfmac_wcc 2>/dev/null || true
    modprobe -r brcmfmac 2>/dev/null || true
    sleep 2
    echo 1 > "/sys/bus/pci/devices/${BRCM_PCI}/reset" 2>/dev/null || true
    sleep 2
    modprobe brcmfmac 2>/dev/null || true
    modprobe brcmfmac_wcc 2>/dev/null || true
    sleep 3
    systemctl restart iwd 2>/dev/null || true
    sleep 2
    ip link show wlan0 &>/dev/null && log "retry SUCCESS" || log "retry FAILED - may need reboot"
    fi

    log "=== ${1:-manual} DONE ==="
    SCRIPT

    chmod +x /usr/local/bin/brcmfmac-recovery.sh
    echo "Created: /usr/local/bin/brcmfmac-recovery.sh"

    echo ""
    echo "=== 3/6 Creating suspend service (runs BEFORE kernel PM freeze) ==="

    cat > /etc/systemd/system/brcmfmac-suspend.service << 'SVC'
    [Unit]
    Description=Unload brcmfmac WiFi driver before suspend
    Before=sleep.target
    StopWhenUnneeded=yes

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/rmmod brcmfmac_wcc
    ExecStart=/usr/bin/rmmod brcmfmac
    RemainAfterExit=yes
    ExecStop=/usr/bin/modprobe brcmfmac
    TimeoutSec=15

    [Install]
    WantedBy=sleep.target
    SVC

    echo "Created: /etc/systemd/system/brcmfmac-suspend.service"

    echo ""
    echo "=== 4/6 Creating resume service (runs AFTER kernel PM resume) ==="

    cat > /etc/systemd/system/brcmfmac-resume.service << 'SVC'
    [Unit]
    Description=Reset and reload brcmfmac WiFi after resume
    After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
    StopWhenUnneeded=yes

    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/brcmfmac-recovery.sh resume
    TimeoutSec=30

    [Install]
    WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
    SVC

    echo "Created: /etc/systemd/system/brcmfmac-resume.service"

    echo ""
    echo "=== 5/6 Creating udev rule for Type-C hotplug ==="

    cat > /etc/udev/rules.d/99-brcmfmac-typec.rules << 'UDEV'
    # Reset brcmfmac when Type-C port state changes and WiFi is broken
    ACTION=="change|remove", SUBSYSTEM=="typec", RUN+="/usr/local/bin/brcmfmac-typec-check.sh"
    UDEV

    chmod 644 /etc/udev/rules.d/99-brcmfmac-typec.rules
    echo "Created: /etc/udev/rules.d/99-brcmfmac-typec.rules"

    cat > /usr/local/bin/brcmfmac-typec-check.sh << 'CHECK'
    #!/bin/bash
    # Only reset if WiFi is actually broken
    if ip link show wlan0 &>/dev/null && iw dev wlan0 info &>/dev/null 2>&1; then
    exit 0
    fi
    /usr/local/bin/brcmfmac-recovery.sh typec-hotplug
    CHECK

    chmod +x /usr/local/bin/brcmfmac-typec-check.sh
    echo "Created: /usr/local/bin/brcmfmac-typec-check.sh"

    echo ""
    echo "=== 6/6 Enabling services ==="

    systemctl daemon-reload
    systemctl enable brcmfmac-suspend.service
    systemctl enable brcmfmac-resume.service
    udevadm control --reload-rules

    echo ""
    echo "=== Verify ==="
    echo "--- suspend service ---"
    cat /etc/systemd/system/brcmfmac-suspend.service
    echo ""
    echo "--- resume service ---"
    cat /etc/systemd/system/brcmfmac-resume.service
    echo ""
    echo "--- service status ---"
    systemctl is-enabled brcmfmac-suspend.service brcmfmac-resume.service
    echo ""
    echo "=== DONE ==="
    echo ""
    echo "Test: close lid with charger -> wait 1min -> open lid"
    echo "Check WiFi: iw dev wlan0 link"
    echo "Check debug log: cat /var/log/brcmfmac-resume.log"
    echo ""
    echo "Manual recovery: sudo /usr/local/bin/brcmfmac-recovery.sh manual"
    w568w
        2
    w568w  
       10 days ago
    「就用 macOS 不行吗」还有十秒到达战场。不过我也想问:macOS 不行吗?装 Omarchy 是单纯为了 Linux 的兼容性还是有性能和续航的提升?
    hidemyname
        3
    hidemyname  
       10 days ago   ❤️ 1
    对啊,「就用 macOS 不行吗」
    dingawm
        4
    dingawm  
       10 days ago
    纯用命令行的话还好,有的桌面端 vibe 工具优先支持/更新 macOS
    dxcqcv
        5
    dxcqcv  
       10 days ago
    arch 不好吗
    hihihihihi
        6
    hihihihihi  
    OP
       10 days ago
    @w568w
    @hidemyname

    我自己也在用 macos ,对我自己来说,我很需要 tile 方式的窗口管理, 我也安装了 ghostty , 很方便使用分屏和一些简单的 tui ,比如 yazi ,但是最不舒服的是,不方便平铺浏览器,如果平铺浏览器就只能单个分一个 1/2 之类给浏览器,可能我更喜欢 omarchy 整个快捷按的设计吧。
    hihihihihi
        7
    hihihihihi  
    OP
       10 days ago
    如果用 omarchy ,我可以随时 float 显示一个浏览器,或者设置一个 webapp ,或者某一个 tile 窗口(没有 title )
    hihihihihi
        8
    hihihihihi  
    OP
       10 days ago
    omarchy 窗口可以用完即走,需要一个快捷按键就回来平铺。mac 上要先设置好,比如平铺了浏览器,关闭后,未来想要又要去点全屏平铺,还有包括浏览器。

    还有就是 omarchy 基本都配置好了,开箱即用,还是很方便的。
    zxjxzj9
        9
    zxjxzj9  
       10 days ago
    严肃推荐前几年的松下 lets note,跳水速度最快价格约为同配置 ThinkPad 的一半到三分之一. 缺点就是搞不好你会买到电池是坏掉的然后你再买一个电池可能就要电脑的一半价格...
    YanSeven
        10
    YanSeven  
       10 days ago via Android
    我现在是 48+2T 移动硬盘,UTM 虚拟机,分了一个 debian 一个 macos 虚拟机,日常开发任务跑在 Debian 虚拟机里面,有 Mac app 的开发需求就跑在 Mac 虚拟机上。缺点就是时常背着移动,没法儿完全 24h 挂机跑
    YanSeven
        11
    YanSeven  
       10 days ago via Android
    @YanSeven 我的 Mac 宿主机还是不太敢放开让 Agent 在里面玩儿,虚拟机里面就 solo+goal 就完事儿了
    hihihihihi
        12
    hihihihihi  
    OP
       10 days ago
    @YanSeven M 芯片 UTM 速度不行吧,尤其是跑 UI 相关的。 跑 cli 用 orbstack 快,
    YanSeven
        13
    YanSeven  
       10 days ago via Android
    @hihihihihi 我也想 orbstack 啊,但是我是 512 的内置磁盘,稍微用 docker 拉点东西缓存点镜像,Agent 本地再搞点测试数据,就满了...,买了这个 512G 懊恼的一批,移动硬盘是下策了。
    ko20
        14
    ko20  
       10 days ago
    我的机械革命无界 14Pro 就感觉还好,虽然有些小瑕疵但是通过 AI 解决了。何况 23 年 3000 多买的 16G+512G + intel i7-12650H ,还要什么自行车
    babymonster
        15
    babymonster  
       10 days ago   ❤️ 1
    买一台懒猫微服,加一个折叠屏,感觉就不错呀,移动编程 https://lazycat.cloud/playground/guideline/435
    w568w
        16
    w568w  
       10 days ago
    @hihihihihi 可以。老哥觉得平铺和窗口管理器哪种好用呢,我最近也在调研 tile window manager
    hihihihihi
        17
    hihihihihi  
    OP
       10 days ago
    @w568w 你可以试下 omarchy ,很舒服
    qW7bo2FbzbC0
        18
    qW7bo2FbzbC0  
       10 days ago
    @babymonster #15 @livid 广告
    hihihihihi
        19
    hihihihihi  
    OP
       10 days ago
    @babymonster 手机端编程不方便,我试过买了几把移动折叠键盘+termux/ssh 客户端,都不好使。
    fregie
        20
    fregie  
       10 days ago
    vibe coding 之前我开发主力机用 ubuntu ,vibe coding 之后已经无所谓了,服务器上跑 vibe coding server ,开发用个浏览器或 gui 就行了,什么系统已经无所谓了
    zls3201
        21
    zls3201  
       10 days ago
    你说了这么多 我的 ipad + ssh + herdr + 键盘,貌似完爆啊
    sjdhome
        22
    sjdhome  
       10 days ago
    macOS 也有平铺式窗口管理器,可以试试 AeroSpace
    linkopeneyes
        23
    linkopeneyes  
       10 days ago
    我现在用 rog ally 改的 32g 内存 2t 硬盘 刷 steam os 每天带去上班也挺舒服的一个小挎包就能搞定,公司的显示屏支持 typec 输入输出 中午午休还能打两把
    Ipsum
        24
    Ipsum  
       10 days ago
    国产的 cc ,跑个 vibe coding 的机器扔机房。你手机开个 web 就行。包括代码查看,command 什么的一应俱全。我觉得一个 iPad 完全够了,体验好点就上 iPad Pro
    rayyume
        25
    rayyume  
       10 days ago
    code-server+hapi 部署在家里的 NAS 里 公网直接网页端访问 挺好用的
    locoz
        26
    locoz  
       10 days ago via Android
    真 vibe 就不用纠结笔记本了,oppo pad mini 加上语音输入就够了,轻便舒服
    saigetsu
        27
    saigetsu  
       10 days ago
    我是搞了个 chrome book ,hp 的蜻蜓系列,非常便宜的 32+512 ,纯电 kali 续航 6h 左右
    zisen
        28
    zisen  
       10 days ago
    目前最佳选择应该是续航无敌的 MacBookAir 外接远程高性能服务器跑测试和编译,这样本机不会发热,只需要渲染一些终端 claudecode 即可
    webcape233
        29
    webcape233  
       9 days ago
    > 我觉得可以把之前知乎上很火的“沉迷 Linux”的问题一起看。
    >
    >DHH 自从从 mac 迁移到 linux 后,Rails 不上心了,赛车也不玩了,书也不写了,整天折腾 Linux 美化,相继推出 Omakub 和 Omarchy 两大力作。
    hihihihihi
        30
    hihihihihi  
    OP
       9 days ago
    @webcape233
    哈哈哈,的确,折腾 Linux 浪费很多时间,但是爽呀
    Linioi
        31
    Linioi  
       9 days ago via iPhone
    我有一台 Pixelbook 2017 也想着要不要折腾一下装个 Arch Linux Vibe Coding ,问了一下 AI 似乎驱动有很多问题,就放弃了哈哈
    unclemcz
        32
    unclemcz  
       7 days ago via Android
    @Linioi #31 这款如果安装 ubuntu ,除了睡眠唤醒有点慢,基本没有问题。(绕过写保护后)
    Linioi
        33
    Linioi  
       7 days ago
    @unclemcz 还是懒得折腾了😂后面有时间并且机器还没出掉再买根线刷机试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   932 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    ♥ Do have faith in what you're doing.