Category: Linux

龙芯MIPS64 QEMU ioctl的问题

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

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 也注意 […]

小内存OpenVZ VPS使用UML开启BBR

前言 Bottleneck Bandwidth and RTT(BBR)是 Google 最近提交到 Linux 4.9 版本内核的新 TCP 拥塞控制算法,BBR 相对于 Linux 中已经用了好多年的默认 CUBIC 算法的主要改进是在有一定丢包率的网络链路上充分利用带宽,另外也能有效降低延迟。这对于很多使用美帝 VPS + Shadowsocks 爬墙方案的人来说应该还是比较有用的,目前从一些更新了内核开启 BBR 的 KVM VPS 用户的反馈来看效果也还是不错的。 我目前使用的爬墙服务器是 AlphaRacks 的低配 OpenVZ VPS,内存只有 96 MB,到国内的线路质量倒还 […]

Bluemix容器系统更新udev的问题

Bluemix 更新 udev 的问题 最近在 IBM Bluemix 管理控制台中查看容器状态时发现一直会报 策略违例 问题,进入容器详细信息界面,可以看到漏洞顾问程序扫描到的容器系统中存在的违例情况,主要是系统中某些软件包版本比较老,Bluemix 建议进行安全更新升级: 由于我的 Bluemix 容器使用的是 Ubuntu 14.04 系统,起初想着直接运行 apt-get 命令将系统中的软件包都进行升级应该就差不多可以搞定了: 但是在升级 udev 软件包的时候发现能正确下载软件包但升级失败,提示 /etc/modprobe.d 内核模块配置目录无法正常写入: 我如果跳过升级 udev […]

Win10年度更新开启Bash on Ubuntu

关于 Bash on Ubuntu 之前为了能在 Windows 上使用 Bash 等类似 Unix(Linux)系统的体验,我都是安装了 Cygwin、MSYS 等运行环境,都体验上都存在一些问题:Cygwin 上的程序基本都需要重新编译出基于其运行库(cygwin1.dll)的版本,MSYS 虽然提供了 Linux 下常用的开发工具链、移植过的运行库等等,但基本还是受限于 Windows API 本身的。 当我看到 Windows 10 Build 14316 内部预览版时爆出的 Bash on Ubuntu 功能之后还是比较期待的,因为微软并不是以虚拟机的方式运行 Ubuntu 系统,而 […]

Chrome OS自动升级后crouton音频的问题

日常使用 Chromebook 的朋友们应该都知道 Chrome OS 系统默认是自动推送并更新的,这样可以让你的 Chromebook 等设备始终用上最新的系统,跟上 Google 的步伐,这个特性对于我来说还是相当好的,不过今天我的 Dell Chromebook 11 自动更新到 49.0.2623.95 版本之后却发现 crouton 系统里略显严重的音频问题。 crouton 是一个通用的在 Chrome OS 系统里以 chroot 方式运行普通 Linux 系统的环境,这里我就不做介绍了,由于要测试一下我之前修改的 PPTV Kodi(XBMC) 插件,直接通过 crouton […]

Linux下USB 3.0移动硬盘读写错误问题分析

为了解决 Chromebook 上自带 SSD 空间不足的问题,之前我在淘宝上购入了一个绿帆 F200 USB 3.0 移动硬盘盒,该硬盘盒使用的是 JMicron JMS567 这款使用还比较广泛的 SATA 6.0Gbps to USB 3.0 桥接芯片,准备配上 N 年前的神船笔记本淘汰下来的 2.5 寸硬盘给 Chromebook 使用,这样我就可以在 Chromebook 上安装的 Crouton Ubuntu 系统里无碍的使用各种编译开发环境了。 移动硬盘问题说明 首先我在宏碁 W700 Windows 10 平板上接上此移动硬盘建了一个 NTFS 分区并做各种读写拷贝大文件之类的 […]