Micro2440 + Linux 2.6.39建立NFS

发布者:灵感狂舞最新更新时间:2022-07-08 来源: csdn关键字:Micro2440  Linux  6 手机看文章 扫描二维码
随时随地手机看文章

        完成了Linux 2.6.39的移植后,接下来先建立个NFS文件系统,使用“构建最小根文件系统.doc”文档中建立的文件系统(201407090326_fs_mini.tar.bz2  http://pan.baidu.com/s/1gdorX9h)作为NFS根文件系统。此步骤可参考搭建NFS的相关文档,这里不再说明。


a) 修改启动参数后重启


          # setenv bootargs 'mem=64M console=ttySAC0,115200 mac=00:60:6E:42:BA:80 root=/dev/nfs nfsroot=192.168.2.222:/opt/MICRO2440/3.Filesystem/NFS ip=192.168.2.123:192.168.2.222:192.168.2.1:255.255.255.0:sbc2440.arm9.net:eth0:off'


        # saveenv


        完成启动参数修改后,重新通过TFTP下载内核镜像并启动。如下图所示,提示“VFS: Unable to mount root fs via NFS, trying floppy.”经测试,启动参数和NFS服务器都是没有问题的。在AT91SAM9260EK开发板上也同样遇到过这个问题,剩下的就只是DM9000驱动问题了。


b) 修改DM9000驱动


        Linux-2.6.39中已经包含DM9000 网卡驱动,但并不是完全的适合mini2440/micro2440,所以还是需要修改,修改DM9000 所用的位宽寄存器


                # vim drivers/net/dm9000.c


                Ø 增加头文件


#include


#include


#include


#include "dm9000.h"


#include //lsh


/* Board/System/Debug information/definition ---------------- */



#define DM9000_PHY              0x40    /* PHY address 0x01 */


Ø 修改初始化函数


/*


 * Initialize dm9000 board


 */


static void


dm9000_init_dm9000(struct net_device *dev)


{


        board_info_t *db = netdev_priv(dev);


        unsigned int imr;


        unsigned int ncr;


        //lsh add start


        unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;


        unsigned int oldval_bankcon4 = *(volatile unsigned int *)S3C2410_BANKCON4;


        *((volatile unsigned int *)S3C2410_BWSCON) =


        (oldval_bwscon & ~(3<<16)) | S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4;


        *((volatile unsigned int *)S3C2410_BANKCON4) = 0x1f7c;


        //lsh add end


        dm9000_dbg(db, 1, "entering %sn", __func__);


        重新编译uImage后通过TFTP下载内核运行。如下图所示,经过DM9000驱动修改,已经可以挂载NFS了。但仍然卡在“Kernel panic - not syncing: Attempted to kill init!”中。


        这种情况可能由于编译busybox时,使用的编译器版本引起的。在AT91SAM9260EK开发板上也同样遇到过这个问题,可打开内核的EABI配置来解决。


c) 打开内核EABI选项目


        Kernel Features  --->


                [*] Use the ARM EABI to compile the kernel


                [*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) 



        重新编译uImage后通过TFTP下载内核运行。还是提示“Kernel panic - not syncing: Attempted to kill init!”错误。


        经测试,使用友善之臂提供的文件系统可以正常启动,这就证明是我所制作的文件系统有问题。


d) 重新编译busybox并制作文件系统


        经分析,打开EABI后仍然出现“Kernel panic - not syncing: Attempted to kill init!”错误是因为busybox编译没有选择静态编译,即在make menuconfig时没有选上Build BusyBox as a static binary 。这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库。否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作。后面证实不需要用此方法,后面红色字体所述方法即可。


        根据“构建最小根文件系统.doc”重新制作根文件系统,并且选上busybox的Build BusyBox as a static binary编译选项,如下所示。


                    Busybox Settings  ---> 


                        Build Options  --->


                                [*] Build BusyBox as a static binary (no shared libs)


        重新编译uImage后通过TFTP下载内核运行。可以正常挂载根文件系统了。将重新制作的文件系统保存为201407240718_fs_mini_micro2440.tar.bz2,并上传至网盘(http://pan.baidu.com/s/1bn6bvDd)。


        在后面制作LINUX上烧写YAFFS2镜像时发现调用nandwrite等后编译的程序时会提示“Illegal instruction”错误。后经调试发现在是文件系统下的lib文件有问题,在制作最小文件系统时我使用的是“/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/”目录下的,应该使用/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/才对,这样的话就不需要重新编译BUSYBOX,也不需要选静态编译。


        将修复lib库文件后的文件系统保存为201407281804_fs_mini.tar.bz2,上传到网盘(http://pan.baidu.com/s/1qWqHQW0)。


关键字:Micro2440  Linux  6 引用地址:Micro2440 + Linux 2.6.39建立NFS

上一篇:JFFS2文件系统搭建与配置(Micro2440 + linux 2.6.39)
下一篇:UBIFS文件系统搭建与配置(Micro2440 + linux 2.6.39)

推荐阅读最新更新时间:2024-11-17 11:49

PIC学习6 PORTB口
PORTB的功能基本就是普通IO,但它在其他方面有其他引脚不具备的特点,PORTB的每一个引脚在作为输入时,内部都有一个弱上拉可用。 PORTB的RB0可以作为一个外部中断信号输入,可以对输入信号的上升沿或下降沿跳变产生一个中断响应。 要实现RB0/INT中断源,软件初始化设定步骤如下: 1,RB0/INT引脚为输入模式,TRISB0 = 1; 2,INTEDG = 1,RB0上输入信号上升沿产生中断;INTEDG = 0,下降沿中断 3,清除INTF = 0,确识有效中断发生前中断标志为0; 4,INTE = 1,允许RB0/INT中断响应。 5,GIE = 1,打开总中断使能 6,中断发生后,查询INTF位; 7,若INT
[单片机]
高通推出2net Mobile 令移动医疗终端安全连接
2013年9月4日,圣迭戈——美国高通公司(NASDAQ:QCOM)今日宣布,其全资子公司高通生命公司(Qualcomm Life, Inc.)在2013年9月3至5日于圣迭戈举行的Uplinq™ 2013开发者大会上宣布推出2net™平台网关——2net Mobile。2net Mobile解决方案率先实现将来自多个医疗终端传感器的临床数据无缝聚合到各种手机和平板电脑的统一数据码流中,然后传输至符合HIPAA安全要求的系统。在发布该解决方案的同时,2net Mobile软件开发工具包(SDK)也向开发者开放,供其在自己的应用上实现2net管理服务的商用。 2net Mobile是一个软件模块,旨在让Android智能手机、平板
[医疗电子]
日本芯片制造商 Socionext 宣布联合台积电,开发 2nm ARM处理器
10 月 27 日消息,Socionext 是日本唯一一家负责定制 Soc 芯片的上市公司,这家公司号称“只有在接到订单后才会研发与生产芯片”,运营模式与英伟达和 AMD 有一定本质区别。 不过目前该公司宣布正联合台积电,开发一款 32 核 ARM 处理器,该 CPU 采用了 Arm 的 Neoverse 计算子系统技术,号称“能够在超大规模数据中心和下一代移动基础设施(包括 5G 和 6G)中提供‘可扩展的性能’”。 ▲ 图源 Socionext 官方新闻稿 经过查询得知,Neoverse 计算子系统技术是一种预集成、预验证的计算平台,旨在简化芯片的定制流程。芯片组可在单个封装内提供单个或多个 实例 ,以及用于满足 IO 和
[半导体设计/制造]
日本芯片制造商 Socionext 宣布联合台积电,开发 <font color='red'>2</font>nm ARM处理器
2线总线上升时间加速电路
      1 引言           包含2线总线(例如:I2C或SMBus)的应用需要在上升时间、电源损耗、噪声抑制等参数之间做出折衷。漏极开路总线从低电平跳变到高电平的上升时间是由上拉电阻和总线电容决定的。        因此,在增加外设、布线长度和连接器时,很难保持干净快速的上升沿。为了解决上升时间问题,提出了一种上升时间加速电路,用一种简单方式加速上升沿,提高噪声抑制并降低功耗。       2 电路描述       在某些2线总线应用中,选择适当的上拉电阻即可提供足够快的上升时间,并在可接受的功耗下获得良好的噪声抑制。但是,对于总线电容较高的大型系统或者是功率受限的便携系统,可能需要有源电路为漏极开路信号
[嵌入式]
英特尔12代酷睿桌面处理器全型号解密:从2核赛扬,到16核i9
可靠爆料者 @momomo_us 曝光了英特尔 12 代酷睿桌面处理器的首发全部型号。   如上图所示,六款 K 系列型号已经在今年 10 月份发布并上市,其余型号预计将在 CES 2022 上发布后陆续上市。   根据爆料,12 代酷睿家族产品全部升级最新架构,包括奔腾和赛扬系列。在非 K 型号中,除了 i7 之外,i5、i3 以及奔腾和赛扬都没有小核心。虽然没有大小核异构加持,新款 i3 和 i5 的泄漏跑分都显示了出较大提升。   以下是外媒 TechPowerUp 汇总的各型号规格。   i9-12900/F:8 大核 + 8 小核,2.4-5.1GHz,30MB 三级缓存   i7-12700/F:8 大核 +
[手机便携]
赛灵思为SPARTAN-3系列提供DDR2-400接口支持 免费下载参考设计
免费的参考设计使HDTV和其它高性能大批量应用设计人员可利用PPGA快速实现400 Mbps DDR2 SDRAM接口 2007 年 8月 22日, 中国北京 ——全球可编程解决方案领先供应商赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))今天宣布为其经过生产验证的低成本90 nm Spartan-3A 和 Spartan-3AN FPGA提供400 Mbps DDR2 SDRAM 接口 (DDR2-400)支持。设计人员可以免费下载经硬件验证过的、可快速实现400 Mbps DDR2 SDRAM接口的参考设计。该参考设计与赛灵思公司全面的开发套件和软件工具相配合可帮助客户快速实现存储器接口。DDR2 SDR
[新品]
意法半导体推出新一代64位MPU STM32MP2
STMicroelectronics (意法半导体)推出了其最新的 64 位微控制器 STM32MP2。 凭借多个 Arm Cortex 内核、一个神经处理单元、一个图形加速器和多个高性能 I/O 选项,ST 将新处理器定位于工业 4.0 应用中的机器学习。 STM32MP2 微处理器单元 (MPU) 具有用于高性能任务的单个或双Arm Cortex-A35 内核 (1.5 GHz) 和一个用于效率任务的 Arm Cortex-M33 (400 MHz)。此外还拥有DDR4/LPDDR4 接口、神经处理单元、3D CPU 和连接性。 采用 A35 内核之后,STM32MP2 支持 OpenSTLinux,基于Yocto的主
[嵌入式]
意法半导体推出新一代64位MPU STM32MP<font color='red'>2</font>
采用2mm x 3mm DFN 封装的双输出升压型转换器可驱动多达6 个白光LED 和一个OLED 的显示器
2007 年 6 月 13 日 - 北京 - 凌力尔特公司( Linear Technology Corporation )推出双输出升压型转换器 LT3498 ,该器件含有一个 2.3MHz PWM LED 驱动器和一个低噪声 OLED 驱动器。 LT3498 的每个通道都有内部电源开关和肖特基二极管,这些都包含在 2mm x 3mm 的 DFN 封装内。该器件的 2.5V 至 12V 宽输入电压范围使其能够用高达 12V 的固定输入轨单节锂离子电池工作,从而提供高达 32V 的输出。每个转换器都可以独立调光或停机。采用单
[新品]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved