Category: 技术

Keybase加密网络服务初步体验

关于 Keybase 体验之前需要先了解 Keybase 到底是啥,维基百科上对 Keybase 的定义是基于 PGP 技术的社交网络平台,可以将用户的身份映射到公钥,反之亦然。最常见的用法就是 Keybase 做为公共的 PGP key server。Keybase 可以对用户的 Twitter、GitHub、Reddit 等社交网络账户提供身份验证功能。 做为开源项目,Keybase 提供的服务已经远不止这些了,除了在社交网络身份验证之外增加了域名、网站管理员以及比特币和 Zcash 加密货币地址的验证功能,目前还提供了不少扩展功能: 端对端加密聊天通讯; 类似 Slack 的加密团队聊天 […]

酷走Android行车记录仪研究

还是之前用的酷走 Android 行车记录仪,最近放在车上使用倒挺顺畅,不过也有一些明显的问题(例如 SIM 卡未联网时系统时间不正确等),因此想着最好能找到调试这款 Android 行车记录仪的途径。 ADB 调试 最开始想到这款行车记录仪既然是用的 Android 系统,应该是支持 ADB 调试功能的,将行车记录仪的 USB 接口直接用数据线接到我的笔记本电脑上,却没有找到 ADB 设备。以为记录仪内部是不是有一个专用的调试串口之类的,为此找到硬件同事把记录仪拆解了一番: 不过并没有找到除 USB 之外其它的调试接口,这时无意将记录仪通过 USB 接到另一台主机上,却认到 ADB 设备了。 […]

龙芯MIPS64 QEMU ioctl的问题

龙芯 QEMU 问题 最近搞了一块使用国产龙芯 3A3000 处理器的开源开发板,顺便捣鼓移植我们的服务程序,安装龙芯开源社区的 Loongnix 系统之后测试下来 3A3000 处理器的性能还是基本能用的。龙芯处理器自带的内存控制器也能到 DDR3-1600 了,只是目前还在使用 HT3.0 总线确实拖累系统性能。 我们部署的一些服务目前还依赖几个 x86 系统的闭源程序,无法直接在龙芯 MIPS64 系统下运行,就想到使用 QEMU 的 User-mode emulation 来实现了。 Loongnix 系统中的 qemu-i386 运行比较简单的 x86 程序一般都没有问题,不过我发现 […]

初探酷走Android行车记录仪

酷走记录仪 博客有段时间没有更新了,提前说好这不是一般的行车记录仪评测文章,我现在开的 SUV 上并没有装记录仪,只是同事刚好送了一个厂商已倒闭的记录仪,看到这款采用 Intel Atom 处理器的行车记录仪有点兴趣,准备初步研究下。 酷走行车记录仪由深圳汉普云联科技生产,具体型号为 KZV201,网上关于此行车记录仪的评测文章还是有一些的,之前 京东众筹 上的链接应该还在,想了解的朋友们可以看看。 这里我就不做具体介绍了,外观图也就不上了。初步了解此记录仪使用 Intel SOFIA Atom x3 处理器,因此集成了 3G 上网功能(带 SIM 卡插槽),支持 2.4 GHz Wi-Fi […]

CentOS 6编译Intel Beignet OpenCL

关于 Intel Beignet OpenCL 之前在 Linux 上为了测试 Intel 核显安装了 Intel 官方闭源的 OpenCL Drivers 库,也解决了 CentOS 6 系统下 C++ 程序的问题,不过换了一台设备之后发现该 OpenCL 库却与 i3-3220 CPU 自带的 HD Graphics 2500 核显不兼容,OpenCL 不能正确加载核显设备。 由于 Intel 闭源的 OpenCL Drivers 现在基本上不再更新了,因此我想着可以试试 Intel 官方的开源 Beignet OpenCL 实现,其 GitHub 项目主页: https://github […]

Linux修改ELF解决glibc兼容性问题

Linux glibc 问题 相信有不少 Linux 用户都碰到过运行第三方(非系统自带软件源)发布的程序时的 glibc 兼容性问题,这一般是由于当前 Linux 系统上的 GNU C 库(glibc)版本比较老导致的,例如我在 CentOS 6 64 位系统上运行某第三方闭源软件时会报: CentOS 6 自带的 glibc 还是很老的 2.12 版本,而下载的第三方程序依赖 glibc 2.17 版本,这种情况要么自己重新编译程序,要么只能升级系统的 glibc 版本。由于我使用的程序是第三方编写并且是闭源软件无法自己编译,升级 glibc 固然可能能解决问题,但是 glibc 做为最核 […]

Linux C++程序使用Intel OpenCL的问题

Intel OpenCL 问题 最近想在 Linux 环境下使用 Intel 核显测试我们的某个程序,该程序是用 C++ 写的,主要调用 OpenCL 库使用 GPU 进行运算。之前我用 AMD 和 NVIDIA 的显卡都测试过没有问题,还以为会比较顺利,结果在程序刚开始调用 clGetPlatformIDs 检测 OpenCL platform 的时候就直接报错退出了。 我的测试环境使用的是 Intel i3-6100 CPU,该处理器自带 Intel HD Graphics 530 核显,操作系统则是 CentOS 6.9 64 位(比较老,为了和使用环境一致),安装的也是 Intel 官 […]

在Docker容器中使用FUSE文件系统

容器使用 FUSE 的问题 我们一般使用的 Docker 容器都是非特权容器,也就是说容器内的 root 用户并不拥有真正的 root 权限,这就导致很多属于系统管理员的操作都被禁用了。 最近有个在 IBM Bluemix 容器内部挂载 FUSE 文件系统的需求,例如我使用 davfs2 挂载 WebDAV 服务器不出意外地会报错: mount.davfs 命令报错表示无法打开 fuse 设备,而 fuse 设备实际上是存在的(说明 fuse 模块也已经加载了): 从容器内部可以查看到 cgroup 实际允许访问的设备,并没有包含 fuse 设备: 手工允许 fuse 设备自然也是不可行的: […]

使用Software Collections编译最新Linux kernel

关于 Software Collections 使用 Software Collections(SCL)的契机是最近我需要在 CentOS 6 系统上编译最新版本的 Linux kernel,主要用于测试 Btrfs 的数据校验对于 AVX2 指令的支持情况。然而大家都知道 CentOS 6 自带的软件包版本都是非常老的,glibc 维持在 2.12 版本,老的 gcc 4.4 版本则根本就不支持 AVX2 指令,这样编译 Linux kernel 时会自动关闭 async xor 对 AVX2 的支持。 如果要自己动手编译新版本 gcc,这感觉还是有点吃力不讨好,幸好 Red Hat 也注意 […]

复制MIFARE Classic小区门禁卡记录

上个月忙着找房搬家换新住处,住进去发现新小区除了稍有点远的大门,平时方便行人出入的侧门都是必须刷门禁卡的,而房东那只有一张 IC 门禁卡,小区物业也无法办理新卡了,因此想着是不是能用手机模拟或者复制门禁卡的方式自己解决。 尝试手机模拟 由于我使用的华硕 Zenfone 2 手机是支持 NFC 功能的,首先可以用手机读取现有的门禁卡信息,这里我使用的是 NXP 官方推出的 NFC TagInfo App: 从 IC Info 里可以看到小区 IC 门禁卡是最常见的 MIFARE Classic EV1 S50 也就是 M1 1k 卡。 另外 App 下方还提示我的手机不兼容此卡,我们可以在 FU […]