cd linux-2.6.34.14 make mrproper #清除旧目标文件和配置 make menuconfig #配置内核选项 这里我没选ipv6支持,添加了ntfs文件系统的支持 注意:"*" 表示启动内核时直接加载的模块 "M" 表示在须要该模块时动态加载,这种好处就是节省资源 " " 空格表示不选 make #编译内核 make modules #编译内核模块 make modules_install #安装内核模块 make install #安装新内核
验证:less /etc/grub.conf # default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.34.14) root (hd0,0) kernel /vmlinuz-2.6.34.14 ro root=UUID=2858d858-b089-4d4a-a044-4b75325a35dd rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet initrd /initramfs-2.6.34.14.img title Red Hat Enterprise Linux (2.6.32-71.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-71.el6.x86_64 ro root=UUID=2858d858-b089-4d4a-a044-4b75325a35dd rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-71.el6.x86_64.img # 格式化一个ntfs格式的U盘,在当前启动的内核不识别,启动新内核即可以自动挂载
出现的问题: 错误:make[2]: warning: Clock skew detected. Your build may be incomplete. make[2]: Warning: File `/usr/src/kernels/linux-2.6.34.14/Documentation/networking/Makefile' has modification time 1.4e+07 s in the future 网上资料分析: ###################################### We may get warning of this type when: 1) You try to build after moving your data from one machine to another. 2) You try to build after restarting any old machine. This is due to the fact that sometimes when a machine is restarted its time and date settings get affected. Also when you transfer data from one machine to another one may get such an error because of the time difference form machine to machine. There are two ways to overcome this error: A] Linux has a very handy ‘the touch command’. How to Use: # touch Explanation: The touch command changes the time stamp of the file with the ‘file name’ give as argument to the command. For every file the Linux OS maitains some data like the files creation time, last modification time, etc. touch changes the last modification time of the command and sets it to the time the touch command was executed. The very well known ‘make’ command works on a very similar principle. This method is suitable only if yu haev transferred one or two files. But if there are many such files (and also if the machine time is not set to the present) then it would be better to use the following method. [EDIT :] Okay here’s an update: You can use the touch command for any number of files in the following manner: 1. Just ‘cd’ into the directory where the files need a time-stamp update. 2. Next use the following command which will update the time-stamps of all the files in the directory: # find . -exec touch {} \; B] the ‘date’ command: How to use: # sudo date Explanation: The date command changes the time and date of the Linux system to the time and date given as an argument. The argument is formed int he following way - -> First two digits are the current month like 02 for February and 12 for December. -> Next two digits are the date from 01 to 30 or 31. -> Next two digits are the time digits. This is to be strictly given in the 24 hour format. Nevertheless, while displaying the system time ( which happens when the date command is executed without any arguments ) the time is displayed in 12 hour format or whatever format is set. -> next two digits are for minutes range is from 00 to 59 ->Next four digits are for the current year like 2013. This way the system time will be set to the current time and your build will be now successful.