自己家的全屋光纤与无线覆盖布网实战

原则与实战结果 自己家今年搬入了新居,对于我来说一件十分重要的事情就是规划网络布线了。 我计划按照以下原则布置网络: 每个房间都有 4 芯光纤,确保以太网使用 2 芯之后还有 2 芯可用,从而可以接 HDMI 光端机等设备以及出现断芯等情况后可以替换。 有人活动的位置 5GHz WiFi RSSI <= -65…

第一次在国内航班体验机上WiFi

于 2023 年 8 月 3 日乘坐了厦门航空的 MF8208 从西安飞往厦门,执飞飞机是一架 BOEING 787-8 宽体型客机,上飞机后惊奇地发现座位旁有 WiFi 图标,而在地面上我拿手机搜索了一圈并没有看到任何非个人热点的 SSID 。但我依然非常期待,因为距离上一次在空中上网已经是2013年在美国使用 gogoinflight 了。…

基于PiKVM制作M1 Mac Mini KVM

背景 因科研需求,让实验室购买了一台M1芯片的Mac Mini进行相关测试。但由于我的操作会涉及大量Kernel Panic,且希望将机器丢在远端,因此需要有一种方法能够让我远程进行真机的键盘鼠标操作以及按电源键的操作。 相关工作 之前有了解到PiKVM项目,通过树莓派的OTG功能接上HDMI采集卡,就可以实现远程控制电脑的键盘鼠标,并可以自定义各种GPIO的设备,实现连接开关按钮、LED指示灯,甚至还支持伺服电机,能够直接连接机械手完成按电源键的操作。 此外,它还可以通过OTG模拟一个ncm/rndis网卡、USB串口、USB光驱、U盘等设备。但值得注意的是,这些设备在macOS与Linux中均可使用,但U-Boot不支持ncm/rndis网卡与USB串口,甚至打开后会导致U-Boot中无法使用PiKVM键盘控制(原因待研究)。 挑战 最大的挑战在于,Apple Silicon的Mac不再像之前的x86机器那样,通过按住键盘上的option就可以进入启动菜单,而需要长按电源键,这就给远程管理带来了困难。 受到twd2的这三篇文章启发(远程控制Apple M1 Mac Mini、制作Apple M1 Mac Mini远程控制装置、安装Apple M1…

使用nandsim模拟超过64G的大容量MTD设备

最近做毕设项目需要模拟mtd设备,并对yaffs进行相关测试。而由于要求模拟1TB容量的mtd设备,而若使用block2mtd,由于它的page size为1B大小,无法进行yaffs的挂载。 后来同学发现了Linux Kernel自带了nandsim模块,我们可以模拟一个块设备。且这个模块启动的时候可以通过overridesize参数设置整个mtd的大小为所选模拟设备的erase_size为2的整数幂。 但我们实测发现,如果overridesize设置过大,会报出以下错误: ➜ sudo modprobe nandsim first_id_byte=0x98 second_id_byte=0xd7 third_id_byte=0x94 fourth_id_byte=0x32 overridesize=20 insmod: ERROR: could not…

AMD Zen 2/3处理器上的迷惑现象

今天在实验室装了一台AMD Ryzen 5700G的机器,想看看和自己寝室里放的AMD Ryzen 5800X性能差距多少,考虑到架构相同仅L3 Cache大小不同,因此就进行了一个简单的循环测试来看看单核Turbo Boost性能差距有多大。 实验室的5700G机器上安装了Ubuntu 21.04(考虑到20.04目前内核版本为5.4,无法支持Zen 3的一些电源管理特性,而实验室同学喜欢用Ubuntu),而我自己台式机则是滚的Debian sid。 两台机器自带的编译器如下(后续已经发现只与编译器有关): 实验室的5700G:gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1) 寝室的5800X:gcc…

修改binutils在RISC-V上添加汇编指令

1. 起源 最近给学长打工做的相关研究需要对RISC-V指令集进行扩展,因此需要魔改编译器添加指令。 而RISC-V架构上做到这一点其实非常容易,官方提供了一个riscv-opcodes工具,它可以用于生成编译器所需的opcode宏来添加所需的指令。 2. 准备环境 我的实验基于Debian Bullseye发行版进行。(写这篇文章之时Bullseye还处于Testing状态) 首先我们需要编译安装riscv-gnu-toolchain. sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev…

博客复更

最近在研究Linux内核相关的东西,准备写几篇文章记录一下。但是自己的博客太久没有打理了。 本来打算将博客迁移到Hugo上,但是发现评论的迁移和搜索的实现比较麻烦,因此最终还是决定继续使用WordPress。 之前WordPress最让我头疼的问题是在于代码高亮插件。在不同的代码高亮插件间切换令人崩溃。同时由于我使用的代码高亮插件在遇到<和>字符的时候会自动escape,但是在编辑器中每次打开再保存会又escape一次,不知道为什么会有这样奇怪的设定。这也就导致了我一直纠结于博客系统而就放弃了内容上的更新。 今天仔细研究了一下相关方案,发现WordPress上有一个插件可以很好地解决问题,插件名叫WP Githuber MD。可以直接在里面使用Markdown来编写,同时还自带了优化Markdown文档的种种插件,比如用于代码高亮的prism.js,以及用于数学公式的KaTex。 改了几篇文章下来,感觉比之前使用WordPress编辑器+各种插件+部分手写HTML要方便不少。最终决定采用这个方案继续写博客了。也感谢大家这么多年来对我的博客的支持,希望接下来继续生产许多有价值的内容。

CQU选课小技巧

很多CQU的学生都遇到一个问题,选课的时候明明选完了,但是在提交上去的最后一步却遇到了Service Unavailable的情况,导致选课全部作废,需要重新选。 其实,借助Chrome浏览器和Fiddler可以很好地帮助我们解决这个问题。   问题根源:抢课系统在遇到提交失败的时候会丢失我们所选课的列表 解决方案:使用抓包工具,如果提交选课结果没有成功,就将提交上去出错的请求重放一遍   这里就不继续阐述诸如“看见加载不要继续点刷新”一类大家都知道的小技巧了   选课之前,你需要先安装好Chrome和Fiddler,Chrome建议安装SwitchyOmega插件,并按照这样设置。 点击上面菜单的黑色圆圈 然后点击选项 之后点击“新建情景模式” 然后按照下图设置代理协议HTTP,代理地址127.0.0.1,代理端口8888 (这个是Fiddler的默认配置) 之后应用选项。 然后打开fiddler,点击Tools,Options,按照这样设置 去掉Capture…

Back to Top