惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

纸鹿摸鱼处

北京实习300天 | 纸鹿摸鱼处 实习后买了一堆东西 | 纸鹿摸鱼处 谈谈不受欢迎的博客技术特征 | 纸鹿摸鱼处 我们的设备被拿来做了什么:软件的背景行为 | 纸鹿摸鱼处 生成式AI正在生成 | 纸鹿摸鱼处 前端字体二三事 | 纸鹿摸鱼处 深色模式开发的最佳实践 | 纸鹿摸鱼处 寻不回手工油糕 | 纸鹿摸鱼处 一些数码外设的评价和“捡垃圾”心得 | 纸鹿摸鱼处 迟到三月的年末博客杂谈:动力、文章和内容 | 纸鹿摸鱼处 VitePress 不完全优化指南 | 纸鹿摸鱼处 给电脑新手的笔记本开荒指南导读 | 纸鹿摸鱼处 再谈考试时钟:技术之外的思考 | 纸鹿摸鱼处 今日校园见闻:我已经出离高兴了 | 纸鹿摸鱼处 配置并差点运行不了 Java Applet | 纸鹿摸鱼处 Windows 上的开源软件入门 | 纸鹿摸鱼处 博客进化:从 Hexo 到 Nuxt Content | 纸鹿摸鱼处 祖母的90年代南昌差旅之险 | 纸鹿摸鱼处 Linux 下通过 Samba 共享文件夹 | 纸鹿摸鱼处 从“端口无法访问”到本地环境问题——朋友的博客踩坑记录 | 纸鹿摸鱼处 Windows 空间管理/清理指南 | 纸鹿摸鱼处 遭遇APP乱象:老人的「钱袋子」开线了 | 纸鹿摸鱼处 封面被 Linux QQ 官方用了,但是有一些小缺陷 | 纸鹿摸鱼处 Windows 终端体验优化指南 | 纸鹿摸鱼处 有问题,就要讲出来。 | 纸鹿摸鱼处 从 CSS 排序折腾到 Stylelint 和 pnpm | 纸鹿摸鱼处 使用 DOSBox 的多种方式 | 纸鹿摸鱼处 今日有「假」 | 纸鹿摸鱼处 把博客文章按年份放在子文件夹中了 | 纸鹿摸鱼处 写过的奇妙代码。 | 纸鹿摸鱼处 Arch Linux 启动引导修复 | 纸鹿摸鱼处 在延长今天和期待明天之间 | 纸鹿摸鱼处 今日无事,除了一些技术咨询 | 纸鹿摸鱼处 系统引导配置分享 | 纸鹿摸鱼处 病毒高占用CPU,三天杀俩 | 纸鹿摸鱼处 运营商又想多收话费了 | 纸鹿摸鱼处 电脑连接手机,手机给电脑传文件…… | 纸鹿摸鱼处 Moonlight 串流指南 | 纸鹿摸鱼处 SSH 免密登录 | 纸鹿摸鱼处 Termux 简单指南 | 纸鹿摸鱼处 Tailscale 不完全使用指南 | 纸鹿摸鱼处 Windows 安装指南 | 纸鹿摸鱼处 Arch Linux 易用性及美化 | 纸鹿摸鱼处 Arch Linux 初步配置 | 纸鹿摸鱼处 使用 ArchInstall 安装 Arch Linux | 纸鹿摸鱼处 VS Code 简单配置项 | 纸鹿摸鱼处 他修电脑又遇到了我 | 纸鹿摸鱼处 修监控 (授权转载) | 纸鹿摸鱼处 被大块落冰砸中的话—— | 纸鹿摸鱼处
朋友的 Vivado 和 Modelsim 装上了吗 | 纸鹿摸鱼处
纸鹿本鹿, hi@zhilu.cyou · 2024-12-03 · via 纸鹿摸鱼处

明明只是遵照教程配置硬件开发环境,Vivado 添加许可证后却没有产品 License,Modelsim 注册机也会在生成许可证后闪退。教程竟不能覆盖这些情况了!亲自动手,误打误撞地在种种机缘巧合之下,探索 Windows 的种种「环境之谜」。

给你发个安装包

Skymaster 心血来潮,想要在自己的笔记本上配置 Vivado 和 Modelsim 硬件开发环境,用于预习本学期的《计算机组成原理》和《基于Vivado的FPGA设计基础》。于是,他想找我要安装包。

多提一嘴,为什么不自己下载?因为有些文件可能在网盘里,下载速度很慢;校园网在宿舍的网速上限也只有 50 Mbps,根据FCC 欲调整美国宽带标准:下行 100 Mbps,上行 20 Mbps,下行速度似乎已经脱离了「宽带」的范畴。

这我能忍?我刚配的千兆内网!很快啊,我就邀请 Skymaster 来我宿舍拉取共计几十 GB 的安装包。 啪地一下,他的电脑连接上了我 5GHz 频段 160MHz 频宽的 Wi-Fi 6 无线局域网,安装包就传过去了。

尽可能地支持正版

本文不提供任何盗版资源。购买并使用正版软件是对开发者的一种认可,盗版软件也可能会有安全风险。

安装包随附安装教程图文链接,Skymaster 具有良好的技术素养,我认为他应该能顺利安装。

无法检测许可证

然而,他告诉我,Vivado 许可证管理器导入许可证后,没有更新任何许可年份期限。Skymaster 同时表明他严格按照教程安装,并已尝试导入另一份许可证文件,问题依旧。我不信,动身前往他的宿舍尝试亲自卸载后安装。

即使口头上说着「重启、重装、重买」是维修电脑的三大锦囊,但这已然属于「治末病」的范畴,科学的使用习惯才是能「治未病」的法宝。

安装包的启动路径也不能有中文

我卸载后按照安装教程重新安装,复现了……🤔没有复现,安装卡住了

阅读日志,发现是无法找到 D:\ \Vivado 2018.3\ 目录下的某个文件,而这里本应该是 D:\新建文件夹\Vivado 2018.3\。所以,安装包的启动路径不能有中文,我只得修改文件夹名称。

🤓☝️不过到饭点了,吃个饭先。

种种机缘巧合,误寻得问题原因

我原本想在 Skymaster 的电脑 D 盘建一个 Install 或者 Package 文件夹,用于存放安装包。然而,Skymaster 将输入法(微软拼音)的中英文切换键位由 Shift 修改为了 Ctrl+空格,这令我在切换中英文时颇为恼火,想着安装后就删掉了,就直接使用「新建文件夹」作为文件夹名称。

我了解某些特定场景(如游戏)下需要长期保持英文输入状态,因此有用户修改了输入法(微软拼音)的中英文切换键位,并且发布了相关教程。但这不利于频繁的语言切换。更好的方法是为电脑添加 英语(美国) 语言包键盘的美式键盘输入法,这样,在中文场景下可以方便地使用 Shift 切换中英文,对应需要保持英文键盘的场景,使用 Alt+ShiftWin+空格 切换到英语的美式键盘输入法,还不用担心切换后误触到中英文切换键位。

不乏有真材实料的教程,但搜索或是短视频平台推送的所谓「电脑小技巧」,大多是在误人子弟。诸如「垃圾清理」「电脑加速」之类的内容,往往只是迎合网友需求的噱头,却不能解决实际问题或反而引入更大的隐患。

中文用户名文件夹

修改安装包所在的文件夹名之后重新安装问题依旧,我不得不对着证书管理器的界面思考。偶然间,我瞥见了这段话:

加载许可证 - 基于证书的许可证(翻译后的版本)

点击“复制许可证”按钮,将基于证书的许可证(.lic 文件)复制到 %APPDATA%\XilinxLicense 目录中。Xilinx 应用程序会自动检测位于 %APPDATA%\XilinxLicense 目录中的有效且绑定到节点的许可证(*.lic)。

我顿时灵光一现,既然安装程序因为启动路径含有中文而乱码,虽然安装在了英文目录下,但证书管理器会不会因为用户文件夹名为中文而不能读取 %APPDATA%\XilinxLicense 呢?

再一看,Skymaster 的用户文件夹名果然是中文,还带了几个乱码文件夹。

这并不怪他,因为系统是别人帮忙装的,并且 Windows 安装引导(OOBE)输入用户名界面的文本框提示是「您的姓名」,很容易输入中文。

绕过中文路径

起初,我以为证书管理器访问的是乱码目录,但结合之前安装程序中「中文变空格」的现象,显然我不能把证书抛到空格文件夹里。既然如此,我便提出几种解决无法访问 %APPDATA%\XilinxLicense 的方案:

  1. 修改用户文件夹名为英文(我的另一篇踩坑中有教程),风险较高。
  2. 通过系统全局(为所有用户而不是单个用户)安装,这样证书的导入路径可能会变成 %ProgramData%\XilinxLicense(未尝试)。
  3. 灵机一动,把自己的证书打入内置的证书目录 C:\Xilinx\Vivado\2018.3\data\ip\core_licenses,这样证书管理器就能自动导入了(不规范)。
  4. 证书管理器内其实给出了指定许可证路径的选项,通过环境变量 XILINXD_LICENSE_FILE 实现。

管理许可证搜索路径(翻译后的版本)

要指向浮动服务器许可证,或指向除 %APPDATA%\XilinxLicense 之外位置中的许可证文件,请设置以下环境变量之一。XILINXD_LICENSE_FILE 是与 Xilinx 许可证一起使用时首选的环境变量。

示例

  • 指向浮动服务器许可证:XILINXD_LICENSE_FILE=1234@server
  • 包含其他本地目录:XILINXD_LICENSE_FILE=C:\licenses\Xilinx.lic
  • 指向多个位置:XILINXD_LICENSE_FILE=1234@server;C:\licenses\Xilinx.lic

这样,我们就导入了某个支持 HLS、AccelDSP、System Generator、软硬 CPU、SoC、嵌入式 Linux、重配置等功能的证书了。

Modelsim 装上了吗

这个安装包也附带详细的文字版安装教程,这下 Skymaster 应该能顺利安装了。然而,他依旧遇到了诸多问题。

乱码的安装教程

写文章时 AI 补全的内容

我打开安装教程,发现里面全是乱码,我顿时明白,安装教程的 TXT 文件是用 VS Code 打开的,而 VS Code 默认使用 UTF-8 编码,而安装教程的 TXT 文件是 GBK 编码。

AI 分析的原因没有问题,Skymaster 也确实给我发来了 VS Code 打开 TXT 文件乱码的截图。我重新把 TXT 内的内容通过 QQ 发给了 Skymaster,他按照我发的教程继续安装,随后又遇到了问题。

许可证生成失败

在宿舍 23:30 熄灯断电的前一刻,他告诉我注册机无法生成许可证,表现为流程执行结束后直接退出而不打开许可证文件。

这我能忍?完全忍不了!😠我再次来到他的宿舍,复现了问……😡还多复现了一个 VS Code 打开 TXT 文件��的问题。

更忍不了了,我直接一个「通过编码重新打开」为 GBK,「通过编码保存」为 UTF-8。在 VS Code 按下 Alt+Z 启用自动换行……🤬快捷键被 NVIDIA GeForce Experience 占用了。

右键点击 安装教程.txt,选择「使用记事本打开」……😨我辣么大个记事本呢?通过 Shift+右键 打开详细右键菜单,选择「在记事本中编辑」……😱也没有记事本,只有传统记事本的「编辑」和「打印」选项。

电脑竟然没有记事本

通过开始菜单搜索 notepad,果真没有。🤦通过命令行终于启动了记事本,发现这台 Win 11 笔记本搭载的竟然还是 Win32 Notepad,菜单栏上一个大大的高亮通知,提示升级到新版记事本。

肾上腺素让我的思绪渐渐清晰:注册机在生成许可证后会调用记事本打开,但这个电脑缺少了新版 Win 11「标配」的 UWP 版记事本,所以无法用记事本打开生成的 TXT 文件。所以——只要安装新版记事本,能弹出许可证窗口——问题就解决了。

安装记事本,需解除 UWP 代理限制

那就在微软商店安装……😵卡住了,网络不好。

Cl$(echo a)sh for Windows 或 v2$(echo r)ayaN 提供了 Fiddler EnableLoopback Utility 插件,能够解除 UWP 应用代理回环限制,从而在 UWP 应用上使用代理。解除代理限制后,这个 2 MB 的小记事本几秒就下载好了。

重新激活 Modelsim

安抚了许可证的情绪,给它放在合适的窝里,配置好环境变量,观察到 Modelsim 情绪良好,就是在 高分屏 下有点糊。

在快捷方式属性 - 兼容性 - 更改高 DPI 设置里,勾选「替代高 DPI 缩放行为」,「缩放执行」选择「应用程序」,界面便清晰了。如果太小,也可以选择「系统(增强)」,会先放大到整数倍再缩小到系统缩放比例。

此时,具有详细安装教程+专业导师指点的软件安装服务结束了,我猛灌了两口 Skymaster 的「888 mL 国区限定版可口可乐」,觉得「偏要来看看怎么个事」还真遇到一些不一样的坑。

思考:留意异常迹象

我自诩为「Bug 圣体」,表现为我在使用程序的过程中,常能遇到并留意一些微小的异常迹象。

最近在与 KazariEX 使用 Vue 开发的过程中,遇到了不少令我困惑的现象,KazariEX 对 vue-language-tools 比较熟悉,他帮忙解决了一些问题并向上游提交了 PR。在这些 PR 中,我起到了关键的一环——「触发并留意到问题」。

在重大问题出现之前,往往伴随着一些微小的异常迹象。然而,能敏锐捕捉的关键在于知晓预期行为并了解其中机理。若是对正常行为的理解不够深刻,又何以辨别「异常迹象」?

在本次实验中,我在推测并证实 Vivado 证书管理器的用户证书路径乱码的灵感,源自安装包的启动路径在中文文件夹时会安装失败;而推测 Modelsim 注册机不弹出证书文件窗口的灵感,源自安装教程 TXT 竟然默认用 VS Code 而不是记事本打开。

主人公 Skymaster 看到这篇文章,他说「我才是真正的 bug 圣体,这些 bug 的原因谁能想到」。因此,我重新为昨天的自己授予「玄学流电脑疑难杂症解决糕手」称号。