首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。
最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
② linux 怎么编译c的源程序的gcc,编译命令是什么
在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器。
先将源文件编译成目标文件:gcc - c hello.c
生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux ");
}
(2)重新编译linux命令扩展阅读:
在使用GCC编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数。具体可参考GCC Manual。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数,filenames给出相关的文件名称。
网络_gcc
③ linux 重新挂载命令
linux 重新挂载需要先卸载再重新挂载,如果要一条命令可以通过&&符号将两个命令组合到一个命令里,例如:
umount -l /mnt/test && mount -o ro /dev/hda1 /mnt/test
linux中挂载命令是mount,卸载是umount,在命令行中使用&&可以将多条命令组合成一条命令并顺序执行,以达到快速执行的目的。
(3)重新编译linux命令扩展阅读
linux挂载命令mount的用法介绍:
1、语法
mount [-fnrsvw] [-t vfstype] [-o options] device dir
2、参数说明:
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
④ 如何编译linux版本
编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make moles
7、安装模块
make moles_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!
⑤ linux编译安装命令
Linux编译安装相关命令,下面以Linux安装MySQL工具为例进行说明,代码如下:
1、测试环境在Linux MySQL下进行,版本系统为CentOS5,以下为相关软件:
mysql-5.1.30
memcached-1.2.6
libevent-1.4.7-stable
memcached_functions_mysql-0.8
libmemcached-0.26
2、编译安装Linux MySQL
[root@localhost~]#tarxzfmysql-5.1.30.tar_001.gz
[root@localhost~]#cdmysql-5.1.30
[root@localhost~]#./configure--prefix=/usr/local/mysql51
[root@localhost~]#make
[root@localhost~]#makeinstall
[root@localhost~]#./scripts/mysql_install_db--user=mysql--skip-name-resolve
[root@localhost~]#/usr/local/mysql51/bin/mysqld_safe
#连接符&这是放入后台,&&是前一个正确执行,才会执行后一个
#Linux编译安装流程./configure&&make&&makeinstall(默认目录安装)
#./configure--prefix=/usr/local/pcre&&make&&makeinstall(指定安装目录)
⑥ 如何重新编译linux内核
因为一般电脑安装的系统都是Windows,而整个编译过程都需要在Linux环境下实现,所以最好是在虚拟机里安装Linux系统来完成这一过程。我使用的虚拟机是VMware-workstation-full-v7.1.4。
然后,我们需要下载一个较高版本的Linux系统的镜像文件,安装在虚拟机上,作为编译环境。我使用的是ubuntu-11.04-desktop-i386。之所以选择较高版本,是因为它的界面比较方便用户操作。
然后下载一个Linux内核源代码文件,将它保存到虚拟机上新安装的系统中去。并解压到/usr/src目录。我使用的是linux-2.6.36,下载低版本的原因是,小巧轻便,易于编译。
解压命令如下:
bzip2
-d
linux-2.6.36.tar.bz2
tar
-xvf
linux-2.6.36.ta
修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一个系统调用函数。自行编写一个简单的程序即可,只为测试用。
修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,为新添加的程序配置系统调用号。
在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系统调用表。
下面就是最重要的内核编译与安装:
首先配置编译信息,使其生成适合当前机器的Makefile,输入make
oldconf
ig。
接着还要输入make
menuconfig,在字符界面下进行必要的细微的修改。
然后要经过四步编译过程(直接输入命令即可):
(1)make
bzImage
将内核编译为压缩映像,存储在源码根目录下的“System.map”文件中。
(2)make
moles
编译各个模块。
(3)sudo
make
moles_install
安装模块
(4)sudo
make
install
安装内核
第(2)(3)步等待时间较长,可能需要数个小时,请耐心等待。
无报错的话重启进入GRUB界面,就可以看到新编译的内核了。
按回车键进入我们编译的目标内核中,用关键词搜索查看新增加的系统调用“my
call”是否已在内核中:
编写测试程序,调用新添加的系统调用:
测试成功,说明系统调用添加成功,进而说明内核编译成功!
以上的办法你可以试一下,希望对你有所帮助。
⑦ 怎么重新编译linux服务器内核
make config首先配置内核,生成内核配置文件,如果是服务器上的,建议使用编辑好的内核配置文件,自己在服务器上配置比较麻烦;
make再根据生成的配置文件进行编译;
找到新的内核就可以使用
⑧ 在linux实验中,完成程序自动编译的命令是什么
到目录下用以下命令
makefile
make
其中make是编译
makefile是清单文件
⑨ linux上面,已经用gmake命令编好了一个工程,现在又修改了,怎么快速编译
你编译时是不是加了什么参数,默认的编译就是只编译更改过的文件,这是gmake本身的作用:管理工程,按照时间戳进行文件编译。
-B 和 --always-make这两个参数就是全部重新编译。