'Dan Nanni ' 发布的文章

问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核。那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢?

在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做。如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树。你只需要安装一些与内核对应的头文件,这样就足够了。

只有在你需要生成一个定制的内核,而且内核源码中的一些内核默认设置要被你调整了的情况下,你才需要完整的内核源码树。

这里将会解答如何在Debian或Ubuntu的库中下载并安装完整树结构的内核源码。你可以在https://www.kernel.org/pub/linux/kernel/下载官方的内核源码,不过使用发行版软件仓库可以允许你下载包含补丁的内核源码。

在Debian上安装完整的内核源码

在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件。不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source。

$ sudo apt-get install dpkg-dev 

然后,运行以下命令下载完整的内核源码。

$ apt-get source linux-image-$(uname -r) 

伴随着完整内核源码(linux\_X.X.XX.orig.tar.xz)的还有一些可用的内核补丁(linux\_X.X.X+XXX.debian.tar.xz)和源码控制文件(linux\_XXXX.dsc),这些都将被下载并存储到当前目录。在.dsc文件中会指出如何给内核源码打补丁。

当下载完成,以上的命令将会自动调用工具dpkg-source将下载的内核源码解压到当前的目录中,与此同时根据.dsc文件来下补丁。

最终完整的内核源码树将会以"linux-X.X.XX"的形式呈现在当前目录中。

在Ubuntu上安装完整内核源码

如果你想安装完整内核源码的话,以上在Debian上的那一套做法在Ubuntu上仍然奏效。

在Ubuntu上还有另一套方法安装完整内核源码。事实上,你可以查一下由Canonical为Ubuntu不同发行版维护的内核源码树。

$ sudo apt-get install git
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release --codename | cut -f2).git

举个例子,如果你使用的是Ubuntu 14.04,以上的命令将会查看Git的"ubuntu-trusty"仓库中的代码。

一旦在你对Git仓库的查询结束后,使用以下的命令来安装用来访问生成内核源码树所需依赖的重要开发包。

$ sudo apt-get build-dep linux-image-$(uname -r) 

via: http://ask.xmodulo.com/install-full-kernel-source-debian-ubuntu.html

作者:Dan Nanni 译者:martin qi 校对:Caroline

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

2014年8月25日,是Linux的第23个生日。1991年8月25日,一位21岁的赫尔辛基大学的学生发布了举世闻名的新闻组(Usenet post),标志着现在世界著名的Linux正式诞生。

23年以后的现在,Linux已经无处不在,不仅仅被安装于终端用户的桌面系统,智能手机和嵌入式系统,甚至也被龙头企业用于他们的关键系统,比如美国海军的核潜艇(US Navy's nuclear submarines)和联邦航空局的空中管制系统(FAA's air traffic control)。Linux进入了无处不在的云计算时代,在云计算平台方面仍然保持着它的优势。

今天,让我来告诉大家一些你们可能不知道的Linux趣事和Linux历史。如果有什么要补充的,请在评论中分享出来。在这篇文章里,我将会用“linux”、“kernel”和“Linux kernel”来表示同一个意思。

1.关于linux是否是一个开源的操作系统这种争论一直是无休无止的。事实上,“Linux”操作系统的核心组件参照的是Linux kernel(内核)。而反派认为Linux不是一个纯粹的操作系统,因为他们认为仅仅一个内核(kernel),并不是一个操作系统,自由软件的推崇者认为最大的操作系统应叫做“GNU/Linux”,把功劳归于应得的人。(比如:GNU project)。另一方面,一些Linux的开发者和程序员认为,Linux拥有成为一个操作系统的资格,因为它实现了POSIX标准

2.从openhub网站的统计来看,绝大部分(95%)的Linux是用C语言写的。第二(2.8%)受欢迎的是汇编语言。毫无疑问,C语言比C++ 的更受欢迎,也表明了Linus对C++的立场。下面是Linus编程语言的分类。

3.在全世界,Linux已经被13,036个贡献者创建和修改。当然,贡献最多的还是Linus Torvalds自己。从Linux创建至今,他提交了20,000次以上的代码。下图显示了总提交次数最多的前十位Linux贡献者。

4.Linux的代码行(SLOC)超过了1700万行。估计整个代码库的花费大概是5,526人年,或者是超过300M(1M=10*1000万亿)美元,基于模型的基本估算法(basic COCOMO model)。

5.企业并不是单纯的Linux消费者。他们的员工也在积极参与Linux的开发。下图显示了参与Linux内核开发的企业员工2013年提交次数总和的前十位。他们包括Linux商业版发行者(Red Hat,SUSE),芯片/嵌入式系统制造商(Intel,Texas Instrument,wolfson),非盈利性组织(Linaro)和其它的IT公司(IBM,Samsung,Google)。

6.Linux的官方吉祥物是一个非常可爱的小企鹅“Tux”。第一次提出并决定用小企鹅作为Linux吉祥物/标志这个想法的是Linus自己。为什么是小企鹅呢?因为Linus本人很喜欢企鹅,尽管他曾经被一只凶猛的企鹅咬伤过,还导致他得了一场病。

7.一个Linux“发行版”包括Linux内核、支持GNU的组件和库、和一些第三方的应用。根据distrowatch网站的报告,现在总共有286个活跃的Linux发行版。其中最老的一个版本叫Slackware,它是从1993年正式发布出来的一个可用的版本。

8.Kernel.org是一个Linux源码的主要仓库,曾经在2011年8月被一个匿名的攻击者攻陷,攻击者打算篡改kernel.org的服务器。为了加强Linux内核访问策略的安全性,Linux基金会最近在Linux内核的Git官方托管的仓库上开启了双重认证。

9.Linux在500强超级计算机中的优势还在增加。截至2014年6月,世界范围内运算速度最快的计算机97%都是运行在Linux上面的。

10.太空监视(spacewatch),是亚利桑那大学月球与行星实验室的一个研究项目,在GNU/Linux和它的创造者们出现之后,用他们名字命名了几颗小行星(小行星9793 Torvalds,小行星9882 Stallman小行星9885 Linux小行星9965 GNU),以表彰他们把开源操作系统用于他们的小行星调查活动。

11.纵观Linux内核发展的近代史,版本从2.6到3.0有一个很大的跳跃。这个重编的版本号3实际上并不是意味着Linux内核有什么重大的构建,但却标志着Linux 20周年的一个里程碑。

12.在2000年的时候,乔帮主还在苹果。他当时就尝试雇佣Linus Torvalds,让他放弃Linux的开发,转而为“Unix最大的用户群工作”,这个项目后面发展成了MAC OS X。当时,Linus拒绝了乔帮主的邀请。

13.Linux 内核的重启函数reboot()需要两个神奇的数字,而这第二个数字来自Linus Torvalds和他3个女儿的出生日期。

14.虽然全世界都有Linux的很多粉丝,但是也仍然存在很多对Linux的批评(主要是针对桌面系统),如缺乏硬件支持,缺乏标准化,由于很短的升级和发布周期导致系统的不稳定等等。2014年Linux内核小组在LinuxCon大会上,当Linus被问及Linux的未来将何去何从,他表示“I still want the desktop”(我仍然希望桌面化)。

如果你还知道一些关于Linux的趣事,请在评论中与我们分享。


via: http://xmodulo.com/2014/08/interesting-facts-linux.html

作者:Dan Nanni 译者:barney-ro 校对:Caroline

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

对于花大量时间在Linux屏幕前的系统管理员和Linux爱好者来说,网络/本地电台上的音乐可以极大提高生产力,你们知道吗?不管你们相信与否,,在工作环境中有适当的声音,如音乐或者闲聊声包围,都可以提高我们的创造力。如果你喜欢在音乐环境中工作,这个教程也许会对你有用。我将会向你展示如何在命令行中收听潘多拉(Pandora)在线电台(LCTT译注:Pandora Internet Radio是一个仅为美国、澳大利亚和新西兰提供自动音乐推荐的系统。详细介绍Prandoea电台

正如你已经知道的,Pandora是最有名的在线电台服务之一,它包含无数的不同种类的免费音乐流,同时它还有一个强大的音乐推荐引擎。Pandora可以通过不同的方式访问,如:浏览器,桌面客户端或者手机Apps,开源社区还给出了另一种访问Pandora音乐服务的方法:Linux命令行。

pianobar是一个播放Pandora在线电台音乐的开源命令行音乐播放器。它有一个简单的终端接口,用于播放和管理音乐电台。同时还有其他包括歌曲评价,即将上线音乐列表,播放历史,自定义快捷键绑定,远程控制等功能。对于那些居住在不可访问Pandora音乐服务区域的用户(即美国、澳大利亚和新西兰以外的用户),Pianobar还配置了代理服务的支持。

在Linux中安装Pianobar

在Debian或者其他Debian的衍生品中,如Ubuntu或LinuxMint,Pianobar是一个已经编译好的软件包,因此安装Pianobar只是简单的输入如下命令:

$ sudo apt-get install pianobar

在Fedora中,Pianobar并不包含在基础的软件库中。因此,你需要通过源代码编译安装Pianobar。整个安装过程会有点麻烦,但是下面的教程将会实现Pianobar在Fedora系统中编译安装。该教程在Fedora20版本中测试通过。

首先,根据FFmpeg安装教程编译并安装FFmpeg。

然后,启用RPM Fusion源,并安装其他依赖软件:

 $ sudo yum install wget gcc-c++ pkgconfig gnutls-devel json-c-devel libgcrypt-devel make libao-devel faad2-devel libmad-devel libao faad2-libs 

编译并安装Pianobar

$ wget http://6xq.net/projects/pianobar/pianobar-2014.06.08.tar.bz2
$ tar xvfvj pianobar-2014.06.08.tar.bz2
$ cd pianobar-2014.06.08
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH make
$ sudo make install 

最后允许Paniobar加载安装在/usr/local/lib目录下的FFmpeg共享库,在/etc/ld.so.conf配置文件中添加下面一行:

/usr/local/lib

重载所有的共享库

$ sudo ldconfig

就这样,Pianobar已经在Fedora系统中安装完成。

在命令行中收听Pandora音乐

paniobar的基本用法是输入如下命令:

$ pianobar

该命令将会要求你登录到Pandora并从你的个性化电台列表中选择要收听的电台。在你选择电台后,音乐就开始自动播放。

按‘?’按键pianobar会列出一系列可用个命令,其中一些如下:

  • s: 更换电台
  • u: 查看即将上线音乐列表
  • h: 查看播放历史
  • n: 播放下一首
  • b: 收藏歌曲或艺术家
  • ( 或者 ): 减少或增加播放音量
  • S: 暂停播放
  • P: 恢复播放
  • V:为当前收听的歌曲或者艺术家创建一个电台
  • +或者-:查看上一首或者下一首歌曲
  • a:添加音乐到电台
  • q:退出pianobar

将Pianobar配置为自动安装

你可以在一个单独的配置文件中配置Pianobar的各项默认配置。例如:你可以将你的登录信息放到配置文件中,这样你就不用每次都要手动输入。下面是如何创建一个配置文件的示例:

$ mkdir -p ~/.config/pianobar
$ vi ~/.config/pianobar/config
# Example pianobar configuration file

# Pandora login info
user = your@email_address
password = plaintext_password

# Users who cannot access Pandora in their region can set a proxy.
control_proxy = http://user:password@host:port/

# Initial volume in dB: between -30 and +5
volume = 0

# Audio quality: high, medium or low
audio_quality = high

如需了解完整的配置选项,请参阅其man手册页。

$ man pianobar

远程控制Pianobar

Pianobar的另一个优秀特性是支持远程控制,你可以通过命令管道(FIFO)为Pianobar的一个运行实例发送命令。下面是远程控制Pianobar的示例:

首先在目录~/.config/pianobar下创建一个FIFO命令管道

$ mkfifo ~/.config/pianobar/ctl

然后运行Pianobar

现在,你可以通过使用echo命令发送任何的单字符命令键到Pianobar中,例如:播放下一首歌曲:

$ echo -n 'n' > ~/.config/pianobar/ctl

你可以很容易的将此配置扩展到远程计算机中,当Pianobar在主机X上运行,你可以从远程主机Y中通过SSH控制Pianobar,如下所示:

在主机Y中,运行:

$ ssh user@host_X "echo -n 'n' > ~/.config/pianobar/ctl"

当然,你希望为登录到主机X的SSH登录认证启用秘钥认证,这样你就不用每次都输入SSH密码。

当你想在树莓Pi上设置一个可以远程控制的在线电台播放器时,Pianobar的远程控制特性将会让你非常方便地实现该需求。

希望你和我一样喜欢Pianobar,若有什么想法,请在评论中告诉我。


via: http://xmodulo.com/2014/08/listen-to-internet-radio-command-line-linux.html

作者:Dan Nanni 译者:cvsher 校对:Caroline

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