源码安装¶
提示
如果您使用一个基于 Chromium 的浏览器(包含 Chrome、Edge、Vivaldi、Opera、Brave),您可以在浏览器中运行 Glasgow 软件。该功能目前为实验性状态,并且有一些在桌面系统本地运行时不会遇到的限制和缺陷。
初始安装¶
我们非常关注软件栈的顺畅使用体验,并在此方面下了很大功夫。特别来说,所有的依赖若可能都经由Python 包索引 (PyPI) 分发(包括 USB 驱动和 FPGA 工具链),以使安装和更新过程尽可能顺畅。
如果以下的安装步骤对您不工作,请向我们报告缺陷以便改善大家的使用体验。
您需要安装好 git、Python、pipx。安装这些工具请运行:
$ 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
您需要安装好 git、Python、pipx。安装 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
您需要安装好 libusb、pipx。如果您还没有安装 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
您需要安装好 pipx、Yosys、nextpnr、icestorm、prjtrellis。安装这些软件包,请运行:
$ 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_TOOLCHAIN 为 system,builtin,优先使用系统工具而不是 YoWASP 工具。默认值是 builtin,system,使得仅在 YoWASP 工具未安装或无法运行时才使用系统工具。
开发 Glasgow 软件¶
以上步骤使用 pipx install -e 命令安装 Glasgow 软件,进行的是可编辑 (editable) 安装:对下载的源码的修改会改变下次运行 glasgow 工具时的行为。修改 pyproject.toml,特别是对依赖列表的更改或小程序入口点列表的更改,在下次运行 pipx reinstall 之前不会生效。
如果您希望您的全局 Glasgow 安装和检出的源码之间独立,您可以在前述步骤中省略 -e 参数。您可以在开发工作流中使用任何管理虚拟环境的方式,但是我们使用的是 PDM,并且也推荐您使用。