怎么样安linux内核源代码在src目录下?

时间:2022-03-29 05:23:39
我正在努力地学习linux有关的东东,看了一些linux内核源码的书,可是我安装的linux系统里没有源代码(/usr/src目录)?
怎么安装才会有源代码,或者能不能在既有系统上用rpm安装?

我买了好多有关linux的书,也看了不少,希望大侠们不吝赐教。

19 个解决方案

#1


google,一下多的很!

#2


http://www.kernel.org/

去下载一个好了。 

#3


你按照系统的时候没有完全按照吧

自己下一个源码包就行了

#4


"http://www.kernel.org/ 

去下载一个好了。 "

我去看了,没找到我安装的内核版本
uname -a
Linux localhost.localdomain 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:12 EDT 2008 i6
86 i686 i386 GNU/Linux

#5


to Arnold9009:
我安装系统的时候,选了一些包,没有找到是有关源代码的包,然后我通过rpm -ivh将带有kernel的全部安装了,结果只在scripts目录下有一些.c文件。


郁闷中。。。
神哪,救救我啊。。。。。。。。。。

#6


ftp://ftp.kernel.org/pub/linux/kernel/v2.6

所有内核版本。

#7


kernel 安装在  /lib/modules/ 目录下
不在 /usr/src 下 。

#8


to pottichu:(先谢谢)
讲解上都说源代码是在/usr/src目录下,执行make mrporper make menuconfig make dep make clean make bzImage make modules make module_install.....
我看了一下你说的/lib/modules目录,里面有几个目录
[lzc@localhost ~]$ ls /lib/modules
2.6.18-92.el5  2.6.18-92.el5debug  2.6.18-92.el5PAE  2.6.18-92.el5xen
但里面没有.c文件呢 

#9


我想从易到难,先编译在机器上已经安装的linux系统,稍微改一改,然后再去下载编译。

#10


ls /lib/modules/2.6.18-92.el5/source 

源码就在这里。

PS: 书上说的,并不总是正确的。

#11


编译好的ko(modules)会在make modules_install之后copy到/lib/modules/kernel-version下面,真正的kernel在make install之后copy到/boot/下面。
你先要download一个内核,然后配置,编译,才到安装这一步。
你可以修改内核源码的Makefile来改变kernel-version.

#12


to pottichu:
ls /lib/modules/2.6.18-92.el5/source 
[root@localhost source]# pwd
/lib/modules/2.6.18-92.el5/source
[root@localhost source]# ls
arch     include         lib             net                           usr
block    init            Makefile        scripts
crypto   ipc             mm              security
drivers  kabi_whitelist  Module.kabi     sound
fs       kernel          Module.symvers  symsets-2.6.18-92.el5.tar.gz
[root@localhost source]# ls init
Kconfig  Makefile


没有源代码啊,大虾,急死我了。。。。。。只在include/asm等下面有些.h文件

#13


to pottichu:
大哥,你有MSN么?或者QQ,不过我上班的时候没法上QQ。
me:zhicailiao@hotmail.com
thank you veryveryveryvery much!!!!1

#14


那说明你的 系统里确实 没有  kernel source 

去 ftp://ftp.kernel.org/pub/linux/kernel/v2.6  下载吧。

我上班用的 是 linux ,不方便上 msn, 平时也不上 msn的。。。。

#15


我下载了linux 2.6.18正在编译中。。。。。已经到了make modules一步了。
多谢

#16


编译完了,怎么修改grub.conf呢?
只生成一个bzImage,title--标题,root 启动位置 kernel--bzImage??? module呢,有两行module呢?


default=3
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-92.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-92.el5
        module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=/ rhgb quiet
        module /boot/initrd-2.6.18-92.el5xen.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5PAE)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5PAE.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5debug)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5debug ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5debug.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5.img

#17


编译内核操作流程 ──为新手指南


http://fedora.linuxsir.org/main/?q=node/66

#18


讲解里说mkinitrd是制作内存映象文件,我试了一下,报错,直接跳过,将grub.conf里的后几行直接加#
只保留root 行和kernel行。结果重启后报错:
Kernel Panic on VFS: Unable to mount root fs on unknown-block(0,0)


郁闷。。。。
看来注定不会一帆风顺。

#19


又查了一下资料,结果发现可以用make install生成镜像文件。
[lzc@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.18 #1 SMP Thu Nov 5 15:04:25 CST 2009 i686 i686
i386 GNU/Linux
[lzc@localhost ~]$


thanks a lot.

#1


google,一下多的很!

#2


http://www.kernel.org/

去下载一个好了。 

#3


你按照系统的时候没有完全按照吧

自己下一个源码包就行了

#4


"http://www.kernel.org/ 

去下载一个好了。 "

我去看了,没找到我安装的内核版本
uname -a
Linux localhost.localdomain 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:12 EDT 2008 i6
86 i686 i386 GNU/Linux

#5


to Arnold9009:
我安装系统的时候,选了一些包,没有找到是有关源代码的包,然后我通过rpm -ivh将带有kernel的全部安装了,结果只在scripts目录下有一些.c文件。


郁闷中。。。
神哪,救救我啊。。。。。。。。。。

#6


ftp://ftp.kernel.org/pub/linux/kernel/v2.6

所有内核版本。

#7


kernel 安装在  /lib/modules/ 目录下
不在 /usr/src 下 。

#8


to pottichu:(先谢谢)
讲解上都说源代码是在/usr/src目录下,执行make mrporper make menuconfig make dep make clean make bzImage make modules make module_install.....
我看了一下你说的/lib/modules目录,里面有几个目录
[lzc@localhost ~]$ ls /lib/modules
2.6.18-92.el5  2.6.18-92.el5debug  2.6.18-92.el5PAE  2.6.18-92.el5xen
但里面没有.c文件呢 

#9


我想从易到难,先编译在机器上已经安装的linux系统,稍微改一改,然后再去下载编译。

#10


ls /lib/modules/2.6.18-92.el5/source 

源码就在这里。

PS: 书上说的,并不总是正确的。

#11


编译好的ko(modules)会在make modules_install之后copy到/lib/modules/kernel-version下面,真正的kernel在make install之后copy到/boot/下面。
你先要download一个内核,然后配置,编译,才到安装这一步。
你可以修改内核源码的Makefile来改变kernel-version.

#12


to pottichu:
ls /lib/modules/2.6.18-92.el5/source 
[root@localhost source]# pwd
/lib/modules/2.6.18-92.el5/source
[root@localhost source]# ls
arch     include         lib             net                           usr
block    init            Makefile        scripts
crypto   ipc             mm              security
drivers  kabi_whitelist  Module.kabi     sound
fs       kernel          Module.symvers  symsets-2.6.18-92.el5.tar.gz
[root@localhost source]# ls init
Kconfig  Makefile


没有源代码啊,大虾,急死我了。。。。。。只在include/asm等下面有些.h文件

#13


to pottichu:
大哥,你有MSN么?或者QQ,不过我上班的时候没法上QQ。
me:zhicailiao@hotmail.com
thank you veryveryveryvery much!!!!1

#14


那说明你的 系统里确实 没有  kernel source 

去 ftp://ftp.kernel.org/pub/linux/kernel/v2.6  下载吧。

我上班用的 是 linux ,不方便上 msn, 平时也不上 msn的。。。。

#15


我下载了linux 2.6.18正在编译中。。。。。已经到了make modules一步了。
多谢

#16


编译完了,怎么修改grub.conf呢?
只生成一个bzImage,title--标题,root 启动位置 kernel--bzImage??? module呢,有两行module呢?


default=3
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-92.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-92.el5
        module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=/ rhgb quiet
        module /boot/initrd-2.6.18-92.el5xen.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5PAE)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5PAE.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5debug)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5debug ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5debug.img
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.18-92.el5.img

#17


编译内核操作流程 ──为新手指南


http://fedora.linuxsir.org/main/?q=node/66

#18


讲解里说mkinitrd是制作内存映象文件,我试了一下,报错,直接跳过,将grub.conf里的后几行直接加#
只保留root 行和kernel行。结果重启后报错:
Kernel Panic on VFS: Unable to mount root fs on unknown-block(0,0)


郁闷。。。。
看来注定不会一帆风顺。

#19


又查了一下资料,结果发现可以用make install生成镜像文件。
[lzc@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.18 #1 SMP Thu Nov 5 15:04:25 CST 2009 i686 i686
i386 GNU/Linux
[lzc@localhost ~]$


thanks a lot.

#20