挂载相关系统

#export LFS=/mnt/lfs

#mkdir -pv $LFS

#mount -v -t ext3 /dev/hda1 $LFS
#ln -sv $LFS/tools /

mkdir -pv $LFS/{dev,proc,sys}

mknod -m 600 $LFS/dev/console c 5 1

mknod -m 666 $LFS/dev/null c 1 3

mount -v –bind /dev $LFS/dev

mount -vt devpts devpts $LFS/dev/pts

mount -vt tmpfs shm $LFS/dev/shm

mount -vt proc proc $LFS/proc

mount -vt sysfs sysfs $LFS/sys

chroot “$LFS” /tools/bin/env -i \

    HOME=/root TERM=”$TERM” PS1=’\u:\w\$ ‘ \

    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \

    /tools/bin/bash –login +h

-————————————————————————————

1、建标准的目录树

mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}

mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}

install -dv -m 0750 /root

install -dv -m 1777 /tmp /var/tmp

mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}

mkdir -pv /usr/{,local/}share/{doc,info,locale,man}

mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}

mkdir -pv /usr/{,local/}share/man/man{1..8}

for dir in /usr /usr/local; do

  ln -sv share/{man,doc,info} $dir

done

mkdir -v /var/{lock,log,mail,run,spool}

mkdir -pv /var/{opt,cache,lib/{misc,locate},local}

2、建必要的符号连接

ln -sv /tools/bin/{bash,cat,echo,grep,pwd,stty} /bin

ln -sv /tools/bin/perl /usr/bin

ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib

ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib

ln -sv bash /bin/sh

#安装软件包的时候相应的连接会被替代掉

3、建/etc/mtab

touch /etc/mtab

4、建/etc/passwd

cat > /etc/passwd << “EOF”

root:x:0:0:root:/root:/bin/bash

nobody:x:99:99:Unprivileged User:/dev/null:/bin/false

EOF

5、建/etc/group

cat > /etc/group << “EOF”

root:x:0:

bin:x:1:

sys:x:2:

kmem:x:3:

tty:x:4:

tape:x:5:

daemon:x:6:

floppy:x:7:

disk:x:8:

lp:x:9:

dialout:x:10:

audio:x:11:

video:x:12:

utmp:x:13:

usb:x:14:

cdrom:x:15:

mail:x:34:

nogroup:x:99:

EOF

6、从新用bash登录,这样就有名字了

exec /tools/bin/bash –login +h

7、建日志文件

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}

chgrp -v utmp /var/run/utmp /var/log/lastlog

chmod -v 664 /var/run/utmp /var/log/lastlog

Ncurses-5.6 

./configure –prefix=/tools –with-shared \

    –without-debug –without-ada –enable-overwrite

make && make install 

Bash-3.2 

patch -Np1 -i ../bash-3.2-fixes-5.patch

./configure –prefix=/tools –without-bash-malloc

ln -vs bash /tools/bin/sh

Bzip2-1.0.4 

make && make PREFIX=/tools install

Coreutils-6.9

./configure –prefix=/tools && make && make install

cp -v src/su /tools/bin/su-tools

Diffutils-2.8.1 

./configure –prefix=/tools && make && make install

Findutils-4.2.31 

./configure –prefix=/tools && make && make install

Gawk-3.1.5

./configure –prefix=/tools

cat >> config.h << “EOF”

#define HAVE_LANGINFO_CODESET 1

#define HAVE_LC_MESSAGES 1

EOF

make && make install

Gettext-0.16.1

cd gettext-tools

./configure –prefix=/tools –disable-shared

make -C gnulib-lib

make -C src msgfmt

cp -v src/msgfmt /tools/bin

Grep-2.5.1a

./configure –prefix=/tools \

    –disable-perl-regexp

make && make install

Gzip-1.3.12

./configure –prefix=/tools && make && make install

Make-3.81

./configure –prefix=/tools && make && make install

Patch-2.5.4 

./configure –prefix=/tools && make && make install

Perl-5.8.8 

patch -Np1 -i ../perl-5.8.8-libc-2.patch

./configure.gnu –prefix=/tools -Dstatic_ext=’Data/Dumper Fcntl IO POSIX’

make perl utilities

cp -v perl pod/pod2man /tools/bin

mkdir -pv /tools/lib/perl5/5.8.8

cp -Rv lib/* /tools/lib/perl5/5.8.8

Sed-4.1.5 

./configure –prefix=/tools && make && make install

Tar-1.18 

./configure –prefix=/tools && make && make install

Texinfo-4.9 

./configure –prefix=/tools && make && make install

Util-linux-2.12r 

sed -i ‘s@/usr/include@/tools/include@g’ configure

#把/usr/include替换为/tools/include

./configure

make -C lib

make -C mount mount umount

make -C text-utils more

cp -v mount/{,u}mount text-utils/more /tools/bin

#把mount/mount mount/umount text-utils/more 复制到/tools/bin下

清理和改权限

不做也没关系

logout

临时系统是为了独立出宿主系统,再来编译干净的目标系统
linux-header、glibc、调整工具链、第二遍gcc、binutils

1、Linux-2.6.22.5

make mrproper

#防止配置文件残留,清除一下已保持源文件的干净

make headers_check
make INSTALL_HDR_PATH=dest headers_install

#只编译内核头文件

cp -rv dest/include/* /tools/include

#目标系统的头文件都是存放在/usr/include下面的,
#临时系统由于不遵守LSB,所以就存在/tools下面。

2、Glibc-2.5.1

mkdir -v ../glibc-build
cd ../glibc-build
../glibc-2.5.1/configure –prefix=/tools \
    –disable-profile –enable-add-ons \
    –enable-kernel=2.6.0 –with-binutils=/tools/bin \
    –without-gd –with-headers=/tools/include \
    –without-selinux

#–with-headers=/tools/include:头文件和库文件是紧密联系的。

make -j4
touch /tools/etc/ld.so.conf
make install

3、调整工具链

mv -v /tools/bin/{ld,ld-old}
mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
mv -v /tools/bin/{ld-new,ld}
ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld

#echo $(gcc -dumpmachine):i686-pc-linux-gnu
#把搜索路径为/usr/lib的ld命令,替换为搜索路径为/tools/lib的ld
#/tools/bin 和/tools/$(gcc -dumpmachine)/bin 是硬连接关系。

gcc -dumpspecs | sed ‘s@^/lib/ld-linux.so.2@/tools&@g’ \
  > `dirname $(gcc -print-libgcc-file-name)`/specs

#使gcc编译时使用的是/tools/lib/ld-linux.so.2这个动态连接器
#gcc的specs位于/tools/lib/gcc/i686-pc-linux-gnu/4.1.2下
#ld和gcc使用的动态连接库要一致。

GCC_INCLUDEDIR=`dirname $(gcc -print-libgcc-file-name)`/include &&
find ${GCC_INCLUDEDIR}/* -maxdepth 0 -xtype d -exec rm -rvf ‘{}’ \; &&
rm -vf `grep -l “DO NOT EDIT THIS FILE” ${GCC_INCLUDEDIR}/*` &&
unset GCC_INCLUDEDIR

#删除gcc下面的头文件:/lib/gcc/i686-pc-linux-gnu/4.1.2/include

#测试一下
echo ‘main(){}’ > dummy.c
cc dummy.c
readelf -l a.out | grep ‘: /tools’

结果为:
[Requesting program interpreter: /tools/lib/ld-linux.so.2]

4、安装测试工具,非必须

1、tcl-8.4.15

cd unix
./configure –prefix=/tools
make && make install
make install-private-headers

#安装tcl头文件,expect要用

ln -sv tclsh8.4 /tools/bin/tclsh

2、Expect-5.43.0

patch -Np1 -i ../expect-5.43.0-spawn-1.patch
cp configure{,.bak}
sed ‘s:/usr/local/bin:/bin:’ configure.bak > configure

#把/usr/local/bin替换为/bin

./configure –prefix=/tools –with-tcl=/tools/lib \
  –with-tclinclude=/tools/include –with-x=no
make
make SCRIPTS=”” install

3、DejaGNU-1.4.4

./configure –prefix=/tools
make install

5、gcc-4.1.2

expect -c “spawn ls”

#结果为:spawn ls

cp -v gcc/Makefile.in{,.orig}
sed ‘s@\./fixinc\.sh@-c true@’ gcc/Makefile.in.orig > gcc/Makefile.in

#将./fixinc.sh 这一行替代为空
#原文 $(SHELL) ./fixinc.sh ../../gcc/include \

cp -v gcc/Makefile.in{,.tmp}
sed ‘s/^XCFLAGS =$/& -fomit-frame-pointer/‘ gcc/Makefile.in.tmp \
  > gcc/Makefile.in

#XCFLAGS = -fomit-frame-pointer

patch -Np1 -i ../gcc-4.1.2-specs-1.patch
mkdir -v ../gcc-build
cd ../gcc-build
../gcc-4.1.2/configure –prefix=/tools \
    –with-local-prefix=/tools –enable-clocale=gnu \
    –enable-shared –enable-threads=posix \
    –enable-__cxa_atexit –enable-languages=c,c++ \
    –disable-libstdcxx-pch

#–enable-clocale=gnu:

#本参数确保 C++ 库在任何情况下都使用正确的 locale 模块

#–enable-__cxa_atexit:

#用 __cxa_atexit 代替 atexit 来登记 C++ 对象的本地静态和全局析构函数

make && make install
#测试一下

readelf -l a.out | grep ‘: /tools’

结果为:
[Requesting program interpreter: /tools/lib/ld-linux.so.2]

6、Binutils-2.17
mkdir -v ../binutils-build
cd ../binutils-build
../binutils-2.17/configure –prefix=/tools \
    –disable-nls –with-lib-path=/tools/lib

#–with-lib-path=/tools/lib:使用刚装的lib(glib装的)

make && make install
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib

#为目标工具链做准备

cp -v ld/ld-new /tools/bin

预工具链的作用就是用来编译临时系统的glibc,使临时系统摆脱宿主系统的依赖关系

说明:
1、解压命令就不输了,全部都解压在build下面了。
2、如lfs说明里面要求另建编译目录,则另建目录

1、编译binutils-2.17

cd $LFS/build
tar -xvf ../sources/binutils-2.17.tar.bz2
mkdir -v binutils-build
cd binutils-build

CC=”gcc -B/usr/bin/“ ../binutils-2.17/configure \
    –prefix=/tools –disable-nls –disable-werror

#CC=”gcc -B/usr/bin/“:指定用哪个位置的gcc

#–prefix=/tools:安装在/tools下
#–disable-nls:禁用i18n(国际化)
#–disable-werror:有错误的话也继续编译

make -j4 && make install

#这边编译的ld搜索函数库的路径是/usr/lib,也就是宿主的库文件

make -C ld clean                         

#为从新编译ld,先清除ld的编译

make -C ld LIB_PATH=/tools/lib  

#重新编译ld,并设置ld使用/tools/lib下面的库文件,
#这样,调整工具链的时候把ld复制过去,ld的搜索路径就变为/tools/lib

cp -v ld/ld-new /tools/bin

cd ..
mv binutils-2.17 ./ygjl/

2、编译gcc-4.1.2

mkdir -v ../gcc-build
cd ../gcc-build

CC=”gcc -B/usr/bin/“ ../gcc-4.1.2/configure –prefix=/tools \
    –with-local-prefix=/tools –disable-nls –enable-shared \
    –enable-languages=c

#–enable-languages=c 只编译出c编译器

make -j4 bootstrap
make install
ln -vs gcc /tools/bin/cc

平台配置

虚拟机:vmware workstation 9
配置:    4核、1G内存、20G IDE硬盘(强烈建议用IDE硬盘)、软驱、IDE光驱

宿主版本:lfslivecd-x86-6.3-r2145.iso
LFS目标版本:LFS 6.3
包下载地址:http://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-6.3.tar
操作方式:ssh
参考手册:

http://www.linuxfromscratch.org/lfs/view/6.3/
http://blog.chinaunix.net/uid-436750-id-2123580.html
lfs6.2中文版

制作流程
宿主——————->临时系统———————>目标系统

|                    |                                          |

  预工具链    kernel-header                     kernel-header
   binutils            glibc                                    glibc
     gcc              binutils                                binutils

gcc                                      gcc

     其他工具                              其他工具

       kernel
  设置配置文件

        引导信息写入扇区

   |
重启

学习目的:

1、了解制作详细流程
2、读懂每条制作命令
3、学习linux是如何组织、构建起来的。
4、学习linux如何运作的
5、了解每个包的作用,及包含的命令和函数的作用,存放位置

其他说明:

1、强烈建议用IDE硬盘,SCSI有可能导致不识别,我编译核心后还是识别不了。
2、建议多编译几遍。
      我第一次编译的时候所有代码都是手动输入,而且还是按照孙海勇的那本书上输入的,花了整整2周时间。
      而按照LFS说明书手动输入,花了13个小时。而SSH连入操作的话,8小时就差不多了。

0、ssh连接

1、进livecd,passwd root
2、/etc/rc.d/init.d/sshd restart 即可使用ssh连接了

引自:搭建LFS之ssh连接虚拟机的livecd

-—————————————————————————————————
准备工作

分区

cfdisk
/dev/hda1,设置boot标志
dev/hda5

格式化

mke2fs -jv /dev/hda1
mkswap /dev/hda5

设置全局目录变量

export LFS=/mnt/lfs

新建并挂载目录

mkdir -pv $LFS
mkdir -pv $LFS/tools $LFS/sources  $LFS/build
mount -v -t ext3 /dev/hda1 $LFS
swapon -v /dev/hda5
cd $LFS
chmod a+wt tools sources build

下载软件包和补丁

cd $LFS/sources

wget http://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-6.3.tar
tar -xvf lfs-packages-6.3.tar
#http://ftp.lfs-matrix.net/pub/lfs/lfs-packages/ ,每个版本都有
#如果用wget-list下载

wget -i wget-list &

#用正则表达式把下载列表和wget-list核对一下

#cat wget-list | sed ‘s/^.*\///g’ |sort  > 1
#ls ./sources | sort >2
#diff 1 2

最后的准备工作

ln -sv $LFS/tools /

groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs

passwd lfs
chown -v lfs $LFS/tools $LFS/sources $LFS/build
su - lfs

cat > ~/.bash_profile << “EOF”
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
#不知道TERM变量什么用
EOF

-——————–

cat > ~/.bashrc << “EOF”
set +h
#关闭bash的hash功能,hash是建hash表来记录命令的路径,以免每次都从PATH里搜索
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
#设置tool路径的话,每建好一个命令就能直接用,不需要再用宿主的命令
export LFS LC_ALL PATH
EOF

-———————

source ~/.bash_profile

备注:编译文件时使用“make -j4”来使编译时使用4个核心一起编译,编译目标系统时不建议用

关键词:

核心、核心模块、内核函数库、核心头文件
函数库、函数库头文件、静态链接、动态链接
命令、命令驱动硬件

关键词理解:

核心:主要就是驱动硬件。
模块:提供对某种硬件的支持,供内核使用
内核函数库:实现某种功能,供内核使用
核心头文件:提供操作硬件的接口

函数库:提供某些软件功能
函数库头文件:提供软件实现某些功能的接口

程序调用函数库和操作硬件

动态链接程序的源代码:

包含动态函数库头文件、内核函数库头文件

程序的编译:

包含哪些头文件,由ld命令找到对应的函数库,并链接起来制作成可执行文件。

命令如何调用动态函数库:

ld.inux.so.2通过查找/etc/ld.so.cache、/lib、/usr/lib 来找到对应的动态函数库

命令的运行:

调用动态函数库—>实现软件功能

调用动态函数库—>调用内核函数库—->实现对硬件的操作

程序编译流程:
源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) →
→目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

程序制作:         源代码(包含内核头文件和函数头文件)——->gcc——->as——–>

ld(ld搜索路径并将头文件中提到的函数库进行链接)—>可执行程序

程序的执行:     程序——->ld-linux.so加载相关的函数库——>实现操作。

工具链说明
linux-header:   API(函数库),用户可以使用其接口编程来实现对计算机软件及硬件的操作。

存放位置:/usr/include

Glibc:              包含了主要的C函数库

存放位置:/lib、/usr/lib

ld-linux.so:动态加载器,由glibc提供。

当应用程序需要使用动态链接库里的函数时,动态链接需要去找函数库,
怎么找呢,就用到这个ld.so函数库。
那ld.so去那里找动态函数库呢?下面就提供了搜索路径。

搜索动态链接库的顺序依此是
1、环境变量:LD_AOUT_LIBRARY_PATH(a.out格式)
      环境变量:LD_LIBRARY_PATH(ELF格式)
2、/etc/ld.so.conf
3、缓存文件/etc/ld.so.cache。
     此为环境变量、/lib、/usr/lib、/etc/ld.so.conf指定目录的二进制索引文件。
     放入新函数库后要更新缓存,更新的命令是ldconfig。
4、默认目录,先在/lib中寻找,再到/usr/lib中寻找。

Binutils:           包括连接器、汇编器

存放位置:/usr

as:          汇编器,由binutils提供。

用来汇编gcc 的输出,产生的目标文件然后交由连接器 ld 连接

ld:           链接器(连接器),由binutils提供。此为编译时候用的命令。

将一个或多个由编译器或汇编器生成的“目标文件”外加“库”链接为一个可执行文件。

ld搜索路径:ld –verbose | grep SEARCH

ld从下面地方找出动态函数库文件,然后进行连接。

LFS制作-概念、原理 - leaf - ------坚持雅操------

GCC:              包含C、C++等编译器

存放位置:/usr

注意一点:

所有的程序都是由/usr里面的工具制作出来的。
/usr目录就相当于windows下的program files + windows

对linux内核不了解,以后会深入学的。以上只是自己的理解

参考:

lfs6.2中文版
http://zh.wikipedia.org/wiki/Ld.so
http://lsscto.blog.51cto.com/779396/904078
http://blog.csai.cn/user1/265/archives/2005/2465.html
http://www.simplemind.info/technolife/linuxsystem/lfs-problem.html
http://zh.wikipedia.org/wiki/%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8

一种是ubuntu12.04安装mate

sudo add-apt-repository “deb http://packages.mate-desktop.org/repo/ubuntu $(lsb_release -cs) main”
sudo apt-get install mate-archive-keyring
sudo apt-get update

sudo apt-get install mate-core mate-desktop-environment
跟10.04的界面有点差别,不过还算习惯

一种是用mint版本

但是mint对中文的支持实在不怎么样,默认安装连个中文输入法多没有。。。

问题:安装语言包出错主要是源的问题,更新到http://mirrors.ustc.edu.cn/的源即可

deb ftp://mirrors.ustc.edu.cn/linuxmint/ maya main upstream import
deb-src ftp://mirrors.ustc.edu.cn/linuxmint/ maya main upstream import

问题:IBUS 安装和自动启动

更新源之后,sudo apt-get install ibus-gtk ibus-pinyin ibus-pinyin-db-open-phrase
语言支持里面选IBUS即可,我装好后系统自动选了IBUS了

问题:ubuntu主题图标等

https://launchpad.net/
主题:

sudo add-apt-repository ppa:ravefinity-project/ppa  sudo apt-get install ambiance-colors radiance-colors

图标:

deb http://ppa.launchpad.net/fs-icons-ubuntu/unstable/ubuntu precise main
deb-src http://ppa.launchpad.net/fs-icons-ubuntu/unstable/ubuntu precise main

sudo apt-get install fs-icons-ubuntu

关于mate版本 - leaf - ------坚持雅操------

 

参考:
http://it-diary.com/linux/ubuntu-linux/install-mate-1-2-in-ubuntu-12-04-or-11-10/
http://www.cnblogs.com/tnxk/archive/2012/08/30/2663146.html

配置
系统:ubuntu10.04 X64
CPU:INTEL T4500(等价格降了换个p8700,或者T9600)
主板:PM45
内存:DDR2-800 2GX2
显卡:ATI Mobility Radeon HD 5470

1、安装编译相关软件

sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0

2、下载ati显卡驱动

http://www2.ati.com/drivers/linux/amd-driver-installer-12-8-x86.x86\_64.zip
解压之后是run文件

3、制作deb包

其实直接装也没关系的
sudo su
sh amd-driver-installer-8.982-x86.x86_64.run –buildpkg Ubuntu/lucid
出来5个文件

fglrx_8.982-0ubuntu1_amd64.deb
fglrx-amdcccle_8.982-0ubuntu1_amd64.deb
fglrx-dev_8.982-0ubuntu1_amd64.deb
fglrx-installer_8.982-0ubuntu1_amd64.changes
fglrx-modaliases_8.982-0ubuntu1_amd64.deb

4、删除原有驱动和配置

sudo apt-get remove –purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx xserver-xorg-video-ati xserver-xorg-video-radeon

sudo mv /etc/X11/xorg.conf  /etc/X11/xorg.con.old

4.1、禁用nouveau

sudo gedit /etc/modprobe.d/blacklist.conf 添加blacklist nouveau

5、安装

重启
进桌面后,按ctrl+alt+f1
sudo /etc/init.d/gdm stop            #sudo /etc/init.d/lightdm stop   #ubuntu12.04

sudo dpkg -i fglrx*.deb
sudo aticonfig –initial -f              #建配置文件xorg.conf

重启

6、测试

lsmod | grep fglrx

fglrx                2690265  115

fglrxinfo

display: :0.0  screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Mobility Radeon HD 5400 Series
OpenGL version string: 4.2.11762 Compatibility Profile Context

amdcccle

ubuntu10.04安装官方ati显卡驱动 - leaf - ------坚持雅操------

 

7、参考:

http://wiki.cchtml.com/index.php/Main\_Page

其他

过时的软件:envyng
解决花屏的:http://hi.baidu.com/ypqnwahlyjbcmtq/item/35cabf25f6acba0873863e5e

系统:ubuntu10.04 x64
CPU:AMD Athlon(tm) II X4 635 Processor × 4
主板:AMD 870 (无板载显卡)
内存:DDR3-1333 8G
显卡:8500GT

1、安装环境

sudo apt-get install build-essential pkg-config linux-headers-$(uname -r)
下载驱动并设置权限 chmod a+x NVIDIA-Linux-x86_64-304.51.run  

2、删除已有的模块和软件

移除旧的nvidia模块和组件

sudo apt-get –purge remove nvidia-glx nvidia-glx-legacy nvidia-glx-new nvidia-settings

检查无关的nvidia软件是否已被完全删除

dpkg -l | grep nvidia

删除这些软件

sudo aptitude purge $(dpkg -l | grep nvidia | awk ‘{print $2}’)

移除xorg-nv驱动

sudo apt-get –purge remove xserver-xorg-video-nv

禁用nouveau

sudo gedit /etc/modprobe.d/blacklist.conf 添加blacklist nouveau

#总之就是将新立得里面所有的nvidia选项全删除,里面的jockey*这个不用删除没事。

3、重启并安装

重启后按ctrl+alt+f1 ,进tty1,关闭gdm:sudo /etc/init.d/gdm stop
安装

sudo su
sh ./NVIDIA-Linux-x86_64-304.51.run
1、前面如果模块没有删除干净,装的时候会帮我们先卸载再安装的
2、/usr/lib/xorg/modules/extensions/libglx.so 会帮我们自动做符号连接,连接到同目录下面的libglx.so.304.51

安装完后重启

sudo reboot

4、仍然碰到分辨率的问题

 gtf 1152 864 60 -x

  # 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
  Modeline “1152x864_60.00”  81.62  1152 1216 1336 1520  864 865 868 895  -HSync +Vsync

sudo gedit /etc/X11/xorg.conf

Section “Monitor”
    Identifier     “Monitor0”
    VendorName     “Unknown”
    ModelName      “Unknown”
    HorizSync       28.0 - 53.70
    VertRefresh     43.0 - 81.62
    Option         “DPMS”
EndSection

参考:

Ubuntu中安装NViDIA官方驱动

效果

ubuntu10.04安装nvidia官方驱动 - leaf - ------坚持雅操------

 

继续问题:

问题1:firefox开2个页面,一个页面放视频,另一个开网页,看网页的这个页面会出现视频画面

ubuntu10.04安装nvidia官方驱动 - leaf - ------坚持雅操------

问题2:firefox—帮助—故障排除信息:图像列表显示

适配器描述        Mesa Project – Software Rasterizer
厂商 ID              Mesa Project
设备 ID              Software Rasterizer
驱动程序版本    2.1 Mesa 7.7.1
WebGL 渲染器  因您的显卡驱动版本已屏蔽。尝试更新您的显卡驱动至版本 304.51 或更新版本。
GPU 加速窗口   0. 因您的显卡驱动版本已屏蔽。尝试更新您的显卡驱动至版本 304.51 或更新版本。

问题3:点外观—视频效果,开不起来说驱动没有装

解决方法:

20121206:终于找到原因了,我把nvidia模块关掉了竟然。。。。
查看 /etc/modprobe.d/blacklist.conf。发现里面加入了 blacklist nvidiafb

删除blacklist nvidiafb,然后我又重装了驱动就好了,重装同步骤3

附:删除nvidia操作:
上面的步骤2无效,使用如下命令
sudo /usr/sbin/dkms remove -m nvidia -v 304.51 –all

参考:http://www.mystone7.com/2012/05/20/ubuntu_install_nvidia/