Nios34 的博客

我支持自由软件运动、世界版权自由与网络中立活动!

首页 | PGP 密钥 | 关于


文章归档: June 2021 March 2021 February 2021

发现 412.250MHz FM 上的奇怪信号

nios34于 June 7, 2021 发表在奇异见闻中。

从六月五日我就发现412.295MHz上有奇怪信号。信号不弱但听上去又有些失真,在410.xxxMHz左右也会发射同样的信号,但强度比412.295MHz上的要弱。

412.250MHz上主要是广播与电视服务。尚不清楚这些信号是什么和发射这些信号的目的。大家可以一起探讨一下!

这里有一段截取噪音的录音,SWL数据是:2021年6月7日 00:01:47 UTC 412.295MHz。

Unknow_2021-06-07_07-45-45.ogg

自由无线网卡选购指南

nios34于 June 6, 2021 发表在经验指南 中。
许多的无线网卡都需要非自由固件,这些网卡在搭载Linux-libre的操作系统(例如Trisquel GNU/Linux)上没法运行。这里就为大家推荐几款可以在自由固件下使用的网卡。文章大部分内容从互联网中收集,部分设备我没有测试过。我不对真实性负责,但文章里的内容应该大都正确。

首先,第一原则:不要听信淘宝商家说的免驱,这不代表在自由的GNU/Linux操作系统上免驱。而且,往往是那些不免驱的网卡可以在GNU/Linux上很好地工作。

150兆Lite-N USB网卡

TPLINK TL-WN721N网卡是中国市场保有量较多的网卡,咸鱼上售价二十到四十不等。选购时请尤其注意,选择版本是1.0 2.0 3.0 3.1的网卡。你可以要求商家提供网卡背面的截图,如果上面写着WN721N Ver 1.0 2.0之类的那就没有问题了。

TL-WN721N TL-WN721NC

TPLINK TL-WN721N网卡还有个兄弟,那就是TL-WN721NC。大小比TL-WN721N小一些,比较适合插在笔记本电脑上。上面的截图左边的是TL-WN721N右边的是WN721NC。

两个网卡都使用Atheros AR9002U芯片和Atheros AR9271芯片。无线制式为b/g/n,150兆的速度可以基本上满足上网需求。

Trisquel与其它大多数Debian/Ubuntu发行版上安装open-ath9k-htc-firmware包就能驱动WN721N。如果使用的是其它发行版也可以手动编译ath9k-htc固件,源代码位于Github

150兆高增益USB网卡

TPLINK TL-WN722N网卡与上面的TL-WN721网卡的天线不同。TL-WN722N网卡总共有五大版,而我只搜集到了前三版的资料。

  • 1.x版本的WN722N使用的是Atheros AR9002U与Atheros AR9271芯片,1.0与1.1版只有PCB差异。;
  • 2.x版本的WN722N使用的是Realtek RTL8188EUS芯片,需要专有固件驱动;
  • 3.x是2.x版本的升级版,使用同样的芯片,同样需要专有固件。

TL-WN722N

和TL-WN721N一样,它也有个弟弟——TL-WN722NC。NC版本(左边)比N版多了个底座,国内不好买到完整的NC版本。很多版本可以外接天线,接口类型为RP-SMA,制式依旧为b/g/n。售价相较TL-WN721N贵些。

驱动安装方法与TL-WN721N一致。

54兆USB无线网卡

比起上两个,TPLINK TL-WN322G要比他们早生产。所以……速度也很感人,但还是够用的。

TL-WN721N

购买时要注意版本,1.x版本使用的芯片是ZyDAS ZD1211B,需要的固件有二进制blob,3.x版本使用的是和上面相同的Atheros AR9002U/AR9271芯片。

驱动安装方法与TL-WN721N一致。

300/450兆单/双频PCIe无线网卡

杀手killer n1102无线网卡有着不同的配置版本,分别是单双频和三百四百五兆版。

Killer n1102

这些版本配置不同搭载的芯片也不同,但都由Atheros生产。它们都可以使用自由固件——ath9k驱动。

这里顺便附上淘宝的宝贝链接:https://item.taobao.com/item.htm?id=36203679539

无线制式为a/b/g/n,驱动安装方法与TL-WN721N一致。

文章的最后,希望大家都可以选购到自己喜欢的自由无线网卡!

GNU/Linux 上 Sysrq 的用法

nios34于 March 3, 2021 发表在技术博文中。
你可能注意到你的键盘上的 PrintScreen 键也写着 SysRq,让我们来看看它的是干啥的。

内核配置

Linux 内核将 Sysrq 的功能分割出来了,你可以用这个命令查看它的状态:

# grep "CONFIG_MAGIC_SYSRQ" /boot/config-*

如果写着 Y 那就说明启用了(一般的发行版都是启用的),否则使用下面的方法:

临时

# echo "1" >/proc/sys/kernel/sysrq

永久

# echo "kernel.sysrq = 1" >> /etc/sysctl.conf

文档

'r' - Turns off keyboard raw mode and sets it to XLATE.

'k' - Secure Access Key (SAK) Kills all programs on the current virtual
console. NOTE: See important comments below in SAK section.

'b' - Will immediately reboot the system without syncing or unmounting
your disks.

'o' - Will shut your system off (if configured and supported).

's' - Will attempt to sync all mounted filesystems.

'u' - Will attempt to remount all mounted filesystems read-only.

'p' - Will dump the current registers and flags to your console.

't' - Will dump a list of current tasks and their information to your
console.

'm' - Will dump current memory info to your console.

'0'-'9' - Sets the console log level, controlling which kernel messages
will be printed to your console. ('0', for example would make
it so that only emergency messages like PANICs or OOPSes would
make it to your console.)

'e' - Send a SIGTERM to all processes, except for init.

'i' - Send a SIGKILL to all processes, except for init.

'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system
will be non-functional after this.)

'h' - Will display help ( actually any other key than those listed
above will display help. but 'h' is easy to remember :-)

这就是 Magic Sysrq 的所有指令键。

如何按出来呢?举个例子:要重启系统的话,使用 Alt + Sysrq + B。

用处

你一定遇到过死机的情况,有些情况下 TTY 也救不你。这时就需要安全的重启,并且这操作要不会被其他程序干扰。

你也许会说:很简单,Alt + Sysrq + B。

额,然后你的数据就没了。所以,通用的做法是:

按顺序按下:R E I S U B

按下一个时等一会再按下一个,否则内核没法处理完成你的指令。

最后在紧急同步以后,你的计算机会重启。操作完成。 :-)

逃离中国的数字利维坦

nios34于 February 21, 2021 发表在默认分类中。
《以诺书》中,利维坦是在上帝创造世界的第六天制造的两只怪物中的一只,她是混沌的巨龙,有说像巨蛇有说像鳄鱼,也有说是巨鲸的模样。 自英国哲学家霍布斯的名著《利维坦》问世以后,利维坦成为强势的国家(政府)的代名词。

为何?

比尔·盖茨曾说过:“你甚至不知道和你交流的对方是一条坐在电脑前会敲击键盘的狗。”。

这在 2021 年的现在是个伪命题。以中国举例,百度会精准的推送给你你喜欢玩和吃的狗狗玩具和狗粮。QQ 和微信时时监控着你的位置和你的好朋友。支付宝也许会有你的人脸信息,路边的监控因此将你识别。当然,你在微信和支付宝的流水也不那么安全。总而言之,下面这张漫画很好的呈现了现状。

dog.small.jpg

“他们怎么知道我是狗”

当然,还有一些关于这些行为的消息。常见的我就不多说了,例如:手机 QQ 获取 IMEI、电脑微信存全凭截图、N 多应用读取剪切板这类的就不多说了。我们看些其它的:

-6dc98abc48b8a2e7.jpg

“当然,不止可以用来抓失足妇女,这样是可悲的。 ;-(”

据估计,中国是闭路监控安装数量最多的国家,同时也是人均最多的国家。海康威视的“黑科技”要揪出一个人也不难。再加之基站数据等信息,庞大的数据网将他的触手几乎伸向了我们每一个角落。所以说,逃离中国的数字利维坦是很重要的。

怎么办?

第一条(也是最重要的一条):尽量或者彻底使用现金支付。第三方的网络的支付通常会记录你的信息。

第二条:使用自由软件。如果你想免费使用专有软件并以自己的隐私为代价的话,就去用专有软件吧。

第三条:使用洋葱路由。也许你已经连一条底裤都不剩了,但这样别人不能鉴别你,你泄漏的信息也不会同这时的你联系起来。(btw,这个站点在 t0r 下的访问速度不错)

第四条:戴口罩。防止视频监控的也许有效的手段。不然,为什么反××要禁止带口罩。

第五条:尽量使用去中心化网络。使用诸如 Matrix(即时通讯)、BitTorrent(文件共享协议)的应用。

一些疑问

Q:你怕这些干啥?你又不犯罪。
A:可能你想的隐私和我想的不一样吧。

文章到这里结束。希望大家在监控下好好活着。 :-)

用小爱同学和树莓派控制任何东西的开关

nios34于 February 19, 2021 发表在默认分类中。
使用点灯科技的 Blinker 控制所有东西的开关。

这篇文章不包含任何技术内容,但它绝对可以让你达成标题所说的内容。

必要准备

你应该准备以下的东西:

  • 小爱音箱(这仅仅是因为我不喜欢 MIUI 的小爱同学)(可选)
  • 树莓派

其它的嘛,应该没了。或许你还需要一部手机。:-)

注册账户

要使用点灯科技的产品当然要注册了。对于我们来说,它的使用是免费的!

首先,前往 diandeng.tech,下载手机应用。打开应用后,界面中间靠右有个用户注册按钮,点它注册。

注册完成后,登录。这个部分完成了。

注册设备

登录后,你发现右上角有个加号,点它。点击独立设备,选择你想要的接入方法。具体选择如下:

如果你的树莓派插了网线,选 WiFi 接入。如果你的树莓派连了 WiFi,选 WiFi 接入。如果你的树莓派用的是蓝牙,选蓝牙接入。简单易懂。

服务商建议选择阿里云(你应该也没别的选择)。现在你应该有了一个 Secret Key,将它记下来。它大概长这样:d941525a5af8

到这里,你就应该已经注册了一个名为“新的设备”的设备。你最好把它的名字改掉,因为现在如果你要打开它需要说这句话:“打开新的设备”。奇怪极了。

安装库

安装 python3 和 pip,使用下面的命令:

apt install -y python3 python3-pip

然后拉下 Blinker 的 Python 库:

git clone https://github.com/blinker-iot/blinker-py.git

在你因为 Github 的垃圾速度砸碎你的树莓派之前,你可以先试试把命令里的 github.com 换成 hub.fastgit.org。我假设你现在已经进入了那个库的目录,运行下面的命令安装依赖:

pip3 install -r requirements.txt

在你因为 PyPI 的垃圾速度砸碎你的树莓派之前,你可以试试在命令中加上 -i https://pypi.tuna.tsinghua.edu.cn/simple。这个命令一般来说,应该不能一次就运行成功。耐心一点,从它的报错信息,找到缺少的对应 lib。然后使用 apt 安装它们。
现在你完成了最难的部分,来让我们安装这个库:

python3 setup.py install

到这里,你已经安装完了所有所需的库。

配置脚本

建立一个文件,将下面的代码扔进去:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Blinker.Blinker import Blinker, BlinkerButton, BlinkerNumber, BlinkerMIOT
from Blinker.BlinkerConfig import *
from Blinker.BlinkerDebug import *
from time import sleep
import controller

auth = 'd941525a5af8'

BLINKER_DEBUG.debugAll()

Blinker.mode('BLINKER_WIFI')
Blinker.miotType('BLINKER_MIOT_OUTLET')
Blinker.begin(auth)

def miotPowerState(state):
    ''' '''

    if state == "true":
        controller.turnon()
    elif state == "false":
        controller.turnoff()

    BlinkerMIOT.powerState(state)
    BlinkerMIOT.print()

def miotQuery(query):
    pass

BlinkerMIOT.attachPowerState(miotPowerState)
BlinkerMIOT.attachQuery(miotQuery)

if __name__ == '__main__':

    while True:
        Blinker.run()
        sleep(1)

聪明的你,应该留意到了 auth 变量需要修改。将它换成你的 Secret Key。
然后在同一个目录下,建立一个包含 turnon 函数和 turnoff 函数的文件名为 controller.py 文件。
turnon 和 turnoff 的作用想必不用多说。将你想让小爱同学调用的代码放进去。

运行脚本

python3 xxx.py

只要进程不退出,就说明没问题。

在米家导入那个设备

打开你的米家应用,点击“我的”。向下滑,应该能看到“其他平台设备”,进入。点击“添加”,找到“点灯科技”,登录你的帐号。
点击“点灯科技”的选项(或者也许你已经在里面了),你应该能看到你的设备名。如果没有,同步设备。

大功告成

如果你没有修改它的默认名字,你现在应该可以通过说“打开新的设备”来调用 turnon 函数了(反之亦然)。如果你把设备名修改成火狐浏览器,那就说“打开火狐浏览器”(这部分的源代码放在下面了)。

这是一个有用的例子

import os

def turnon():
    # 因为我使用 nios34 这个用户名登录,并以 root 权限运行脚本(这是必须的)。
    # 所以 firefox 这个命令以我的身份执行。
    os.system("sudo -u nios34 firefox")

def turnoff():
    # 鲨疯辽。
    os.system("sudo -u nios34 pkill firefox")

扩展链接

最新文章

文章分类

友情链接