分类 吹水 下的文章

USB Type-C 设备插入电脑显示 BillBoard设备

前言:

笔者有一台带有 Type-C 接口的口袋电脑,近期为其买了一个C口转A口+以太网口+TF&SD卡+HDMI+PD的强大 USB 扩展坞 ,笔者注意到,扩展坞插入电脑后会在设备管理器中显示一个名为 USB 2.0 BILLBOARD 的设备。众所周知,BillBoard意思是公告板,为什么会出现这样的设备呢?笔者经过一番查证,以下便是它的前因后果。

BillBoard 是什么?

USB-IF 协会于2014年公布了 Power Delivery v2.0 的规格,同时也在原本的USB Class定义了新的分类:Billboard Device Class v1.0。

USB-C 即 Type-C 接口已经广泛应用于各种设备中,相比之前的传统 USB 接口,Type-C 接口具有结构小巧、支持正反插、更高的电力传输,以及可选模式(如 DisplayPort ,即 DP 视频传输/又如 Thunderbolt,即雷电接口)等特性。其中,对于各种可选模式的支持,离不开 Type-C 接口物理结构的支持。Type-C 接口中提供了四组差分信号,他们成中心对称排列于上下两排触点,每排都分别有1收1发,以支持正反插。Type-C 接口可用的场景很多(比如视频音频传输、PD 快充),不再像传统USB接口那样单纯的提供数据传输。有些功能通过简单的外围电路进行识别,如 USB2.0、DCP、Accessory Mode(附件模式);而有些则需要通过 USB 控制器实现,比如 USB3.0 通信时,USB 控制器负责进行协商,分配差分信号通路。

正如前文所述,Type-C 接口除了传统的数据传输,还支持一些其他的功能。而这些功能在设计时是可选的。比如,并不是用了 Type-C 口的设备就一定会有 DP 视频输入输出功能,毕竟需要考虑产品实际需要的功能。这方面,Type-C 定义了一种模式称之为 Alternate Mode(交替模式)。USB 协会为每一个标准的可选模式定义了唯一的标准编码,Host 和 Device 的 USB 控制器通过此编码沟通是否支持某种模式,识别进入退出 Alternate Mode 的相关的命令是由 USB PD 组织 VDM 命令发生的,相关信号的传输是通过 CC 引脚(配置通道)进行的。

这里举一个例子:一台支持通过 Type-C 进行 DP 视频输出的笔记本电脑,和一台 Type-C 接口的 DP 显示器连接,这种显示器一般带有USB扩展坞功能。此时,电脑作为 USB Host ,显示器作为 Device。它们都支持 DP,USB 控制器沟通后会将两路差分对(即一个发送和一个接收)分配给 USB 数据,另两路差分对分配给DP 用作视频流传输。

而如果 DP 显示器通过 Type-C 接口插在了不支持 DP 的显示器上,结果就是作为 Device 的显示器与做为 Host 的计算机沟通进入 Alternate Mode 失败。针对此情况,USB 协会定义:Device 端产生一个 BillBoard 设备,以此通知Host端与用户了解此问题。

综上所述:BillBoard是Device端提供支持的,用于 Device 端发现自己支持的功能没有被 Host 端接受时触发,以提醒该事件。

什么情况会出现 BillBoard?

上文提到,出现 BillBoard 设备表示 Device 端发现自己支持的功能没有被 Host 端接受。所以,电脑出现此提示一般有两个原因:

  1. Host端不支持相应的 Alternate Mode。比如 Type-C 口 DP 显示器通过 Type-C 连接线插在了不支持Type-C 口输出 DP 的电脑上。笔者的破电脑就是这个情况,这种情况自然是无解的,也是正常的。能做的只是咱们忽略这个提示,不使用相关功能。
  2. Host 端支持相应的 Alternate Mode,但设备之间使用了 USB A to Type-C 线。即使用 USB A to Type-C 线,Type-C 的那一头插在 Device 端,USB A 口插在了 Host 端。而 A 口显然是无法提供 Alternate Mode 支持的,因为它没有 Type-C 接口那么多的差分对提供。这种情况换一根双头满 Pin 的 C2C 线就好了。

USB通信协议非常复杂,笔者水平有限,如有错漏,欢迎指正。

参考:

笔电坏桥记

上个月笔者与网友们一起研究为某个安卓机器(关键词BYT,具体是啥,懂得都懂)刷机。结果机没刷成,意外搞坏了电脑PCH(南桥),因为当时使用的是主力机,且笔者主力机是一台笔记本电脑,所以损失惨重(台机坏南桥可以直接换主板,笔电因为U和显卡焊在主板上,一般要换桥刷BIOS)!笔者此处写一篇笔记,警醒自己也提醒各位朋友,研究技术需谨慎!

机器采用高通210方案,设计非常高端。我们研究的首要目标是备份出分区,然后才能进行后续的学习研究。而高通的方案要想备份分区,需要设备进入9008模式,一般是需要短路某测试点,但是在经过不断尝试后,发现该机器设计很研究,无从下手!在最后一次的短接中,疑似笔者手抖短接了不该短接的测试点、抑或是导入了静电。短接的瞬间,电脑瞬间黑屏!

电脑黑屏后,笔者略感惊讶。随后尝试按电源键重新上电开机,发现按电源键没有任何反应,此时笔者心里开始感觉微微有那么一点点慌。随后就把电脑外接电源和电池都拔了,等了一会儿,重新插好电池和电源,尝试开机,果然还是不行。笔者心想:坏!随寡人征战多年的战争机器今天怕是挂了!

随后笔者找出了一根DC测试线,将其拧到了可调电源上,随手调了个19.5V 3A。拆除了笔电的电池和所有硬盘,通过可调电源供电,发现电流只有3mA左右,按电源键尝试开机,也只是有几mA的按键电流变化。看到这个电流,笔者心想:淦!怕不是PCH(南桥)挂了!这下彻底慌了。只能拆开看看了!

拆开机器的后维护盖,拆下键盘。目测主板没有明显烧焦冒烟的位置,南桥也没有炸裂的迹象。但这并不能说明南桥没有问题,考虑电流只有3mA,没有出待机电流,也没有短路电流,依然高度怀疑南桥故障。拿起万用表,打到二极管档测试各电感对地压降(很多维修师傅们都叫这个叫阻值,实际是误传,叫的人多了成了行话),发现某个电感对地压降为0,打到电阻档,测对地阻值也是0。查阅该机维修手册中的原理图,发现对地短路的电感对应南桥的1.05V电路部分,到此可以确定,真的是南桥挂了!

此时笔者心中五位杂陈!这台机器是神船的产品,做工并不好。它跟随笔者六年了,一台做工不好的笔记本用6年,很难说是否值得去修它。这机器南桥大约要二百元左右,找人修的话加上人工费估计四五百左右。自己修的话,一方面工具不齐全,再者这机器的拆机也比较麻烦,且更换南桥需要刷BIOS,这方面笔者也没有研究。想来这台机器使用多年,之前键盘部分按键也坏了,并且买不到原厂键盘了。现在酷睿笔电已经到了11代,12代酷睿笔电平台理论上也将在1Q22上市,且据说这次牙膏厂把牙膏踩爆了,最终笔者决定先观望,等新品。

考虑此次事故原因,后期为避免类似事情发生,笔者将使用USB HUB 进行刷机、芯片下载调试等操作。USB HUB 应当有相关保护电路,如自恢复保险,TVS管等。针对易引发危险的操作,应当使用非主力机进行,力求未来避免或降低损失。在此也提醒各位网友对自己的战争机器好一点。研究技术要谨慎,保护设备需牢记!

简述如何白嫖一个IPFS图床

前言:

网上某位大佬写了一个IPFS图床,原理什么的我也不懂,反正就是有个静态空间把页面放上就可以了。因为原始项目里面接口貌似失效了,这里随手记一下怎么白嫖的。以备日后查询。

项目名称叫:img2ipfs

搭建:

首先从GitHub上把项目下载到本地,用本地的编辑器按需求改一下界面等。这方面需要有一定的HTML基础,或者用Adobe Dw?。

改之前需要理解一个概念,这个图床核心需要两个接口:一个是IPFS API,上传文件用的,上传后会返回cid;另一个是网关,预先录入的网关接口用于和 cid 拼接以输出链接。

网关可以直接使用公用的,比如 Cloudflare 的 cf-ipfs.com也可用自己的域名CNAME跳转或套 Cloudflare解析 为了防止某个公用服务后期失效,网关最好用自己的域名跳转。Cloudflare 不允许跨用户使用CNMAE,就算是把自己域名 CNAME 到 cf-ipfs.com 也不行。目前看,可以CNAME到 infura-ipfs.io 。这些东西需要在域名控制面板上操作。

下面这些大佬收集的网关可以试试看:

cf-ipfs.com  #不行
183.252.17.149:82
ipfs.genenetwork.org
ipfs.fleek.co
ipfs.azurewebsites.net
ipfs.kaleido.art
ipfs.globalupload.io
ipfs.slang.cx
ipfs.adatools.io
gateway.originprotocol.com
ipfs.best-practice.se
ipfs.drink.cafe
ipfs.denarius.io     
crustwebsites.net
bin.d0x.to
ravencoinipfs-gateway.com
ipfs.smartholdem.io
infura-ipfs.io

HTML 文件中网关相关内容在第33行附近,按照需要添加或删除网关。默认网关的设置在static/file.js的第146行附近,默认应该是用的fleek。

API 麻烦一点,公开能用的少见。自己搭就不是白嫖了,所以目前看可以用这个:

ipfsapi.glitch.me

static/file.js文件的第70行,API改一下保存。

找一个免费的 IPFS 文件托管服务商,注册个账号。比如我这里用的 fleek.co

自己用的情况,建个目录把改好的文件传上去,它会给出目录的 IPFS 地址,然后直接打开就可以看到图床成了。把地址收藏一下就可以用了。

考虑共享方便的话需要个好记得地址,可以做一下 CNAME 或链接跳转。也可以按服务商官方得方法搭建,需要先在GitHub上建一个仓库,公有私有都可以,把文件push上去。然后在fleek那里连接一下仓库,因为只是单纯保存页面,不涉及编译啥的,按照默认给出得设置(Other)部署就即可,最后可以按提示在域名服务商处设置CNAME即可。

参考:

在树莓派上使用JD-Base 自动薅取京东羊毛

前言:

狗东的活动太丰富了,参与需要耗费大量时间。之前看到大佬们使用脚本代替人力来做这件事,甚至GitHub上还有开源项目。于是我决定跟随大佬脚步,给自己也整一个,部署在树莓派上。经过了解,脚本可以使用docker部署,也可以自己搭建环境。但貌似GitHub上的项目仓库都被封的差不多了,这里考虑用docker。

操作:

安装docker:

使用docker部署项目,自然要先安装docker,听说这个东西很简单,我在官网找到了安装说明,说的是Docker Engine有三种安装方法,分别是从存储仓库安装、从DEB包安装和使用shell脚本安装。而树莓派只支持从脚本安装,貌似没得选呀,我此处也不研究到底有没有的选,就按官方文档来吧。注意,docker的安装一般是需要root权限的。

首先,我们需要卸载旧的版本,执行以下命令,如果回显 none of these packages are installed 说明就可以了。

sudo apt-get remove docker docker-engine docker.io containerd runc

执行以下命令获取安装脚本并运行它,然后等待其自动完成Docker Engine的安装。完成安装后Debian类系统下程序就运行了。

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

Tips:

  • 如果以后需要卸载docker,使用以下命令卸载Docker Engine、CLI、和Containerd packages:

    sudo apt-get purge docker-ce docker-ce-cli containerd.io
  • 使用以下命令删除相关的镜像、配置信息、文件等:

     sudo rm -rf /var/lib/docker
     sudo rm -rf /var/lib/containerd

安装Docker Compose:

作者提供了一个 compose.yml 文件,它是 Docker Compose 工具的配置文件。通过此工具可以快速部署、分享docker项目。所以此处我们还需要安装它。如果使用的是Windows或Mac下的桌面版本,那应该已经带有Docker Compose,而Linux需要单独安装。此处我使用的树莓派,不支持直接二进制安装,所以通过pip安装。

运行此命令以安装依赖:

sudo apt install python3-dev python3-pip libffi-dev gcc libc-dev cargo make

通过pip安装 Docker Compose,此时前面的 python3 -m 表示将调用Python3处理,详见参考。

sudo python3 -m pip install docker-compose

Tips:

  • 如果您需要卸载Docker Compose,可运行以下命令使用pip安装的本工具卸载:

    sudo python3 -m pip uninstall docker-compose

部署JD-Base:

首先创建一个空目录,文件名自定,比如我是用的jdauto。然后我们把作者提供的 docker-compose.yaml 放入到之前目录,然后运行以下命令开始构建:

sudo docker-conpose up

部署完成后会看到相关登录信息,比如端口号默认是 5678 ,用户名是 admin ,密码是 adminadmin

确认无误按 Ctrl + X 停止。下次如果想要后台启动,可以使用 -d 选项,这样服务就会以分离模式(detached)运行。

修改配置信息:

JD-Base的服务运行起来后,我们便可以通过IP:5678访问配置页面了,输入用户名和密码登录。

向下滚动,如下所示,找到通知Token处,选择一种通知方式进行设置。

################################## 定义通知TOKEN(选填) ##################################
## 想通过什么渠道收取通知,就填入对应渠道的值
## 1. ServerChan,教程:http://sc.ftqq.com/3.version
export PUSH_KEY=""

## 2. BARK,教程(看BARK_PUSH和BARK_SOUND的说明):https://github.com/RikudouPatrickstar/jd_scripts/blob/master/githubAction.md
—————————略—————————————

回到上面最开始处,设置Cookie,可以看到扫码获取已经无效了,浏览器获取有效期很短。所以使用仓库自带脚本wskey.js来自动更新cookie。

在容器的config目录下的wskey.json文件中填写wskey,wskey需要自行抓包。抓包方式本文不展开,下面会附链接。

以上信息填好后我们需要回到网页的配置设定中,将第一个cookie中随意填入几个字母,否则脚本会因没有cookie不执行。

然后点击手动执行选项卡,在脚本名称处输入 wskey ,然后点击提交,等待其完成执行,然后就可以在配置设定中看到正确的Cookie了。

去Linux shell中使用 sudo docker-compose restart 命令重启docker。如果处于前台运行,使用 Ctrl + C 停止,然后使用 sudo docker-compose up -d 在后台启动。

在后台以分离模式运行时,使用 sudo docker-compose stop 可以停止服务。

此时,我们便完成了整个部署,里面某些任务可能当天不会执行,可以去手动执行里面按需手动运行一下。

参考:

联通老用户更换套餐为互联网套餐

前言

营业厅办卡时推荐的套餐大多价格比较高,使用并不划算。如果平时手机数据网络上网较多,可以考虑购买大城市的校园网套餐,一般20元左右可以得到每月20~30GB的数据流量,但此类套餐往往只有一两年的有效期,不适合作为主号长期使用。如果平时没有在外看视频的习惯、流量用不太多,可以考虑使用互联网套餐。本文主要记录笔者将两张联通卡更换为互联网套餐的过程。

联通互联网套餐有哪些?

这个可以去淘宝搜索“联通换套餐”,有些店专门提供这种服务。他们会在宝贝详情页面提供一个服务单,告知有哪些套餐可以使用。目前互联网套餐最便宜的是8元流量王,套餐包含200MB通用流量+30分钟通话以及来电显示。性价比较高的卡有19元每月的天神卡和米粉王卡,3GB流量+100分钟通话以及来电显示;天神卡首年额外再送1GB,而米粉王卡则是头条系APP免流30GB。而月费22元的BiliBili 22卡则是2GB+100分钟,为哔哩系APP、新浪微博、百度贴吧、网易云等提供免流。另有阿里宝卡、腾讯王卡、滴滴王卡、懂我卡等其他套餐可供选择。有兴趣了解请自行去淘宝搜索。

操作流程

整个操作流程大致如此:中国联通微厅人工沟通、登记挂工单、相关业务单位联系用户沟通处理、收到短信提示办结。中途可能会遇到部分特殊情况,大多可通过投诉或暗示投诉解决。工信部还是很有分量的。以下沟通过程供参考:

# 关注微厅,发送 “转人工”。
提示:您已通过身份验证,正在为您转接人工服务,请稍等。
提示:坐席已接入,坐席【1XXXX】为您服务
客服:您好,很高兴为您服务,请问有什么可以帮您?
# 我:我想把套餐换成8元流量王
客服:130XXXXXXXX请问是该号码吗?
# 我:是的
客服:亲您目前使用的套餐是比较优惠的喔
客服:是什么原因需要办理转套餐业务呢
# 我:这号是以前在济南用的,现离开几乎不用了,但绑定某些东西销号不合适。
客服:麻烦提供一下130XXXXXXXX机主名+身份证后四位+证件地址
# 我:XX XXXX XXXXXXX (略)
客服:亲 查询到该地区套餐建议到联通营业厅咨询办理。
# 我:我不在当地了,您这边帮忙办一下可以么?
客服:稍等哦 亲
客服:4G全国流量王 8元套餐自费如下:
【月租】8元,包含来电显示;
套餐内包含200M国内流量,超出后国内流量资费10元/GB;
···略···
客服:是该套餐对吗
# 我:是的
客服:转入新套餐的话以下规则请知悉哦亲:···略···
# 我:了解了
客服:现在为您登记转套餐,次月生效
# 我:好的,谢谢
客服:好的,这边为您登记转套餐信息 交由我司工作人员为您处理 后续会有工作人员与您回电联系的 您留意一下
# 我:好的,谢谢

微厅客服挂工单后下午即有客服与笔者电话联系,告知原始业务已下架,更换套餐后无法换回。笔者表示了解后客服当即表示已经办理成功,下月生效。结束通话后几秒即收到办理成功的短信。

笔者家在山东某一末线城市,另一张卡属地是如此。微厅客服表示原始套餐含有归属地集团网业务,此会限制在线客服无法变更业务,需要归属地营业厅处理。反馈后当地营业厅客服电话与我沟通,其态度极其强硬、语气充满不屑,要求必须回属地办理,且威胁说以后可能就办不了了。本人当即表示不在属地,对其服务态度与方案非常不满,会考虑去工信部网站投诉,随后客服表示会再申报一下,稍后告知我新的处理方案。笔者写代办业务委托书,手持委托书与身份证拍半身照发属地营业厅处理。经了解,其他地区也有此类情况,这是一个合理的处理可行的方案。

2021.10更新:

今日登录联通网厅,发现莫名其妙多了一个3元/月的来话宝业务。是在8元业务生效的次月开始的,笔者当即拨打10010投诉,客服表示会登记核实返还话费。网上搜索相关问题,发现很多人在毫不知情的情况下自动开通此业务,且关闭一段时间后还会再次出现。请使用此套餐保号的网友注意检查每月话费详单,避免产生不必要的费月。