仅供学习、交流。

好久没来博客了,分享一下近期折腾的东西以及踩的坑吧。

之前尝试过使用红米AC2100路由器实现校园网认证,但是没有记录,并且其处理MT 7621性能孱弱,干不了太多事,这次换成了稍微热门一点的——捷稀 JCG Q30 Pro,处理器是MT 7981B,架构为Arm Cortex-A53 (1.3 GHz, dual-core),可以干的事更多了,不过个人还是主要用于dogcom认证JLU的校园网以及搭建openclash实现透明代理。

安装ImmortalWRT

首先是替换路由器官方的固件,捷稀JCG Q30 Pro似乎是中国移动的固件,可以为其刷入OpenWRT,也可刷入衍生版比如Immortalwrt、QWRT等等,说来话长,就不提供教程了,具体教程在恩山论坛。

SDK编译

路由器固件用的是Immortalwrt,爱来自恩山大佬😀,原帖链接:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8398454&highlight=%E6%8D%B7%E7%A8%80%2BJCG%2BQ30%2BPro

泥吉校园网使用的是哆点客户端,即Dr.COM认证(包括DHCP、PPPoE、802.1x三种认证方式,即D版、P版、X版),桌面端(windows、Linux、MacOS)下载客户端认证,然而Dr.COM备受吐槽、嫌弃,Arm路由器也无法使用Dr.COM。各位民间大佬分析了DrCOM的通信协议,开发了drcom-generic。当时的开发者是通过python2脚本来代替Dr.COM实现校园网认证的,下图是项目仓库。

drcom-generic官方仓库

然而,现在python3才是主流,OpenWRT及其衍生版本的官方仓库中早已抛弃了python2,在离线环境安装python2还是比较痛苦的。因此,后续大佬使用C语言重新复现drcom-generic的功能,将新项目命名为dogcom,以及后续有大佬开发了泥吉专属的C语言版客户端。

dogcom项目仓库
吉大版dogcom

本次使用前者,开发者大佬开源了源代码,需要将源代码编译为MT 7981可用的二进制文件,由于MT 7981性能远不如AMD64处理器,因此编译在Linux(WSL)上完成。笔者使用的机子为2*2676V3,固件为Immortalwrt,首先搭建交叉编译环境。

交叉编译环境需要固件的SDK,然而Immortalwrt并没有现成的关于MT 7981的SDK,还得先手动编译SDK😅。进入适用于处理器的Immortalwrt项目仓库,如下图。

immortalwrt-mt798x仓库

一定一定一定听劝,使用推荐的Ubuntu 20.04 LTS。高版本的gcc编译套件可能会报错,Arch系已踩过坑,降级gcc版本够折腾的😂。以及Rocky Linux 10可能会遇到ninja编译报错。

首先更新源,然后更新系统,接着安装所需依赖。

1
2
3
4
5
6
7
8
9
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache clang clangd cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \
g++-multilib git gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev libglib2.0-dev \
libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5 libncursesw5-dev libreadline-dev \
libssl-dev libtool lld lldb lrzsz mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 \
python3 python3-pip python3-ply python3-docutils qemu-utils re2c rsync scons squashfs-tools subversion swig \
texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

然后就可以克隆代码,开始搭建交叉环境了。

1
2
3
4
git clone --depth=1 https://github.com/hanwckf/immortalwrt-mt798x.git 
cd immortalwrt-mt798x
scripts/feeds update -a
scripts/feeds install -a

如果是Win11的话,可以在WSL设置中将网络模式设置为镜像mirror,然后在Windows上开启代理,那么WSL中就能连上GitHub。

接着cp -f defconfig/mt7981-ax3000.config .config拷贝配置文件,然后make menuconfig进一步编辑,如下图。

menuconfig

确保上面三项正确。

我们只需要编译一下SDK(不需要生成tar.xz文件)搭建交叉环境就可以了,不需要编译整个Immortalwrt for MT 798x因此执行make toolchain/install -j$(nproc)而不是make -j$(nproc)

dogcom编译

交叉编译环境搭建好后,开始编译dogcom.

Immortalwrt根目录执行:

1
git clone https://github.com/mchome/openwrt-dogcom.git package/openwrt-dogcom
1
git clone https://github.com/mchome/luci-app-dogcom.git package/luci-app-dogcom

前者为dogcom本体,后者为图形化界面。然后再次:

1
make menuconfig

分别添加dogcomluci-app-dogcom

添加dogcom
添加luci-app-dogcom

然后save,重新生成.config配置文件,然后就可以开始编译这两个软件包了(dogcom及其luci图形界面)。

执行:

1
2
make package/openwrt-dogcom/compile
make package/luci-app-dogcom/compile

这两个软件包都不大,很快就编译好了,生成的ipk文件(适用于OpenWRT及其衍生发行版的安装包文件)在/bin/packages目录下:

ipk文件

安装dogcom及图形化界面

拿到ipk文件后就可以安装了。使用ssh登录Immortalwrt。使用winscp上传两个文件,OpenWRT及其衍生版的包管理器为opkg

安装ipk文件

配置校园网

具体的设置可以参考:https://www.bilibili.com/opus/1063006213972688900#reply273467151024

比较麻烦的是配置静态IPV4地址,很容易配置错误导致连不上认证服务器。

参考资料

https://www.bilibili.com/opus/1063006213972688900#reply273467151024

https://shenshichao.notion.site/OpenWrt-JLU-fb5132d707114e22a4486b0e657421f0

https://www.right.com.cn/forum/thread-215978-1-1.html

https://github.com/mchome/dogcom?tab=readme-ov-file

https://deconf.xyz/2019/04/13/openwrt-dogcom/#0x03-%E5%AE%89%E8%A3%85dogcom%E5%AE%89%E8%A3%85%E5%8C%85-%E5%90%AF%E5%8A%A8%E8%AE%A4%E8%AF%81%E7%A8%8B%E5%BA%8F

Comment and share

歌词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[00:00.60]许美静 - 阳光总在风雨后
[00:01.60]词:陈佳明
[00:02.60]曲:陈佳明
[00:24.34]人生路上甜苦和喜忧
[00:29.24]愿与你分担所有
[00:34.15]难免曾经跌倒和等候
[00:39.30]要勇敢的抬头
[00:43.95]谁愿藏躲在避风的港口
[00:48.85]宁有波涛汹涌的自由
[00:53.91]愿是你心中灯塔的守候
[00:59.22]在迷雾中让你看透
[01:06.93]阳光总在风雨后
[01:11.89]乌云上有晴空
[01:16.84]珍惜所有的感动
[01:21.89]每一份希望在你手中
[01:26.89]阳光总在风雨后
[01:32.00]请相信有彩虹
[01:37.05]风风雨雨都接受
[01:41.81]我一直会在你的左右
[02:11.74]人生路上甜苦和喜忧
[02:16.98]愿与你分担所有
[02:21.35]难免曾经跌倒和等候
[02:26.71]要勇敢地抬头
[02:31.31]谁愿藏躲在避风的港口
[02:36.26]宁有波涛汹涌的自由
[02:41.36]愿是你心中灯塔的守候
[02:46.67]在迷雾中让你看透
[02:54.22]阳光总在风雨后
[02:59.62]乌云上有晴空
[03:04.38]珍惜所有的感动
[03:09.28]每一份希望在你手中
[03:14.43]阳光总在风雨后
[03:19.39]请相信有彩虹
[03:24.54]风风雨雨都接受
[03:29.24]我一直会在你的左右
[03:37.35]阳光总在风雨后
[03:41.95]乌云上有晴空
[03:46.76]珍惜所有的感动
[03:51.71]每一份希望在你手中
[03:56.86]阳光总在风雨后
[04:01.76]请相信有彩虹
[04:06.82]风风雨雨都接受
[04:11.65]我一直会在你的左右
[04:19.63]风风雨雨都接受
[04:24.13]我一直会在你的左右

歌词深度分析

1. 主题与中心思想

这首歌词的核心主题是逆境中的希望与陪伴,强调人生难免经历风雨(挫折与等待),但要坚持信念(“勇敢抬头”),因为光明终将到来(“阳光总在风雨后”)。中心情感是温暖而坚韧的鼓励,既有对个体勇气的呼唤,也有对陪伴力量的歌颂(“我一直会在你的左右”)。内在冲突体现在“避风港的安全”与“波涛汹涌的自由”之间的选择,最终指向成长必须直面挑战的价值观。


2. 情绪氛围与感受

歌词传递的情绪由低沉渐趋昂扬: - 开篇承认人生的“甜苦喜忧”与“跌倒”,带有淡淡的忧郁; - 副歌通过“阳光”“彩虹”等意象转向明亮,情绪升华成坚定与治愈; - 反复的“风风雨雨都接受”强化了坦然接纳苦难的豁达感。整体是哀而不伤、充满力量的基调。


3. 语言风格与用词特色

  • 口语化与诗意结合:如“跌倒和等候”“避风的港口”通俗易懂,但“灯塔的守候”“乌云上有晴空”又充满诗意。
  • 短句为主:增强节奏感和号召力(如“要勇敢的抬头”)。
  • 关键词重复:“阳光”“风雨”“彩虹”形成记忆点,强化主题。

4. 意象与象征意义

  • 风雨/乌云:象征人生困境;阳光/彩虹:象征希望与转机。
  • 灯塔:象征指引与守护,暗喻陪伴者的角色;避风港口:象征安逸但可能停滞的状态。
  • 文化延伸:呼应中国传统文化中“苦尽甘来”的哲学(如“守得云开见月明”),也符合普世励志价值观。

5. 修辞手法分析

  • 比喻:将人生困境比作“风雨”,希望比作“阳光”“彩虹”。
  • 对比:“避风港口”与“波涛汹涌的自由”形成安全与冒险的张力。
  • 排比:副歌重复“阳光总在风雨后…请相信有彩虹”,增强感染力。
  • 拟人化:乌云“上有晴空”,赋予自然现象情感暗示。

6. 节奏与结构

  • 分段清晰:主歌(叙事铺垫)→ 副歌(情感升华)循环三次,结尾重复强调陪伴。
  • 押韵工整:主歌“忧/有”“候/透”,副歌“后/空/动/中”“虹/受/右”,增强音乐性。
  • 重复设计:副歌重复四次,形成洗脑记忆点,符合流行歌曲传播规律。

7. 文化/社会背景

  • 时代共鸣:1990年代末华语乐坛盛行治愈系歌曲,反映经济快速发展下人们对压力释放的需求。
  • 集体心理:歌词中“分担所有”“在你左右”暗合亚洲文化重视人际支持的特点,区别于西方个人英雄主义。
  • 创作者视角:陈佳明擅长细腻情感表达(如为许美静写的《城里的月光》),本词延续了他“温柔鼓励”的风格。

8. 多重解读角度

  • 个人成长视角:鼓励个体直面挫折,强调自我救赎(“勇敢抬头”)。
  • 人际关系视角:突出陪伴的力量(“与你分担”“在你左右”),适合友情、亲情或爱情解读。
  • 社会隐喻视角:风雨可象征时代变迁(如金融危机),阳光则寄托对未来的集体信心。

总结:这首歌词通过简洁有力的语言、鲜明的自然意象和循环递进的结构,成功构建了一个从困境到希望的叙事闭环,兼具文学美感和大众传播性,成为华语励志经典。

Comment and share

歌词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
[00:00.43]快乐无罪 - 许美静
[00:01.62]词:许常德/陈佳明
[00:03.13]曲:陈建宁/陈政卿
[00:19.82]你要我快乐
[00:23.76]我非常快乐
[00:27.22]在不想太多的时候
[00:34.32]吻你是烟火 吻后是寂寞
[00:41.32]爱是我犯的差错
[00:49.38]我要你什么 我贪你什么
[00:56.73]在你想消失的时候
[01:04.12]想你是黑洞 它没有尽头
[01:10.72]就算流星也该坠落
[01:17.55]快乐有泪 怎会有泪
[01:21.23]我哭到心碎
[01:25.52]不解幸福会被永恒连累
[01:29.16]不解刹那是你要的美
[01:32.60]快乐有罪 怎会有罪
[01:36.29]我怎么拒绝
[01:40.55]也许到最后你我都反悔
[01:44.21]留下空荡的城市黑夜
[01:47.60]让我撒野
[02:22.36]我要你什么 我贪你什么
[02:29.56]在你想消失的时候
[02:36.93]想你是黑洞 它没有尽头
[02:43.74]就算流星也该坠落
[02:50.47]快乐有泪 怎会有泪
[02:54.10]我哭到心碎
[02:58.48]不解幸福会被永恒连累
[03:02.05]不解刹那是你要的美
[03:05.46]快乐有罪 怎会有罪
[03:09.17]我怎么拒绝
[03:13.44]也许到最后你我都反悔
[03:16.94]留下空荡的城市黑夜 让我撒野
[03:28.09]快乐有泪 怎会有泪
[03:31.54]我哭到心碎
[03:35.86]不解幸福会被永恒连累
[03:39.50]不解刹那是你要的美
[03:42.99]快乐有罪 怎会有罪
[03:46.58]我怎么拒绝
[03:50.86]也许到最后你我都反悔
[03:54.47]留下空荡的城市黑夜
[03:57.90]让我撒野

歌词深度分析

1. 主题与中心思想

这首歌词探讨了爱情中的矛盾与自我欺骗,核心情感是「伪装的快乐」与「真实的痛苦」之间的撕裂感。 - 表面:反复强调“快乐”(“我非常快乐”“快乐有泪/有罪”),实则揭露快乐背后的空虚。 - 内在冲突:渴望爱的永恒与接受爱的短暂(“不解幸福会被永恒连累”),以及自我麻痹(“在不想太多的时候”)与清醒痛苦(“我哭到心碎”)的对抗。

2. 情绪氛围与感受

  • 主调:压抑的忧伤,夹杂自嘲与无力感。
  • 矛盾情绪
    • “吻你是烟火,吻后是寂寞” —— 瞬间炽热与长久孤独的对比。
    • “快乐有泪/有罪” —— 快乐被赋予负面色彩,暗示情感中的自我惩罚倾向。

3. 语言风格与用词特色

  • 诗意化隐喻:用“烟火”“黑洞”“流星”等意象抽象化情感体验。
  • 口语化反问:“怎会有泪”“怎会有罪”增强质问感,像自我对话。
  • 重复与矛盾修辞:通过“快乐”与“泪/罪”的并置,制造语义冲突。

4. 意象与象征意义

  • 烟火:象征爱情的短暂绚烂与毁灭性。
  • 黑洞:比喻思念的吞噬性与无解(“没有尽头”)。
  • 流星:暗指注定陨落的爱情,呼应“刹那的美”。
  • 空荡的城市黑夜:投射内心的荒芜感,同时“撒野”暗示崩溃后的释放。

5. 修辞手法分析

  • 矛盾修辞法:如“快乐有泪”“快乐有罪”,颠覆常规认知。
  • 排比与反复:副歌段落的重复强化无力感,像陷入循环的执念。
  • 拟人化:“幸福被永恒连累”将抽象概念人格化,暗示责任转移。

6. 节奏与结构

  • 分段:主歌叙事(具体情境),副歌抒情(情绪爆发)。
  • 押韵:交替押“ei”“ui”韵(如“泪/罪”“碎/累”),音调压抑。
  • 节奏变化:副歌的短句“怎会有泪”“怎会有罪”加快节奏,模拟急促的控诉。

7. 文化/社会背景

  • 90年代华语流行乐:反映都市情感疏离(“空荡的城市”),契合许美静“都市冷调”风格。
  • 女性视角:歌词中被动性(“你怎么拒绝”)与主动宣泄(“让我撒野”)的拉扯,隐含传统性别角色与自我意识的冲突。

8. 多重解读角度

  • 爱情层面:一段不对等的关系,一方逃避(“你想消失的时候”),另一方自我欺骗。
  • 存在主义层面:对“快乐”本质的质疑——是否只是逃避现实的工具?
  • 社会隐喻:“城市黑夜”可延伸为现代人的集体孤独,爱情成为短暂救赎却加剧虚无。

总结:这首歌词以“快乐”为伪装,揭露爱情中的痛苦本质。通过意象碰撞与矛盾修辞,完成了一场从自我欺骗到崩溃宣泄的情感解剖,最终指向现代人面对爱与孤独的永恒困境。

Comment and share

在hexo博客中启用图片支持

hexo对图片的引用格式比较反人类,笔者习惯使用typora写文章,因此有了这篇博客,图片将会保存在.md同级目录下的同名文件夹内

参考中文互联网上众多方法后,笔者在此直接给出有效的解决方案

  • typora的图片设置为复制到指定路径${filename}
  • 编辑_config.yml修改并添加以下内容
1
2
3
4
post_asset_folder: true
marked:
prependRoot: true
postAsset: true
  • 需要安装的插件是hexo-render-marked
1
npm install hexo-renderer-marked --save
  • typora中格式-图像-设置图片根目录-选择与.md同名的文件夹

  • 保存推出然后重新进入,typora中能正常显示

  • hexo clean && hexo deploy
  • hexo博客上也能正常显示图片

Comment and share

PS:很久之前写的一篇体验文章啦~ 测试一下hexo的博客功能~

为什么选择AMD

因为穷(bushi✘),广大的DIY玩家因为各种各样的原因选择了AMD显卡,让我们相聚于此。AMD显卡相较于NVDIA以其高性价比著称,奈何NVDIA早已建立起CUDA的壁垒,AMD显卡在人工智能领域“有劲使不出”或者算力较NV差。几个月前,Ollama支持了部分AMD Radeon显卡以及AMD Radeon Pro显卡,让广大玩家有了尝鲜的机会,接下来咱们展开说说

什么是Ollama

“畅玩”之前,咱先把简单的原理搞清楚。

Ollama gihtub:https://github.com/ollama/ollama

Ollama官网:https://ollama.com/(可正常访问)

什么是Ollama?

——Get up and running with large language models.

Ollama是一个调用和运行大模型的工具,可以是官方提供的大模型,也可以是非官方提供的途径,非Ollama官方提供的大模型可以前往Huggingface和魔搭社区(可正常访问)下载。

几个月前,Ollama官方终于支持了Radeon、Radeon Pro、以及AMD Instinct显卡👍👍👍这使得安装有AMD显卡的计算机在使用Ollama推理大模型时能够直接使用GPU而不是CPU推理

Ollama支持AMD部分显卡

==目前官方支持的显卡如下==

231c4d90dbb166ce141803841024b48f

Let’s start

首先是下载Ollama客户端

图片

单击下载好的OllamaSetup.exe文件,Ollama会安装在默认位置,无需选择。

需要注意的是,Ollama并没有提供图形化(GUI)的操作界面!!!因此,安装完成后Ollama将在后台运行,模型安装、对话等等交互都在终端中完成

对于A卡用户,这根本难不倒他👍

图片

Ollama官方提供了多种模型,如llama3.1,qwen2,并列出了一键式安装方法。

此处以最热门的llama3.1为例

图片

默认提供的是8b模型,大小4.7GB,这对于大多数的Radeon显卡的显存来说都是够用的,8b指的是参数大小,b即billion,此模型有80亿参数。llama3.1也提供了更多选择,若显存更大或者多张显卡交火也可尝试更大的模型。

复制右边的一键运行命令(ollama run llama3.1)

接着打开Windows终端,比如Windows PowerShell

打开开始菜单或者按下Win徽标键,搜索powershell即可找到。

图片

在终端中输入ollama run llama3.1,相应的8b模型会被下载下来(可正常拉取),速度取决于网速,一段时间下载完成后将自动调用模型,即可与大模型对话。

图片
图片

下载完成后,当看到“>>> ”符号时即可与大模型对话,输入“/bye”退出

笔者使用的是Ollama官方并不支持的AMD 780M核心显卡,因此推理(可理解为对话后文字的返回速度)由CPU完成,速度还行,可以正常接受。

各位读者的计算机上GPU的推理速度一定比CPU快得多得多

后话

除了Ollama官方提供的模型外,Ollama也可以使用从Huggingface或者魔搭社区(可正常访问)下载模型,分为GGUF和PyTorch or Safetensors两种。

前者的操作如下,而后者通常对硬件设备(显存)要求更加严格

图片

原文链接:https://mp.weixin.qq.com/s/u9RMrjh-_NJmMR7A4XFVBw

Comment and share

  • page 1 of 1

John Doe

author.bio


author.job


Changchun, China