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

原则与实战结果 自己家今年搬入了新居,对于我来说一件十分重要的事情就是规划网络布线了。 我计划按照以下原则布置网络: 每个房间都有4芯光纤,确保以太网使用2芯之后还有2芯可用,从而可以接HDMI光端机等设备以及出现断芯等情况后可以替换。 有人活动的位置5GHz WiFi RSSI <= -65 dBm 尽可能不出现明线 先给大家看一下最终的布网效果图: 这张图里大家或许或看出很多疑惑的不完美部分,其中有一部分来源于开发商以及装修公司的历史遗留问题,我会在后续详细解释。 光纤布网 光纤选型 光纤从模式上分为:单模光纤、多模光纤 光纤从形态上分为:皮线、室内光缆、室外光缆、隐形光纤 光纤从接口上分为:LC-UPC、LC-APC、SC-UPC、SC-APC等等(该参数在选购光纤时不需要考虑,后续可以熔接不同的接头)…

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

于2023年8月3日乘坐了厦门航空的MF8208从西安飞往厦门,执飞飞机是一架BOEING 787-8宽体型客机,上飞机后惊奇地发现座位旁有WiFi图标,而在地面上我拿手机搜索了一圈并没有看到任何非个人热点的SSID。但我依然非常期待,因为距离上一次在空中上网已经是2013年在美国使用gogoinflight了。 初见WiFi 升空后没多久,我再次刷新手机的WiFi列表,果然出现了XiamenAir,连上WiFi第一步那自然是购买然后连接,但很遗憾的是刚开始并无法完成购买,http portal页面显示“获取用户IP地址失败”。 既然想付钱都不给我付钱的渠道,那我只能试试看能不能用点白嫖手段了。发现可以使用UDP 53进行DNS查询,包括TXT记录查询,同时对公网的任意域名请求均正常,但使用53端口跑别的应用全部连不到服务器,继续测试发现我使用任意域名进行DNS查询都会返回相同的结果,且第二次换一个DNS服务器查询非常快,因此可以判定它对53端口进行了本地重定向,至此我能想到的有实用价值的白嫖网络手段全部失效(我不考虑基于txt记录做的递归查询dns tunnel,对dns缓存的负载太致命了,除非真的到了有紧急情况发生我想传个遗书到地面我才会考虑这种手段吧)。 后来,等进入了平飞阶段,客舱服务开始,此时我也拿出笔记本,在登录页面点击购买后,立刻就收到了几条微信信息,看来我朋友说的不认证能用微信是真的,我果断再次测试,portal页面里可以购买wifi服务了,只不过他们似乎做的不是很好,PC端的购买需要在手机使用微信小程序完成,但问题不大。 其中,这里的付费上网服务也可以使用积分兑换,“一鹭畅游”服务需要2800积分,我当时过于激动没有check一下我的积分是否足够就直接付了钱,后来发现是够的。 未认证阶段的HTTP互联网访问 可以看出这个CSS应该是基于的深信服的系统。 路由与延迟测试 首先是出口ip测试 cyy@YangyuMacBook-Pro  ~ …

基于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