FreeBSD入门③


FreeBSD入门③
2010年08月02日
  原帖:http://ewangsoft.blog.163.com/blog/static/77215582 20096269174637/
  ------------------------
  51、每个进程用来标识的一个编号就叫进程 ID, 或叫 PID。 而且,就像文件那样,每个进程也有其所属用户和所属群体。所属用户和所属群体使用在这方面:确定这个进程可以打开哪些文件和哪些设备,从而在初期使用文件 的权限。 多数的进程都有一个父进程, 而进程是依靠父进程来启动的。例如,假如您把命令输入到shell里那shell是一个进程,而您运行的各个命令同样是进程,那么,shell就是您各个 运行进程的父进程。 有一个例外的进程叫init(8)。 init始终是首个进程,所以他的PID始终是1,init在FreeBSD起动时由内核自动启动。
  52、有两个查看进程的命令:ps和top。ps命令作用是观察当前运行进程的状态、显示他们的PID、使用了多少内存、它们启动的命令行。而 top命令则是显示所有运行进程,并在以秒计的短时内更新数据。
  53、ps(1)支持使用各种选项去改变显示出来的内容,最有用的一个就是auxww。 a选项显示出所有运行进程的内容, 而不仅仅是您的进程。u选项显示出进程所归属的用户名字以及内存使用,x 选项显示出后台进程。而 ww 选项表示为 ps(1) 把每个进程的整个命令行全部显示完, 而不是由于命令行过长就把它从屏幕上截去。
  54、top(1) 每两秒自动刷新一次,您可以用-s改变刷新的秒数。
  55、有时可能会需要与守护进程进行通讯。 而信号则是其中的一种通讯机制。可以发送信号给守护进程 (或相关的另一些进程) 来与它进行通信,不同的信号都有自己的数字编号──其中一些有特殊的含义,其它的则可以被应用程序自己进行解释, 一般来说,应用程序的文档会告诉哪些信号会被如何处理。您只能给所属于您的进程发信号,假如您给其他人的进程发信号, 进程就会用kill(1) 或 kill(2)权限进行拒绝。当然,root 用户会例外,它能把各种信号发送给每个进程。
  56、有两个信号可以停止进程:SIGTERM 和 SIGKILL。 SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下, 假如进程正在进行作业而且不能中断,那么进程可以忽略这个 SIGTERM信号。对于SIGKILL信号,进程是不能忽略的。 这是一个 '"我不管您在做什么,立刻停止"'的信号。 假如您发送SIGKILL信号给进程, FreeBSD就将进程停止在那里。
  57、几乎所有的守护进程在编写时,都会指定对SIGHUP 信号进行响应从而重读配置文件。 所以, 最好的方法,就不是杀死并重启 httpd, 而是发一个 SIGHUP 信号给它。因为在这方面没有一个标准,不同的守护进程有不同的用法,所以不了解时应读一下守护进程的文档。
  58、示例:发送一个信号给inetd:1)寻找您要发送信号的进程ID,可以用ps(1) 加 grep(1)来完成:ps -ax | grep inetd;2)使用 kill(1) 去发送信号。因为 inetd(8) 是由 root启动的, 您必须使用 su(1) 去 变为 root 用户:# /bin/kill -s HUP 198
  59、可以在命令行上加一个$字符在变量之前从而取得环境变量。举个例子,用echo $TERM 就会显示出$TERM的设定值, 其实就是shell取得$TERM并传给echo来显示的。shell里有许多特别的字符代表着特别的资料,我们把叫做meta-characters。 最常用的就是*字符,它可代表文件名的任何字符。这些特别字符应用到文件名全域方面。假如,输入 echo *和输入 ls的效果是相同的,其实就是 shell 取得了全部符合 *的文件名,并传给 echo 在命令行下显示出来。为了防止shell去分析这些特别字符, 我们可在它之前加一个 \字符去说明它只是普通字符。 echo $TERM就会显示出您的终端情况,而 echo \$TERM 就会显示出 $TERM 这几个字。
  变量 说明 
  USER 当前登录进入的用户名。 
  PATH 搜索程序路径,以两点的冒号分隔开。 
  DISPLAY 假如有这个变量的话,就是X11显示器的网络名称。 
  SHELL 当前所用的shell。 
  TERM 用户终端的名字,通常用在确定终端的能力。 
  TERMCAP 各种终端功能所用终端分离编码的基本数据项目。 
  OSTYPE 操作系统类型,默认是FreeBSD。 
  MACHTYPE 是指系统上运行的CPU体系结构。 
  EDITOR 用户首选的文本编辑器。 
  PAGER 用户首选的文本页面调度程序。 
  MANPATH 搜索联机手册路径,以两点的冒号分隔开。 
  不同的shell设置环境变量也不相同。举个例子, 在如tcsh 和 csh这样的C-Style shell, 您必须使用setenv去设置环境变量。 而在如sh和bash这样的Bourne shell, 您必须使用export去设置当前环境变量。 再举个例子,要去设置或改变EDITOR环境变量, 在csh或tcsh下将EDITOR设为 /usr/local/bin/emacs:
  % setenv EDITOR /usr/local/bin/emacs,而在Bourne shell下,则是:% export EDITOR="/usr/local/bin/emacs"
  60、改变Shell的最简单方法是使用 chsh 命令。 执行 chsh 将根据您设定的EDITOR 环境变量进入到那个编辑器,假如没有设定,就会进入vi编辑器。请改变"Shell:"这行对应值。您可使用chsh 的-s选项,这样就能设置您的shell却又不用编辑器。假如您想把shell改为bash 可用下面的技巧:% chsh -s /usr/local/bin/bash。注意: 您使用的shells必须在/etc/shells 文件里列出。 假如您从 ports里装一个shell, 那就不用做这步了。假如您手工装一个shell,那就要手工添加进去。假如您手工把 bash装到 /usr/local/bin里,您还要进行这一步:# echo "/usr/local/bin/bash" >> /etc/shells,然后运行chsh。
  61、很多需要修改文件或打字输入的应用程序都会自动打开一个文本编辑器。更改默认使用的编辑器, 请设置 EDITOR 环境变量。不同的shell设置环境变量也不相同。举个例子,在如tcsh 和 csh这样的C-Style shell, 您必须使用setenv去设置环境变量。 而在如sh和bash这样的Bourne shell, 您必须使用export去设置当前环境变量。 再举个例子,要去设置或改变EDITOR环境变量, 在csh或tcsh下将EDITOR设为: /usr/local/bin/emacs:% setenv EDITOR /usr/local/bin/emacs;在Bourne shell下是:% export EDITOR="/usr/local/bin/emacs"。
  62、FreeBSD 启动过程中,大多数的设备都能探测到并显示出来, 您也可以查阅/var/run/dmesg.boot, 引导时所有信息都在里面,也可以执行dmesg命令查看。在UNIX??操作系统里,大多数设备存在的特殊访问文件就是叫做设备节点,他们都定位在/dev 目录里。当在系统中添加新设备或将附加设备的支持编译进内核之后,都必须为其建立设备节点。
  63、当不知道一个命令的名字时,可以使用 man 的搜寻功能,它会在手册的介绍部份找寻到要搜寻的关键字,它的选项是 -k:如:man -k mail。man会把介绍里含有"mail"关键字的命令列出来,这和apropos命令的功能是相同的。使用man -f *或whatis *可获得命令的用途说明。
  64、package 在编译时通常使用比较保守的选项,这是为了保证它们能够运行在大多数的系统上。通过从 port 安装,可以细微调整编译选项来产生适合于处理器的代码 (针对于 Pentium 4 或 AMD 的 Athlon CPU)。一些软件包已经把与它们相关的能做和不能做的事情的选项都编译进去了。 例如, Apache 可能就配置了很多的选项。从 port 中安装时,不一定要接受默认的选项,可以自己来设置。要自己对软件打补丁,就需要有源代码。
  65、安装任何应用程序之前, 应首先检查 http://vuxml.freebsd.org/ 上是否有关于您所安装的应用程序的安全问题报告。也可以安装 ports-mgmt/portaudit,它能够自动地检查已经安装的应用程序的漏洞; 此外,在您安装程序之前它也会首先检查是否存在已知的漏洞。 另外, 您也可以使用 portaudit -F -a 这个命令在安装了某个软件包之后作出检查。
  66、FreeBSD站点上有一个可以搜索到的当前所有可用的应用程序列表,在http://www.FreeBSD.org/ports/ 。Dan Langille 维护着网站 FreshPorts,在 http://www.FreshPorts.org/ 。 FreshPort时刻 "追踪" 着在 ports 中应用程序的变化。当有任何程序被升级时,他们就会发 email 提醒您。如果不知道想要的应用程序的名字,可以通过 (http://www.freshmeat.net/ ) 网站来查找。
  67、如果知道一个port的准确名字, 但不知道它在哪个类别中,可以使用 whereis(1) 命令来查找。输入 whereis file, file 就是您想安装的程序名字。 如果系统找到了它, 您将被告知在它在哪里。可以使用 echo(1) 语句来查找某个 port 是否存在于 ports 树中。 例如:# echo /usr/ports/*/*lsof*。可以使用ports collecton 内嵌的搜索机制来搜索程序。要使用这个搜索, 需要先到 /usr/ports目录下面,然后运行make search name=program-name,program-name 就是您想寻找的程序名字。 举个例子,如果您想找 lsof:# cd /usr/ports # make search name=lsof。还可以用make search key=string,string就是您想搜索的部分内容。 它将搜索port的名字、注释, 描述和从属关系,如果您不知道您想搜索的程序名字,可以利用它搜索一些关键主题来找到您需要的。上面说的这些方法, 搜索的关键字不区分大小写。
  68、可以用 pkg_add(1) 这个命令从本地文件或网络上的服务器来安装一个 FreeBSD 软件包。如果没有本地package的安装盘 (如 FreeBSD CD-ROM), 可以执行 pkg_add(1) 命令并加上 -r 选项。 这将迫使程序自动决定目标文件的正确格式和版本,然后自动从一个 FTP 站点寻找和安装 package:# pkg_add -r lsof。
  69、如果指定 FreeBSD package 的镜像站点, 替换主站点, 就必须相应地设置 PACKAGESITE 这个环境变量(setenv PACKAGESITE url), 覆盖原来的设置。 pkg_add(1) 使用 fetch(3) 下载文件,可以使用多种环境变量, 包含 FTP_PASSIVE_MODE、 FTP_PROXY,和 FTP_PASSWORD。 如果您使用 FTP/HTTP 代理或在防火墙后面, 您可能需要设置这些环境变量。 详细的列表请参考 fetch(3)。上述例子中用 lsof 替代了 lsof-4.56.4。当使用远程安装 Package 的时候软件名字不需要包含版本号。 pkg_add(1) 将自动的找到这个软件最新的版本。
  70、pkg_info(1) 是用于列出已安装的所有软件包列表和描述的程序。pkg_version(1)是一个用来统计所有安装的软件包版本的工具。它可以用来比较本地 package 的版本与 ports 目录中的当前版本是否一致。使用pkg_delete(1)删除先前安装的软件package。pkg_delete(1) 需要提供完整的包名; 如果只是指定了类似 xchat 而不是 xchat-1.7.1 这样的名字, 则它将拒绝执行操作。不过,可以使用 pkg_version(1) 来了解安装的 package 的版本。 除此之外, 也可以使用通配符:# pkg_delete xchat\*,这时, 所有名字以 xchat 开头的 package 都会被删掉。
  71、所有已安装的 package 信息都保存在 /var/db/pkg 目录下。安装文件的列表和每个 package 的内容和描述都能在这个目录的相关文件中找到。
  72、在您能使用 ports 之前, 您必须先获得 Ports Collection ── 本质上是 /usr/ports 目录下的一堆 Makefile、补丁和描述文件。
  73、在您安装 FreeBSD 系统的时候, sysinstall 会询问您是否需要安装 Ports Collection。 如果您选择 no, 那您可以用下面的指令来安装 Ports Collection:(1)CVSup 方法:保持本地 Ports 套件最新的一种快捷的方法,使用 CVSup 协议来进行更新。注意:在 FreeBSD 系统里对 CVSup 的实现叫作 csup。 它首次出现在 FreeBSD 6.2中。 对于旧版本的 FreeBSD 用户而言可以通过 port/package 安装 net/csup。在首次运行 csup 之前, 务必确认 /usr/ports 是空的! 如果您之前已经用其他地方安装了一份 Ports 套件,则 csup 可能不会自动删除已经在上游服务器上删除掉的补丁文件。1.运行 csup:# csup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile,将cvsup.FreeBSD.org 改为离您较近的 CVSup 服务器。 请参见 CVSup 镜像 (第 A.6.7 节) 中的镜像站点完整列表。注意: 有时可能希望使用自己的 ports-supfile, 比如说,不想每次都通过命令行来指定所使用的 CVSup 服务器,可以进行如下操作:以 root 身份将 /usr/share/examples/cvsup/ports-supfile 复制到新的位置,例如 /root 或您的主目录;编辑 ports-supfile;把 CHANGE_THIS.FreeBSD.org 修改成离您较近的 CVSup 服务器。 可以参考 CVSup 镜像 (第 A.6.7 节) 中的镜像站点完整列表;运行 csup:# csup -L 2 /root/ports-supfile。2.运行 csup(1) 命令将下载最近所进行的改动, 并将它们应用到您的 Ports Collection 上,不过这一过程并不重新联编您系统上的 ports。(2)Portsnap 方式:1.下载压缩的 Ports 套件快照到 /var/db/portsnap。您可以根据需要在这之后关闭 Internet 连接:# portsnap fetch;2.假如是首次运行 Portsnap,则需要将快照释放到 /usr/ports:# portsnap extract。如果已经有装好的 /usr/ports 而只想更新,则应执行下面的命令:# portsnap update。让上述过程连续的运行:# portsnap fetch update(3)Sysinstall 方式:这种方法需要使用 sysinstall 从安装介质上安装 Ports 套件。注意,安装的将是发布发行版时的旧版 Ports 套件。1.以 root 身份运行 sysinstall (对 FreeBSD 5.2 之前的版本,应执行 /stand/sysinstall):# sysinstall;2.用光标向下选择 Configure;3.选择 Distributions;4.选择 ports;5.选择 Exit;6.选择所希望的安装介质, 例如 CDROM、 FTP, 等等;7.选择 Exit;8.按 X 退出 sysinstall。
  74、port skeleton 是让一个程序在 FreeBSD 上简洁地编译并安装的所需文件的最小组合。 每个 port skeleton 包含:一个 Makefile。 Makefile 包括好几个部分, 指出应用程序是如何编译以及将被安装在系统的哪些地方。一个 distinfo 文件。这个文件包括这些信息:这些文件用来对下载后的文件校验和进行检查 (使用 md5(1) 和 sha256(1)),来确保在下载过程中文件没有被破坏。一个 files 目录。 这个目录包括在 FreeBSD 系统上编译和安装程序需要用到的补丁。 这些补丁基本上都是些小文件,指出特定文件作了哪些修正。 它们都是纯文本的的格式,基本上是这样的 "删除第 10 行" 或 "将第 26 行改为这样 ...", 补丁文件也被称作 "diffs", 他们由 diff(1) 程序生成。一个 pkg-descr 文件。这是一个提供更多细节,有软件的多行描述。一个 pkg-plist 文件。 这是即将被安装的所有文件的列表。它告诉 ports 系统在卸载时需要删除哪些文件。
  75、Ports 套件假定您有可用的 Internet 连接。如果您没有,则需要将 distfile (ports中程序源代码标示文件叫 distfile)手工放到 /usr/ports/distfiles 中。进入要安装 port 的目录:# cd /usr/ports/sysutils/lsof,进入了 lsof 的目录,您将会看到这个port的结构。下一步就是 make,或说 "联编" 这个 port。 只需在命令行简单地输入 make 命令就可轻松完成这一工作;一旦编译完成,您就会回到命令行。 下一步安装 port, 要安装它只需要在 make 命令后跟上一个单词 install 即可:# make install;删除工作目录,这个目录中包含了全部在编译过程中用到的临时文件,这些文件不仅会占用宝贵的磁盘空间, 而且可能会给升级新版本的 port 时带来麻烦:# make clean。使用 make install clean 可以一步完成 make、 make install 和 make clean 这三个分开的步骤的工作。
  76、一些 shell 会缓存环境变量 PATH 中指定的目录里的可执行文件, 以加速查找它们的速度。 如果您使用的是这类 shell, 在安装 port 之后可能需要执行 rehash 命令,然后才能运行新安装的那些命令。 这个命令可以在类似 tcsh 的 shell 中使用。 对于类似 sh 的 shell, 对应的命令是 hash -r。
  77、ports 系统使用 fetch(1) 去下载文件,它有很多可以设置的环境变量,其中包括 FTP_PASSIVE_MODE、 FTP_PROXY,和 FTP_PASSWORD。如果您在防火墙之后,或使用 FTP/HTTP代理, 您就可能需要设置它们。当使用者不是所有时间都能连接上网络, 则可以利用 make fetch。 您只要在顶层目录 (/usr/ports) 下运行这个命令, 所有需要的文件都将被下载。这个命令也同样可以在下级类别目录中使用,例如: /usr/ports/net。 注意, 如果一个port有一些依赖的库或其他 port,它将不下载这些依赖的 port 的 distfile 文件,如果您想获取所有依赖的 port 的所有 distfile,请用 fetch-recursive 命令代替 fetch命令。
  78、用户可能需要在除了 MASTER_SITES 以外的一个站点(本地已经下载下来的文件)去获得一个文件包。 可以用以下命令不使用 MASTER_SITES:# cd /usr/ports/directory;# make MASTER_SITE_OVERRIDE= \ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles / fetch。在这个例子中,把 MASTER_SITES这个选项改为了 ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ 。
  79、有时, 使用不同的工作临时目录和目标目录可能很有用 (甚至是必要的)。 可以用 WRKDIRPREFIX 和 PREFIX 这两个变量来改变默认的目录。 例如:# make WRKDIRPREFIX=/usr/home/example/ports install-将在 /usr/home/example/ports 中编译 port 并把所有的文件安装到 /usr/local。# make PREFIX=/usr/home/example/local install将在 /usr/ports 编译它并安装到 /usr/home/example/local。当然,也可以一次指定这两个:# make WRKDIRPREFIX=../ports PREFIX=../local install。
  重新配置ports:当你在编译某些 ports 的时候,可能会弹出一个基于 ncurses 的菜单来让你来选择一些编译选项。 通常用户都希望能够在一个 port 被编译安装了以后还能再次访问这份菜单以添加删除或修改这些选项。实际上有很多方法来做这件事情。 一个方法进入那个 port 的目录后键入 make config,之后便会再次显示出菜单和已选择的项目。 另一个方法是用 make showconfig, 这会给你显示出所有的配置选项。还有一个方法是执行 make rmconfig,这将删除所有已选择的项
  80、卸载已经安装的 Ports:# pkg_delete programname;使用 pkg_version(1) 命令来列出 Ports Collection 中提供了更新版本的那些 port:# pkg_version -v
  81、使用 Portupgrade 来更新 Ports:它通过 ports-mgmt/portupgrade port 来提供。使用 make install clean 命令来安装它:# cd /usr/ports/ports-mgmt/portupgrade;# make install clean。(1)使用 /usr/local/sbin/pkgdb -F 命令来扫描已安装的 port 的列表,并修正其所报告的不一致;(2)运行 /usr/local/sbin/portupgrade -a 时, portupgrade 将开始并升级系统中所安装的所有过时的 ports。如果您希望在每个升级操作时得到确认, 应指定 -i 参数:# portupgrade -ai。(3)如果只希望升级某个特定的应用程序,应使用 portupgrade pkgname。 如果portupgrade 应首先升级指定应用程序的话,则应指定 -R 参数:# portupgrade -R firefox。要使用预编译的 package 而不是 ports 来进行安装, 需要指定 -P。如果指定了这个选项,portupgrade 会搜索 PKG_PATH 中指定的本地目录,如果没有找到,则从远程站点下载。如果本地没有找到,而且远程站点也没有成功地下载预编译包,则 portupgrade 将使用 ports。要禁止使用 port,可以指定 -PP:# portupgrade -PP gnome2。如果只想下载 distfiles (或者, 如果指定了 -P 的话,是 packages) 而不想构建或安装任何东西, 可以使用 -F。
  82、使用 Portmanager 来升级 Ports:它可以通过 ports-mgmt/portmanager port。升级所有已安装的 port:# portmanager -u。如果希望 Portmanager 在进行每步操作之前都给出提示,应使用 -ui 参数。 Portmanager 也可以用来在系统中安装新的 ports。 与通常的 make install clean 命令不同,它会在联编和安装您所选择的 port 之前升级所有依赖包。# portmanager x11/gnome2。如果关于所选 port 的依赖有任何问题, 可以用 Portmanager 来以正确的顺序重新构建它们。 完成之后, 有问题的 port 也将被重新构建。# portmanager graphics/gimp -f。
  83、使用 Portmaster 升级 Ports:Portmaster 被设计成尽可能使用 "基本" 系统中能找到的工具(它不依赖于其他的 ports)和 /var/db/pkg/ 中的信息来检测出需要升级的 ports。你可以在 ports-mgmt/portmaster 找到它。可以使用这个命令升级所有已安装的 ports:# portmaster -a。如果你在升级的过程中发现了错误,你可以使用 -f 选项升级/重新编译所有的 ports:# portmaster -af。也可以使用 Portmaster 往系统里安装新的 ports,升级所有的依赖关系之后并安装新的 port:# portmaster shells/bash。
  84、可以使用下面的命令来清理整个 Ports 套件:# portsclean -C。随着时间的推移, 您可能会在 distfiles 目录中积累下大量源代码文件。 您可以手工删除这些文件, 也可以使用下面的命令来删除所有 port 都不引用的文件:# portsclean -D。除此之外, 也可以用下列命令删去目前安装的 port 没有使用的源码包文件:# portsclean -DD。portsclean 工具是 portupgrade 套件的一部分。
  85、删除那些已经安装,但已不再使用的 ports。用于自动完成这种工作的一个好工具是 ports-mgmt/pkg_cutleaves port。
  86、使用 pkg_info(1) 命令,它能找到安装了哪些文件,以及装在哪里。 举个例子,如果您安装了 FooPackage version 1.0.0, 那么这个命令# pkg_info -L foopackage-1.0.0 | less将显示这个软件包安装的所有文件,您要特别注意在man/目录里面的文件,它们可能是手册,etc/目录里面的配置文件,以及 doc/目录下面更多的文档。如果您不确定已经安装好的软件版本,您可以使用这样的命令# pkg_info | grep -i foopackage。Ports 如果需要在服务器启动时运行(就像互联网服务器), 它通常会把一个脚本的样例放入 /usr/local/etc/rc.d目录。为了保证正确性,您可以查看这个脚本,并编辑或更改这个脚本的名字。
  87、FreeBSD 在包括 FreeBSD 5.2.1-RELEASE 在内的版本之前, 都默认安装 XFree86, 一种由 XFree86 Project, Inc. 发布的 X11 服务。从 FreeBSD 5.3-RELEASE 开始, 默认并且为官方支持的 X11 变成了 Xorg, 它是由 X.Org 基金会开发的 X11 服务, 采用与 FreeBSD 类似的授权。
  88、X 一开始就是针对网络而设计的,所以采用了 "client-server" 模型。在 X 模型中,"X server" 运行在有键盘,显示器,鼠标的计算机上。服务器用来管理显示信息,处理来自键盘和鼠标的输入信息,并与其他输入输出设备交互 (比如作为输入设备的 "tablet", 或者作为输出设备的投影仪)。每一个 X 应用程序 (比如 XTerm, 或者 Netscape??) 就是一个 "客户程序 (client)"。客户程序给服务器发送信息,如 "请在这些坐标上画一个窗口", 而服务器则返回处理信息,如 "用户刚刚点击了 OK 按钮"。
  89、X 的设计哲学很像 UNIX 的设计哲学, "tools, not policy"。这就意味着 X 不会试图去规定任务应该如何去完成,而是,只给用户提供一些工具,至于决定如何使用这些工具是用户自己的 事情。这套哲学扩展了 X,它不会规定窗口在屏幕上应该是什么样子,要如何移动鼠标,应该用什么键来切换窗体 (比如, Alt+Tab按键,在 Microsoft Windows 环境中的作用), 每个窗口的工具条应该看起来像什么,他们是否应该有关闭按钮等等。实际上,X 行使了一种叫做 "窗口管理器"的应用程序的职责。
  90、配置X11:(1)创建配置文件:Xorg -configure,执行此命令后,将在 /root 中生成一个叫做 xorg.conf.new 的配置文件。 X11 程序将尝试探测系统中的图形硬件,并将探测到的硬件信息写入配置文件,以便加载正确的驱动程序。(2)测试配置文件:Xorg -config xorg.conf.new,如果看到一个黑灰的格子和一个 X 形的鼠标指针,那么配置就是成功的。 要退出测试,只要同时按下 Ctrl+Alt+Backspace(在 7.4 或以后的版本中开启此选项, 需要在配置文件中的 ServerLayout 或者 ServerFlags 部分加入:Option "DontZap" "Off")。(3)调整 xorg.conf.new 配置文件并作测试:1)要做的第一件事是为当前系统的显示器设置刷新率。 这些值包括垂直和水平的同步频率。把它们加到 xorg.conf.new 的 "Monitor" 小节中,在配置文件中也有可能没有 HorizSync 和 VertRefresh。 如果是这样的话,需要手动添加, 并在 HorizSync 和 VertRefresh 后面设置合适的数值。2)选择默认的分辨率和色深。这是在 "Screen" 小节中定义的:默认的色深是DefaultDepth ;分辨率是Modes。在发现并解决问题的过程中, 包含了与 X11 服务器相关的各个设备的信息的 X11 日志文件会为您发现和排除问题有所帮助。日志文件在 /var/log/Xorg.0.log (4)把配置文件放到公共的目录中:可以在 Xorg(1) 里面找到具体位置。这个位置通常是 /etc/X11/xorg.conf 或/usr/local/etc/X11/xorg.conf。
  91、安装好 KDE 之后, 还需要告诉X server 启动这个应用程序来代替默认的窗口管理器。 这可以通过编辑 .xinitrc 文件来完成:对于 KDE3:% echo "exec startkde" > ~/.xinitrc 对于 KDE4:% echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc
  92、安装声卡:(1)# kldload snd_emu10k1,或者在文件 /boot/loader.conf 里加入一行:snd_emu10k1_load="YES",此方式用于 Creative SoundBlaster?? Live! 声卡。(2)# kldload snd_driver,这是个 meta 驱动,一次加载了最常见的设备驱动。这会提高搜索正确驱动的速度。也可以通过 /boot/loader.conf 工具来加载所有的声卡驱动。如果希望在加载了 snd_driver meta 驱动之后了解到底选择了哪种声卡, 可以通过使用 cat /dev/sndstat 来查询 /dev/sndstat 文件。

猜你喜欢

转载自lix63lix.iteye.com/blog/1361853