到手第一天我就栽在了这两件事上开机黑屏、SSD不识别。当年我拆开Jetson AGX Orin包装盒的时候心里想的是“总算能跑大模型了”结果电源一插屏幕亮都不亮风扇转得飞起就是没有任何画面输出。折腾了整整一个晚上最后才发现是DP线的问题。过两天换上NVMe SSD准备扩存储系统里又死活看不到盘。这两个坑几乎每个入手AGX Orin的人都会踩一遍而且网上资料说得含糊官方文档也没把线材规格写清楚。这篇就把我的排查路径和最终解决方案完整记录下来帮你省掉那一个晚上的折腾。先说清楚这篇主要面向两类人一类是刚拿到开发板、准备用屏幕调试的新手另一类是打算把Orin当成边缘推理服务器、需要扩容存储的老手。内容不涉及复杂的原理推导全是实际操作让你照着做就能排掉这两个坑。1. 先说结论DP线选错是AGX Orin开机黑屏的第一大元凶1.1 AGX Orin的DP接口到底什么规格Jetson AGX Orin Developer Kit也就是常说的官方开发套件本体上带有一个标准DisplayPort接口和一个HDMI接口。很多资料只说“支持多屏显示”但没告诉你关键参数它的DP接口是DisplayPort 1.4规格理论带宽32.4Gbps最高支持8K30Hz或者4K120Hz。问题恰恰出在这里。市面上大量廉价DP线其实只通过了DP 1.2认证带宽18Gbps带不动高分辨率高刷新率插上去要么直接黑屏要么在4K分辨率下闪烁、花屏、间歇性黑屏几秒又恢复。我第一次用的就是一根一两年前买显示器附赠的“老DP线”插上AGX Orin的DP口屏幕完全没有信号。如果你手头只有DP 1.2的线开机黑屏几乎是必然结果——因为Orin在默认情况下会尝试以较高的显示参数输出老线材的带宽和信号完整性根本扛不住。这就好比你拿一根细水管去接消防栓水压一起来管子直接就崩了。1.2 常见的三类“翻车线材”以及现象我总结了一下身边朋友和论坛里反馈过的DP黑屏案例线材基本分为三类老版本DP转DP线线身上没印“DP 1.4”字样或者只印了“DP”没有版本号。这种线大概率是DP 1.2甚至更老。现象是连接后无信号偶尔有信号但分辨率上不去只能到1080P。USB-C转DP线很多人想用Orin的USB-C口输出画面但注意不是所有USB-C线都支持DP Alt Mode。纯数据线、USB 3.1 Gen1线都不行。即使支持很多标注“USB-C转DP”的线也是DP 1.2版本同样是带宽不够。现象是插上完全没反应或者系统认到了显示器但又黑屏。HDMI转DP线这个方向特别容易搞错。市面上常见的“HDMI转DP线”大多其实是从DP输出转HDMI输入只能用于连接显卡的DP口和显示器的HDMI口。反过来用也就是从Orin的HDMI口输出到显示器的DP口需要的是“HDMI转DP”主动转换线这种线很少且贵而且芯片兼容性有坑。现象是插上黑屏、直到系统启动很久才有画面或者干脆永远没画面。1.3 黑屏时正确的排查链路如果你现在正对着黑屏的Orin别急着重刷系统。按照下面这个顺序来排查大部分情况下能找到问题换线测试直接换一根全新的、带DP 1.4认证标识的DP线。线材成本低先排除最大概率的坑。换显示设备测把线插到另一台显示器上。如果其他设备能显示说明Orin没问题问题在你的显示器输入模式可能是显示器没自动切换信号源。检查显示器手动输入源有些显示器不会自动切换DP通道手动切到对应HDMI/DP输入。查看系统日志如果能通过串口或者SSH登录Orin执行sudo dmesg | grep -i dp可以看到DP链路协商是否成功。如果日志里有“link training failed”字样基本可以确定是线材或显示设备握手问题。1.4 选线的具体标准我自己后来买的线直接看三个点线身上明确印着“DP 1.4”或“DisplayPort 1.4”线长不超过2米DP线长了信号衰减严重3米以上对品质要求高支持8K60Hz或至少4K120Hz的标注如果你要买USB-C转DP认准“支持DP 1.4 Alt Mode”的字样如果没有默认按DP 1.2来处理风险自负。个人建议不要图便宜买十几块包邮的线贵一点的品牌线在屏蔽层和镀金端子上做得更好信号稳定不是玄学是能帮你省排查时间的。2. 我踩过的坑SSD不识别七成是安装和分区的问题2.1 硬件安装规格不对系统永远认不到搞定了显示接下来面临的是存储。AGX Orin Developer Kit板载有一个M.2 Key M接口走的是PCIe Gen4 x4通道官方建议用NVMe协议SSD。这里有个关键点M.2接口分Key B和Key M物理缺口位置不同插都插不进去。Orin的这个接口是Key M得买NVMe SSD如果买到SATA协议的老固态很多SATA SSD是Key BM缺口两个都有插上去虽然能插进去但Orin的M.2接口只支持NVMe协议SATA盘不会被识别。还有一点容易被忽略安装时要先把SSD斜着插入M.2插槽然后下压用螺丝固定。如果螺丝没拧紧、SSD尾部翘起来了就会出现一个很尴尬的现象——开机时偶尔识别到盘运行中掉盘甚至彻底不识别。我自己第一次装的时候就因为没拧螺丝以为卡扣够了结果SSD在运行中升温接触松动直接掉盘。2.2 新SSD默认没有分区表系统当然看不到如果你的SSD是全新的插上之后系统里lsblk看不到任何nvme设备或者能看到nvme0n1但里面没有任何分区这都是正常现象。新盘出厂时是不带分区表的需要你手动分区和格式化。很多新手在这里卡住以为SSD坏了或者接口坏了。实际上你只需要# 查看系统是否识别到nvme设备 sudo lspci | grep -i nvme sudo lsblk sudo fdisk -l /dev/nvme0n1如果lspci能看到NVMe控制器说明硬件链路是通的剩下的就是软件层面的事。2.3 分区表必须用GPT文件系统按需求选给Orin装SSD做存储盘分区表格式强烈建议用GPTGUID Partition Table不要用MBR。原因很简单MBR对大于2TB的盘支持不好而且Orin上刷JetPack后UEFI默认就按GPT风格管理启动项混用容易出现奇怪问题。操作上一条命令搞定# 以root身份对nvme0n1进行分区会删除盘上所有数据 sudo parted /dev/nvme0n1 --script -- mklabel gpt sudo parted /dev/nvme0n1 --script -- mkpart primary ext4 1MiB 100% sudo mkfs.ext4 /dev/nvme0n1p1文件系统选择如果你打算把这块SSD当普通数据盘、放在Orin上长期用选ext4性能和稳定性都扎实。如果你需要在Windows和Orin之间反复拷贝大文件比如用读卡器插到Windows上拷模型权重选exFAT更方便但exFAT在日志完整性上不如ext4。如果你要做根文件系统迁移把整个系统跑在SSD上那就必须用ext4或者btrfs但默认引导配置下ext4最省心。2.4 挂载到系统里避免重启后丢失格式化完成后还需要手动挂载。我是直接挂到/mnt/ssd并写进/etc/fstab实现开机自动挂载sudo mkdir -p /mnt/ssd sudo mount /dev/nvme0n1p1 /mnt/ssd # 获取UUID并写入fstab UUID$(sudo blkid -s UUID -o value /dev/nvme0n1p1) echo UUID$UUID /mnt/ssd ext4 defaults 0 2 | sudo tee -a /etc/fstab这里有个细节挂载参数里的defaults已经包含rw,suid,dev,exec,auto,nouser,async对绝大多数场景够了。但如果是用来存放CUDA缓存、模型权重这类频繁读写的文件可以加上noatime选项减少不必要的访问时间写入延长SSD寿命echo UUID$UUID /mnt/ssd ext4 defaults,noatime 0 2 | sudo tee -a /etc/fstab sudo mount -a2.5 散热翻车掉盘的幕后黑手另一个容易忽略的点是SSD的散热。AGX Orin的M.2插槽靠近核心模块整体发热不小。长期高强度读写比如跑大模型批量推理时加载模型权重、写日志会让SSD温度飙升到80度以上SSD主控有过热保护一旦温度到阈值就自动断连——表现就是系统日志报nvme timeout或者nvme nvme0: I/O error盘直接从lsblk里消失等凉快了又出现。解决方法是加一块M.2散热片。市面上二三十块的铝制散热片就行贴上导热硅胶垫把热量导到外壳或风道里。我自己实测加散热片后高负载下SSD温度能低15度左右。如果你打算把Orin当实验机器长期跑训练或推理这一步千万别省略。3. 别急着怪硬件Ubuntu黑屏的另类排查路径3.1 DP线没问题但还是黑屏可能出在显示管理器上排除了线材问题后你仍然可能遇到黑屏。这时候问题不在物理链路而在软件层面。Orin的Ubuntu系统JetPack的Ubuntu 20.04/22.04版本默认用GDM3作为显示管理器。GDM偶尔会在驱动加载顺序混乱时起不来表现就是风扇转、系统在跑、SSH能连上但屏幕上什么都没有只有背光在亮或者干脆背光都不亮。这种情况的处理办法先通过SSH登录如果没有开启SSH用USB转串口线通过Debug UART连。检查显示管理器状态sudo systemctl status gdm3如果显示failed或者inactive重启它sudo systemctl restart gdm3如果GDM正常但屏幕还是黑的查看Xorg日志cat /var/log/Xorg.0.log | grep -i EE # 找出错误行通常能看到类似(EE) NVIDIA(0): failed to assign any connected display的信息说明驱动没找到显示器。这时候检查线材、连接器、再接一次显示器。3.2 睡眠后黑屏无法唤醒是Orin的经典毛病这个坑在标题相关的热搜词里也出现了ubuntu睡眠后黑屏无法唤醒。Jetson AGX Orin在默认电源管理下进入suspend后经常唤醒不亮屏甚至唤醒后整个系统直接假死因为Orin不像普通PC那样有一套完全成熟稳定的ACPI唤醒流程部分JetPack版本的NVDisplay驱动和DP链路恢复逻辑有bug。我的建议很直接如果你把Orin当服务器/开发机用干脆禁用睡眠让它一直保持运行。虽然功耗高一点但稳定不折腾。永久禁用在systemd层面操作sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target这样系统里所有睡眠相关的事件都会被屏蔽。同时把nvidia-smi的持久化模式打开sudo nvidia-smi -pm 1持久化模式会让GPU保持初始化和供电状态这样从SSH断开、重新连接时不会触发额外的电源状态切换。3.3 摸摸显卡驱动状态确认NVIDIA驱动真的加载了有时候黑屏纯粹是驱动没加载好。检查一下nvidia-smi如果命令提示No devices were found或者Failed to initialize NVML说明NVIDIA驱动有问题。这时候需要重新安装驱动。最常见的原因是内核升级后NVIDIA内核模块和新内核不匹配需要重新生成模块。Orin上的JetPack把驱动打包成了deb包直接sudo apt --fix-broken install sudo apt install --reinstall nvidia-driver-525 sudo reboot这里的版本号要根据你JetPack版本匹配官方源里会有对应的包名不建议自己去NVIDIA官网下载闭源驱动手动装——Orin的特殊之处在于它的GPU是集成在SoC里的驱动版本和JetPack版本强绑定手动装驱动很容易把系统搞坏。3.4 内核崩溃导致的黑屏看串口日志最可靠如果屏幕完全黑屏、SSH也连不上很大概率是内核崩了这种情况只能通过Debug UART口看启动日志。AGX Orin Developer Kit上有UART接口用USB转串口模块连上波特率115200能看到完整的内核日志。买开发板的时候很多商家送的配件里就带线如果没有买一个CP2102 USB转串口模块就行。日志里如果最后几行出现Kernel panic - not syncing多半是内核模块加载问题少见但也会遇到尤其是在自己编译内核或者换过电源导致供电不稳时。4. 到手后的正确初始化顺序刷机、验证、挂载一条龙4.1 刷机阶段别偷懒JetPack版本决定了后面很多事不管你是从NVIDIA官网下载SDK Manager还是在Ubuntu命令行里刷都必须注意版本选择。官方推荐下载最新稳定版JetPack现在通常是JetPack 6.x基于Ubuntu 22.04。如果你是新手不建议追最新测试版——很多教程、工具链、第三方预编译库还是基于JetPack 5.x / Ubuntu 20.04的选一个生态成熟的版本会省掉很多兼容性问题。我用的是JetPack 6.0 DP之前的某个稳定版本。刷机时记得选择“Host Machine”和“Target Device”的选项第一次用SDK Manager需要注册NVIDIA账号并登录。如果你不想用SDK Manager刷机也可以直接用命令行工具jetson-disk-image-creator烧录到NVMe盘里启动这样开机速度更快。不过这一步对新手来说门槛稍高建议先在eMMC上跑起来稳定后再考虑把系统迁移到NVMe。4.2 首次开机验证清单刷完机插上刚才选好的DP线接上显示器开机。正常情况你会看到NVIDIA logo然后进入Ubuntu桌面。进入系统后按这个顺序做一遍验证确认显示器分辨率和刷新率sudo apt install xrandr xrandr --verbose | grep -A 20 connected看看输出里是否显示3840x2160一类的4K分辨率。如果只有1920x1080说明DP链路协商降级了换线或换接口再来。验证GPU可用sudo apt install nvidia-jetpack nvidia-smi如果能看到类似NVIDIA Grace/Graphics Controller的设备说明驱动正常CUDA生态也基本可用了。确认网络如果打算用Wi-FiAGX Orin板载有Wi-Fi模块首次使用时切到桌面右上角的网络设置连上。如果打算插网线确认ifconfig能看到eth0有IP地址。4.3 SSD识别、分区、挂载的稳健执行顺序这块把磁盘操作完整串一遍避免中途出错导致系统起不来。插入SSD后确认系统识别sudo lspci | grep -i nvme # 确认PCIe链路上有NVMe sudo lsblk # 看有没有nvme0n1如果这里没有任何输出不要继续先回到第2.1节查硬件安装。重新分区并格式化sudo parted /dev/nvme0n1 --script -- mklabel gpt sudo parted /dev/nvme0n1 --script -- mkpart primary ext4 1MiB 100% sudo mkfs.ext4 -L ORIN_SSD /dev/nvme0n1p1给分区加上ORIN_SSD的卷标之后看到盘就好认了。挂载并写入fstab参考第2.4节。验证重启后依然挂载sudo reboot sudo df -h /mnt/ssd如果看到挂载正常整条链路就通了。4.4 先跑一遍开箱性能测试确定没有暗病很多时候问题不是“不识别”而是“跑一会就不稳”。开箱时可以顺手跑一个稳定性压力测试。我用的方法是同时做两件事用nvtop监控GPU和CPU负载用dd持续写SSD看看温度和状态是否正常。# 压力写50GB文件到SSD同时观察温度 sudo dd if/dev/zero of/mnt/ssd/test.img bs1G count50 convfdatasync如果写入中途出现Input/output error说明SSD在热切换或供电上存在隐患换一个接口或散热片后重新测试。5. 用llama.cpp做压力测试顺便验证整机稳定性5.1 为什么拿llama.cpp当测试工具验证完基础功能顺便让我这台Orin干点实事——部署llama.cpp跑大模型推理这也是很多人入手AGX Orin的初衷边缘侧轻量大模型部署。拿llama.cpp做压力测试的好处是它既能调用CUDA又能吃满CPU和内存带宽还能连续读写SSD加载模型权重相当于一次把整机稳定性都测了一遍。Jetson AGX Orin的GPU是Ampere架构和NVIDIA桌面级显卡同代但共享内存带宽高达204GB/s。这意味着跑7B、13B参数级别的量化模型性能出乎意料地好推理速度可以到每秒几十个token完全可作为本地轻量推理机用。5.2 编译llama.cpp开启CUDA支持在Orin上从源码编译llama.cpp很简单但要记着开启CUDA后端否则会用CPU跑速度慢得多sudo apt update sudo apt install -y build-essential git cmake git clone https://github.com/ggerganov/llama.cpp cd llama.cpp cmake -B build -DGGML_CUDAON cmake --build build --config Release -j $(nproc)注意如果你用的是JetPack 5.xCUDA 11.4官方llama.cpp默认编译参数没问题JetPack 6.x自带CUDA 12.x也没问题。关键在于编译器版本和CUDA Toolkit版本要匹配一般用系统自带的gcc和cmake就行不用特意装别的。5.3 下载一个小模型跑通一段推理以Qwen2.5-7B-Instruct的GGUF量化版为例这种模型可以从Hugging Face下载也可以从ModelScope拉取。文件放到了SSD里的/mnt/ssd/models路径顺便验证SSD读取大文件的稳定性。cd build/bin ./llama-cli -m /mnt/ssd/models/qwen2.5-7b-instruct-q4_k_m.gguf \ -p 介绍一下Jetson AGX Orin的用途。 \ -n 256 \ -ngl 99参数里的-ngl 99表示把所有层都放到GPU上跑。如果执行时显存不够会报错可以把层数改小比如-ngl 40。跑完后看输出速度token/s通常7B q4模型在AGX Orin上能有20~40 tokens/s的速度这个数字可以作为整机性能的参照基线。5.4 高负载下观察SSD和整机状态推理过程中新开一个SSH窗口观察sudo apt install nvtop nvtop # 实时看GPU/CPU/内存占用同时用watch -n 1 cat /sys/class/thermal/thermal_zone*/temp观察温度。如果SSD上有大量模型加载操作还可以sudo nvme smart-log /dev/nvme0n1 | grep -i temperature如果温度在75度以上持续运行建议回到2.5节加上散热片。整个过程在20分钟左右都没有报错、不掉盘这台Orin的硬件状态就可以放心了。写在最后的一点个人建议折腾完这几个坑我的感觉是AGX Orin本身是一台很皮实的设备大部分“故障”其实都出在配套的线材、存储和电源等外围环节上。尤其是DP线真心建议到手就准备一根好点的省下来的都是时间。SSD方面分区格式化和散热这两件事在第一次装机时就处理干净后面长期使用会省心很多。最后如果你和我一样主要用它跑模型推理建议拿到手先跑通一个llama.cpp或vLLM的小Demo既验证了性能也把系统稳定性测了一遍一举两得。希望这篇避坑指南能帮你少走弯路把宝贵的时间花在写代码和调模型上。