仅供学习、交流。

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

之前尝试过使用红米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

在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