LinuxDown

LinuxDown.com
Linux系统下载网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

Linux操作系统多数Intemet设备内核移植过程及方法

2023年3月26日 118点热度

微处理器的形成为价钱低廉、结构精巧的CPU和外设的联接提供了稳定可靠的硬件构架,这样,限制嵌入式系统发展的困局就突出表现在了软件方面。虽然从八十年代末开始,早已相继出现了一些嵌入式操作系统(比较知名的有Vxwork、pSOS、Neculeus和WindowsCE)。但这种专用操作系统都是商业化产品,其昂贵的价位使许多高端产品的小公司望而兴叹;并且,源代码封闭性也大大限制了开发者的积极性。而Linux的开放性,致使许多人都觉得Linux特别适宜多数Intemet设备。Linux操作系统可以支持不同的设备和不同的配置。Linux对厂商不偏不倚,但是成本极低,因此很快成为用于各类设备的操作系统。嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引诸多的厂商步入这一领域。

1嵌入式linux操作系统

Linux为嵌入操作系统提供了一个极有吸引力的选择,它是个和Unix相像、以核心为基础、全显存保护、多任务、多进程的操作系统。可以支持广泛的计算机硬件,包括X86、Alpha、Sparc、MIPS、PPC、ARM、NEC、MOTOROLA等现有的大部份芯片。Linux的程序源码全部公开,任何人都可以按照自己的须要剪裁内核,以适应自己的系统。文章以将linux移植到ARM920920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核的剪裁以及移植过程,文中介绍的基本原理与方式方法也可用于其它芯片。

2内核移植过程

2.1构建交叉编译环境

交叉编译的任务主要是在一个平台上生成可以在另一个平台上执行的程序代码。不同的CPU须要有不同的编译器,交叉编译就像翻译一样,它可以把相同的程序代码翻译成不同的CPU对应语言。

交叉编译器完整的安装涉及到多个软件安装,最重要的有binutils、gcc、glibc三个。其中,binutils主要用于生成一些辅助工具;gcc则拿来生成交叉编译器,主要生成arm—linux—gcc交叉编译工具;glibc主要是提供用户程序所使用的一些基本的函数库。

自行搭建交叉编译环境一般比较复杂,但是很容易出错。本文使用的是开发板自带的交叉编译器,即CROSS一3.3.4.交叉编译器,该编译只需将光碟中的arm—linux一3.3.4.bar.bz2用tarixvfarm—linux一3.3.4.bar.bz2命令解压到/usr/local/arm下即可。

2.2更改Makefile

arm linux内核启动分析_arm linux内核移植_arm linux 内核 编译

更改内核目录树皮下的Makefile时,可先指明交叉编译器。设计时,可向Makefile中添加如下内容:

ARCH?=arm

CROSS_COMPILE?=arm-linux-之后设置PATH环境变量,使其可以找到其交叉编译工具链,之后运行vi~/.bashrc,再添加如下内容:

exportPATH=/usr/local/arln—linux一3.4.4/bin:$PATH

2.3设置Flash分区

此处一共要更改3个文件,分别如下:

(1)在arch/arm/machsmachs33cc24102410/devs.c文件中添加如下内容:

arm linux 内核 编译_arm linux内核移植_arm linux内核启动分析

#include

#include

#include

之后再完善NandFlash分区表;同时完善NandF1ash芯片支持,最后加入NandFlash芯片并支持到NandFlash驱动。

另外,还要更改arch/arm/machsmachs33cc24102410/devs.C文件中的s3c_device_nand结构体变量,同时添加对dev成员的形参。

(2)指定启动时初始化

内核启动时,可以根据对分区的设置进行初始配置,之后更改arch/am4mach—s3c2410/machsmdk2410.e文件下的smdk2410_devices[]linux压缩命令,指明初始化时包括在上面所设置的flash分区信息,并添加如下句子:

&s3c_device_nandarm linux内核移植,

(3)严禁FlashECC校准

内核通常都是通过UBOOT讲到NandFlash的。UBOOT则通过软件ECC算法来形成ECC校准码,这与内核校准的ECC码不一样,内核中的ECC码是由S3C2410中NandFlash控制器形成的。所以,这儿选择严禁内核ECC校准。

更改drivers/mtd/nand/s3c2410.C下的s3c2410_nand_init_chip()函数,可在该函数体最后加上如下一条句子:

chip->eccmode=NAND_ECC_NONE;

3内核配置过程

3.1支持启动时挂载devfs

arm linux内核启动分析_arm linux内核移植_arm linux 内核 编译

为了使内核支持devfs以及在启动且在/sbin/init运行之前能手动挂载/dev为devfs文件系统,应更改fs/Keonfig文件linux学习论坛,找到menu“Pseudofilesystems”并添加如下句子:

3.2配置内核形成.config文件

Linux内核裁减的配置菜单命令有好几个配置方式,这几个方式实现的功能类似,只是与用户的交互界面不同。其中:

makeconfig是基于文本的、最为传统的配置界面,可步入命令行;

makemenuconfig是基于文本菜单的配置界面;

makexconfig是基于图形窗口模式的配置界面arm linux内核移植,在Xwindow下推荐使用该界面。

在这3种方式中,makemenuconfig使用最为广泛,这儿选用的是makemenuconfig的配置方式。相应的配置有三种选择,它们分别代表的涵义如下:

arm linux 内核 编译_arm linux内核启动分析_arm linux内核移植

“Y”:将该功能编译进内核;

“N”:不将该功能编译进内核;

“M”:将该功能编译成可以在须要时动态插入到内核中的模块。

运行makemenuconfig时,在smdk2410_defeonfig基础上,其所增删的内核配置项如下:

(1)降低对模块的支持

Loadablemodulesupport--->

关键词:armlinux内核移植剪裁过

加入陌陌

获取电子行业最新资讯

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: arm linux系统 nand s3c2410 交叉编译
最后更新:2023年3月26日

Linux系统下载网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统下载网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
可用性对比Banshee的应用起来非常简单,你知道吗 解决Linux CPU高负载,8招搞定! 《鸡你太美》都没有对应歌词…… Linux设备驱动开发详解4:8个问题解决方案 嵌入式Linux系统的构建和管理方式发生了什么? 哪些电脑可安装Linux?十大特点解析! Linux服务器的优势是什么? 什么是分区讲解系统?安装linux系统的主要步骤对应的知识点 RedHat磁盘分区指南:规划磁盘信息 Linux操作系统的安装方法(42页珍藏版) Linux硬盘对拷技巧:详解与注意事项 编程语言驱动AI走出20世纪90年代的人工智能冬季 嵌入式Linux系统的开发环境是什么样的?? Linux编写.sh文件的技巧 linux支持asp吗 Linux是否支持ASP? Linux操作系统是个什么东西?喉咙的技术? Linux配置Go环境变量,8步搞定! 微软向20万名开发者集中展示人工智能 linux mysql 启动 Linux下MySQL启动与常见问题 基于POSIX和Unix的多线程和多cpu的操作系统
Linux文件自动补齐技巧可用性对比Banshee的应用起来非常简单,你知道吗轻松管理MySQL,这8个Linux工具必备Linux基础——远程访问及控制(OpenSSH服务端)Linux系统移植,嵌入式必备!最小化安装“图形化界面”有什么区别?(Linux基础知识)Linux内核中的五大子系统CPU玩转Linux用户空间MTD,享受高效闪存系统Linux搜索文件夹,快速找到你需要的!java编译后的文件加密保护防止反编译的工具Linux查看SSL版本,轻松掌握Linux基础知识:LINUX软件配置文件常见格式及应用程序发掘Linux系统潜力,提高生产力centos教程:解决CentOS7没有图形化界面,以及怎么安装魅族为何要推出Ubuntu手机?Linux日志监控软件,构建完善系统Linux安装必备:分区知识详解什么是GPG?GPG(GNUPrivacyGuard)使用非对称加密算法Linux如何指定复制文件?常用的Linux文件系统相关命令--清理文件的命令
解密Linux系统下的/dev目录:作用与意义 Linux系统的海量资料超值下载文件和目录的权限管理 linux rserve LinuxRserve:专业人士为何转投? Linux版本信息查看攻略:10个必备技巧 (Linux基础知识)Linux版本的查看方法及版本命令 轻松掌握Linux系统版本:实用的uname命令 Linux文件自动补齐技巧 Linux命令例解,从入门到精通! Linux网络视频播放神器,畅享高清视界 Linux下FTP增加用户,轻松解决问题 轻松掌握Linux获取Getway的几种方法 奶瓶Linux下载指南 韩国Linux多线程服务端编程使用C++网络库编程 Linux如何指定复制文件? 探秘Linux内核社区:历史、组织、贡献与版本 Linux开机后自动运行用户的应用程序或启动系统服务的命令 轻松查询Linux系统32位或64位,快速搞定! 哪些电脑可安装Linux?十大特点解析! Linux移植:地址注意事项 Linux安装虚拟机软件,轻松实现多系统运行
标签聚合
linux系统 软件 电脑 操作 命令模式 sudo linux服务器 文件目录 centos 虚拟机
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 16篇
  • 2023年5月 / 124篇
  • 2023年4月 / 115篇
  • 2023年3月 / 265篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxDown.com ALL RIGHTS RESERVED.

京ICP备14023444号-2