broadcom 7208/7468 编译和移植过程

来源:互联网 发布:短信群发的软件 编辑:程序博客网 时间:2024/06/07 02:38
获取broadcom软件开发包文件(refsw-YYYYMMDD-PLATFORM.tgz)
登陆Linux操作系统,建立开发目录
cd /root
mkdir broadcom
cd broadcom
解压broadcom开发包到一备份目录
cd /home/broadcom
tar xzvf refsw-YYYYMMDD-PLATFORM.tgz

建立交叉编译工具
cd /broadcom
mkdir toolchaincd toolchain
tar xjvf /home/broadcom/crosstools_hf-linux-2.6.18.0_gcc-4.2-11ts_uclibc-nptl-0.9.29-20070423_20090508.tar.bz2
设置交叉编译工具路径
vim /etc/profile(add :pathmunge /broadcom/toolchain/crosstools_hf-linux-2.6.18.0_gcc-4.2-11ts_uclibc-nptl-0.9.29-20070423_20090508/bin)
./etc/profile
which mipsel-uclibc-gcc

安装kernel与fs源码
mkdir -p /broadcom/brcm/
cd /broadcom/brcm
tar xjvf /home/broadcom/stblinux-2.6.31-1.2.tar.bz2
tar xjvf /home/broadcom/uclinux-rootfs-2.6.31-1.2.tar.bz2
编译kernel与fs
cd /broadcom/brcm/uclinux-rootfs
make defaults-PLATFORMversion
make defaults-7550a0 (实例)
make (kernel与fs一起编译生成
)make install TFTPDIR=directorymake install TFTPDIR=bcm7580(将编译好的文件拷贝到tftp根目录下的bcm7580文件夹中)

配置kernelmake menuconfig-linux
配置busyboxmake menuconfig-busybox
配置fsmake menuconfig-uclibc
配置vendormake menuconfig-vendor

编译kernel
cd /broadcom/brcm/uclinux-rootfs
make vmlinuz-PlatformVersion
make vmlinuz-7550a0(实例)
编译带文件系统的kernel
cd /broadcom/brcm/uclinux-rootfs
make vmlinuz-initrd-PlatformVersion
make vmlinuz-initrd-7550a0(实例)
编译kernel的debug版本
cd /broadcom/brcm/uclinux-rootfs
make vmlinuz-PlatformVersion-kgdb
make vmlinuz-7550a0-kgdb(实例)

编译机顶盒应用软件
cd /broadcom/
mkdir SourceDirectorymkdir refsw-20100310.97550(实例)
tar xzvf refsw-YYMMDD.platform.src.tgz
tar xzvf refsw-20100310.97550.src.tgz
cd sourcedir/BSEAV/app/brutus/build
vim setup.sh(创建脚本,设置编译环境变量)
source setup.sh
make install

Setup.sh脚本中必须包含下列信息:
export PVR_SUPPORT=y
#export DEBUG=y
#export STATIC_SETTOPAPI=y
#export SHAREABLE=n
export LINUX=/broadcom/brcm/stblinux-2.6.31
#Path where the Toolset and Kernel is installed
export PATH=$PATH:/broadcom/toolchain/crosstools_hf-linux-2.6.18.0_gcc-4.2-11ts_uclibc-nptl-0.9.29-20070423_20090508
export PLATFORM=97550(platform)
export BCHP_VER=A0(version)

文件的烧录与安装
当STB的存储器中没有任何可用程序时
需使用BBS_USB调试工具或烧录器——下载bootloader程序至STB的指定空间
STB中有bootloader即CFE文件
(STB接上网线,串口线,开启一超级终端或minicom配置为:115200 8N1)STB上电启动时,在一超级终端中按ctrl+C进入CFE>
在CFE中可以使用help命令查看有哪些命令可以使用或怎么使用
使用show devices命令查看flash分区情况
使用macprog或macprog2命令烧写STB的mac地址
例:macprog 97405 6 1 或macprog2 00-60-6E-70-1D-C6

检查host的TFTP,NFS等网络服务是否可用(注意防火墙)
配置STB网路(尽量让STB与host在同一网段)
ifconfig eth0 -auto
ifconfig eth0 -addr=x.x.x.x -mask=xxx.xxx.xxx.xxx -gw=xxx.xxx.xxx.xxx
ifconfig eth0 -addr=192.168.3.208 -mask=255.255.255.0 -gw=192.168.3.250
烧录CFE:
flash -noheader host ip:tftp path/file flash.partition
flash -noheader 192.168.3.206:cfe_7405_le.bin flash0.cfe
烧录LOG:
flash -noheader host ip:tftp path/file flash.partition
flash -noheader 192.168.3.206:cfe_7405_le.bin flash0.splash
烧录kernel:
flash -noheader host ip:tftp path/file flash.partition
flash -noheader 192.168.3.206:vmlinuz-7405a0 flash0.kernel

烧录file system:
flash -noheader host ip:tftp path/file flash.partition
flash -noheader 192.168.3.206:ubifs-128k-2048-7550a0.img flash0. avail0
通过启动网络烧录file system
通过启动网络kernel与fs:
boot -z -elf host ip:tftp path/file
boot -z -elf 192.168.3.206:vmlinuz-initrd-7405a0
配置STB系统网络:
ifconfig eth0 stb ip netmask xxx.xxx.xxx.xxx
ifconfig eth0 192.168.3.208 netmask 255.255.255.0
烧录文件系统:
stbutil host ip:path/
stbutil 192.168.3.206:
select user file system
reboot
配置启动
setenv -p STARTUP "boot -z -elf flash0.kernel: 'ubi.mtd=rootfs rootfstype=ubifs root=ubi0:rootfs bmem=64M@64M brcmnand.cmd=rescan'"

安装STB参考应用软件
配置STB网络
ifconfig eth0 stb ip netmask xxx.xxx.xxx.xxx
ifconfig eth0 192.168.3.208 netmask 255.255.255.0
在STB上加载HOST的NFS
mount host ip:/nfs path /stb path
mount 192.168.3.206:/opt/refsw/BSEAV/bin /mnt/nfs
将STB软件拷贝到文件系统中
mkdir /home/brutus
cd /home/brutus
tar zxvf /mnt/nfs/refsw-yyyymmdd.platform-linux-uclibc.bin.tgz
tar zxvf /mnt/nfs/refsw-20080427.97405-linux-uclibc.bin.tgz
settop install
Settop brutus --exec
设置启动脚本
vi /root/rc.user
写入需要执行的启动脚本
cd /home/brutus
settop brutus &
重新启动STB
reboot
 
http://blog.sina.com.cn/s/blog_546abd9f0100pmj2.html