服务热线: 0771-5613059

栏目导航


技术支持

技术咨询:0771-5613059

技术在线:330170664 点击这里给我发消息

2650137521 点击这里给我发消息

技术邮箱:yytek_sales@163.com

技术分类

YYPPC系列开发平台常见问题解答


新闻来源:  发布时间:2012-07-12 09:35:08  点击数:0次


1.如何做ramdisk?
  创建一个简单的基于exramdiskfs 的 ramdisk的方法是:
  #mke2fs -vm0 /dev/ram 4096
  #mount -t exramdisk /dev/ram /mnt
  #cd /mnt
  #cp /bin, /sbin, /etc, /dev ... files in mnt
  #cd ../
  #umount /mnt
  #dd if=/dev/ram bs=1k count=4096 of=exramdiskramdisk
  mke2fs 是用于在任何设备上创建 exramdisk 文件系统的实用程序……它创建超级块、索引节点以及索引节点表等等。在上面的用法中,/dev/ram 是上面构建有 4096 个块的 exramdisk 文件系统的设备。然后,将这个设备(/dev/ram)挂装在名为 /mnt 的临时目录上并且复制所有必需的文件。一旦复制完这些文件,就卸装这个文件系统并且设备(/dev/ram)的内容被转储到一个文件(exramdisk ramdisk)中,它就是所需的ramdisk。
  上面的语句创建了一个4MB的ramdisk,并用必需的文件实用程序来填充它。一些要包含在 ramdisk 中的重要目录是:
* /bin — 保存大多数象 init、busybox、shell、文件管理实用程序等二进制文件。
* /dev — 包含用在设备中的所有设备节点
* /etc — 包含系统的所有配置文件
* /lib — 包含所有必需的库,如 libc、libdl等
  如果上述方法行不通,请试用下面的方法:
(1)建立loop设备的临时挂接点和一个大小为6兆(大小可以调节)的临时文件,并将其清零:
  #mkdir /mnt/loop 2>/dev/null
  #dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=6144 >/dev/null
(2)将loop设备与临时文件联系起来
  #losetup /dev/loop0 /tmp/loop_tmp
(3)Linux內核识别两种可以直接拷贝到ramdisk的文件系统,它们是minix和exramdisk,exramdisk性能更好:
  #mke2fs -m 0 /dev/loop0 2>/dev/null
  mke2fs将会自动判断设备容量的大小并相应地配置自身, -m 0参数防止它给root保留空,
  这样会腾出更多地有用空间。
(4)接着把虚拟盘挂在节点/mnt上:
  #mount /dev/loop0 /mnt/loop -t exramdisk
(5)将制作好的root文件系统拷贝到所挂的节点上,卸下挂接点,刪除建立的挂接点。
  #cp -a /ramdisk/* /mnt/loop
  #umount /mnt/loop
  现在制作的/tmp/loop_tmp就是一个6M的ramdisk文件
2.mpc8245嵌入式平台来取代pc104的PIII板做防火墙的一些讨论
  pc104太贵了,用pii/piii的pc104简直天价。用486的pc104当防火墙太慢了一点。如果你要嵌入式,干脆用mpc8245带三个或者四个百兆以太网口,350兆的主频,每秒处理6.65亿条指令的powerpc芯片。600多块钱的处理器加上几个以太网芯片,四十元一个口,加上128兆内存,8兆flash用来存程序,还有一些电源器件什么的,不用pc电源的!整机成本不到一千块,而你用pc104 piii要七千块,加上机箱电源什么的,体积很大,功耗很大。而用mpc8245作出来的仅仅巴掌那么大!建议你看看有一款针对防火墙的mpc8245嵌入式linux开发平台。
3.YYPPC8241/8245核心板的flash可以扩成64M吗?可以加在底板上吗?
  不可以把核心板的flash可以扩成64M,地址线不够,你可以重做板,而且还要修改ppcboot设置,可以在底板上扩展,PPCBOOT修改的地方很少。
4.PPCboot都有什么作用,是不是在Linux系统没有烧录时用于烧录操作系统。当操作系统烧录完就没有什么用了?如果系统硬件有变化,比如外面插了一块卡,是否需要修改PPCboot,增加对卡的支持?
  ppcboot就是一个bootloader,启动LINUX后它就没有用了,例如以太网IP地址,在ppcboot下有一个,进入LINUX后就重新设置了。ppcboot对cpu进行初始化,设置cpu内部的寄存器,如何启动系统以及烧写系统等很多系统。新加的pci外设可以在操作系统中加驱动,不过如果像网卡驱动这种在ppcboot下的tftp命令中要用到的话就要在ppcboot中加驱动。
5.tftp 服务器地址到底是多少?
  下载的服务器IP地址通常是192.168.2.199,但也可更改,在LinuxPPC/CDK/bdmtools/MPCBDM/mpc.init 文件中set {int}0x170000=0xc0a802c7这一行代码就是设置server ip的,0xc0a802c7就是192.168.2.199。
6.在X86上,访问内存与访问IO的指令是不一样的,访问主存可以用指针,访问I/O可以用in* out*指令。请问在PPC中下的linux,我要读写一个绝对地址,用什么指令?
  你如果是在ppc上,因为有mmu,所以如果在linux下,必须先把你绝对地址进行映射ioremap,然后再读写。至于访问I/O是否用in* out*指令那就看你用什么设备了。不过你可以在ppcboot下直接读写绝对地址。
7.重新烧写pImage后重新启动系统后无法ping通
  你如果在ppcboot下使用过tftp的话,建议你reset后再bootm 800000 ff000000,因为ppcboot好像改动了网卡的寄存器
8.如何在开发套件中加对rmmod命令等支持?
  在/LinuxPPC/usr/src/applications/busybox-0.60.2中是busybox的源代码。在Config.h中选上#define BB_RMMOD。然后重新编译内核。然后替换ramdisk中bin文件夹中的busybox命令,然后重新烧写ramdisk。新的系统就支持rmmod命令。添加其他在busybox相应的命令的步骤和添加rmmod命令一样。