历史上的今天
返回首页

历史上的今天

今天是:2025年07月26日(星期六)

正在发生

2021年07月26日 | 移植Linux-2.6.30.4内核之根文件系统构建

2021-07-26 来源:eefocus

上一次只移植完成了linux-2.6.30.4内核,用的是天嵌自带的根文件系统,这次尝试自己制根文件系统。可以按照以下步骤来进行:

在这里插入图片描述

1、移植yaffs2文件系统

现在内核里边还不支持yaffs2文件系统,需要在内核中添加对yaffs2的支持


下载yaffs2的源码,之前天嵌给的源码网址早就不能用了,后来找了好久才下载到。

得到源码后,然后打上 yaffs2 的补丁,方法如下:

#cd yaffs2/ (进到 yaffs2 的补丁目录下)

#./patch-ker.sh c m ~ /sky/kernel-2.6/linux-2.6.30.4/

(执行补丁脚本,打补丁到内核中)

注意第二个参数m/s,要特别注意如果不是最新的linux内核就要使用参数m而不是s,否则内核编译时就会发生错误。–因为这个错误找了半天资料。。。。

执行命令行成功会显示以下信息:

在这里插入图片描述

如果显示其他则代表有问题。

在这里插入图片描述

在配置单中添加对yaffs2的支持:make menuconfig


在配置单的文件系统里选上对yaffs2的支持。

配置好之后,编译出镜像。到这一步就算是把 yaffs2 文件系统移植完毕了,下面就开始制作 yaffs2 文件系统。


2、配置串口驱动

因为在根文件系统的“etc/inittab”文件中涉及到了串口的设置。所以这里还要完善一下内核的串口驱动。


修改Linux-2.6.30.4内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”文件的 100 行,将其改为:

.ulcon = 0x03,

修改 Linux-2.6.30.4内核的“drivers/serial/samsung.c”文件的 53 行添加如下内容:

#include

然后在 433 行添加如下内容:

if (port->line == 2) {

s3c2410_gpio_cfgpin(S3C2410_GPH6, S3C2410_GPH6_TXD2);

s3c2410_gpio_pullup(S3C2410_GPH6, 1);

s3c2410_gpio_cfgpin(S3C2410_GPH7, S3C2410_GPH7_RXD2);

s3c2410_gpio_pullup(S3C2410_GPH7, 1);

}


然后再修改 888 行,内容如下所示:

.dev_name = “tq2440_serial”,

然后重新编译出镜像,烧写到开发板中。

注意:在前面使用默认配置单 s3c2410_defconfig 时已经完成了对串口的配置。


2、移植BusyBox

制作文件系统,首先需要用busybox 编译出文件系统所需要的应用程序,然后再做文件系统。


首先下载一个 busybox 的源码,到网页 http://www.busybox.net/downloads/,就可以下载了,这里用busybox-1.13.0.tar.bz2 源码包为例。


解压busybox,然后进到源码中,修改 Makefile 文件,把 164 行修改为:

CROSS_COMPILE = arm-linux-

把 189 行修改为:

ARCH = arm

然后输入:#make menuconfig,进入配置单:

在这里插入图片描述

发现这里和编译内核好相似啊,都有配置单。然后按照天嵌给出的配置选项配置就可以了。然后退出配置单,编译出 busybox 即可,使用命令:#make install,编译结束后会在busybox-1.13.0 目录下面生成一个名为“_install”的目录,这里边有一些构建根文件系统所必须的目录。


3、制作自己的根文件系统

首先新建一个文件夹root_2.6.30.4,复制刚刚编译出来的 busybox的“bin”目录、“sbin”目录、“usr”目录和“linuxrc”到“root_2.6.30.4”目录下,然后建立“dev”、“etc”、“home”、“lib”、“mnt”、“opt”、“proc”、“root”、“sddisk”、“sys”、“tmp”、“udisk”、“var”和“web”目录,同时在原有的“usr”目录下面新建一个“lib”和“share”目录。


在这些文件里边添加内容,具体内容我就不贴出来了,可以参考《天嵌移植手册》。


重点介绍几个目录:

/dev:该目下存放的是设备文件

/etc:用来存放系统的配置文件

/etc/init.d/rcS:想要实现开机自动运行某些程序只需要在本脚本中添加运行指令即可。

/lib:用来存放常用的库文件,获取库文件的方法(从 EABI-4.3.3 的编译器中提取库)

添加完这些目录和文件,文件系统的框架就基本搞好了,然后使用制作 yaffs 文件系统的软件,把它做出 yaffs 文件系统格式的镜像就可以使用了。使用如下命令制作:

#mkyaffsimage_2 root_2.6.30.4 root_2.6.30.4.bin

制作针对 128MB 以上的 Nand Flash 的文件系统使用:mkyaffs2image 的软件;该软件在交叉编译器里面已经提供了,安装交叉编译器的同时也就安装了它。


然后把制作好的镜像 root_2.6.30.4.bin 复制出来,烧写到开发板中,就可以运行了。运行成功如下图所示:

在这里插入图片描述

推荐阅读

史海拾趣

General Dynamics SATCOM Technologies公司的发展小趣事

对于集成电路控制方式的恒水压自动控制电路,网友可能会提出多个问题,以下是一些常见问题及其回答:

1. 恒水压自动控制电路的基本工作原理是什么?

回答
恒水压自动控制电路主要利用集成电路(如单片机、微处理器等)对水压进行实时监测与控制。其基本工作原理是通过压力传感器采集水系统中的水压信号,将模拟信号转换为数字信号后送入微处理器进行处理。微处理器根据预设的水压值与实际水压值进行比较,通过控制水泵电机或其他执行机构的启停或转速来调节水流量,从而实现水压的恒定控制。

2. 如何实现精确的水压控制?

回答
实现精确的水压控制需要依赖于高精度的压力传感器和先进的控制算法。首先,选择具有高精度和良好稳定性的压力传感器是关键。其次,在控制算法上,常采用PID(比例-积分-微分)控制算法,通过不断调整比例、积分和微分系数来优化控制效果,使系统能够快速响应水压变化并保持稳定。此外,还可以引入模糊控制、神经网络控制等先进算法,以进一步提高控制系统的智能化水平和控制精度。

3. 恒水压自动控制电路中的集成电路如何选择?

回答
在选择集成电路时,需要考虑多个因素,包括控制精度、处理能力、成本、功耗以及是否易于编程等。对于恒水压自动控制电路来说,单片机或ARM等微处理器是常见的选择。这些微处理器具有较高的集成度和较强的数据处理能力,能够满足实时控制和复杂算法的需求。同时,还需要考虑其外部接口和扩展性,以便与压力传感器、电机驱动器等其他元件进行连接和通信。

4. 如何解决电路中的噪声和干扰问题?

回答
在恒水压自动控制电路中,噪声和干扰可能会影响压力传感器的测量精度和控制系统的稳定性。为了解决这些问题,可以采取以下措施:

  • 在电路设计阶段,采用合理的布局和布线方式,减少信号线之间的串扰和耦合。
  • 使用屏蔽线和滤波器来抑制高频噪声和电磁干扰。
  • 对模拟信号进行滤波处理,提高信号的信噪比。
  • 在软件层面,采用数字滤波算法进一步滤除噪声干扰。

5. 如何实现远程监控和故障诊断?

回答
为了实现恒水压自动控制电路的远程监控和故障诊断,可以将控制系统与物联网技术相结合。通过在控制系统中集成无线通信模块(如Wi-Fi、蓝牙、NB-IoT等),将实时水压数据、运行状态等信息传输到云端服务器或远程监控中心。同时,可以通过手机APP、网页等客户端远程查看和控制系统状态,及时发现并处理故障问题。此外,还可以利用大数据分析技术对历史数据进行挖掘和分析,为系统的优化和维护提供数据支持。

以上是对集成电路控制方式的恒水压自动控制电路可能遇到的问题及其回答的总结。希望这些信息能够对网友有所帮助。

ADPOW公司的发展小趣事

随着电源管理技术的不断成熟,ADPOW公司开始将技术应用于更多领域,推出了一系列创新产品。这些产品不仅在性能上有所提升,更在外观设计、用户体验等方面进行了优化。同时,公司积极拓展市场,与多家电子设备制造商建立合作关系,将产品广泛应用于手机、电脑、家电等领域。

Hasco Relays and Electronics International Corp公司的发展小趣事

Harris公司最初成立于1890年代,起初以无线电通信技术为核心业务。在早期,公司凭借其创新的无线电通信技术,在通信领域迅速崭露头角。这一时期,Harris不仅为军事领域提供了关键的通信解决方案,还逐步拓展到商业和民用市场,为当时的电话、电报等通信方式带来了革命性的变化。通过不断的技术研发和产品创新,Harris逐渐奠定了其在电子行业的重要地位。

Harbour Industries公司的发展小趣事

背景:随着信息技术的快速发展和工业互联网的兴起,电子行业正经历着深刻的数字化转型和智能化升级。Handok紧跟时代步伐,积极推动公司的数字化转型和智能化升级。

发展:Handok引入了先进的信息化管理系统和智能制造技术,实现了生产过程的自动化、智能化和可视化。同时,公司还加强了与上下游企业的协同合作,构建了更加紧密、高效的产业链生态系统。

影响:数字化转型和智能化升级不仅提高了Handok的生产效率和产品质量,还降低了运营成本和市场风险。此外,这一战略还有助于公司在未来的市场竞争中保持灵活性和创新性。

请注意,以上故事是基于一般性的商业逻辑和行业趋势构建的,并非Handok公司的实际发展历程。由于直接关于Handok在电子行业发展的详细故事资料有限,这些故事仅供参考和启发。

GHz Technology ( Microsemi )公司的发展小趣事

背景:随着信息技术的快速发展和工业互联网的兴起,电子行业正经历着深刻的数字化转型和智能化升级。Handok紧跟时代步伐,积极推动公司的数字化转型和智能化升级。

发展:Handok引入了先进的信息化管理系统和智能制造技术,实现了生产过程的自动化、智能化和可视化。同时,公司还加强了与上下游企业的协同合作,构建了更加紧密、高效的产业链生态系统。

影响:数字化转型和智能化升级不仅提高了Handok的生产效率和产品质量,还降低了运营成本和市场风险。此外,这一战略还有助于公司在未来的市场竞争中保持灵活性和创新性。

请注意,以上故事是基于一般性的商业逻辑和行业趋势构建的,并非Handok公司的实际发展历程。由于直接关于Handok在电子行业发展的详细故事资料有限,这些故事仅供参考和启发。

HEICO Corporation公司的发展小趣事

自1957年成立以来,HEICO Corporation不断扩展其电子技术领域的业务。公司电子技术部门专注于设计、制造电子、数据和微波以及光电产品,涵盖了从红外模拟和测试设备到激光测距接收器、电源转换产品等多个方面。这种多元化的产品组合不仅满足了航空、国防等行业的特定需求,也逐渐在医疗、电信等电子行业中占据了一席之地。通过持续的技术创新和研发投入,HEICO在电子市场上建立了稳固的地位。

问答坊 | AI 解惑

时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载)

时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用(含光盘源代码下载) 目录: 第1章 什么是时间触发的嵌入式系统 1.1 引言 1.2 信息系统 1.3 桌面系统 1.4 实时系统 1.5 嵌入式系统 1.6 事件触发系统 1.7 时间触发系统 1.8 小结 ...…

查看全部问答>

哪位知道ADC采样需要通过软件系数标定处理?

寻求算法,最好可以举例。 谢谢了!!!…

查看全部问答>

关于二维数组指针

在Keil中使用二维数组指针时总是提示语法错误,但我用DEV-C++建立的C工程上却正常. 是Keil编译器不支持二维数组指针吗?有没有什么办法来解决? unsigned char (* PY_index_pointer[27])[8]={              &nbs ...…

查看全部问答>

有个问题

我申请做一个可以进行51、avr、arm实验的大学生单片机实验平台,想命名为“单片机与嵌入式综合实验平台”,不知道好不好,请各位提提建议。 注:有的说嵌入式包括了单片机…

查看全部问答>

2011造什么?造飞碟

如果我说造飞碟,你认为是天方夜谭那么我告诉你,你落后了。在网上有几千UFO研究者和制造者!以下是关于飞碟制造的资料和设计参考!!! 瑟尔效应反重力研究群: 永动机: 分别介绍我所有的资料: 1、纳粹德国飞碟制造:  &n ...…

查看全部问答>

对于每日一问的建议

论坛里开的这个每日一问真的很不错,不管对于哪个层次的来说都很有好处,个人建议下提过问题以后,能不能对每个问题做一个总结,这个总结不一定要是结果,而且是解决问题的方法和思路。 不好意思我现在只能对我们初学者提点建议,有说错话的地方请 ...…

查看全部问答>

speic电路问题,计算和仿真都可以但就是做出来有问题,请教大家啦!!

按照speic电路模型,计算出L1=L2=100uH,(用工字电感)。Cs是用22uF的极性电容,mos管用IRF540N,pwm 20k,输出电容为104和10uF的极性电容,负载280欧,二极管用IN5822肖特基二极管,输入用5v但无论怎么改变占空比输出都是0.不知道什么原因…

查看全部问答>

运算放大器电路的固有噪声分析与测量

运算放大器电路的固有噪声分析与测量,不错的资料:    …

查看全部问答>

DCO测试工程

这个工程可以测试DCO的4096个设置值所对应的频率值,并使用串口发送到上位机。测试平台是使用32KHz晶振的G2系列MSP430.横坐标是DCOCTL (DCOx, MODx)值纵坐标为频率值16条线为RSELx 值…

查看全部问答>

Beaglebone开发环境的搭建

1  装好Linux后,开启相应的服务及软件,包括:tftp,NFS,Samba,使用apt-get install安装即可。     安装ti-sdk-am335x-evm-05.03.02.00-Linux-x86-Install 后,可运行其中的setup.sh      装好后即设置交叉编 ...…

查看全部问答>