7 故障排除

7.1 实现过程中的错误

AMD 工具不同版本之间的微小差异有时会导致生成比特流的实现过程失败。

如果问题不能较快解决,请在 Xillybus 论坛寻求帮助:

https://forum.xillybus.com

请附上失败过程的输出日志,特别是工具报告的第一个错误附近的内容。另外,如果对设计做了定制更改,请详述这些更 改。还请说明使用的是哪个版本的 ISE / Vivado 工具。

如果在 VHDL 实现的 Vivado 中遇到此错误:

ERROR: [Place 30-58] IO placement is infeasible. Number of unplaced terminals (3) is greater than number of available sites (2).
The following Groups of I/O terminals have not sufficient capacity:
Bank: 35:
 The following table lists all user constrained IO terminals
 Please analyze any user constraints (PACKAGE_PIN, LOC, IOSTANDARD ) which may cause a feasible placement to be impossible.
 The following table uses the following notations:
 c1 - is IOStandard compatible with bank? 1 - compatible, 0 is not
 c2 - is IO VREF compatible with INTERNAL_VREF bank? 1 - compatible, 0 is not
 c3 - is IO with DriveStrength compatible with bank? 1 - compatible, 0 is not
+--------+------------+----+----+----+-----------------------------------------------------+
| BankId | IOStandard | c1 | c2 | c3 | Terminal Name                                       |
+--------+------------+----+----+----+-----------------------------------------------------+
|   35    |LVCMOS18   | 1 | 1 | 1 |      PS_CLK                                            |
|   35    |LVCMOS18   | 1 | 1 | 1 |      PS_PORB                                           |
|   35    |LVCMOS18   | 1 | 1 | 1 |      PS_SRSTB                                          |
+--------+------------+----+----+----+-----------------------------------------------------+

请按照第 3.3 节所述编辑 xillydemo.vhd。

因同一问题可能产生的另一个错误:

ERROR: [Drc 23-20] Rule violation (NSTD-1) Unspecified I/O Standard
    ...
    Problem ports: PS_CLK, PS_PORB, PS_SRSTB.
ERROR: [Drc 23-20] Rule violation (RTSTAT-1) Unrouted net ...
ERROR: [Drc 23-20] Rule violation (UCIO-1) Unconstrained Logical Port ...

7.2 USB 键盘和鼠标问题

几乎所有 USB 键盘和鼠标都符合标准兼容规范,因此不太可能遇到设备无法识别的问题。如果出现问题,首先检查:

  • 仅 Zedboard:您是否使用了正确的 USB 插口?应该是标有 “USB OTG” 的那个,距离电源开关较远。

  • 仅 Zedboard:设备是否有 5V 供电?是否安装了 JP2 跳线?在 Zedboard 上电后,连接一个光电 USB 鼠标,检查其 LED 是 否亮起。

  • 如果使用了 USB 集线器,尝试仅将键盘或鼠标直接连接到开发板。

有用的信息可能位于系统通用日志文件 /var/log/syslog 中。有时用 “less /var/log/syslog” 查看其内容会有所帮助。更好的方法 是输入 “tail -f /var/log/syslog”,新消息到达时会实时转储到控制台。这尤其有用,因为 USB 总线上的事件总会记录在此日志中,包括检测到 的内容以及事件处理方式的详细描述。

请注意,通过 USB UART 也可访问 shell 提示符,因此如果键盘连接失败,可以通过串行终端查看日志。

7.3 文件系统挂载问题

经验表明,如果使用合适的(Micro)SD 卡,并在断电前正确关闭系统,则(Micro)SD 卡中的数据完全不会有问 题。

在未卸载根文件系统的情况下关闭开发板电源不太可能导致文件系统本身的永久性不一致,因为 ext4 文件系统会在下次挂载 时通过日志进行自我修复。然而,操作系统功能会累积损坏,因为断电时已打开写入的文件可能留下错误内容或被完全删除。这对于任何突 然断电的计算机都是如此。

如果根文件系统挂载失败(导致启动期间内核 panic)或仅以只读方式挂载,最可能的原因是(Micro)SD 卡质量不佳。这 类存储设备通常先正常运行一段时间,然后开始出现随机错误消息。如果 /var/log/syslog 包含如下消息,则很可能是(Micro)SD 卡的问 题:

EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running ec2fsck
 is recommended

为避免这些问题,请务必使用 Sandisk 设备。

7.4 “startx” 失败(图形桌面无法启 动)

尽管并非直接相关,但当(Micro)SD 卡不是 Sandisk 制造时,此问题被相当频繁地报告。图形软件在启动时会从卡中读取 大量数据,因此很可能成为产生读取错误的(Micro)SD 卡的显著受害者。

显而易见的解决方法是使用 Sandisk(Micro)SD 卡。

7.5 X 桌面屏保后黑屏

如果 /root 目录已被清空,或者有新用户使用桌面,或者电源管理设置已被更改,桌面可能无法从屏保模式恢复,在尝试恢 复时留下黑屏。

解决方法:在 XFCE 桌面上,进入电源管理器,进行以下设置:

  • 将 Display > “Put to sleep after” 设置为 “Never”

  • 将 Display > “Switch off after” 设置为 “Never”。

  • 将 Security > “Automatically lock the session” 设置为 “Never”。

在全新的 Xillinux 发行版中不应出现此问题,因为 root 用户的这些设置已经配置好。