ubuntu开发板视频播放黑屏 or 更新源 or 换源出现“E: 无法定位软件包xx“ or “目标xx被配置了多次“ 的解决办法

本文详细描述了解决Ubuntu开发板视频播放黑屏问题的过程,包括检查Ubuntu版本、更换软件源、修复重复配置、安装编解码器(如ubuntu-restricted-extras和VLC)以及处理可能的依赖问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      开发板视频播放黑屏查看的原因是:系统中的终端上安装缺少的编解码器。这个问题我搞了两天,终于搞出来了,所以记录一下我遇到的问题和解决办法,以免后面需要~

1. 首先查看自己的ubuntu版本

利用    lsb_release -a  查看:

 然后根据Ubuntu版本选择所对应的清华源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/:

2. 更新虚拟机软件源(无法定位软件包基本都是需要用换源)

找到源镜像,备份:终端输入

cd /etc/apt/                            // 切换到/etc/apt/ 目录下
sudo cp sources.list sources.list.old   // 先把源文件复制到sources.list.old,备份

然后进入源文件:

sudo vim /etc/apt/sources.list

或者:

sudo vi sources.list

按 INS 键进行写入,将其之前的程序全部注释(或覆盖)。加入第一步复制的新源:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

最后再添加

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

添加以后按Esc键,然后输入:wq,按回车键退出

再利用下面命令进行更新换源:

sudo apt-get update

结果出现了下面”在 /etc/apt/sources.list.d/nvidia-l4t-apt-source.list:14 和 /etc/apt/sources.list.d/nvidia-l4t-apt-source.list:16 中被配置了多次“的问题

原因是sources.list.d的nvidia_14t-apt-source.list的第14行和第16行重复了,打开文件,删除配置重复的部分。

sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list

按 INS 键删掉重复的第15行~18行,按Esc键,然后输入:wq,按回车键退出。

再重新更换源:

sudo apt-get update


3. 安装视频播放器解码器

(1)首先安装这个编码器

sudo apt install ubuntu-restricted-extras

使用 Tab 键(左下角键盘向上数第4个) ,然后再使用 回车键 (ok)。(tab键之后会显示高亮)

然后再Tab键改成yes回车

(2)再安装一下这个编码器:

sudo apt install libdvdnav4 libdvd-pkg gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libdvd-pkg

同样上面操作。

结束之后重启电脑。

(3)如果重启电脑,还是不行,可以考虑安装VLC编码器:

root用户安装编码器:

sudo add-apt-repository ppa:videolan/master-daily # 添加PPA源
sudo apt-get update
sudo apt-get install vlc

如果是在nvidia用户里面安装VLC播放器:

sudo add-apt-repository ppa:videolan/master-daily # 添加PPA源
sudo apt-get update
sudo apt-get install vlc

会出现这个问题"下列软件包有未满足的依赖关系:":

解决办法:
破坏了什么依赖,就重新安装什么依赖就行了.

sudo apt install vlc-plugin-base (= 4.0.0~rc1~~git20231115+r99443+344~ubuntu20.04.1) 

最后重启电脑,到电脑的设置-默认应用程序-视频,选择VLC媒体播放器,再点开视频文件就可以播放了。

(4)如果还是不行,直接再网上安装了snap软件库

sudo snap install snap-store

然后在snap软件库安装VLC软件或mpv软件,成功散花!!!

最后在这里保存一下原来的源,以防后面用到。

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ports.ubuntu.com/ubuntu-ports/ bionic universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic universe
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security universe
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security multiverse

<think>嗯,用户遇到了Jetson开发板连接显示屏后只有闪烁光标的问题。这个问题在嵌入式开发中挺常见的,需要系统性地排查。 用户可能是个开发者或者创客,正在调试Jetson设备。从问题描述看,用户已经能显示光标,说明基础显示驱动是工作的,但系统引导可能卡住了。这通常比完全黑屏要好处理些。 让我拆解下可能的故障点:首先考虑显示模式问题,Jetson的HDMI/DP输出有时需要手动切换;其次是系统启动故障,比如文件系统损坏;然后是硬件兼容性,特别是第三方显示器;最后是固件层面的问题。 想到几个关键排查步骤:用户应该先检查物理连接和显示器输入源设置,这个最基础但容易被忽略。接着需要确认是否进入了UEFI/BIOS界面,这能判断是系统问题还是显示问题。如果能看到启动菜单,那问题很可能出在操作系统加载阶段。 对于系统启动失败的情况,用户可能需要进入恢复模式。这里有个难点:Jetson设备通常没有键盘接口,所以得准备USB转串口工具来获取控制台输出。这个细节很重要但容易被新手忽略,必须在指导中强调。 硬件兼容性方面要特别注意,Jetson对某些4K显示器的支持确实有问题。如果用户用的是高分辨率显示器,建议先换成1080p的测试。另外主动式转接器比被动式的可靠,这个经验之谈也得告诉用户。 最后是固件升级这个终极大招。不过要提醒用户谨慎操作,刷固件有变砖风险。最好先确认设备型号和下载对应的固件包。 用户可能还会遇到其他衍生问题,比如恢复模式操作不熟悉,或者串口连接不稳定。所以准备的问题列表要覆盖这些潜在需求,特别是日志分析这种专业操作。 对了,所有命令行操作都要给出具体示例,比如挂载根分区的命令。Jetson的boot分区路径和普通Linux不同,必须写准确。还有fsck修复时要注意只读挂载,避免二次损坏。</think>好的,针对Jetson开发板连接显示屏出现全黑屏仅显示闪烁小光标的问题,以下是系统性的排查和解决方法: **问题分析:** 闪烁的小光标通常表示: 1. **显示输出已启用**:显卡驱动已初始化,并能输出信号到显示器(否则是完全黑屏)。 2. **系统引导过程卡住**:引导加载程序(如UEFI/GRUB)可能已成功运行并加载了内核,但内核在初始化过程中(挂载根文件系统、启动初始化进程`systemd`或`init`等)遇到了问题,导致无法进入图形界面或命令行登录提示符。 3. **文件系统损坏**:根文件系统损坏或关键文件丢失/损坏,导致内核无法继续启动。 4. **显示模式/分辨率不兼容**:内核或引导加载程序设置的显示模式与显示器不兼容。 **解决方法 (按优先级和常见程度排序):** 1. **检查基本物理连接与显示器设置:** * **线缆连接:** 确保HDMI/DP线缆两端(开发板和显示器)插紧,尝试换一根确认良好的线缆。 * **显示器输入源:** 确认显示器已切换到连接Jetson开发板的正确输入源(如HDMI 1, HDMI 2, DP等)。 * **显示器电源/状态:** 确保显示器已通电并开启。尝试将显示器连接其他设备(如笔记本电脑)确认其工作正常。 * **开发板供电:** 确保开发板使用**官方推荐**的、功率足够的电源适配器(**至关重要**)。供电不足是导致各种不稳定问题的常见原因。 2. **尝试进入UEFI/BIOS设置界面:** * 在开发板**通电启动的瞬间**,**快速、连续地**按键盘上的 `Del`、`F2`、`F10` 或 `Esc` 键(具体按键请查阅你的Jetson型号的文档,NVIDIA Jetson AGX Orin/NX/Xavier常见的是`Del`或`Esc`)。 * **目的:** 如果能进入UEFI/BIOS设置界面,说明: * 基础显示输出正常。 * 引导加载程序工作正常。 * 问题很可能出在操作系统内核启动或文件系统阶段。 * **后续操作:** 在UEFI设置里,可以检查启动顺序、查看硬件信息(如内存识别)、恢复默认设置等。保存退出后观察是否能继续启动。 3. **尝试进入GRUB/Bootloader菜单 (如果使用Ubuntu):** * 在开发板**通电启动的瞬间**(在NVIDIA Logo出现前或刚出现时),**快速、连续地**按键盘上的 `Shift` 键或 `Esc` 键(具体按键取决于GRUB配置)。 * **目的:** 如果能进入GRUB菜单(通常有Ubuntu高级选项等条目),说明引导加载程序已加载内核。 * **后续操作:** * 选择 `Ubuntu` 或 `Ubuntu, with Linux ... (generic)` 条目,按 `e` 键编辑启动参数。 * 在以 `linux` 开头的行末尾(在 `quiet splash` 之后),尝试添加以下参数之一进行测试: * `nomodeset`:禁用内核模式设置(KMS),强制使用基础`fbdev`帧缓冲驱动。这常能解决显卡驱动初始化早期的兼容性问题。`(常用推荐)` * `video=HDMI-A-1:e` 或 `video=DP-1:e`:强制指定输出端口和分辨率(如`video=HDMI-A-1:1920x1080M@60`),替换为你的实际端口名和分辨率。 * `fbdev=1280x720-32@60`:强制帧缓冲分辨率/色深/刷新率。 * 按 `Ctrl+X` 或 `F10` 用修改后的参数启动。如果成功进入系统,需要永久修改GRUB配置(见下文“修复内核参数”)。 4. **尝试进入恢复模式/根Shell (如果使用Ubuntu):** * 在GRUB菜单中(如果步骤3成功进入),选择 `Advanced options for Ubuntu`。 * 选择一个内核版本后面带有 `(recovery mode)` 的条目启动。 * 在恢复菜单中,选择 `root` 选项(Drop to root shell prompt)。这会给你一个只读挂载根文件系统的命令行。 * **目的:** 获取一个命令行环境进行故障诊断和修复。 * **关键操作:** * **检查文件系统:** 运行 `fsck -f /dev/mmcblk0p1`(**请务必确认分区号!** 通常根分区是`mmcblk0p1`,但**强烈建议**先运行 `lsblk -f` 或 `blkid` 确认根文件系统分区)。如果提示文件系统不干净,按提示修复。完成后执行 `sync`。 * **检查磁盘空间:** 运行 `df -h` 查看根分区 `/` 是否已满(100%)。如果满了,需要清理空间(删除日志`/var/log`下的旧文件、清理缓存`/var/cache`等)。 * **检查日志:** 运行 `journalctl -b -p 3` 查看本次启动的错误日志。运行 `dmesg | grep -i error` 查看内核启动时的错误信息。这些日志是定位问题的关键[^1]。 * **检查关键服务:** 运行 `systemctl --failed` 查看启动失败的服务。运行 `systemctl status display-manager.service` (通常是`gdm3`或`lightdm`) 查看图形登录管理器状态。 * **尝试修复包:** 如果怀疑软件包损坏,运行: ```bash mount -o remount,rw / # 重新挂载根文件系统为可读写 dpkg --configure -a # 尝试完成未完成的配置 apt install -f # 尝试修复依赖关系 apt update apt upgrade # 谨慎执行,确保网络连接正常 sync reboot ``` 5. **修复内核启动参数 (如果步骤3临时有效):** * 如果在步骤3中通过添加内核参数(如`nomodeset`)临时解决了问题,需要永久修改GRUB配置: * 在恢复模式的根Shell或成功启动后的终端中: ```bash sudo nano /etc/default/grub # 或使用你喜欢的编辑器 ``` * 找到 `GRUB_CMDLINE_LINUX_DEFAULT` 这一行,在双引号内的现有参数后面添加你测试成功的参数(如 `nomodeset`),例如: ``` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset" ``` * 保存文件(在nano中是 `Ctrl+O`, `Enter`, `Ctrl+X`)。 * 新GRUB配置: ```bash sudo update-grub ``` * 重启: `sudo reboot` 6. **检查显示器兼容性与EDID:** * **尝试不同显示器/分辨率:** 如果可能,换一台不同品牌或型号的显示器(尤其是1080p的)测试。这是排除显示器兼容性问题的最快方法。 * **强制EDID:** 如果只有特定显示器可用,且怀疑其EDID信息读取有问题: * 在另一个能正常工作的Linux系统上连接该显示器。 * 获取EDID信息:`sudo get-edid > edid.bin` * 将`edid.bin`文件复制到Jetson的`/lib/firmware/`目录下。 * 修改内核参数(在`/etc/default/grub`中的`GRUB_CMDLINE_LINUX_DEFAULT`行添加):`drm.edid_firmware=HDMI-A-1:edid.bin` (替换`HDMI-A-1`为你的实际端口名)。 * `sudo update-grub` 并重启。 7. **重新安装显卡驱动 (谨慎操作):** * 在恢复模式的根Shell或串口终端中: ```bash mount -o remount,rw / sudo apt-get update sudo apt-get install --reinstall nvidia-l4t-core nvidia-l4t-graphics # 核心包名可能因JetPack版本而异 # 或者彻底地重装所有L4T图形相关包 (风险稍高) sudo apt-get install --reinstall '*nvidia-l4t*' sync sudo reboot ``` 8. **使用串口控制台调试:** * 这是**最可靠**的诊断手段,尤其当显示输出完全不可用时。 * **准备:** 需要一根USB转TTL串口线(如FT232RL, CH340等),连接Jetson的UART调试串口(通常是40针GPIO接头中的第8脚`TX`、第10脚`RX`和第6脚`GND`)。**务必查阅你Jevson型号的官方文档确认引脚定义!** * **连接:** USB转TTL线连接开发板:`TX (开发板)` -> `RX (串口线)`, `RX (开发板)` -> `TX (串口线)`, `GND (开发板)` -> `GND (串口线)`。**不要接VCC!** * **主机设置:** 在主机电脑上使用串口终端软件(如PuTTY, minicom, screen)连接到串口线对应的COM端口(Windows)或`/dev/ttyUSB0`(Linux),波特率通常为**115200, 8N1 (无奇偶校验,1停止位)**。 * **诊断:** 通过串口终端,你可以看到完整的启动日志输出,精确地定位系统卡在哪个步骤(加载内核、挂载根文件系统、启动服务等),并根据错误信息进行针对性修复[^1]。 9. **刷写最新系统镜像 (最终手段):** * 如果以上方法均无效,或者强烈怀疑文件系统或软件栈严重损坏,备份好重要数据后,重新刷写官方提供的JetPack/L4T系统镜像是最彻底的解决方案。 * **步骤:** 1. 从[NVIDIA开发者网站](https://developer.nvidia.com/embedded/jetpack)下载对应你Jetson型号的最新JetPack/L4T BSP驱动包和根文件系统。 2. 让开发板进入强制恢复模式(Force Recovery Mode): * 断开开发板电源。 * 按住 **Force Recovery (Rec)** 按钮不放(位置请查文档)。 * 保持按住Rec按钮的同时,插入USB线(连接至主机)**然后**再插入电源。 * 等待几秒后松开Rec按钮。此时开发板应处于恢复模式(主机上的`lsusb`命令应能看到NVIDIA Corp APX设备)。 3. 在主机(Linux虚拟机或物理机)上运行SDK Manager或使用命令行工具`flash.sh`刷写镜像。**严格遵循官方刷机文档。** **总结关键步骤顺序建议:** 1. **确认物理连接和供电。** 2. **尝试进入UEFI/GRUB菜单。** 3. **尝试恢复模式/内核参数调整 (`nomodeset`)。** 4. **使用串口终端获取启动日志精确定位问题。** 5. **在恢复模式下检查修复文件系统、日志、磁盘空间。** 6. **尝试不同显示器或强制EDID。** 7. **重装驱动。** 8. **最后考虑刷机。**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyGC

创作不易,需要花花~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值