win10开启smb共享

默认没有开启时,通过run 访问smb访问时,会提示:
Fix can’t access this shared folder because your organization’s security policies

开启方法:

  1. windows+R 运行 gpedit.msc
  2. setting enable
    Computer configuration > Administrative Templates > Network > Lanman Workstation.

From your left hand side click on the Lanman workstation, Now you can see the Enable insecure guest logons policy on your right hand side.

open Gpedit and click on the policy settings

Double click on it to open the Policy settings. Change the Policy setting to Enable and click on apply and OK.

Fix can’t access this shared folder using Gpedit

  1. restart
    Now restart the system once and try to access the shared folder.

sata电源线线序

周末整理电子垃圾,发现自己需要一条sata的电源线,来进行外置sata的的测试。但是没有现成的线,只能自己改装一条了。

不同配件的sata电源线会有差异,5pin或者4pin,5pin的是包含3.3V的完整配置,4pin的没有3.3V。

一般是
黄 黑 黑 红
或者
黄 黑 红 黑

如下图:
sata电源线

sata标准的定义如下:
sata电源线线序

根据上面的定义可以得知:
黄色:12V
黑色:reserved ,实际用万用表测试是GND
红色:5V
黑色:GND

因为有的线没有3.3V,所以可以看到很多转换板上都是要增加1117之类的LDO转化芯片,就是为了实现5V转3.3V。

基于阿里云平台和CSDK的air724ug fota流程

前序

几个月前就完成了阿里云sdk的移植和集成,基本流程跑通,就继续干别的了,今天王正式产品中集成,发现还是费了些时间回想当时整个过程的一些细节,所以今天就详细记录下,争取下次再更一步节省时间。

ota升级文件制作

目前合宙air724ug由于flash空间的分布和设计,目前的ota只支持app的升级,无法支持整机core+app的升级。所以这也就是下面的步骤中,生成差分版本时,基线是core。

制作基线版本的fota bin

  1. 运行./xxx.bat fota=core hex目录下会生成基线版本(只有自定义服务器才需要基线版本(因为网页差分工具需要),使用合宙服务器不需要)。 xxx为自己项目的编译脚本名。
  2. 这个基线版本是跟随每个刷机版本对应的,每一个刷机版本都应该有fota bin文件,以备制作ota升级文件时需要。

制作新版本的bin

  1. 运行命令:
    运行./xxx.bat fota=app hex⽬录下会⽣成只升级APP的新版本
    运行./xxx.bat fota=core hex⽬录下会⽣成只升级CORE的新版本
    运行./xxx.bat fota=all hex⽬录下会⽣成APP+CORE的新版本
  2. 因为我们是要针对core来制作app部分的差异,所以这里我们需要选择all:
    ./xxx.bat fota=all

生成差分文件

这里需要借助合宙的在线工具:http://doc.openluat.com/chafen
然后将生成的文件下载下来。

需要说明的是,差分出来的文件时比直接用fota=app生成的bin要大的,也就是说明这个差分中还有一些版本结构配置相关的数据,并不是把app扣出来而已。

阿里云ota任务创建

路径:物联网平台/监控运维/OTA 升级
https://iot.console.aliyun.com/ota/list
这里不展开,如有需要,日后再单独开篇。

硬件fota

目前的代码是直接移植的alifota SDK,需要自己是移植和适配必要的接口,目前我手里的是已经移植和调试过的,今天主要记录相关的关机日志路径,便于日后定位问题和熟悉过程。

  1. 向平台提交当前产品版本
    [aiot_ota_api.c:1105] [INF] [alifota] top:/ota/device/inform/产品key/产品ID, payload:{"id":2, "params":{"version":"alifota1.0.0"}}
  2. 服务器回复:
    [aiot_mqtt_api.c:1208] [INF] pub: /ota/device/upgrade/key/id{"code":"1000","data":{"size":78911,"sign":"2373a5a6848e7e2021e2ca8befd3e0e5","version":"alifota1.0.1","url":"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/f6fa639b5e67a6
  3. 解析ota文件信息
    [ota.c:214] [INF] [alifoat]OTA target firmware version: alifota1.0.1, size: 78911 Bytes
  4. mq建链
    [rda8910_port.c:93] [INF] [alifota] create socket ...
    [rda8910_port.c:130] [INF] [alifota] tcp connect to addr iotx-ota.oss-cn-shanghai.aliyuncs.com:80
    [rda8910_port.c:141] [INF] [alifota] tcp connect success
  5. 开始传输
    [aiot_ota_api.c:950] [INF] [alifota]ln 950 fuc _http_recv_handler,download 0 78911
    [core_http.c:581] [INF] [alifota] ln 581 fuc core_http_recv,res:512
    [aiot_ota_api.c:501] [INF] [alifota] ln 501 fuc aiot_download_recv, download :512 512
  6. 传输下一个块,每次512字节
    [ota.c:402] [INF] [alifota]++++++++++++++++++++++++ start 512 end 1023
    [core_http.c:581] [INF] [alifota] ln 581 fuc core_http_recv,res:512
    [aiot_ota_api.c:501] [INF] [alifota] ln 501 fuc aiot_download_recv, download :512 512
  7. 重复以上的步骤
  8. 接受最后一个包
    [aiot_ota_api.c:950] [INF] [alifota]ln 950 fuc _http_recv_handler,download 78848 78911
    [aiot_ota_api.c:975] [INF] [alifota] download size ok
    [aiot_ota_api.c:982] [INF] [alifota]digest matched
    [aiot_ota_api.c:986] [INF] [alifota]ln 986 fuc _http_recv_handler,percent 100
  9. 向平台上报进度
    [aiot_ota_api.c:1105] [INF] [alifota] top:/ota/device/progress/key/id, payload:{"id":22, "params":{"step":"100","desc":""}}
    [aiot_mqtt_api.c:465] [INF] ln:465. [alifota] mqtt send success:96 0^
  10. fota 成功
    [ota.c:477] [INF] [alifota] ln 477,func:alifota_main, deinit mqtt
    [ota.c:481] [INF] [alifota] ln 481,func:alifota_main, deinit ota
    [aliyun.c:71] [INF] alifota success

coolwatcher日志

硬件日志

nginx下proxy根路径模式的letsencrypt续期问题

问题

当我们使用letsencrypt时,我们会使用renew来自动续期免费证书,从而实现永久的免费证书使用。

在某些域名的重定向场景,我们通过 location和proxy方式将某一个子域名重定向到新的子域名下。这种情况下我们的https证书一般是挂在原域名下的,但是因为我们是从根域名就重定向了,这就导致letsencrypt在renew过程中验证webroot会失败,因为域名的访问是走proxy路径的。

解决

我们给letsencrypt专门配置一个对应子域名能web访问的路径,并且将配置项放在前面,因为nginx的location是按照顺序匹配的,一旦达成就会退出location过程,所以就实现了对letsencrypt路径专门做映射管理的目的。

letsencrypt的check路径如下:

https://xxx.xxx.com/.well-known/acme-challenge/xxxx

所以我们的nginx location 路径配置如下

location /.well-known/ {
     root  /xxxxx;
}

其中的root路径就是子域名所对应的可访问web本地路径,这个路径是专门为了renew创建的。这样就保证了letsencrypt的renew同时保证了子域名的其他业务路径正常proxy。

修改配置后,切记重启nginx,否则就要该挠头了:)

VSC remote development

ssh config:

Host xxx
  HostName xxx
  User xxx
  ForwardAgent yes
  IdentityFile xxx

IdentityFile 不是合成的ppk文件,是私钥,不要搞成公钥,后缀不带pub

settings.json相关配置

"remote.SSH.showLoginTerminal": true,
"remote.SSH.configFile": "C:\\Users\\xxx\\.ssh\\config",
"remote.SSH.useLocalServer": false,
"remote.autoForwardPorts": false,
"remote.SSH.remotePlatform": {
"xxx": "linux"
},
"remote.SSH.path": "D:\\Program Files\\Git\\usr\\bin\\ssh.exe"

注意:

  1. xxx要改成自己的实际server名称
  2. 要配置ssh的路径,否则ssh命令会失败提示“An SSH installation couldn't be found”
  3. 左下角绿色了,就标识成功,终端会显示“6b8492386046: end”类似字样
  4. 过程中提示git版本过低,提示的是服务器端的版本,根据需要升级,不是强制升级

air724ug驱动无法识别问题

之前装过驱动是好用的,有一阵没用了,大概半个月,今天开机,发现windows死活无法识别usb,三个大叹号。

重新执行了安装,也重新启动了,无果。

后面手段选择安装驱动,选择的路径:DriversForWin78\Drivers 然后成功,重新可以下载了。

记录下,就这样。

《格局》书摘

格局

吴军老师的《格局》不错,建议搭配《见识》一起阅读。

书摘

  • 为什么我坚持每个人都要分享利益,感激他人的贡献呢?因为一个大型组织只有这样才能形成合力。
  • 很多组织或机构中没有人愿意独自做决断的原因,不是他们不喜欢拥有决定权,而是害怕承担责任。
  • 当一个人愿意承担自己的责任时,决断就不难了,效率也就提高了。
  • 很多人离职并非因为第二家公司比前一家好,而仅仅是因为他们在前一家公司遇到小小的不爽,就把之前的好忘了个精光,愤然离职。
  • 我们要做的是超过他人的长处,而不是满足于超越别人的短处。
  • 无论多么强势的人都难逃命运的安排,认命其实是我们每一个人都应该有的生活态度。
  • 人贵在自知,知道自己的长处,知道自己的能力边界,在这个边界内最大化自己的收益,这是一种积极的人生态度。至于结果时好时坏,不妨泰然处之。尽人事,听天命。
  • 问心无愧是我们唯一稳得的报酬。
  • 但凡觉得自己了不起的人,通常都没见过真正聪明能干的人。
  • 比才能更重要的是见识,而在见识之上还有运气。
  • 上天不会亏待一个真正努力的人,但也不会同情假勤奋的人。
  • 如果因为你做的一些事情,哪怕很小,哪怕微不足道,但世界因此不同,那么这就是你给世界留下的遗产。
  • 休息的本质是从外界获得信息和能量。
  • 3P:purpose,pleasure,pride。
  • 一个帮助过你的人,比一个你帮助过的人,更愿意帮助你。
  • 一个人在选择工作单位时,应该把对自己好,能帮助自己成长的公司放在首位,而不是觉得某公司很酷、很热门或者多给了一些薪水就选择它。
  • 人立于天地间,必然有出路。
  • 人最重要的是生活着,快乐着。
  • 成就=功功率X影响力X速度。
  • 一个公司在规模不大时,在关注度上和大公司全面竞争是没有意义的,它更应该关心自己的核心用户,关心自己能给他们带来什么价值。
  • 超越免费的第一条是制造一种稀缺性,而这需要产品、服务本身具有一种难以复制的特性。
  • 眼睛只盯着看得见的钱的人,一辈子不会有什么大出息。
  • 第一级的工程师的贡献是第二级的10倍,第二级是第三级的10倍,以此类推。
  • 一堆三流的人聚在一起,有时带来的麻烦,比他们能解决的问题还多。
  • 10个90分都抵不上一个100分,因为卓越和良好之间的落差是巨大的。