Linux系统移植学习笔记【2】linux内核移植

二、linux内核的移植

1.linux内核的特点

1. linux内核是开源的,作者:linus  (git : 版本管理工具)
2. 源码由C语言和汇编实现
3. linux内核支持多种硬件架构平台
4. linux内核采用模块化方式编写,分层思想 
5. linux内核使用C和汇编代码实现,在内核中最好不要使用C++ 
6. linux内核具有很好的移植和裁剪特性,通过图形化界面的配置方式就可以完成裁剪

2.linux内核源码的获取

1. linux官方获取
	https://mirrors.edge.kernel.org/pub/linux/kernel/
2. 芯片厂家获取
3. 开发板厂家获取
4. 公司主管获取
本次一直练习使用:kernel-3.4.39-ok.tar.bz2

3.linux内核的版本命名方式

主版本号.次版本号.修订版本号

主版本号:内核源码有较大的改动才会更新主版本号
次版本号:修订版本号用完升级次版本号
	     偶数:稳定版
	     奇数:测试版
修订版本号:内核代码只要有更新就会修改修订版本号

4.linux内核版本的选择

1. 不选太新
2. 不选太旧
3. 选择稳定版本

5.linux内核的配置和编译

1. 拷贝linux内核源码压缩包到ubuntu中
	1)拷贝内核源码到ubuntu目录中
		kernel-3.4.39.tar.bz2
	2)解压缩内核源码
		tar -vxf kernel-3.4.39.tar.bz2
	3)进入内核源码目录
		cd kernel-3.4.39
2. 分析内核源码的目录结构
	平台相关代码:代码跟硬件相关
	arch
	平台无关代码:代码跟硬件无关
	drivers 
	lib
	include 
	net 
	fs 
	kernel 
	...
3. 获取配置和编译的命令
	清除中间文件:
	make clean  
	make distclean 
	配置linux内核:
	make menuconfig  基于菜单选项的方式对内核进行配置

	编译内核: 
	make modules   模块化编译内核

	make uImage   编译生成uImage的内核镜像

	make dtbs  编译生成设备树文件

	make fs6818_defconfig   配置内核支持fs6818开发板
	
	"make ${PLATFORM}_defconfig"
		Create a ./.config file by using the default
		symbol values from
		arch/$ARCH/configs/${
   PLATFORM}_defconfig.
		Use "make help" to get a list of all available
		platforms of your architecture.
	根据arm/arm/configs目录下提供的缺省文件,
	在内核源码的顶层目录下生成一个.config配置文件

6.对内核源码进行配置和编译

1. 配置交叉编译工具链
	195 ARCH        ?= arm                               
	196 CROSS_COMPILE   ?= arm-none-linux-gnueabi-
2. 执行make distclean清除中间文件 
	只需要执行一次,
3. 执行make fs6818_defconfig 配置内核源码支持fs6818平台 
4. 执行make menuconfig  通过图形化界面对内核进行配置
	问题1:make menuconfig
		第一次使用make menuconfig 需要安装图形化界面的工具
		配置之前需要安装图形图(make meuconfig):
		sudo apt-get install libncurses5-dev
		sudo apt-get install lib32z1 (64)
	问题2 :make menuconfig 
		scripts/kconfig/mconf Kconfig
		Your display is too small to run Menuconfig!
		It must be at least 19 lines by 80 columns.
		make[1]: *** [menuconfig] Error 1
		make: *** [menuconfig] Error 2	
		中断字体太大,缩小终端字体
		
Device Drivers  ---> 
	Character devices  ---> 
		[ ] FS6818 beep driver   # 去掉*
		FS6818 board device driver support  --->
			[ ] adc driver for farsight FS6818 all platform  # 去掉* 
			[ ] pwm timer driver for farsight FS6818   # 去掉*
			[ ] DS18B20 driver for farsight FS6818     # 去掉*
		FS6818 extension device driver support  ---> 
			< > This is FS6818_LED!   # 去掉*
			[ ] zlg7290 driver support input device   # 去掉*	
	
5. 执行make uImage 生成uImage的内核镜像
	问题3:make uImage
		在编译的过程中可能出现如下错误:
		"mkimage" command not found - U-Boot images will not be built
		make[1]: **<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: zynq-linux移植学习笔记应包含以下内容: 1. 对zynq架构和硬件资源的理解,包括PS和PL部分的特点。 2. 如何使用Xilinx SDK来编译和配置u-boot和Linux内核。 3. 如何在硬件平台上运行和调试Linux系统。 4. 怎样在Linux系统中配置和使用各种硬件资源,如DMA、Ethernet、Flash等。 5. 如何在Linux系统移植和运行应用程序,并与硬件资源进行交互。 6. 如何进行系统优化和资源管理,以提高系统性能和稳定性。 ### 回答2: Zynq是一款Xilinx公司开发的一种嵌入式系统芯片,其使用了双核Cortex-A9处理器和可编程逻辑器件(FPGA)的组合。移植Linux到Zynq芯片中,可以使其具备无限的扩展能力,极大地拓展了其应用领域,因此掌握Zynq-Linux移植技术是非常重要的。 Zynq-Linux移植分为四个主要步骤: 第一,准备工作 在移植前,需要确认硬件平台是否支持Linux运行,并且需要对硬件进行配置,最好使用Zynq开发板的官方配置; 第二,内核移植 内核移植是整个移植过程中最关键的一步。需要根据硬件平台的特性对内核进行选择和配置。可以从内核源代码库中获取内核代码,然后进行交叉编译。移植内核的过程中需要注意内核配置参数的设置,同时也要确保内核模块和驱动程序的编写。 第三,文件系统移植移植Linux的过程中,文件系统也是非常重要的。可以使用开发板官方Linux镜像,也可以自己编译镜像。移植文件系统还涉及到root文件系统的配置、挂载方式、网络配置和各种服务的配置等问题。 第四,驱动移植 驱动程序是连接硬件和软件的关键部分,需编写相应的驱动程序来实现对硬件的控制。移植驱动程序的过程中需要关注各种硬件接口和设备驱动API的使用,确保驱动程序与硬件配合良好。 总结来说,Zynq-Linux移植技术的掌握需要具备较强的Linux基础知识、驱动开发经验和交叉编译工具链的使用能力。同时,还需要有耐心和细心,对每个步骤进行仔细的分析和处理。 在学习中,需要结合实际开发项目,多进行实践操作才能更好地掌握Zynq-Linux移植技术,为后续项目的开发和应用提供更好的支持。 ### 回答3: Zynq-7000系列是一种由Xilinx开发的SoC(系统级芯片),它将双ARM Cortex-A9处理器和可编程逻辑(FPGA)集成在一起。这使得开发人员可以使用硬件加速加速器来加速运行在Linux上的各种应用。然而,实现这个目标需要进行移植。 在开始Zynq Linux移植学习笔记之前,需要一些基本的知识。首先,需要了解Linux内核的基本工作原理和Linux驱动程序的编写技术。然后,需要了解FPGA和SoC体系结构。 在开始移植之前,需要为SoC开发板选择正确的Linux发行版。这通常需要考虑处理器体系结构,内存大小和设备驱动程序的可用性。另外,还需要考虑是否需要自定义内核或驱动程序以满足应用程序的需求。 接下来,需要编写设备树文件(DT)来描述SoC架构。设备树文件是一种描述硬件配置信息的特殊语言。它会告诉内核有哪些设备可用以及如何访问这些设备。 接下来,需要配置Linux内核以支持Zynq-7000处理器。这可能包括启用适当的内核配置选项,编写设备驱动程序以及配置启动过程。 最后,需要启动Zynq板并验证Linux系统稳定运行。这些步骤包括在启动过程中将设备树文件加载到内存中,以及启动用户空间应用程序。 总之,移植Zynq Linux是一项复杂的任务,需要广泛的专业知识和技术。但是,它可以为开发人员提供强大的硬件加速支持,使他们能够加速处理一系列计算密集型应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值