Wednesday, December 29, 2004

debian的安装

前段时间重新格盘,又装了一遍debian,发现了很多问题,现在一一记录如下: 1,debian-installer 我用的是debian-installer candidate 1。首先先下载boot.img,root.img,然后在win下用软件将它们写入软盘。开机重启就可以安装了,默认的内核是2.4.26,据说可以用 2.6的内核但我试了一下,没出来。总的来说debian-installer做的还不错,中文显示也出来的,就是字体有时侯大小不一,比较难看。安装过程中需要注意的是每一屏结束的时候要回车,不要去按那个返回的按钮,否则的话有些东西你就看不见了。我用的是网络安装,一切都很顺利。 2,x-windows apt-get install x-windows-core,就可以了。要注意的是我在安装中发现在配置xserver-xfree86时有些东西没出来,我是在安装完了以后自己又重新配的:dpkg-reconfigure xserver-xfree86。用的是freetype,不用xtt,选择的是vesa模块。如果选择nv,则x-windows启动不起来。 3,dpkg dpkg -l 列出安装的软件 dpkg -L foo 列出包foo.deb安装的文件位置 dpkg -s foo 列出foo的状态 dpkg -S foo 查找文件foo属于那个包 4,nvidia 安装nvidia很简单,注意的是要现下载nvidia-kernel-source,编译安装好了以后再安装其它的包。需要注意的地方是安装完了以后要修改/etc/X11/XF86Config-4,其中Module要注释调GLcore dri,Device中Driver是nvidia 。 5,鼠标 滚轮鼠标要选择ImPS/2。如果用的是2.6的内核,重启之后X起不来,并且86xfree的log显示是鼠标出的问题,不妨insmod psmouse mousedev,然后在/etc/modules 中加入psmouse,mousedev。 6,2.6的内核 安装2.6的内核也很简单,直接apt-get 就可以了。需要注意的是nvidia 的版本要和内核一致,同时也要注意鼠标的设置。具体请参考usr/share/doc/kernel-image-2.6.7-1- 686/README.Debian.1st.gz 7,mplayer ustc,tsinghua 都有uo版的mplayer,直接安装就可以了。当然我们还需要做一些小小的配置。首先将/etc/mplayer 下的所有文件都拷到~/.mplayer其中还要把mplayer-conf改名为config。 ontop=yes;stop-xscreensaver=yes;vo=xv 8,汉化 建立目录~/.fonts,然后将适合的字体放进去就可以了。apt-get install locales,安装完了以后dpkg-reconfigure locales。 9,java ustc有blackdown 的java,apt-get install j2re 就安装上了,然后做个连接ln -s /usr/lib/j2se/1.4/jre/ /usr/java

debian下的alsa

前段时间重装机器,用的是debian提供的2.6内核,装了alsa-base后发现alsa无法发声,但oss却工作正常。折腾了大半天也没搞明白是怎么回事,无奈之下只好使用oss。今天在版上看到有人讨论,才知道oss不能和alsa共存。而我的问题很可能就是系统在启动的时候预先加载了 oss的驱动。后来用google查了一下,在下面这个网址http://www.sonic.net/~rknop/linux/debian_alsa.html 发现问题果然如此。原来debian中自动侦探硬件的程序discover在检测到声卡后会自动加载oss,只要不让它自动加载就可以了。具体做法就是在/etc/discover.conf中加上一句skip i810_audio 。然后重启就能使用alsa了,不过要注意的是alsa默认是静音,需要自己手动将声音调大。 版上有人说还需要在/etc/hotplug/blacklist中加上i810_audio,我发现不需要这么做。因为安装alsa时,系统在/etc/hotplug/blacklist.d/alsa*中自动添加这些内容。 版上有人说还需要更改/etc/modutils/alsa-base中的相关内容,具体就是将above改为alias。 http://wiki.debian.org.tw/index.php/HardwareIdentification 这个网址讲述了debian中硬件识别的相关知识。

用Mplayer看mkv和DVD时字幕的问题

前两天下了完美版的friends,是mkv格式的。开始看时居然没有字幕,后来用google搜之,发现是参数没设对,播放时需要加上-sid这个参数 −sid (also see −slang option) Turns on DVD subtitle displaying. Also, you MUST specify a number which corresponds to a DVD subtitle language (0−31). For the list of available subtitles, use with the −v option and look at the output. 对于完美版的friends来说 -sid 1 英文字幕 -sid 0 中文字幕。如果中文字幕乱码,需要加上

Vim Tips

:e foo.txt 打开新文件 :e # or ^6 在两个文件之间切换 f(t)x 右至(靠)字符x df(t)x 删除从光标到字符x之间的部分。y也相同 ; 原方向继续执行f,t,F,T J 合并两行 = 重新格式化,需要用V选中区域 s和R的区别在于s删除字符,然后在当前位置插入若干字符,而R则是替换字符 大多数命令都有如下格式: <数字> 命令 <数字> <范围> "ay 将复制的内容放入a这个缓冲区 ggyG 复制全部内容

vsftpd的安装

vsftpd是一个很不错的ftp服务器软件,它的名字(very security ftpd)就告诉我们它的突出特点就是安全性。 debian下安装vsftpd十分简单,apt-get install vsfpd就可以了。它的默认的配置文件是/etc/vsftpd。网上有很多配置vsftpd的文章,而我认为只要仔细看一下/usr/share/doc/vsftpd/EXAMPLE下的例子就可以了。下面我就谈谈自己在配置中认为是重要的地方 1,如果想配置虚拟用户,只要将 guest_enable=YES guest_username=ftp 打开就可以了。关键问题在于虚拟用户的pam 认证,我每次都是在这里出问题。首先请使用db3而不要使用db4.x的工具来生成相应数据文件,其次生成的文件名是vsftpd_login.db,而 pam认证中只需指明文件名是vsftpd_login就可以了。还有/etc/pam.d/vsftpd这个文件是用于local user登陆的,想要使用虚拟用户这个文件中应该只包含这两句话 auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login 关于pam配置文章可以参考书籍。 2,在默认情况下,虚拟用户有anonymous用户的权限。也就是说想让虚拟用户具有上载的权限,就必须打开anon_upload_enable=YES选项。其次默认情况下anonymous只能下载world readable权限的文件(也就是说所有人都能read),如果设置 anon_world_readable_only=NO 则能下载所有类型的文件 3,xinetd和inetd。如果想让inetd来启动vsftpd,首先在/etc/servers这个文件中加入 vsftpd 3216/tcp 即能设定vsftpd使用端口3216。然后在inetd.conf中加入下面一句话就行了 vsftpd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd 如果想使用xinetd,则在/etc/xinetd下建一个文件vsftpd,然后填入下列内容即可 service vsftpd { disable = no socket_type = stream protocal = tcp type = UNLISTED wait = no user = root server = /usr/sbin/vsftpd port = 3216 per_source = 2 instances = 20 only_from = 166.111.0.0 219.224.0.0/16 127.0.0.1 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST } 其中如果是/etc/service中没有列出服务,则type,protocal port必须指定。 需要注意的是219.224.0.0/16是用cidr方式来表示子网掩码,它说明在32的ip地址中有16是用来表示网络的,有32-26=16位是用来表示主机的。也就是说166.111.168.0/255.255.255.0和166.111.168.0/24是一致的。

Linux在多媒体上和windows的差距还是很大的

最近上Yahoo.com发现它的music栏目很不错。Radiocast能够免费听800首歌曲,不过是随机的,不是你想听什么就能听什么。浏览了一下,发现有Enya的歌曲。不过不足之处在于对mozilla浏览器的支持不是很好。由于内置默认的流媒体播放器是media player,有时候在mozilla里是不能使用的。 从yahoo,apple的例子可以看出,下个阶段互联网,操作系统的发展重点应该在于娱乐方面。而Linux中缺乏的也正是这点。一个很明显的例子就是在Linux下用户可能无法使用Yahoo提供的免费在线听歌的服务。对于Linux来说,目前最缺乏的就是一个好的媒体播放器。虽然mplayer很强大,但由于它缺乏一个很好的gui,以及对流媒体的支持上存在一些问题。所以Linux想在娱乐上争取用户还有相当长的路程。 其实和windows下的播放器相比,mplayer的播放功能是相当强大的,但问题在于它的傻瓜化程度还不够,和浏览器的耦合程度还不够深入。如果mozilla的开发人员能和mplayer联起手来,那对于那些Linux增强自己的娱乐功能是大有帮助的。 不明白为什么quicktime没有linux版?

Wednesday, June 16, 2004

gnuplot

gnuplot是一个命令行互交方式的多平台的绘图软件,它支持的平台有windows,dos,os/2,linux,unix。它能绘制2d,3d等多种类型的图形。 1,绘制2d图像 gnuplot能绘制各种2d图像。比如下面的命令能绘制y=sin(x)的图像 plot sin(x) 如果你在linux平台下,这时你应该能看见一个跳出的图形窗口。如果你在windos下,通过cygwin来使用gnuplot,那么你也许什么也看不见。不要着急,这是因为你还需要设置一下 set terminal postscript set ouput "2d.ps" 然后重新执行plot sin(x)。这时在当前目录下你应该能够看到2d.ps这个文件,通过GSview你就能看到所绘制的图形了。 看到这你也许会感到有些不耐烦,怎么这么麻烦。开始我也觉的这很麻烦,但当我多次使用了之后,我就发现gnuplot的可爱之处了。首先,通过set term命令,你能指定多种输出格式ps,png,jpg,pdf。其次,当你通过很大的文件来绘图时,像我,要通过一个77M的文件来绘制我计算的结果,如果你使用的是tecplot,那么当你打开tecplot之后,你最好什么也别干,否则的话,tecplot很可能会失去响应,然后你不得不再重新打开它,其次当你在绘图完成后想做点修改的话,你很可能要做一次修改,等着tecplot重新绘图,然后下一个修改,再重新绘图。而gnuplot则不是这样,它绘图的时候你你可以做你想做的事情,比如上bbs,写点东西了。你要是想修改一些地方,你可以在配置文件里把它们都修改完,然后灾绘图。 罗里罗嗦的说了这么多,还是回到正题吧。set terminal 可以简写为set term,gnuplot支持很多种输出格式,具体的你可以看它的帮助。在linux下,默认的term是x11也就说,它会在你绘图的时候跳出一个x窗口,显示图形。如果你想要保存图形,你就要set term,比如set term png这时再次绘制图形时就会输出ps格式的文件,文件名由set output指定。 plot命令用来绘制最简单的2d图形。plot function可以根据函数来绘制2d图形,例如 f(x) =sin(x)+x**2+3*x/4 plot f(x) 上面的命令将绘制函数f(x)。gnuplot内置了很多函数,C语言支持的函数它基本上都支持,想要查看gnuplot支持什么函数和相关的支持的一元,二元,三元操作符,可以查看它的帮助。顺便说一句,在gnuplot种5/2=2不是2.5,想要得到2.5你应该写成5.0/2的格式,这和 fortran,C语言有些类似,或者说你可以使用C、fortran中定义表达式的方式。 gnuplot也可以根据数据文件来绘制图形,对于2d图形来说,你只需要将数据用空格或者其他分隔符格开,比如有下面这样的一个数据文件。 test.dat 1 2 3 5 2.3 3.5 4.4 0.5 2.6 3.5 2.6 2.8 5.8 6.9 4.5 2.6 你可以使用 plot "test.dat" 来绘制xy图形,plot将默认用第一列做x值,第二列做y值。 plot "test.dat" using 2:3 将使用第二列做x值,第三列做y值。 plot "test.dat" using 2:3,sin(x) 将同时绘制sin(x)和test.dat