[分享]ubuntu 内核编译及其他 -- 先来的菜鸟给后来菜鸟的礼物

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
jeffwei
帖子: 1344
注册时间: 2007-05-12 22:48

[分享]ubuntu 内核编译及其他 -- 先来的菜鸟给后来菜鸟的礼物

#1

帖子 jeffwei » 2007-05-19 23:16

首先安装对应CPU的ubuntu版本,我的是x86_64
插入盘启动,按F2选简体中文
建议安装时 /home /usr 单独分区
不会的就直接安装在一个区上 当然全盘也行
安装到83% 安装语言时跳过,安装完毕,选重启
进入系统后到kernel.org 下载核心 我的2.6.21.1
点击系统-系统管理-语言支持 花较长时间
安装两个文件后在chinese 后打勾 安装中文 花很长时间
趁这段时间打开 应用程序-附件-终端
输入 sudo passwd root
回车后要求输入你的密码
输入后回车
系统要求输入新的root 的密码
要求再输入一次验证
exit 回车关闭终端
打开系统-系统管理-登录窗口
输入密码(不是root的,是你的帐号的)
点击倒数第二标签-安全
在 “允许本地系统管理员登录” 前打勾
关闭
语言安装完后重启
以root登录
复制 linux-2.6.21.1.tar.bz2 到 /usr/src 右键解压缩到此处
打开应用程序-附件-终端
$表示命令输入要回车,就是一条命令
$apt-get install build-essential bin86 kernel-package
$apt-get install libqt3-headers libqt3-mt-dev
$apt-get install initrd-tools
这三个是安装需要的软件包,注意要要求输入y/n 选y

$cd /usr/src
$ln -s linux-2.6.21.1 l inux (注意各处空格 ,空几格都可以 )
$cd /linux
$make xconfig
回车后一会儿会弹出窗口要求配置内核 不懂的地方就默认吧,内容太多我说不清
配置完后点击保存,退出
提示: x表示图形窗口 config意思是配置, x和config之间无空格
$make bzImage bz 后的是大写i ,时间有点长
$make modules 时间有点长
$make modules_install
$cp /usr/src/linux/arch/x86_64/boot/bzImage /boot/vmlinuz-2.6.21.1
$cd /boot
$mkinitrd -o initrd.img-2.6.21.1 2.6.21.1 -后是小写字母0,第二个2.6.21.1不是多余的
打开/boot/grub的menu.lst

title Ubuntu, kernel 2.6.20-15-generic
root (hd0,10)
kernel /vmlinuz-2.6.20-15-generic root=UUID=72a4be54-44aa-46ed-8dff-821347e4bac6 ro quiet splash locale=zh_CN
initrd /initrd.img-2.6.20-15-generic
quiet
savedefault
下面添加
title kernel-2.6.21.1
root (hd0,10)
kernel /vmlinuz-2.6.21.1
initrd /initrd.img-2.6.21.1
如果把
title kernel-2.6.21.1
root (hd0,10)
kernel /vmlinuz-2.6.21.1
initrd /initrd.img-2.6.21.1

title Ubuntu, kernel 2.6.20-15-generic
root (hd0,10)
kernel /vmlinuz-2.6.20-15-generic root=UUID=72a4be54-44aa-46ed-8dff-821347e4bac6 ro quiet splash locale=zh_CN
initrd /initrd.img-2.6.20-15-generic
换位
自己编译的kernel-2.6.21.1核心就成为默认启动 一般自己编译的要稳定些
至此内核编译完成
建议在编译内核时在下载语言包
节省大量时间!
$apt-get install initrd-tools
命令失败的话就到新立得下载!



安装qq mplayer xmms bt 等可以打开 系统-系统管理-新立得软件包管理器
搜索eva mplayer xmms azureus 安装
至于realplayer
下载http://www.real.com/linux/

把RealPlayer10GOLD.bin复制到文件夹如/home
右键 属性 权限 执行 后打勾
在终端
$cd /home
$./RealPlayer10GOLD.bin 是点后一/ 点不能少
后面自己搞定,注意有一个是选择安装路径
建议在/usr/local 建一个文件夹real来安装 root才能在那里建立文件夹!

关于显卡驱动

自己下载驱动 在ATI NVIDIA官方下载
我的是集成的6100 驱动是NVIDIA-Linux-x86_64-1.0-9755-pkg2.run
在google输入linux nvidia 就第一个
下载到/home 改名nv.run
安装时就不用打长串的名字了
必须不启动X服务在文本界面下安装
ubuntu7.04没有inittab 我也没有找到传说中的 upstart
我是启动原带的第二个内核 ,
安装驱动后;inux-2.6.21.1就不能启动X
再启动linux-2.6.21.1安装驱动就ok了
以毒攻毒啊!!!!!!!!!!!
注意安装的英文提示、选择,不要搞错了!!!
有问题请跟帖。
欢迎指正!
头像
jeffwei
帖子: 1344
注册时间: 2007-05-12 22:48

#2

帖子 jeffwei » 2007-05-19 23:21

顺便说一下
安装驱动后 系统-首选项-桌面特效
可以开启简单的XGL

更新:关闭gdm(gnome的图形界面管理器)或是kdm(kde的图形界面管理器)就可以进入纯文本模式了

再次更新:遇到kernel panic -not syncing:Apptemped to kill init 死机的解决:
在grub界面按e编辑启动设置,在kernel那行后面加 noapic就ok了
进入系统记得改/boot/grub/menu.lst


更新:学校断电闪坏系统文件,只好重装。备份/var/cache/apt文件夹后就不用再下载软件包了!
重装后用备份的覆盖apt就OK了!

重要更新:

initrd-tools 已经不能满足新的内核编译要求,会出现编译错误!
apt-get install initrd-tools 这条可以去掉,换成 apt-get install yaird

mkinitrd -o initrd.img-2.6.xx.x 2.6.xx.x 换成 yaird -o initrd.img-2.6.xx.x 2.6.xx.x
运行此命令前 复制config文件
cp /usr/src/linux-2.6.xx.x/arch/x86_64/defconfig /boot/config-2.6.xx.x

有人安装后更新系统出现failed to write cache,解决办法http://hi.baidu.com/yommc/blog/item/7f160f661584f526aa184ce5.html
可以直接复制下面的代码到终端就行了


sudo touch /usr/share/fonts
sudo touch /usr/share/fonts/X11
sudo touch /usr/share/fonts/X11/100dpi
sudo touch /usr/share/fonts/X11/75dpi
sudo touch /usr/share/fonts/X11/Type1
sudo touch /usr/share/fonts/X11/encodings
sudo touch /usr/share/fonts/X11/encodings/large
sudo touch /usr/share/fonts/X11/misc
sudo touch /usr/share/fonts/X11/util
sudo touch /usr/share/fonts/truetype
sudo touch /usr/share/fonts/truetype/arphic
sudo touch /usr/share/fonts/truetype/baekmuk
sudo touch /usr/share/fonts/truetype/freefont
sudo touch /usr/share/fonts/truetype/kochi
sudo touch /usr/share/fonts/truetype/openoffice
sudo touch /usr/share/fonts/truetype/thai
sudo touch /usr/share/fonts/truetype/ttf-arabeyes
sudo touch /usr/share/fonts/truetype/ttf-bengali-fonts
sudo touch /usr/share/fonts/truetype/ttf-bitstream-vera
sudo touch /usr/share/fonts/truetype/ttf-dejavu
sudo touch /usr/share/fonts/truetype/ttf-devanagari-fonts
sudo touch /usr/share/fonts/truetype/ttf-gentium
sudo touch /usr/share/fonts/truetype/ttf-gujarati-fonts
sudo touch /usr/share/fonts/truetype/ttf-kannada-fonts
sudo touch /usr/share/fonts/truetype/ttf-lao
sudo touch /usr/share/fonts/truetype/ttf-malayalam-fonts
sudo touch /usr/share/fonts/truetype/ttf-mgopen
sudo touch /usr/share/fonts/truetype/ttf-oriya-fonts
sudo touch /usr/share/fonts/truetype/ttf-punjabi-fonts
sudo touch /usr/share/fonts/truetype/ttf-tamil-fonts
sudo touch /usr/share/fonts/truetype/ttf-telugu-fonts
sudo touch /usr/share/fonts/type1
sudo touch /usr/share/fonts/type1/gsfonts
sudo touch /usr/share/X11/fonts
sudo touch /usr/share/X11/fonts/100dpi
sudo touch /usr/share/X11/fonts/75dpi
sudo touch /usr/share/X11/fonts/Type1
sudo touch /usr/share/X11/fonts/encodings
sudo touch /usr/share/X11/fonts/encodings/large
sudo touch /usr/share/X11/fonts/misc
sudo touch /usr/share/X11/fonts/util
sudo touch /usr/local/share/fonts
sudo touch /var/lib/defoma/fontconfig.d
sudo touch /var/lib/defoma/fontconfig.d/A
sudo touch /var/lib/defoma/fontconfig.d/B
sudo touch /var/lib/defoma/fontconfig.d/C
sudo touch /var/lib/defoma/fontconfig.d/D
sudo touch /var/lib/defoma/fontconfig.d/E
sudo touch /var/lib/defoma/fontconfig.d/F
sudo touch /var/lib/defoma/fontconfig.d/G
sudo touch /var/lib/defoma/fontconfig.d/H
sudo touch /var/lib/defoma/fontconfig.d/J
sudo touch /var/lib/defoma/fontconfig.d/K
sudo touch /var/lib/defoma/fontconfig.d/L
sudo touch /var/lib/defoma/fontconfig.d/M
sudo touch /var/lib/defoma/fontconfig.d/N
sudo touch /var/lib/defoma/fontconfig.d/O
sudo touch /var/lib/defoma/fontconfig.d/P
sudo touch /var/lib/defoma/fontconfig.d/R
sudo touch /var/lib/defoma/fontconfig.d/S
sudo touch /var/lib/defoma/fontconfig.d/T
sudo touch /var/lib/defoma/fontconfig.d/U
sudo touch /var/lib/defoma/fontconfig.d/V
sudo touch /var/lib/defoma/fontconfig.d/a
sudo touch /var/lib/defoma/fontconfig.d/j
sudo touch /var/lib/defoma/fontconfig.d/m
sudo touch /var/lib/defoma/fontconfig.d/u


还有楼下用make-kpkg命令的办法不错,很方便, 就是显卡驱动安装不了
上次由 jeffwei 在 2007-09-18 16:57,总共编辑 7 次。
leiyu
帖子: 43
注册时间: 2007-05-18 14:57

#3

帖子 leiyu » 2007-06-12 12:53

显卡和我一样。。。呵呵
ericleigh
帖子: 6
注册时间: 2007-06-02 20:17

#4

帖子 ericleigh » 2007-06-12 14:15

x1250呢?sb600+690g的板子。
头像
Redink
帖子: 35
注册时间: 2006-09-14 8:13
来自: 济南

#5

帖子 Redink » 2007-06-12 15:41

好贴,学习...
fsztdwy
帖子: 33
注册时间: 2007-06-01 14:03

#6

帖子 fsztdwy » 2007-06-12 16:55

长知识了!
网通真郁闷,更新源真是慢。
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#7

帖子 xhy » 2007-06-13 4:31


打开终端

sudo su -
mkdir src
cd src
tar jxvf 内核源码的路径以及文件名
cd linux<TAB补全>
make menuconfig && make -j3 && make modules_install && make install


编译后/boot下会增加三个文件
一个配置文件 config
一个内核镜像 vmlinuz.img
一个map文件 System.map
加起来一般是2M到3M
如果太大 很有可能是你配置内核的时候把用不着的东西也保留了


至于 grub.conf(menu.lst) 根本不用动它
不过我还是建议改成这样的形式
timeout 0

password --md5 $1$yr9zw1$dQcry7YM2ZWclbvWfTQyF/

title Linux AMD64
root (hd0,0)
kernel /vmlinuz noapic quiet root=/dev/sda6
#没错 这就是我的完整的grub配置文件

如果新内核和原来的内核版本相同
make install的时候会自动把 /boot 下的老内核在文件名后加.old
新内核则使用原来内核的文件名
不管怎样 只要vmlinuz和System.map这两个符号连接指向新内核就可以了
目前负债150多万
头像
jeffwei
帖子: 1344
注册时间: 2007-05-12 22:48

#8

帖子 jeffwei » 2007-06-13 18:33

ericleigh 写了:x1250呢?sb600+690g的板子。
自己找看看,据说ATI的不好对付.没试过,我们班,我们这座楼就我用linux
xilihwala
帖子: 2
注册时间: 2007-06-22 5:49

#9

帖子 xilihwala » 2007-07-04 4:02

:lol: 照次方法,第一次编译内核就是成功了,版本是2.6.21.5,支持LZ
ltkun
帖子: 1340
注册时间: 2006-01-10 19:09

#10

帖子 ltkun » 2007-07-04 9:08

编译内核还是用sudo fakeroot make-kpkg --revision=custom.1.0 kernel_image 编译成deb包来的方便
卸载也方便
yyhero01
帖子: 29
注册时间: 2007-06-22 10:47

#11

帖子 yyhero01 » 2007-08-16 11:14

记号。
头像
aitilang
帖子: 1026
注册时间: 2007-04-28 21:38

#12

帖子 aitilang » 2007-09-02 11:19

ltkun 写了:编译内核还是用sudo fakeroot make-kpkg --revision=custom.1.0 kernel_image 编译成deb包来的方便
卸载也方便
都用了fakeroot了怎么还要sudo??

眼镜兄知道吗?
thinkpad x61 2G DDR no cdrom
--------------------------------------------
ABS学习中
sed学习中
awk学习中
perl学习中
新手描述不清,老手猜测不到,胡乱指挥一通,后果难以预料
头像
xhy
帖子: 3916
注册时间: 2005-12-28 1:16
系统: Ubuntu 12.10 X64
来自: 火星

#13

帖子 xhy » 2007-09-02 11:51

估计他把源码放在自己没有写权限的目录里了

在$HOME下编译是不需要sudo的
目前负债150多万
mpoix
帖子: 39
注册时间: 2007-08-29 20:39

#14

帖子 mpoix » 2007-09-14 21:25

搜到了
明天试试
回复