什么是linux内核的移植

发布时间 - 2022-03-24 00:00:00    点击率:
在linux中,内核的移植指的是将程序代码从一种硬件平台转移到另一种硬件平台上运行;linux内核的移植包括三个层次,分别是体系结构级别的移植、SOC级别的移植和主板级别的移植。

本教程操作环境:linux7.3系统、Dell G3电脑。

什么是linux内核的移植

所谓移植就是把程序代码从一种运行环境转移到另一种运行环境。对于内核移植来说,主要是从一种硬件平台转移到另一种硬件平台上运行。

在一个目标板上Linux内核的移植包括3个层次,分别为体系结构级别的移植、SoC级别的移植和主板级别的移植。

  • 体系结构级别的移植是指在不同体系结构平台上Linux内核的移植,例如,在ARM、MIPS、PPC等不同体系结构上分别都要对每个体系结构进行特定的移植工作。一个新的体系结构出现就需要进行这个层次上的移植。

  • SoC级别的移植是指在具体的SoC处理器平台上Linux内核的移植,例如,ARM920T IP核的两个处理器S3C2410和AT91RM9200等平台都分别要进行SoC特定的移植工作。

  • 主板级别的移植是指在具体的目标主板上Linux内核的移植,例如,在FS2410目标板上,需要进行主板特定的移植工作。

在这里讨论主板级别的移植,主要是添加开发板初始化和驱动程序的代码。这部分代码大部分是与体系结构相关的,在arch目录下按照不同的体系结构管理。

Linux 2.6内核已经支持S3C2410处理器的多种硬件板,例如,SMDK2410、Simtec-BAST、IPAQ-H1940、Thorcom-VR1000等。我们可以参考SMDK2410参考板来移植开发板的内核。

S3C2410属于片上系统,处理器芯片具备串口、LCD等外围接口的控制器。这样,参考板上的设备驱动程序多数可以直接使用。但并不是所有的外部设备都相同,不同的开发板可以使用不同的SDRAM、Flash、以太网接口芯片等。这就需要根据硬件修改或者开发驱动程序。

例如,串口驱动程序是典型的设备驱动程序之一,这个驱动程序几乎不需要任何改动。然而,如果用2.4内核的配置使用方式,是不能得到串口控制台信息的。在2.6的内核中,串口设备在/dev目录下对应的设备节点为/dev/ttySAC0、/dev/ttySAC1等。所以,再使用过去的串口设备ttyS0,就得不到控制台打印信息了。现在可以很简单地解决这个问题,把内核命令行参数的控制台设置修改为console = ttySAC0,115200。

在内核已经支持S3C2410处理器以后,基本上无须改动代码就可以让内核运行起来。但是,在有些情况下,我们必须针对不同的设备进行驱动级的移植,至少硬件地址和中断号可能会不同。例如,有时需要移植网络芯片和Nand Flash芯片等外设的驱动程序。

相关推荐:《Linux视频教程》


# linux  # 串口  # 是指  # 运行环境  # 板上  # 平台上  # 开发板  # 转移到  # 设备驱动程序  # 在这里  # 目录下 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: javascript中的数组方法有哪些_如何利用数组方法简化数据处理  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  黑客如何利用漏洞与弱口令入侵网站服务器?  Laravel如何实现文件上传和存储?(本地与S3配置)  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何在宝塔面板中创建新站点?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Python进程池调度策略_任务分发说明【指导】  制作电商网页,电商供应链怎么做?  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  浅谈javascript alert和confirm的美化  中国移动官方网站首页入口 中国移动官网网页登录  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  详解Oracle修改字段类型方法总结  详解vue.js组件化开发实践  Thinkphp 中 distinct 的用法解析  如何用美橙互联一键搭建多站合一网站?  如何在宝塔面板创建新站点?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何在万网主机上快速搭建网站?  Python文件异常处理策略_健壮性说明【指导】  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  米侠浏览器网页背景异常怎么办 米侠显示修复  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  香港服务器如何优化才能显著提升网站加载速度?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel集合Collection怎么用_Laravel集合常用函数详解  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  java获取注册ip实例  如何快速搭建自助建站会员专属系统?  如何在阿里云虚拟主机上快速搭建个人网站?  利用JavaScript实现拖拽改变元素大小  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  如何快速选择适合个人网站的云服务器配置?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?