debian源码编译_debian开源

hacker|
111

文章目录:

源代码怎么编译成deb

deb是软件的打包格式,不用翻译的,用Debian提供的专门工具程序做。

DEBIAN安装软件apt-get与源代码编译的区别和优劣

在 Linux 系统中,使用 apt-get 获取软件并安装自动化更高一些。但是有些驱动程序是没有现成的,是必须需要自行从网上下载后,再和系统的内核一起进行编译。如果是从网上下载源代码来进行编译的话,用户操作起来就得麻烦一些。

如何在Debian或Ubuntu上安装完整的内核源码

在Debian上安装完整的内核源码

在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件。不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source。

$ sudo apt-get install dpkg-dev

然后,运行以下命令下载完整的内核源码。

$ apt-get source linux-image-$(uname -r)

伴随着完整内核源码(linux_X.X.XX.orig.tar.xz)的还有一些可用的内核补丁(linux_X.X.X+XXX.debian.tar.xz)和源码控制文件(linux_XXXX.dsc),这些都将被下载并存储到当前目录。在.dsc文件中会指出如何给内核源码打补丁。

当下载完成,以上的命令将会自动调用工具dpkg-source将下载的内核源码解压到当前的目录中,与此同时根据.dsc文件来下补丁。

最终完整的内核源码树将会以"linux-X.X.XX"的形式呈现在当前目录中。

在Ubuntu上安装完整内核源码

如果你想安装完整内核源码的话,以上在Debian上的那一套做法在Ubuntu上仍然奏效。

在Ubuntu上还有另一套方法安装完整内核源码。事实上,你可以查一下由Canonical为Ubuntu不同发行版维护的内核源码树。

$ sudo apt-get install git$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-$(lsb_release --codename | cut -f2).git

举个例子,如果你使用的是Ubuntu 14.04,以上的命令将会查看Git的"ubuntu-trusty"仓库中的代码。

一旦在你对Git仓库的查询结束后,使用以下的命令来安装用来访问生成内核源码树所需依赖的重要开发包。

debian内核解压后怎么编译

下载最新的内核源代码linux-2.6.33.1.tar.bz2,放在/liqiong/Linux内核 目录下,liqiong是Linux OS的第一个用户名。

2、进入Linux内核源码所在的目录(cd Linux内核),解压该内核代码到/usr/src下:

sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src

3、进入Linux内核源码解压后的目录/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)

4、sudo make mrproper 净化解压后的源代码

5、sudo make menuconfig 对内核选项进行配置

在配置过程中会发生如下错误:

*** Unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

make: *** [menuconfig] 错误2

解决办法:

(1)cd / 进入根目录后,在终端输入:sudo apt-get install ncurses

信息:

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

现在没有可用的软件包 ncurses,但是它被其它的软件包引用了。

这可能意味着这个缺失的软件包可能已被废弃,

或者只能在其他发布源中找到

E: 软件包 ncurses 还没有可供安装的候选者

(2)然后接着在终端输入:sudo apt-get install libncurses*

(3)再cd /usr/src/linux-2.6.33.1进入内核所在目录,再次输入sudo make menuconfig就好了!

6、对于配置可选择General Setup或者选择其他的自定义选项保存后退出。

7、sudo make dep 建立模块间的依赖信息

8、sudo make clean 删除配置时留下的一些不用的文件

(7、8两步可能对于一些PC没有作用)

9、sudo make bzImage 编译内核,内核较小时可以用make zImage

10、sudo make modules 编译内核模块

当然,在编译内核时,可通过make-jn来加速内核的编译,n一般等于CPU数量的两倍。单核,n=2;双核,n=4.即执行sudo make -j4就可以编译了!

11、sudo make modules_install 安装内核模块

12、sudo make install 安装内核

13、cd / 后在终端输入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic

14、到此为止,构建内核完毕,第十二步把内核映象和System.map拷贝到/boot/下

#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic

#sudo cp System.map /boot/System.map-KERNEL_VERSION

#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map

15、

(1)修改grub配置文件

在终端输入:sudo update-grub2,就会把刚才编译的内核加入了Grub;(此时就可以重启了,重启后在Grub启动项里多了Ubuntu, Linux 2.6.33.1-generic)

若还需修改(在Ubuntu10.04中没有采用menu.lst,而是用的grub.cfg(/boot/grub/)),则修改grub.cfg就可以了,

在终端中输入:sudo gedit /boot/grub/grub.cfg 用root账户进入grub.cfg并编辑

(或用sudo chmod +w /boot/grub/grub.cfg改变grub.cfg的权限后在进行编辑)

如将Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改为menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我们刚才编译的内核)

(2)修改default变量

在/boot/grub/grub.cfg中,设置set default="【某个数字】"(设置Grub启动项里的默认启动项)

在Grub启动项里,从0数起,我的XP在第10项,所以set default="10",即XP就是默认的启动项了。

最后重启即可。

2条大神的评论

  • avatar
    访客 2022-07-16 下午 09:51:30

    cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic #sudo cp System.map /boot/

  • avatar
    访客 2022-07-16 下午 04:19:41

    码的话,以上在Debian上的那一套做法在Ubuntu上仍然奏效。在Ubuntu上还有另一套方法安装完整内核源码。事实上,你可以查一下由Canonical为Ubuntu不同发行

发表评论