PowerPC平台 Linux移植二

继PowerPC平台 Linux移植一,制作busybox文件系统,目的实现单板挂载nfs文件系统。

1.制作busybox文件系统
(1)交叉编译busybox
a.make menuconfig
配置Cross Compile prefix 位powerpc-linux-gnu-
Installation Options 路径指定为/home/freescale/work/source/fs_mini
b.make
  DOC     busybox.pod
  DOC     BusyBox.txt
  DOC     BusyBox.1
  DOC     BusyBox.html
freescale@freescale-sdk:~/work/source/busybox-1.1
c.安装
freescale@freescale-sdk:~/work/source/busybox-1.13.3$ make install
 ..........
  /home/freescale/work/source/fs_mini/usr/sbin/telnetd -> ../../bin/busybox
  /home/freescale/work/source/fs_mini/usr/sbin/udhcpd -> ../../bin/busybox
--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly.
--------------------------------------------------

freescale@freescale-sdk:~/work/source/busybox-1.13.3$
(2)安装glibc库
freescale@freescale-sdk:~/work/source/busybox-1.13.3$ cd ..
freescale@freescale-sdk:~/work/source$ mkdir fs_mini/lib
freescale@freescale-sdk:~/work/source$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/freescale/work/tools/freescale-2010.09/bin
freescale@freescale-sdk:~/work/source$ cp /home/freescale/work/tools/freescale-2010.09/powerpc-linux-gnu/libc/te500v2/lib/*so* /home/freescale/work/source/fs_mini/lib -d
freescale@freescale-sdk:~/work/source$ mkdir fs_mini/usr/lib -p
freescale@freescale-sdk:~/work/source$ cp /home/freescale/work/tools/freescale-2010.09/powerpc-linux-gnu/libc/te500v2/usr/lib/*so* /home/freescale/work/source/fs_mini/usr/lib -d
freescale@freescale-sdk:~/work/source$
(3)构建etc目录
freescale@freescale-sdk:~/work/source/nfs_root/rootfs_dir$ mkdir etc
freescale@freescale-sdk:~/work/source/nfs_root/rootfs_dir$ vim etc/inittab
console::askfirst:-/bin/sh
::sysinit:/etc/init.d/rcS
保存退出
freescale@freescale-sdk:~/work/source/nfs_root/rootfs_dir$ vim etc/init.d/rcS
#!/bin/sh
ifconfig eth0 172.16.1.111
mount-a
freescale@freescale-sdk:~/work/source/nfs_root/rootfs_dir$ chmod +x etc/init.d/rcS
freescale@freescale-sdk:~/work/source/nfs_root/rootfs_dir$ vim etc/fstab
proc     /proc     proc     defaults     0     0
(4)构建dev目录
freescale@freescale-sdk:~/work/source/fs_mini$ ls -l /dev/console /dev/null
crw------- 1 root root 5, 1 2015-05-18 14:28 /dev/console
crw-rw-rw- 1 root root 1, 3 2015-05-18 14:28 /dev/null
freescale@freescale-sdk:~/work/source/fs_mini$ sudo mknod dev/console c 5 1
freescale@freescale-sdk:~/work/source/fs_mini$ sudo mknod dev/null c 1 3
(5)创建其他目录
freescale@freescale-sdk:~/work/source/fs_mini$ mkdir proc tmp mnt sys root
freescale@freescale-sdk:~/work/source/fs_mini$

2.制作文件系统镜像文件
安装genext2fs,参考install文档,安装如下:
To install, just do it the normal GNU way:

./configure
make
make install
freescale@freescale-sdk:~/work/tools/genext2fs-1.4.1$ sudo make instal
freescale@freescale-sdk:~/work/source$ genext2fs -b 4096 -d fs_mini fs_mini_ramdisk
genext2fs: couldn't allocate a block (no free space)
freescale@freescale-sdk:~/work/source$ genext2fs -b 8192 -d fs_mini fs_mini_ramdisk
genext2fs: couldn't allocate a block (no free space)
这个错误的原因是给的大小太小了,需要把大小增大,查看手册只是说了 “size of the image in blocks”,
 这样 于是便先使用 du -h rootfs,计算出来
freescale@freescale-sdk:~/work/source$ du -h fs_mini
1.9M    fs_mini/bin
4.5M    fs_mini/lib
4.0K    fs_mini/tmp
4.0K    fs_mini/sys
4.0K    fs_mini/mnt
4.0K    fs_mini/usr/bin
1.7M    fs_mini/usr/lib
4.0K    fs_mini/usr/sbin
1.7M    fs_mini/usr
4.0K    fs_mini/root
4.0K    fs_mini/dev
4.0K    fs_mini/sbin
4.0K    fs_mini/proc
8.0M    fs_mini
freescale@freescale-sdk:~/work/source$ genext2fs -b 10240 -d fs_mini fs_mini_ramdisk
freescale@freescale-sdk:~/work/source$

3.修改p1010rdb.dtb 配置文件
p1010rdb.dtb 配置文件,用于linux传参数
/home/freescale/work/source/linux-2.6.35-r2/arch/powerpc/boot/dts/p1010rdb.dts
/home/freescale/work/source/linux-2.6.35-r2/scripts/dtc/dtc
/home/freescale/work/source/linux-2.6.35-r2/p1010rdb.dtb

=> setenv ethact eTSEC2
=> tftp 0x1000000 uImage
Speed: 100, full duplex
Using eTSEC2 device
TFTP from server 192.168.2.242; our IP address is 192.168.2.21
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         ####
done<

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!关于Freemaster移植,我可以给你一些指导和解释。Freemaster是一种用于嵌入式系统调试和监控的工具,它提供了一个图形化界面,可以实时显示和修改嵌入式系统的变量、寄存器和数据。 要进行Freemaster的移植,你首先需要了解目标平台的硬件架构和操作系统。Freemaster支持多种硬件平台和操作系统,包括ARM、MIPS、PowerPC等以及Linux、Windows等操作系统。 在移植Freemaster时,你需要将Freemaster的库文件和相关的驱动程序集成到你的目标平台中。这通常涉及到编译和链接Freemaster库文件,并在目标平台上实现与调试接口的通信。 具体的移植步骤会因平台和操作系统而异,你可以参考Freemaster官方文档或者相关的移植指南来进行操作。一般来说,你需要做以下几个主要步骤: 1. 确定目标平台和操作系统:了解你要移植平台和操作系统的架构和特性。 2. 下载和安装Freemaster:从官方网站下载最新版本的Freemaster软件,并按照它们的指南进行安装。 3. 配置工程环境:根据目标平台和操作系统的要求,设置好编译器、链接器和调试工具等环境。 4. 移植Freemaster库文件:将Freemaster提供的库文件添加到你的工程中,并进行编译和链接。 5. 实现通信接口:根据目标平台的特性,实现与调试接口的通信,确保可以正常地读写嵌入式系统的变量和寄存器。 6. 测试和调试:在目标平台上进行测试和调试,确保Freemaster可以正确地显示和修改系统的状态。 以上是一般的移植步骤,具体的细节和操作可能会因平台和操作系统而有所不同。希望这些信息对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值