研华PCM-3343上linux系统构建

PCM-3343单板机采用DM&P Vortex86DX CPU,这是一个486CPU。该采用CF卡作为系统盘。在某项目中,需要在该单板机上构建一个linux,在此-简单记录大致的方法和遇到的问题。

1、编译工具的生成,采用buildroot-2015.08.1,在官网下载压缩文件后解压,进入目录buildroot-2015.01.1后输入make menuconfig,进入图形化配置界面。选Target option。

Target Architecture里面选i386架构,Target Architecture Variant里面选486

2.在Build Option里面设置 Download dir(下载文件的保持路径)和Mirrors and Download locations,选国内镜像,否则很慢。

3.在Toolchain中设置工具链类型、Linux内核版本(我选用的是2.6.32.27)等软件和库需要的版本(如图)。

4.然后save 和make,然后就是漫长的等待。我没有用它生成系统映像和文件系统,其实它也可以做的,我做系统映像和文件系统是参照的《Oreilly.Building.Embedded.Linux.Systems.eBook-LiB》里面的方法。

5.把CF卡分区。CF卡通过读卡器插到笔记本电脑,在虚拟机VmWare Station里面的ubuntu 16.04环境下进行。

(1)输入 sudo fdisk -l 查看CF卡挂载情况,由于VmWare里面设置了自动挂载U盘,CF卡会被挂载到/Media下面,路径很复杂,所以需要先输入 sudo umount /dev/sdb1 取消挂载。

(2)建立引导分区。 先输入 sudo fdisk /dev/sdb,然后按提示进行,按m后会出现帮助。我仅需要一个分区,且设置为引导分区。可以先按p查看当前的分区表,看有几个分区,如果没有分区,按n添加一个分区,如果已经有一个分区,看是否是引导分区,若不是,按a将其切换为引导分区。按w写分区表并退出。

(3)在CF卡上建立文件系统。输入sudo mkfs.ext2 /dev/sdb1,然后输入sudo e2fsck -a /dev/sdb1检测文件系统完整性。如果不运行e2fsck, 系统启动的时候会报"EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended"。

6. 拷贝系统映像和文件系统。我的这部分之前已经做好,存放在/home/lf9335/VDR_v2/VDR_bak下面。

(1)输入 sudo mount -t ext2 /dev/sdb1 /mnt/usb,把CF卡挂载到/mnt/usb下面。

(2)输入 sudo cp -a /home/lf9335/VDR_v2/VDR_bak/* /mnt/usb/ ,把系统映像和文件系统拷贝到CF卡。

7.在虚拟机中安装extlinux,在虚拟机中运行sudo apt-get install extlinux,将下载安装extlinux,我下载的是6.03版,相对我以前用的版本有变化,后面extlinux.conf里面的内容要修改,否则会出问题,后面会讲到。

8.在CF卡上安装extlinux。首先要保证CF卡已经挂载,前面我们已经把它挂载到了/mnt/usb下面。然后输入 sudo extlinux -i /mnt/usb/boot,注意,安装路径必须是你的CF卡文件系统挂载点,extlinux.conf文件必须放在这个路径下面。

9.编辑extlinux.conf文件,该文件应放在extlinux安装目录,在我这里是CF卡的/boot目录(挂载在虚拟机的主机下面时是/mnt/usb/boot)。文件内容如下:

default emblinux

timeout 10

prompt 0

label emblinux

kernel bzImage-2.6.32.27-6th

append noinitrd root=/dev/sda1 rw init=/linuxrc libata.dma=0

注意:我之前做系统时,用的extlinux版本比较早,extlinux.conf文件最后关闭dma用的是“ide=nodma”,实际上在现在的extlinux版本中已经不支持这个语句了,应该为"libata.dma=0",否则在系统启动时会反复尝试dma方式(最后还是可以正常启动的),会看到类似如下提示:

ata1: lost interrupt (Status 0x50)

 ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen

ata1.00: failed command: READ DMA

ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in

res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)

ata1.00: status: { DRDY }

 

 

 

 

 

 

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值