2015年3月

提问: 我想为我的Intel 10G网卡下载安装最新的ixgbe驱动。我该如何在Ubuntu(或者Debian)中安装ixgbe驱动?

Intel的10G网卡(比如,82598、 82599、 x540)由ixgbe驱动支持。现代的Linux发行版已经带有了ixgbe驱动,通过可加载模块的方式使用。然而,有些情况你希望在你机器上的自己编译安装ixgbe驱动,比如,你想要体验ixbge驱动的最新特性时。同样,内核默认自带的ixgbe驱动中的一个问题是不允许你自定义驱动的参数。如果你想要一个完全定制的ixgbe驱动(比如 RSS、多队列、中断阈值等等),你需要手动从源码编译ixgbe驱动。

这里是如何在Ubuntu、Debian或者它们的衍生版中下载安装ixgbe驱动的教程。

第一步: 安装前提

安装之前,需要安装匹配的内核头文件和开发工具包。

$ sudo apt-get install linux-headers-$(uname -r)
$ sudo apt-get install gcc make

第二步: 编译Ixgbe驱动

最新的ixgbe驱动中下载源码。

$ wget http://sourceforge.net/projects/e1000/files/ixgbe%20stable/3.23.2/ixgbe-3.23.2.tar.gz

如下编译ixgbe驱动。

$ tar xvfvz ixgbe-3.23.2.tar.gz
$ cd ixgbe-3.23.2/src
$ make

第三步: 检查Ixgbe驱动

编译之后,你会看到在ixgbe-3.23.2/src目录下创建了ixgbe.ko。这就是会加载到内核之中的ixgbe驱动。

用modinfo命令检查内核模块的信息。注意你需要指定模块文件的绝对路径(比如 ./ixgbe.ko 或者 /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko)。输出中会显示ixgbe内核的版本。

$ modinfo ./ixgbe.ko

filename:       /home/xmodulo/ixgbe/ixgbe-3.23.2/src/ixgbe.ko
version:        3.23.2
license:        GPL
description:    Intel(R) 10 Gigabit PCI Express Network Driver
author:         Intel Corporation, 
srcversion:     2ADA5E537923E983FA9DAE2
alias:          pci:v00008086d00001560sv*sd*bc*sc*i*
alias:          pci:v00008086d00001558sv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Asv*sd*bc*sc*i*
alias:          pci:v00008086d00001557sv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Fsv*sd*bc*sc*i*
alias:          pci:v00008086d0000154Dsv*sd*bc*sc*i*
alias:          pci:v00008086d00001528sv*sd*bc*sc*i*
alias:          pci:v00008086d000010F8sv*sd*bc*sc*i*
alias:          pci:v00008086d0000151Csv*sd*bc*sc*i*
alias:          pci:v00008086d00001529sv*sd*bc*sc*i*
alias:          pci:v00008086d0000152Asv*sd*bc*sc*i*
alias:          pci:v00008086d000010F9sv*sd*bc*sc*i*
alias:          pci:v00008086d00001514sv*sd*bc*sc*i*
alias:          pci:v00008086d00001507sv*sd*bc*sc*i*
alias:          pci:v00008086d000010FBsv*sd*bc*sc*i*
alias:          pci:v00008086d00001517sv*sd*bc*sc*i*
alias:          pci:v00008086d000010FCsv*sd*bc*sc*i*
alias:          pci:v00008086d000010F7sv*sd*bc*sc*i*
alias:          pci:v00008086d00001508sv*sd*bc*sc*i*
alias:          pci:v00008086d000010DBsv*sd*bc*sc*i*
alias:          pci:v00008086d000010F4sv*sd*bc*sc*i*
alias:          pci:v00008086d000010E1sv*sd*bc*sc*i*
alias:          pci:v00008086d000010F1sv*sd*bc*sc*i*
alias:          pci:v00008086d000010ECsv*sd*bc*sc*i*
alias:          pci:v00008086d000010DDsv*sd*bc*sc*i*
alias:          pci:v00008086d0000150Bsv*sd*bc*sc*i*
alias:          pci:v00008086d000010C8sv*sd*bc*sc*i*
alias:          pci:v00008086d000010C7sv*sd*bc*sc*i*
alias:          pci:v00008086d000010C6sv*sd*bc*sc*i*
alias:          pci:v00008086d000010B6sv*sd*bc*sc*i*
depends:        ptp,dca
vermagic:       3.11.0-19-generic SMP mod_unload modversions 
parm:           InterruptType:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default IntMode (deprecated) (array of int)
parm:           IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)
parm:           MQ:Disable or enable Multiple Queues, default 1 (array of int)
parm:           DCA:Disable or enable Direct Cache Access, 0=disabled, 1=descriptor only, 2=descriptor and data (array of int)
parm:           RSS:Number of Receive-Side Scaling Descriptor Queues, default 0=number of cpus (array of int)
parm:           VMDQ:Number of Virtual Machine Device Queues: 0/1 = disable, 2-16 enable (default=8) (array of int)
parm:           max_vfs:Number of Virtual Functions: 0 = disable (default), 1-63 = enable this many VFs (array of int)
parm:           VEPA:VEPA Bridge Mode: 0 = VEB (default), 1 = VEPA (array of int)
parm:           InterruptThrottleRate:Maximum interrupts per second, per vector, (0,1,956-488281), default 1 (array of int)
parm:           LLIPort:Low Latency Interrupt TCP Port (0-65535) (array of int)
parm:           LLIPush:Low Latency Interrupt on TCP Push flag (0,1) (array of int)
parm:           LLISize:Low Latency Interrupt on Packet Size (0-1500) (array of int)
parm:           LLIEType:Low Latency Interrupt Ethernet Protocol Type (array of int)
parm:           LLIVLANP:Low Latency Interrupt on VLAN priority threshold (array of int)
parm:           FdirPballoc:Flow Director packet buffer allocation level:
            1 = 8k hash filters or 2k perfect filters
            2 = 16k hash filters or 4k perfect filters
            3 = 32k hash filters or 8k perfect filters (array of int)
parm:           AtrSampleRate:Software ATR Tx packet sample rate (array of int)
parm:           FCoE:Disable or enable FCoE Offload, default 1 (array of int)
parm:           LRO:Large Receive Offload (0,1), default 1 = on (array of int)
parm:           allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599 based adapters, default 0 = Disable (array of int)

第四步: 测试Ixgbe驱动

在测试新的模块之前,如果你内核中已存在旧版本ixgbe模块的话你需要先移除它。

$ sudo rmmod ixgbe

接着使用insmod命令插入新编译的ixgbe模块。确保指定一个模块的绝对路径。

$ sudo insmod ./ixgbe.ko

如果上面的命令成功运行,就不会显示任何的信息。

如果你需要,你可以尝试加入额外的参数。比如,设置RSS的队列数量为16:

$ sudo insmod ./ixgbe.ko RSS=16

检查/var/log/kern.log来查看ixgbe驱动是否成功激活。查看日志中的“Intel(R) 10 Gigabit PCI Express Network Driver”。ixgbe的版本信息应该和之前的modinfo的显示应该相同。

Sep 18 14:48:52 spongebob kernel: [684717.906254] Intel(R) 10 Gigabit PCI Express Network Driver - version 3.22.3

第五步: 安装Ixgbe驱动

一旦你验证新的ixgbe驱动可以成功加载,最后一步是在你的系统中安装驱动。

$ sudo make install

ixgbe.ko 会安装在/lib/modules//kernel/drivers/net/ethernet/intel/ixgbe 下。

从这一步起,你可以用下面的modprobe命令加载ixgbe驱动了。注意你不必再指定绝对路径。

$ sudo modprobe ixgbe

如果你希望在启动时加载ixgbe驱动,你可以在/etc/modules的最后加入“ixgbe”。


via: http://ask.xmodulo.com/download-install-ixgbe-driver-ubuntu-debian.html

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

How to see recent notifications in Ubuntu 14.04

大多数桌面环境像Unity和Gnome都有通知特性。我很喜欢其中一些。它尤其当我在Ubuntu上收听流媒体时帮到我。默认上通知会在桌面的顶部显示几秒接着就会消失。如果你听见了通知的声音但是没有看到内容怎么办?你该如何知道通知的内容?

如果你可以看到最近所有通知的历史会很棒吧?是的,我知道这很棒。你可以在Ubuntu Unity或者Gnome中使用最近通知小工具来追踪所有的最近通知。

最近通知位于顶部面板,并且记录了最近所有通知的历史。当它捕获到新的通知后,它就会变绿来表明你有未读的通知。

Recent notifications in Ubuntu 14.04

当你点击它后,你就会看到最近所有的通知。你可以选择清空所有或者删除部分。

Recent notifications applet indicator

不幸的是它没有配置选项。因此你不能屏蔽特定程序的通知。所有的通知都会被保存。

在Ubuntu 14.04 和 14.10 中安装最近通知工具

一般说来这个最近通知工具应该也可以在Linux Mint Cinnamon版本中运行。你可以试一试。使用下面的命令来在在Ubuntu 14.04 和 14.10 中安装最近通知工具:

sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update
sudo apt-get install indicator-notifications

安装完成后,重新登录后你就可以用了。现在妈妈再也不用担心我的通知没看到了。很方便的小工具,不是么?


via: http://itsfoss.com/notifications-appindicator/

作者:Abhishek 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

现在使用树莓派摄像头模组("raspi cam"),也可以像使用卡片相机那样,给拍摄的照片增加各种各样的图片特效。 raspistill命令行工具,为您的树莓派提供了丰富的图片特效选项,来美化处理你的图片。

三个命令行工具可以用于抓取raspicam拍摄的照片或者视频,在这文章中将重点介绍其中的raspstill工具。raspstill工具提供了丰富的控制选项来处理图片,比如说:锐度(sharpness)、对比度(contrast)、亮度(brightness)、饱和度(saturation)、ISO、自动白平衡(AWB)、以及图片特效(image effect)等。

在这篇文章中,将介绍如何使用raspstill工具以及raspicam摄像头模组来控制照片的曝光、AWB以及其他的图片效果。我写了一个简单的python脚本来自动拍摄照片并在这些照片上自动应用各种图片特效。raspicam的帮助文档中介绍了该摄像头模组所支持的曝光模式、AWB和图片特效。总的来说,raspicam一共支持16种图片特效、12种曝光模式以及10种AWB选项。

Python脚本很简单,如下所示 。

#!/usb/bin/python
import os
import time
import subprocess
list_ex=['auto','night']
list_awb=['auto','cloud',flash']
list_ifx=['blur','cartoon','colourswap','emboss','film','gpen','hatch','negative','oilpaint','posterise','sketch','solarise','watercolour']
x=0
for ex in list_ex:
    for awb in list_awb:
        for ifx in list_ifx:
            x=x+1
            filename='img_'+ex+'_'+awb+'_'+ifx+'.jpg'
            cmd='raspistill -o '+filename+' -n -t 1000 -ex '+ex+' -awb '+awb+' -ifx '+ifx+' -w 640 -h 480'
            pid=subprocess.call(cmd,shell=True)
            print "["+str(x)+"]-"+ex+"_"+awb+"_"+ifx+".jpg"
            time.sleep(0.25)
print "End of image capture"

这个脚本完成了以下几个工作。首先,脚本中定义了3个列表,分别用于枚举曝光模式、AWB模式以及图片特效。在这个实例中,我们将使用到2种曝光模式、3种AWB模式以及13种图片特效。脚本会遍历上述3种选项的各种组合,并使用这些参数组合来运行raspistill工具。传入的参数共6个,分别为:(1)输出文件名;(2)曝光模式;(3)AWB模式;(4)图片特效模式;(5)拍照时间,设为1秒;(6)图片尺寸,设为640x480。脚本会自动拍摄78张照片,每张照片会应用不同的特效参数。

执行这个脚本也很简单,只需键入下面的命令行:

$ python name_of_this_script.py 

下面是抓取到一些样张。

小福利

除了使用raspistill命令行工具来操控raspicam摄像模组以外,还有其他的方法可以用哦。Picamera是一个python库,它提供了操控raspicam摄像模组的的API接口,这样就可以便捷地构建更加复杂的应用程序。如果你精通python,那么picamera一定是你的 hack 项目的好伙伴。picamera已经被默认集成到Raspbian最新版本的的镜像中。当然,如果你用的不是最新的Raspbian或者是使用其他的操作系统版本,你可以通过下面的方法来进行手动安装。

首先,先在你的系统上安装pip,详见指导

然后,就可以按下面的方法安装picamera。

 $ sudo pip install picamera 

picamera的使用说明可以查阅官方文档


via: http://xmodulo.com/apply-image-effects-pictures-raspberrypi.html

作者:Kristophorus Hadiono 译者:coloka 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件。这里有一款工具你可以工具自己的需要使用。

无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重复文件并删除它们来释放空间。图形界面和命令行界面的都有。重复文件是磁盘空间不必要的浪费。毕竟,如果你的确需要在不同的位置享有同一个文件,你可以使用软链接或者硬链接,这样就可以在磁盘的一个地方存储数据了。

FSlint

FSlint 在不同的Linux发行版二进制仓库中都有,包括Ubuntu、Debian、Fedora和Red Hat。只需你运行你的包管理器并安装“fslint”包就行。这个工具默认提供了一个简单的图形化界面,同样也有包含各种功能的命令行版本。

不要担心FSlint的图形化界面太复杂。默认情况下,它会自动选中Duplicate窗格,并以你的家目录作为搜索路径。

要安装fslint,若像我这样运行的是Ubuntu,这里是默认的命令:

$ sudo apt-get install fslint

这里还有针对其他发行版的安装命令:

Debian:

svn checkout http://fslint.googlecode.com/svn/trunk/ fslint-2.45
cd fslint-2.45
dpkg-buildpackage -I.svn -rfakeroot -tc
sudo dpkg -i ../fslint_2.45-1_all.deb

Fedora:

sudo yum install fslint

OpenSUSE:

[ -f /etc/mandrake-release ] && pkg=rpm
[ -f /etc/SuSE-release ] && pkg=packages
wget http://www.pixelbeat.org/fslint/fslint-2.42.tar.gz
sudo rpmbuild -ta fslint-2.42.tar.gz
sudo rpm -Uvh /usr/src/$pkg/RPMS/noarch/fslint-2.42-1.*.noarch.rpm

对于其他发行版:

wget http://www.pixelbeat.org/fslint/fslint-2.44.tar.gz
tar -xzf fslint-2.44.tar.gz
cd fslint-2.44
(cd po && make)
./fslint-gui

要在Ubuntu中运行fslint的GUI版本fslint-gui, 使用Alt+F2运行命令或者在终端输入:

$ fslint-gui

默认情况下,它会自动选中Duplicate窗格,并以你的家目录作为搜索路径。你要做的就是点击Find按钮,FSlint会自动在你的家目录下找出重复文件列表。

Delete Duplicate files with Fslint

点击按钮来删除任何你要删除的文件,并且可以双击预览。

完成这一切后,我们就成功地删除你系统中的重复文件了。

注意 ,命令行工具默认不在环境的路径中,你不能像典型的命令那样运行它。在Ubuntu中,你可以在/usr/share/fslint/fslint下找到它。因此,如果你要在一个单独的目录运行fslint完整扫描,下面是Ubuntu中的运行命令:

cd /usr/share/fslint/fslint

./fslint /path/to/directory

这个命令实际上并不会删除任何文件。它只会打印出重复文件的列表-你需要自己做接下来的事。

$ /usr/share/fslint/fslint/findup --help
find dUPlicate files.
Usage: findup [[[-t [-m|-d]] | [--summary]] [-r] [-f] paths(s) ...]

If no path(s) specified then the current directory is assumed.

When -m is specified any found duplicates will be merged (using hardlinks).
When -d is specified any found duplicates will be deleted (leaving just 1).
When -t is specfied, only report what -m or -d would do.
When --summary is specified change output format to include file sizes.
You can also pipe this summary format to /usr/share/fslint/fslint/fstool/dupwaste
to get a total of the wastage due to duplicates.

fslint help


via: http://linoxide.com/file-system/find-remove-duplicate-files-linux/

作者:Arun Pyasi 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

你很快就可以在GNOME桌面中看到Andorid通知了,这都要归功于一个正在开发中的新程序。

Fancy seeing your Android alerts here? You can. 在这里看到Android通知是不是很棒?就可以了~

这个新的项目叫“Nuntius”,这可以让在Andorid手机上收到的通知显示在GNOME桌面上。它会集成在GNOME 3.16中,并且它重新设计了通知系统,这个app和特性会用在其他更多的地方。

这个app的开发者希望在这个月GNOME 3.16发布之前可以完成,它将通过蓝牙工作来保证不会传给外部的系统或者使用在线存储。这意味着你的电话必须接近GNOME桌面来保证这个功能可用。

他现在还不能回复短消息或者对提醒采取操作。

开发团队警告说这是一个早期发布版本,那些打算期望很高人要有暂时只能提供部分功能的心理准备。

这个用来配合在GNOME桌面上看Android通知的移动端app现在已经在Google Play商店找到了,而GNOME程序已经放在Fedora的仓库中了。

开发者已经在Gituhb上开源了Android和GNOME接收端的程序。

在一两年前,KDE桌面上已经有了一个相似的工具 - ‘KDE Connect,它通过Pushbullet来为使用Chrome的iOS和Android提供相似的功能,支持Windows、MAC和Linux桌面。


via: http://www.omgubuntu.co.uk/2015/03/new-app-brings-android-notifications-to-the-gnome-desktop

作者:Joey-Elijah Sneddon 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

说明

写这篇文章对我来说是一件奇怪的事情,因为我通常都是提倡安装Ubuntu而卸载Windows的。

让今天写这篇文章更加奇怪的是,我决定在微软决定终止对Windows7的主流支持的这一天来写。

那么为什么我现在要写这篇文章呢?

到目前为止我曾经在很多场合被问到如何从一个装有Windows7或Windows8的双系统中删除Ubuntu系统,因此写这篇文章就变得有意义了。

我在圣诞节期间浏览了人们在我文章中的留言,感觉是时候把缺失的文章写完同时更新一下那些比较老的又需要关注的文章了。

我打算把一月份剩下的时间都用在这上面。这是第一步。如果你的电脑上安装了Windows7和Ubuntu双系统,同时你不想通过恢复出厂设置的方式恢复Windows7系统,那么请参考该教程。(注意:对于Windows8系统,有一个独立的教程)

删除Ubuntu系统需要的步骤

  1. 通过修复Windows启动项来删除Grub
  2. 删除Ubuntu系统所在分区
  3. 扩展Windows系统分区

备份系统

在你开始之前,我建议为你的系统保留一个备份。

我建议你不要放弃备份的机会,但也不要使用微软自带的工具。

点击查看如何使用Macrinum Reflect备份你的驱动

如果Ubuntu中有你希望保存的数据,现在就登录进去然后将数据保存到外部硬盘驱动器,USB驱动器或者DVD中。

步骤1 - 删除Grub启动菜单

当你启动系统的时候你会看见一个与上图类似的菜单。

要想删除这个菜单直接进入Windows系统,你必须修复主引导记录。

要达到这个目的,我将向你展示如何创建一个系统恢复盘,如何从恢复盘中启动以及如何修复主引导记录。

按下“开始”按钮,搜索“备份和还原”。点击出现的图标。

将会打开一个与上图一样的窗口。

点击“创建系统修复光盘”。

你需要一个空的DVD盘

将空的DVD盘插入到驱动器中然后从下拉列表中选择你的DVD驱动器。

点击“创建光盘”。

将光盘留在电脑中并重启电脑,当出现从CD中启动的消息的时候按下键盘上的“回车”键。

屏幕上会出现“系统恢复选项”。

它会要求你选择你的键盘布局方式。

从列表中选择合适的选项,然后点击“下一步”。

下一个界面让你选择你想修复的操作系统。

或者你可以使用早先保存的系统镜像恢复系统。

选中上面的选项然后点击“下一步”。

现在你将会看到一个有修复硬盘和恢复您的系统等选项的界面。

你需要做的是修复主引导记录,而这可以通过领命提示符来完成。

点击“命令提示符”。

现在只需要把下面的命令输入到命令提示符中:

bootrec.exe /fixmbr

接下来将会出现一条消息,提示操作已经成功完成。

你现在就可以关闭命令提示符窗口了。

点击“重启”按钮然后取出DVD。

你的电脑就会直接启动进入Windows7系统了。

步骤 2 - 删除Ubuntu分区

要删除Ubuntu你需要使用Windows系统提供的“磁盘管理”工具。

按下“开始”按钮然后在搜索框中输入“创建和格式化磁盘分区”。将会出现一个与上图类似的窗口。

现在上面我的屏幕将不再和你的一模一样了,不过也不会相差太多。你会看到第0块磁盘有101MB的未分配空间,另外还有4个分区。

这101MB的空间是之前我安装Windows7时犯的一个错误。驱动器C是Windows7系统,下一个分区(46.57GB)是Ubuntu的根分区。287G的分区是/HOME分区,8G的分区是交换空间。

对于Windows系统来说,我们真正需要的只有驱动器C,所以剩下的是可以删掉的。

注意: 注意一下.你的磁盘上可能有恢复分区。 不要删除恢复分区。它们应该有专门的卷标,文件系统也许是NTFS或FAT32

在你希望删除的分区上单击右键(例如:root,home和swap分区),然后从弹出的菜单中点击“删除卷”。

(不要删除任何NTFS或者FAT32文件系统的分区!)

对于剩下的两个分区重复执行上面的操作。

分区被删除后你将会有很大的一片空闲区域。右键点击空闲区域然后选择删除。

现在你的磁盘将包含驱动器C和一大片没有分配的空间。

步骤 3 - 扩展Windows分区

最后一步是扩展Windows以便于将它再变成一个大的分区。

右键点击Windows分区(C盘),然后选择“扩展卷”。

当出现左面的窗口的时候点击“下一步”。

接下来是一个向导界面,在这里你可以选择扩展到那个盘,同时修改扩展的大小。

默认情况下,向导界面将显示它能从未分配区域中获取的最大的磁盘空间数。

接受默认的选项,然后点击“下一步”。

最后的界面展示了你在前一个界面中的选择结果。

点击“结束”进行磁盘扩展。

从上图中你可以看到,我的Windows分区占据了整个磁盘(除了我之前安装Windows的时候偶然创建的101MB的空间)。

总结

这就是全部内容。一个致力于Linux的网站刚刚向你展示了如何移除Linux然后用Windows7取而代之。

有任何疑问可以在下面评论区留言。


via: http://www.everydaylinuxuser.com/2015/01/how-to-recover-windows-7-and-delete.html

作者:Gary Newell 译者:Medusar 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出