当前位置: 首页 > news >正文

文档也很齐全。但是在统信系统中部署和打包 Avalonia 程序为安装包,我是从来都没有这样做过的。其实,在 Windows 平台下 ...

剂蔚卵戎一台windows电脑

vmware + 一台debian虚拟机,我这里使用kali(可选,或者可以直接用我编译好的固件,当然,最好还是自己编译,博主不对此负责。)

网络环境,windows和kali都要下载东西。

耐心

6.40 + 9.80 + 7.70 = 23.9元 ( 6.40的电线建议换成别的,用第二篇引用文章上提到的杜邦线最好,这个面包板电线贼软,一掰就弯,但还好不需要太用力)

一把螺丝刀,一字的,ST-LINK的外壳贼硬。

PixPin_2025-12-17_14-45-18

PixPin_2025-12-17_14-45-41

PixPin_2025-12-17_14-45-51

【时间:2025-12-17。仅代表这段时间的商品价格】

其实这里9.8的进口芯片完全可以用国产芯片,我目前没发现任何区别,但毕竟是第一次买,也是第一次刷,还是第一次接触这类东西,buff叠满了,所以看到推荐进口芯片想着多几块钱多一份保险吧。

(仅代表我自己的情况,两个都没踩坑)

原理

用9.8的那个ST-LINK把7.7的ST-LINK刷成Gnuk,就是可惜了我刚买的ST-LINK,但是八块钱买不到别的,能买到快乐~折腾的快乐。

步骤 - kali

以下命令最好一条一条执行,慢慢看输出。不然可能报错了都不知道。

# 下载必要依赖,会用大概500+MB

sudo apt-get install gcc-arm-none-eabi picolibc-arm-none-eabi make

git clone git://git.gniibe.org/gnuk/gnuk.git

cd gnuk/

git submodule update --init

cd src/

# ----- 确认按钮部分,详见主要文章2,我不需要,所以注释了 -----

# curl -O https://techie-s.work/shares/gnuk/0001-add-pa5-as-switch-pin-for-st-dongle.patch

# patch ../chopstx/contrib/ackbtn-stm32f103.c < ./0001-add-pa5-as-switch-pin-for-st-dongle.patch

# ----- 确认按钮部分 -----

# 最好设置为optional,我这里windows上的Kleopatra对kdf适配存在问题。

# 因此不能使用kdf,有需要的可以自己注释掉。

export kdf_do=optional # recommended(?) for v1.2.19

# 这里开启了factory reset功能,不需要的可以自己注释掉。

./configure --enable-factory-reset --target=ST_DONGLE --vidpid=234b:0000 --enable-certdo

make build/gnuk-vidpid.bin

完事后用vmtools把 gnuk/src/build/gnuk-vidpid.bin 复制到windows里备用。

不希望编译固件/懒得弄虚拟机的可以使用我编译好的固件,不保证任何可用性,自己斟酌。

因为附上了编译好的固件,因此本教程可以仅通过windows完成。

通过网盘分享的文件:gnuk-vidpid.bin

链接: https://pan.baidu.com/s/1Oe6S1jimOLDd-9hRH8FIIw?pwd=fdxv 提取码: fdxv

步骤 - windows

实际上我看到的某一篇文章是用windows执行后续流程了,但是我现在已经刷好了,重新找这篇文章的时候已经找不到了,不好意思那位博主~~~~

下载

下载软件:(可以直接搜opensc,因为读者看到这篇文章的时候可能已经除了新版本)

https://altushost-swe.dl.sourceforge.net/project/opensc/OpenSC/opensc-0.15.0/opensc-0.15.0-win32.msi?viasf=1

下载软件:nc(那把瑞士军刀)或者任何能够telnet的工具

配置opensc

openocd

在 gunk\OpenOCD-20251211-0.12.0\bin 下新建openocd.cfg

内容如下:

telnet port 4444

source [find interface/stlink.cfg]

source [find target/stm32f1x.cfg]

set WORKAREASIZE 0x20000

警告:由于opensc更新,我这里的cfg和参考文章中略有不同

因此建议固定版本,或者自己稍微变通一下都行。opensc-0.15.0

固件

移动从linux拿到或者从网盘中下载好的gnuk-vidpid.bin到本目录下。

运行前准备

正常安装,然后 cmd 开两个窗口准备,一个准备openocd,一个准备 nc 127.0.0.1 4444

PixPin_2025-12-17_15-14-22

图片中openocd显示的是未找到st-link,这很正常。因为我没插入,但能运行就可以了。

硬件操作

----- (这部分与本教程无关) -----

听说这里需要安装stlink的驱动,但我直接跳过了,我也不知道原因,可能是因为我之前用 STM32CubeIDE 1.19.0 搞了第一个stm32程序的原因吧

PixPin_2025-12-17_15-17-22

就是这么简单的一个小程序(笑)

所以我不用安装驱动了,不知读者需不需要。

----- (上面那部分与本教程无关) -----

掏出螺丝刀,或者任何一个能翘东西的铁片

翘的这个是7.7的,要做成gnuk的这一个st-link。

PixPin_2025-12-17_15-21-19

PixPin_2025-12-17_15-21-55

好了,然后就没有螺丝刀什么事了。

PixPin_2025-12-17_15-24-54

【我的】这个st-link从左到右分别是 GND、CLK、DIO、3.3V

警告:不同st-link可能存在差异,我买的两个一致。如果读者看到的插口顺序和我的不一样,建议自己判断后决定如何行动。

掏出另一个ST-link。

97920b6006195d297250f2d31ddea957_720

a8ee5090eac0c060e98e56d43c635013

连接远离缺口的部分,黑色、棕色、黄色、红色分别对应: CLK、DIO、GND、3.3V

5bfd1649fe96c94e0b7a6b03b7da498a_720

GND和3.3V可以直接接后面。不记得线序可以临时套上壳子看看位置。

(悄悄说)我在这里接反了,一定要确认缺口的位置是正面。当然,要是你买的st-link和我的不同那就得自己确定了。

此时可以将完整的那个ST-LINK插入电脑。

3322b40a0bbfeddc0d2a12dd24562cfe_720

6.40的电线在本教程中唯一的作用如上图所示,因此如果有什么,回形针之类的,可以代替。

母对母杜邦线是st-link送的,一家送4根,两家一共送了8根。

黑色连CLK,棕色连DIO。完事。

接下来请用手保持这个接触,不要断开。

这期间会非常折磨。但实测没有那么难。

运行openocd,此处我会附上几个错误案例在折叠内,如果你在这一步遇到了错误,可以根据这些来判断一下。

错误示例1

错误示例2

错误示例3

因为我已经刷过gnuk了,所以这里就不重刷一遍了,“借用”一下文章中的图,感谢原作者!

此时打开nc那边,回车连接openocd。

PixPin_2025-12-17_15-51-42

然后输入这些命令

reset halt

stm32f1x unlock 0

reset halt

flash write_bank 0 ./gnuk-vidpid.bin 0

stm32f1x lock 0

reset halt

这张运行截图来自 https://tccmu.com/2024/08/05/gnuk/#固件编译

PixPin_2025-12-17_15-50-15

重要:如果运行期间突然出现很长一串的东西,那很有可能是接触不良。参照给出的运行截图作为标准。

然后两个窗口ctrl+C断开连接,这个时候就可以松手了。

然后就可以慢悠悠的弹出st-link,拔出来,这下,完成。

恭喜:你已经拥有了第一个gnuk!

配置工作

其他博客基本都是在linux上进行的gpg配置,我这里讲一下windows如何配置吧

大佬轻喷。

插入新做好的gnuk。

PixPin_2025-12-17_15-56-23

等待这个转一万圈,之前试过关闭连接网络,还是转圈,没办法,不管了。

PixPin_2025-12-17_16-03-36

我的建议是先创建key,再将key导入到gnuk中。这样有更完整而且更不容易出错的操作选项。

另外,我额外创建密钥,而非在主密钥下直接创建子密钥,是因为使用kleopatra的时候,似乎会倾向于优先使用我usb里面的密钥,这会导致我在不插入gnuk的时候无法使用我的主密钥。挺麻烦的,所以我倾向于把这个gnuk使用的密钥独立开来。

PixPin_2025-12-17_16-04-53

创建好后,额外添加两种子密钥。

PixPin_2025-12-17_16-07-05

右键,把三个密钥逐个迁移到gnuk中。

如果像这样,没有亮起,说明没插好。我已经迁移过了就不演示了。

输入的Admin Pin在出厂时是12345678,User Pin是123456

注意三次输错会锁卡,要么重刷要么factory reset要么PUK解锁

如果出现card error,检查kdf是否正确设置,我直接关掉了这个功能(前面的optional),所以不担心这个问题。

第一次会提示是否备份一份密钥,避免gnuk丢失导致无法解密,自己斟酌。

第二次会提示是否删除本机上的密钥以确保密钥只存在于gnuk中,自己斟酌。

PixPin_2025-12-17_16-08-59

打开智能卡页面

PixPin_2025-12-17_16-09-57

这里可以修改两个PIN,注意输入原PIN的时候看清楚他要输入哪个PIN。

PixPin_2025-12-17_16-11-45

这里会提示每个PIN的剩余可尝试次数,为0的时候会锁卡。

如果输错了可以通过重新输入正确的PIN恢复到3次

http://www.jsqmd.com/news/468683/

相关文章:

  • 【wail框架】web+go的混合架构简要指南
  • 服务器监控集中式部署方案 V5.0(全量详细版)
  • 【Linux系统安装、配置mysql数据库详细过程,亲自部署成功后分享mysql安装过程,ARM架构安装、配置 mysql,包细节,各种系统架构和版本都适用!】
  • 计算机系统基础知识(补充):硬件篇之指令系统详解
  • 导师又让重写?千笔AI,一键生成论文神器
  • OpenClaw踩坑记录
  • C++起始之路——list
  • 小迪安全|sql盲注一些知识点
  • MadLongTom
  • ✅ AI「记忆稳定层」Memory Stabilization Layer(MSL)这一层解决的是很多人遇到却解释不了的问题:❗为什么有的网站 曾经被 AI 推荐,但过一段时间又消失?
  • 进制转化类问题
  • 建筑幕墙玻璃加工案例:新启航激光打孔替代水刀,单项目降本超 50 万元
  • Windows下WSL(Ubuntu24.04)安装Nodejs
  • AI提供商配置里面,提供商类型 OpenAI 和 OpenAI-Response 有什么区别?
  • 老板问我OpenClaw、Agent、Coze、MCP、Skill有啥区别:一文看懂这些技术的差异化
  • 基于STM32的罐装水泥成分实时检测系统设计与实现(含有matlab仿真)
  • HTML5+CSS3从0到1学前端 第一节 HTML 标签语法
  • 俞敏洪入局、央企下场!双巨头押注银发康养旅游,市场按下加速键
  • Java全栈开发工程师的实战面试经历
  • 天梯赛练习(3月11日)
  • 二级圆锥圆柱齿轮减速器三维图纸及运动仿真(Proe三维+通用格式stp+仿真录像)
  • 智能风暴:2026年网络安全进入“AI对攻”时代
  • 许多水务管理者或许曾面临这样的困境:进水水质突发异常,经验丰富的老师傅凭借直觉迅速化解危机,但当老师傅退休后,这份“手感”还能留下几分?海量的实时数据涌入中控室,却难以转化为及时的调控指令——是数据不
  • 考虑综合负荷的主动配电网最优潮流计算:MATLAB实现与探索
  • 2025.03 GESP 7级 题解
  • NanoBanana2 接口接入实战:从 0 到 1 跑通调用,附完整代码示例
  • GC如何排查
  • ESP32-C6(支持 Wi-Fi 6)或 ESP32-H2 这两款和ESP32-S3的主要区别
  • 手持小型气象站:生活中的得力小助手!
  • 技术挑战盲盒