天天看點

broadcom 7208/7468 編譯和移植過程

擷取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

make vmlinuz-PlatformVersion

make vmlinuz-7550a0(執行個體)

編譯帶檔案系統的kernel

cd /broadcom/brcm/uclinux-rootfs

make vmlinuz-initrd-PlatformVersion

make vmlinuz-initrd-7550a0(執行個體)

編譯kernel的debug版本

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 192.168.3.206:cfe_7405_le.bin flash0.splash

燒錄kernel:

flash -noheader 192.168.3.206:vmlinuz-7405a0 flash0.kernel

燒錄file system:

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網絡

在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

寫入需要執行的啟動腳本

settop brutus &

重新啟動STB

http://blog.sina.com.cn/s/blog_546abd9f0100pmj2.html

繼續閱讀