Linux内核的移植.ppt
Linux内核的移植,移植的概念:使某一个平台的代码运行在其他平台上的过程叫做移植。Linux操作系统可以通过移植,运行在ARM、PowerPC等多种硬件平台上。移植的步骤:建立交叉编译开发环境根据开发板硬件配置修改linux内核编译内核并修正下载并试运行根据运行结果进行调试,Linux的移植,开发板硬件配置,三星S3C44B0微处理器,工作频率为66MHz 2MB NOR Flash(AM29LV160D)地址空间:0 x00000000-0 x00200000 8MB SDRAM(HY57V641620HGT)地址空间:0 x0c000000-0 x0c8000000 16MB NAND Flash(K29F2808U)地址空间:0 x02000000-0 x03000000,Linux-2.4移植到博创UP-NETARM3000开发板的步骤,需要准备的软件包:系统包:uClinux-dist-20040408.tar.gz 补丁包:uClinux-20040408-ARMSYS.patch(该补丁的作用是针对s3c44b0 x对系统进行配置)uClinux-dist是一个综合包,里面不仅包含Linux内核(包含和版本的内核),还包括了厂商、文件系统等文件,这样我们在移植内核的时候,就不用再另外移植文件系统。,移植步骤,1.解压uClinux-dist源码包 命令:解压后在当前目录下生成uClinux-dist目录,选择内核版本。2.将补丁包拷贝到uClinux-dist目录下命令:cp uClinux-20040408-ARMSYS.patch uClinux-dist/3.创建uClinux-dist/vendors/Samsung/44B0目录 在uClinux-dist/vendors/Samsung目录下执行:mkdir 44B0 cp 4510B/*44B0,移植步骤,4.打补丁rootlocalhost uClinux-dist#patch-p1 uClinux-20040408-ARMSYS.patch5.修改补丁错误在打补丁的过程中会出现错误提示:对于在出错的文件,对照补丁对源文件进行手动修改即可。6.修改,移植步骤,7.修改销释obj-$(CONFIG_SERIAL_S3C44B0X)+=serial_S3C44B0X.o8.修改销释define_bool CONFIG_SERIAL_S3C44B0X9.增加bzImage 修改uClinux-dist/Makefile 在TFTPDIR=/tftpboot 后添加:LINUXTARGET=bzImage,移植步骤,10.根据开发板配置修改内核(1)修改串口通信波特率 打开uClinux-dist/vendors/Samsung/44B0/config.arch 设置:CONSOLE_BAUD_RATE=115200(2)修改uClinux-dist/vendors/Samsung/44B0/config.linux-2.4.x 主要修改的几点:选择开发板:CONFIG_BOARD_MBA44=y修改CPU型号:CONFIG_CPU_S3C44B0X=y选择内核模式:CONFIG_RAMKERNEL=y设置DRAM和FLASH参数:修改,移植步骤,11.编译内核 rootlocalhost opt#make distclean rootlocalhost opt#make menuconfig 选择CPUVendor:SamsungProduct:44B0 选择内核Libc Version:uClibcCustomize kernel setting:yCustomize vendor/user setting:y 保存设置退出,移植步骤,make dep make lib_only make user_only make romfs make linux make image(9)make linux(10)make image(11)make,移植步骤,编译通过后会在uClinux-dist/images 里产生三个文件:image.ram image.rom romfs.imgimage.ram 是可以在SDRAM中运行的内核映像。在超级终端上,通过tftp命令下载image.ram到开发板的SDRAM中0X0c008000处,通过命令 go 0 x0c008000 运行。,Over,Thanks for everyone!,2023/7/7,Inspur group,