linux安装新的内核,给Linux发行版安装新内核

我的机器是Thinkpad T420i, 系统是debian wheezy.

1, 编译Kernel:

make menuconfig

make -jn

sudo make modules_install

sudo make headers_install

sudo make install

sudo update-grub (Ubuntu only)

NOTE:

ERROR: P: Installing debian theme...cp: cannot stat `/usr/share/syslinux/themes/debian-wheezy/extlinux/memtest.bin': No such file or directory

FIXED: sudo touch /boot/memtest.bin

2, 重启系统,使用自己编译的 Kernel 启动。

3, initrd

如果没有生成initrd.img,则需要手工生成,并添加到grub.cfg

sudo mkinitramfs -o /boot/initrd.img-3.2.34 3.2.34-LEE@Ts (新的模块目录名/lib/modules/3.2.34-LEE@Ts/)

添加到grub.cfg: 如果执行了sudo update-grub, grub中有添加如下信息. 如果没有, 执行完sudo update-grub, 就可以拷贝以前的。

添加initrd.img到grub.cfg中:

menuentry "Ubuntu 10.10, kernel 3.2.34 (on /dev/sda1)" {

insmod part_msdos

insmod ext2

set root='(hd0,msdos1)'

search --no-floppy --fs-uuid --set xxxxxxxxxxx

linux /boot/vmlinuz-3.2.34 root=UUID=xxxxxxxxxxxx ro quiet splash

### Add the initrd ###

initrd /boot/initrd.img-3.2.34

}

其中的 xxxxxxxxx 是UUID, 通过 ls -l /dev/disk/by-uuid得到.

4, 安装source和headers:(当前目录是刚刚编译完的那个内核)

export OBJ=/tmp/obj-linux-source

mkdir $OBJ

cp Makefile $OBJ/

cp Module.symvers $OBJ/

cp -rf ./include/ $OBJ/

mkdir -p $OBJ/arch/x86/kernel/

cp -f arch/x86/Makefile* $OBJ/arch/x86/

cp -f arch/x86/kernel/asm-offsets* $OBJ/arch/x86/kernel/

cp -rf arch/x86/include/ $OBJ/arch/x86/

cd scripts/; make bin2c pnmtologo; cd ..;

cp -rf scripts/ $OBJ/

mv $OBJ/ /usr/src/linux-source-your-version

cd /usr/src/

rm linux-kbuild-3.2; ln -s /usr/src/linux-source-your-version linux-kbuild-3.2;

cd /usr/lib/

rm -rf linux-kbuild-3.2/

ln -s /usr/src/linux-source-your-version linux-kbuild-3.2

cd /lib/modules/new-modules/

rm build source

ln -s /usr/src/linux-source-your-version build

ln -s /usr/src/linux-source-your-version source

5, 清理工作

- 删除之前创建的"/boot/memtest.bin"

- 删除旧的内核

rm memtest86+.bin config-3.2.0-4-amd64 initrd.img-3.2.0-4-amd64 System.map-3.2.0-4-amd64 vmlinuz-3.2.0-4-amd64

- 更改链接

/initrd.img -> /boot/initrd.img-3.2.34-LEE@Ts

/vmlinuz -> /boot/vmlinuz-3.2.34-LEE@Ts

- 删除旧的/lib/modules/xxxx

有些软件(e.g. virtual box)可能自己创建了一个目录, 里面只有寥寥的几个文件, 不要删掉.

只删你当前用的版本就没有问题了.

- sudo updata-grub2

6, 第三方驱动

除安装 Kernel 本身外, 还需要安装头文件, 这样才可以编译第三方驱动.

有时, 你自己的Kernel配置中,必须关闭CONFIG_MODVERSIONS这个选项,要不然会出

现因为某些符号找不到而无法加载WIFI驱动模块的问题。

[*] Enable loadable module support --->

[ ] Module versioning support

如果之前的编译的Kernel是选中的,请重新编译安装.

http://sudolee.googlecode.com/files/92ce_se_de_linux_mac80211_0005.1230.2011.tar.gz

sudo make install

sudo make modules_install

sudo make headers_install

手动加载:

sudo modprobe rtl8192se

--end--0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值