Archive for the ‘0pen Source’ Category

「Linux Next」 初瞰

09.03.2010 by drivel - 0 Comment
Posted in 0pen Source, GNU/Linux

  今日到 Kernel.org 上闲逛,发现了一个新东西,叫做 「Linux Next」,这个新东东不但独立于其他的 version,还被放在了第一位 =,=,如图所示

  那么这个东西到底是做什么用的呢?根据 Sean Michael Kerner 的文章所述,随着 2.6 版本的内核越来越庞大,而且这种增加是随着时间一直在增长的,维护则变的越来越困难。这样,「Linux Next」就是为了解决这种情况的产物。

  Linux 内核的第二号人物,Andrew Morton 发现,如果让其他人去测试代码,而不是写这些代码的开发者,会出现一些问题。为此 Andrew Morton 创建了这个新项目,每天都会把所有 Linux 内核代码的所有分支汇集到一起,然后进行一次测试。唔,听起来似乎挺简单的,但是事实可真不是如此。

  送上两个关于 「Linux Next」 的文章,如果大家有兴趣继续了解的话。

http://kerneltrap.org/Linux/The_Usefulness_Of_Linux-Next
http://blog.internetnews.com/skerner/2008/02/-linux-next-begins-to-take-sha.html

Linux 流量分析的命令

09.02.2010 by drivel - 0 Comment
Posted in GNU/Linux, Net

唔,直接做成一个 alias 吧

列出所有 ESTABLISHED 状态的连接

  1. netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -25

列出所有连接状态的统计

  1. netstat -nta | fgrep ":" | cut -b 77-90 | sort | uniq -c

时隔两年,再回 Gentoo (三)

08.15.2010 by drivel - 0 Comment
Posted in 0pen Source, GNU/Linux

  如果没有什么问题,你现在应该可以看到邀请你登录的命令提示符了,使用 root 和刚才设置好的 root 密码登录。由于网络什么的都还没配置,因此需要手工来获取 IP 地址,我的网络是 DHCP 来的

  1. # dhcpd eth1

先装上我最爱的 VIM 和 eix 吧,如果遇到拿不准准确名字的包,可以用 eix 来查询

  1. # emerge -av vim eix
  2. # eix-update

后面就可以重新编译一次所有的东西了,因为 stage3 并不是完全在你的机器上编译的东西,因此可能会出现一些问题

  1. # emerge -uND world && emerge -e world && emerge --depclean && revdep-rebuild

配置一下网络

  1. vim /etc/conf.d/net

对于 DHCP 的配置方法,很简单

config_eth1=( “dhcp” )

以上都完成后,就让我们一起来编译 Gnome 吧,至少我是

  1. # emerge -av xorg-x11 gnome ibus ibus-pinyin

大概几百个包吧,编译完之后先配置下 .xinitrc

  1. # vim ~/.xinitrc

并且写入内容,第一行是启动 GNOME 为默认桌面,后面的则为 ibus 的配置

exec gnome-session
export XMODIFIERS=”@im=ibus”
export GTK_IM_MODULE=”ibus”
export QT_IM_MODULE=”xim”
ibus-daemon -d -x

我用的是 N 卡,所以编译 N 卡驱动的时候,如果遇到说内核有问题,就去检查一下这几个地方

Loadable module support —>
[*] Enable loadable module support

Processor and Features —>
[*] MTRR (Memory Type Range Register) support

Device Drivers —>
Character devices —>
< *> /dev/agpgart (AGP Support) —>

Device Drivers —>
Graphics Support —>
< *> Support for frame buffer devices —>
<> nVidia Framebuffer Support
<> nVidia Riva support

Device Drivers —>
Graphics Support —>
< *> Support for frame buffer devices —>
< *> Userspace VESA VGA graphics support

Device Drivers —>
Graphics Support —>
< *> Support for frame buffer devices —>
[*] VESA VGA graphics support

然后重新编译之。完成后使用编译的新内核重启,就可以用

  1. # nvidia-xconfig

来自动配置 /etc/X11/xorg.conf 了,随后手动加入

  1. # vim /etc/X11/xorg.conf

Section “ServerFlags”
Option “AutoAddDevices” “False”
Option “AllowMouseOpenFail” “True”
EndSection

否则你的鼠标和键盘很可能无法使用。这样就可以

  1. # startx

桌面启动了吧?

完全完

时隔两年,再回 Gentoo (二):http://anylinux.net/post/1637.html

时隔两年,再回 Gentoo (二)

08.15.2010 by drivel - 1 Comment
Posted in 0pen Source, GNU/Linux

  既然一个简单的 stage3 已经完成,那么就 chroot 进去好了

  1. $ sudo chroot /media/gentoo /bin/bash

唔,让我们首先改了 root 的密码吧

  1. # passwd

  对于 Gentoo 和 FreeBSD 来说,有一个配置文件非常的重要,就是 /etc/make.conf 了,这个文件配置着你编译时用的参数,你的系统配置情况,你的 USE。Stage3 的系统不包含 VIM,因此只能使用 nano 去编辑了

  1. # nano /etc/make.conf

  CHOST 为你的系统整体的构架情况,我的当然是 i686 了,CFLAGS 为你的 CPU 构架,GCC 可以根据这个参数,在编译的时候进行优化,我选择的是一个 native 选项,由 GCC 自己去选择。MAKEOPTS 表示编译时候的同时并发的进程数,一般选择物理内核数+1,我的是4核 CPU,因此选择的是5。USE 是针对一些软件会提供的相关特性,emerge 会在 ./configure 的时候,自动加上的一些 option,可以在随后使用 ufed 去选择。这里我使用了一个 ccache 的 FEATURES,可以保存编译时产生的文件,加速第二次编译。SYNC 和 GENTOO_MIRRORS 均为同步镜像,上文有提到,我选择的是厦门大学的镜像服务器。INPUT_DEVICES 很简单,就是鼠标和键盘而已,如果你用的是笔记本,还要再加上一个触摸板就可以了。VIDEO_CARDS 和 LINGUAS 就不用说了,从字面上很好理解。

CHOST=”i686-pc-linux-gnu”
CFLAGS=”-march=native -O2 -pipe”
CXXFLAGS=”${CFLAGS}”
MAKEOPTS=”-j5″
USE=”3dnow alac bash-completion caps cdrom chroot cjk cscope css curl
curlwrappers cvs device-mapper expat extras faac fat fbcon ffmpeg ftp
fuse gdu ggi gimp gnome gnutls gpg gpu gzip h224 h281 h323 imagemagick
java kdrive latex latex3 lzo md5 md5sum mmx mmxext mplayer network nvidia
policykit rar real reiserfs samba sha1 sha512 smp socks5 sound sqlite sse
sse2 sse3 sse4 subversion tex threads type3 unzip utils vim vim-syntax
wav webkit win32codecs wma xmlrpc zip -dso -extra”
FEATURES=”ccache”
CCACHE_DIR=”/var/tmp/ccache/”
CCACHE_SIZE=”5G”
SYNC=”rsync://mirrors.xmu.edu.cn/gentoo-portage”
GENTOO_MIRRORS=”http://mirrors.xmu.edu.cn/gentoo”
INPUT_DEVICES=”keyboard mouse”
LINGUAS=”en_US”
VIDEO_CARDS=”nvidia”

在以上全部配置完成后,就可以先同步一个 emerge 的 portage 数据了

  1. # env-update && source /etc/profile
  2. # emerge --sync

这样,你本机的 portage 数据就和服务器上的进行了同步,下面先编译一些系统需要和个人感觉需要先编译的东西

  1. # emerge pciutils usbutils gentoolkit ufed

其中
pciutils -> 查看相关 PCI 信息
usbutils -> USB 相关信息
gentoolkit -> Gentoo 的一些工具集
ufed -> USE 的图形化选择界面

  点下回车的之后,就会发现和 FreeBSD 一样,emerge 就自己去下载代码,./configure,make,make install 去了,完全自动喔。之后就可以进行历史耗时最长的一项工作了,编译一个可以启动的内核。

  1. # emerge gentoo-sources
  2. # cd /usr/src/linux
  3. # make menuconfig

  如何配置就不说了,这里是我的配置信息。配置完成之后,则可以 make -j5 之,注意因为不是 emerge 的,所以要自己手动加上 -jX 的选项,否则可是要多花很长时间的,虽然这样花的时间也不短。完成之后,则可以

  1. # make modules_install

来完成模块的安装,然后则可以手动拷贝内核到 /boot 里

  1. # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.34-gentoo-r1
  2. # cp .config /boot/config-2.6.34-gentoo-r1

  Ubuntu 10.04 默认使用的 Boot Manager 是 GRUB2,和 GRUB 的配置方法不是太一样,不过看看 manual 之后,就不是什么问题了

  1. # /boot/grub/grub.cfg

menuentry “Gentoo (on /dev/sda8)” {
insmod reiserfs
set root=’(hd0,8)’
search –no-floppy –fs-uuid –set e806ba28-bb68-4c05-a107-6600327a1578
linux /vmlinuz-2.6.34-gentoo-r1 raid=noautodetect root=/dev/sda8 ro quite splash
}

赶快重启去看看内核能启动起来不能吧 ^^(注意,如果你的网络是 DHCP 自动获取的,那么请在重启之前,完成 emerge -av dhcpd 或者 emerge -av dhcp,否则重启之后你会无法获取 IP 地址)

时隔两年,再回 Gentoo (一):http://anylinux.net/post/1617.html
时隔两年,再回 Gentoo (三):http://anylinux.net/post/1649.html

时隔两年,再回 Gentoo (一)

08.14.2010 by drivel - 2 Comments
Posted in 0pen Source, GNU/Linux

  两年前,第一次接触到了 Gentoo,并且玩的很开心。当时还是一台 Pentium M 1.73GB 的笔记本,但是咱有的是时间啊,扔一边慢慢编译,然后用学校的台式机(大误)。等编译好了就玩笔记本,然后让学校的台式机编译去(再次大误)。两年过去了,没有再玩过 Gentoo,但是心中还是有些痒痒的感觉。LFS 太费事,懒得折腾,还是折腾 Gentoo 吧。

  这次宿主系统是 Ubuntu 10.04。嗯。

  首先捏,当然是要去下载 portage 和 stage3 的包了,在这里可以查看镜像列表(http://www.gentoo.org/main/en/mirrors2.xml),我是教育网,因此选择的自然是厦门大学的镜像服务器咯。厦门大学的镜像服务器同时支持 IPv4 和 IPv6。

      IPv4
  • http://mirrors.xmu.edu.cn/gentoo/
  • ftp://mirrors.xmu.edu.cn/gentoo
    1. IPv6
  • http://mirrors.xmu6.edu.cn/gentoo/
  • ftp://mirrors.xmu6.edu.cn/gentoo

下载

/gentoo/releases/x86/current-stage3/stage3-i686-20100622.tar.bz2

/gentoo/releases/snapshots/current/portage-latest.tar.bz2

我的环境
宿主系统:Ubuntu 10.04
Boot 分区:/dev/sda7
root 分区:/dev/sda6
Gentoo root 分区:/dev/sda8
以上分区均为 reiserfs

于是乎,先挂载上 Gentoo 的分区

  1. $ sudo mkdir /media/gentoo
  2. $ sudo mount /dev/sda8 /media/gentoo

然后创建 proc 和 dev 文件夹并且将宿主系统的 proc 和 dev 绑定上去

  1. $ sudo mkdir /media/gentoo/proc
  2. $ sudo mkdir /media/gentoo/dev
  3. $ sudo mount -t proc none /media/gentoo/proc
  4. $ sudo mount -o bind /dev/ /media/gentoo/dev

之后就把前面下载的两个 tar 包拷贝到 /media/gentoo/
解压缩之

  1. $ sudo tar xvf stage3-i686-20100622.tar.bz2
  2. $ sudo tar xvf portage-latest.tar.bz2 -C /usr

这样就可以从 stage3 开始工作了,相对于 LFS,你已经拥有了一个包管理器、一个 GCC 和 GLibC;而且不用编译3次 toolchain 和2次 GCC。

时隔两年,再回 Gentoo (二):http://anylinux.net/post/1637.html