Linux内核笔记(1) 编译内核
内核学习笔记,既然是笔记就记住关键的东西,杂七杂八的慢慢再说啦。下面介绍编译内核的几个简单步骤:
1。到www.kernel.org下载内核去
2。mkdir /usr/src/linux-2.6.37
cp 2.6.37.tar.bz2 /usr/src/linux-2.6.37 (刚出来的)
3。解压缩其他的情况不考虑了,具体问题具体分析
tar -jxvf 2.6.37.tar.bz2
/////////////////////////////////
下面的作用是更新头文件,防止今后你编写驱动的时候出现头文件和内核不一致的现象!!!
将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。
# cd /usr/include
# rm -Rf asm linux
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
/////////////////////////////////
4。 删除源代码目录中残留的.o文件和其它从属文件。
make mrproper
5。开始编译内核这里做一些配置
make menuconfig或make config或make xconfig
我用的是ubuntu 10.04需要用make menuconfig 需要安装点东西
<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->
sudo apt-get install build-essential
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev
6。建立编译时所需的从属文件
make dep
7。 清除内核编译的目标文件
make clean
8。编译内核了
make zImage
这里默认情况是编译的内核大小在640kb以内,如果多了的话就要用 make bzImage
9。编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
make modules
make modelus_install
10。以上的步骤已经完成了内核的编译工作了,哈哈。下面的就是怎么把新的内核应用到你的系统上了
cp /usr/src/linux-2.4.22/System.map /boot/System.map
vmlinuz 改为编译好的那个 位于/usr/src/linux/arch/x86/bzImage
cp /usr/src/linux/arch/x86/bzImage /boot/vmlinuz
启动项啥的也要修改
/boot/grub/grub.cfg
///////////////////////////////////////////////
menuentry 'Ubuntu, with Linux 2.6.37' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,10)'
search --no-floppy --fs-uuid --set 886aea56-c98a-4b80-a0e3-026900d0b720
linux /boot/vmlinuz-2.6.37 root=UUID=886aea56-c98a-4b80-a0e3-026900d0b720 ro quiet splash
initrd /boot/initrd.img-2.6.32-24-generic
}
///////////////////////////////////////////////
//make install 据说这样就完了,不过我不敢哦,内核坏了两次后我就很小心了,不敢乱搞了。咱还是按部就班吧,实在!
经过上面的操作估计得有一两个小时了,编译比较慢。。。
重启出问题了 启动的时候有两个错误,具体的还不是很清楚,基本上就那个问题initrd.img,
后续将继续学习吧
参考:
http://www.chinaunix.net/jh/4/208791.html
http://blog.csdn.net/cdsnmdl/archive/2009/02/22/3922513.aspx
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)