Tag: Linux

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

Linux下使用tcpkill工具重置NFS连接

有些时候在 Linux 系统中使用 NFS 挂载远程共享(使用默认的 TCP 方式)之后,偶尔会因为网络异常出现 NFS 连接出错的问题,这种情况下使用任何 ls 或者 df 等等常用的命令对 NFS 挂载目录进行简单的查看操作都可能卡顿几十秒乃至几分钟的时间。 此时如果在别的 Linux 客户机系统上又是可以正常访问 NFS 共享的,而 NFS 服务器端考虑到有多个客户机正在使用不方便直接重启服务,一般只能等待 NFS 挂载连接恢复正常或者重启客户端系统,这样还是很麻烦的,为此我专门找了个使用 tcpkill 命令重置 NFS 连接的方法分享给大家。 tcpkill 命令属于 Dsniff […]

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 系统,而 […]

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 分区并做各种读写拷贝大文件之类的 […]

解决Linux下使用davfs2挂载坚果云的问题

坚果云算是现在国内云存储提供商里比较另类的一个了,没有提供巨大的容量空间,也没有非常多的人使用他的分享功能,但好在基本功能非常全面,桌面同步客户端做的比较清爽,各种类型的客户端基本都能支持,特别像多个用户协作修改文件的同步、文件版本历史这些我比较看重的功能做的还不错。坚果云也有一定的付费用户,稍微坑一点的就是坚果云免费用户的初始容量只有 1GB,之后每个月免费用户可以再上传 1GB 的数据(免费用户同时限制每个月下行流量 3GB)。 坚果云虽然没有提供 API 功能,但好在其算是国内唯一提供 WebDAV 方式访问的网盘(国外的类似网盘也比较少,免费的像 Box.com 就算一个了),这样基本 […]

在Koding云平台上编译Chromebook kernel

最近从淘宝收了一台三星的 Series 3 ARM Chromebook,平时当作上网本用起来还是可以的,可以运行一些 Chrome packaged 原生 App,Chrome OS 的运行速度也还凑合,主要电池续航比一般的笔记本要给力多了,这篇博文的编辑及实际 kernel 编译操作我都是在 Chromebook 上完成的。 由于 Chromebook 底层使用的还是 Linux 内核,装了 Crouton 插件之后可以在 Chromebook 里以 chroot 的方式跑另外的 Ubuntu 系统,只不过 Chromebook 自带的内核模块有些缺失,比如我需要的 binfmt_misc […]

Linux kernel DM map_info接口改为per-bio data

最近在将一个之前版本的 Linux DM(device mapper)驱动移植到新的 3.18 版本 Linux kernel 上出现编译报错,提示 DM target_type 中的 dm_map_fn 等成员函数指针类型不正确。 看看老版本上 dm_map_fn 函数指针的声明: typedef int (*dm_map_fn) (struct dm_target *ti, struct bio *bio, union map_info *map_context); 这个是新的 3.18 版本 Linux 上的形式: typedef int (*dm_map_fn) (struct dm_ […]

为ARM Chromium增加Flash和Netflix支持

最近在 Android 4.4 上通过 Linux Deploy 运行了 armhf 版本的 Ubuntu 14.04 系统,使用 Android XServer XSDL 作为 X11 服务器跑 LXDE 的效果还是可以的。在 Ubuntu 系统上安装了最新 Chromium 浏览器之后一般的使用看起来也没有什么问题了,但感觉 ARM 上的 Chromium 浏览器缺少 Flash 播放器支持还是有点遗憾的。 由于 Adobe 对 Linux 上的 Flash Player 不上心,x86 Linux 版本的 Flash Player 也只更新到 11.2 版本就不更新了,更郁闷的还是 Ad […]

Linux下apache以root身份运行

最近在某个项目需求中需要在 Linux 下使 apache 以 root 身份运行(默认使用的是 apache 用户),直接修改 apache 配置文件 httpd.conf 中的运行身份为 User root 和 Group root 后启动 apache 结果会报下面的错误: Error: Apache has not been designed to serve pages while running as root. There are known race conditions that will allow any local user to read any file on th […]

NFS和64位inode的问题

本文同步自(最佳显示效果请点击):https://zohead.com/archives/nfs-64bitinode/ 最近在 XFS 文件系统上使用 NFS 时发现一些比较老的 Linux 客户端在挂载时会提示 stale file handle 错误,这似乎是服务器端的 NFS 共享文件夹信息不正确了,比较奇怪为什么新的 Linux 系统又是可以挂载使用的,准备一探究竟。 首先登录到服务器端(也是 Linux 系统,RHEL6 x86_64 服务器),查看 NFS 共享文件夹的状态(NFS 共享路径为 /nfs/share2): 上面的 ls 命令特别增加了 -i 参数用于显示文件的 i […]