源码安装

提示

如果您使用一个基于 Chromium 的浏览器(包含 Chrome、Edge、Vivaldi、Opera、Brave),您可以在浏览器中运行 Glasgow 软件。该功能目前为实验性状态,并且有一些在桌面系统本地运行时不会遇到的限制和缺陷。

初始安装

我们非常关注软件栈的顺畅使用体验,并在此方面下了很大功夫。特别来说,所有的依赖若可能都经由Python 包索引 (PyPI) 分发(包括 USB 驱动和 FPGA 工具链),以使安装和更新过程尽可能顺畅。

如果以下的安装步骤对您不工作,请向我们报告缺陷以便改善大家的使用体验。

您需要安装好 gitPythonpipx。安装这些工具请运行:

$ sudo apt install -y --no-install-recommends git pipx
$ pipx ensurepath

pipx ensurepath 命令可能会提示您重新打开终端窗口,请照做。

$ sudo pacman -Syu git python-pipx
$ pipx ensurepath

pipx ensurepath 命令可能会提示您重新打开终端窗口,请照做。

$ sudo dnf install -y git pipx
$ pipx ensurepath

pipx ensurepath 命令可能会提示您重新打开终端窗口,请照做。

$ doas apk add alpine-conf git pipx py3-libusb1
$ export PATH=$PATH:$HOME/.local/bin
$ echo 'export PATH=$PATH:$HOME/.local/bin' >>$HOME/.profile

以下步骤假设您使用 Eudev 作为设备管理器。安装 Eudev 请运行:

$ doas setup-devd udev

切换到一个方便的工作目录,然后下载源码:

$ git clone https://github.com/GlasgowEmbedded/glasgow

配置您的系统以使任何登录到物理访问的终端的用户可以使用 Glasgow 硬件,并对已经连接的设备应用这些规则:

$ sudo cp glasgow/config/70-glasgow.rules /etc/udev/rules.d
$ sudo udevadm control --reload
$ sudo udevadm trigger -v -c add -s usb -a idVendor=20b7 -a idProduct=9db1

为当前用户安装 Glasgow 软件:

$ pipx install -e 'glasgow/software[builtin-toolchain]'

要将软件更新到最新版本,请切换到工作目录并运行:

$ git -C glasgow pull
$ pipx reinstall glasgow

安装后,确认 Glasgow 工具正常工作,请运行:

$ glasgow --version
$ glasgow build --rev C3 uart

连接您的设备,并确认它被发现,请运行:

$ glasgow list
C3-20230729T201611Z

您需要安装好 gitPythonpipx。安装 git 和 Python 请参考对应网页上的步骤。安装 pipx 请运行:

> py -3 -m pip install --user pipx
> py -3 -m pipx ensurepath

py -3 -m pipx ensurepath 命令可能提示您重新打开终端窗口,请照做。

切换到一个方便的工作目录(强烈推荐使用一个本地目录,如 %LOCALAPPDATA,因为从网络驱动器或漫游配置文件中运行 Glasgow 软件会导致明显速度下降),然后下载源码:

> git clone https://github.com/GlasgowEmbedded/glasgow

为当前用户安装 Glasgow 软件:

> pipx install -e "glasgow/software[builtin-toolchain]"

要将软件更新到最新版本,请切换到工作目录并运行:

> git -C glasgow pull
> pipx reinstall glasgow

安装后,确认 Glasgow 工具正常工作,请运行:

> glasgow --version
> glasgow build --rev C3 uart

连接您的设备,并确认它被发现,请运行:

> glasgow list
C3-20230729T201611Z

您需要安装好 libusbpipx。如果您还没有安装 Homebrew,请安装。之后安装前述两个软件包,请运行:

$ brew install libusb pipx
$ pipx ensurepath

pipx ensurepath 命令可能会提示您重新打开终端窗口,请照做。

切换到一个方便的工作目录,然后下载源码:

$ git clone https://github.com/GlasgowEmbedded/glasgow

为当前用户安装 Glasgow 软件:

$ pipx install -e 'glasgow/software[builtin-toolchain]'

要将软件更新到最新版本,请切换到工作目录并运行:

$ git -C glasgow pull
$ pipx reinstall glasgow

安装后,确认 Glasgow 工具正常工作,请运行:

$ glasgow --version
$ glasgow build --rev C3 uart

连接您的设备,并确认它被发现,请运行:

$ glasgow list
C3-20230729T201611Z

您需要安装好 pipxYosysnextpnricestormprjtrellis。安装这些软件包,请运行:

$ sudo pkg install pip pipx yosys abc nextpnr icestorm trellis
$ pipx ensurepath

pipx ensurepath 命令可能会提示您重新打开终端窗口,请照做。

切换到一个方便的工作目录,然后下载源码:

$ git clone https://github.com/GlasgowEmbedded/glasgow

为当前用户安装 Glasgow 软件:

$ pipx install -e 'glasgow/software'

要将软件更新到最新版本,请切换到工作目录并运行:

$ git -C glasgow pull
$ pipx reinstall glasgow

安装后,确认 Glasgow 工具正常工作,请运行:

$ glasgow --version
$ glasgow build --rev C3 uart

连接您的设备,并确认它被发现,请运行:

$ glasgow list
C3-20230729T201611Z

使用系统 FPGA 工具链

以上步骤安装的是 YoWASP FPGA 工具链。特别是对于强项非软件方面的用户来说,这是一个使用体验低阻力的选择,因为它不需要额外的安装步骤。但是,YoWASP 工具链的速度明显比本地代码工具链的慢(比值通常在 2× 以内)。YoWaSP 工具链也不是对所有平台和架构都可用;特别来说,32 位树莓派不受支持。

如果您已经安装好所需的工具 (yosys, nextpnr-ice40, nextpnr-ecp5, icepack, ecppack) 或愿意安装这些工具,您可以更新您的用户配置,设置环境变量 GLASGOW_TOOLCHAINsystem,builtin,优先使用系统工具而不是 YoWASP 工具。默认值是 builtin,system,使得仅在 YoWASP 工具未安装或无法运行时才使用系统工具。

开发 Glasgow 软件

以上步骤使用 pipx install -e 命令安装 Glasgow 软件,进行的是可编辑 (editable) 安装:对下载的源码的修改会改变下次运行 glasgow 工具时的行为。修改 pyproject.toml,特别是对依赖列表的更改或小程序入口点列表的更改,在下次运行 pipx reinstall 之前不会生效。

如果您希望您的全局 Glasgow 安装和检出的源码之间独立,您可以在前述步骤中省略 -e 参数。您可以在开发工作流中使用任何管理虚拟环境的方式,但是我们使用的是 PDM,并且也推荐您使用。