武汉市新洲区区号:Trident:备忘tftp+nfs+编译sdk+启动参数(私有)

来源:百度文库 编辑:偶看新闻 时间:2024/04/26 06:33:10
0、启动参数
setenv ipaddr 172.16.55.227
setenv serverip 172.16.55.62
setenv gatewayip 172.16.55.254

setenv ethaddr A2:34:23:23:12:43
setenv uboot_macaddr 1
setenv uboot_cmdline 1

setenv bootargs "root=/dev/nfs rw nfsroot=172.16.55.62:/home/nfsroot ip=172.16.55.252:172.16.55.62:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"

setenv bootargs "root=/dev/nfs rw nfsroot=$serverip:/home/nfsroot ip=$ipaddr:$serverip:$gatewayip:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"

tftpboot 0x100000 vmlinux.ub;bootm 0x100000

ifconfig eth0 172.16.55.227
export LD_LIBRARY_PATH=/opt/lib

 (1)bootcmd(nfs)
setenv bootcmd "tftp 0x100000 172.16.55.62:vmlinux.ub;bootm 0x100000"


 (2) bootcmd(u盘)
setenv bootcmd "usb start;fatload usb 0:1 0x100000 vmlinux.ub;bootm 0x100000"




一、tftp服务器
http://blog.csdn.net/evilcode/archive/2010/06/22/5686129.aspx
安装: apt-get install tftpd-hpa tftp-hpa
配置:vi  /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/opt/tftpboot" //填入你的tftp服务目录
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
使用:service tftpd-hpa restart
    tftp localhost
    get test.txt
二、nfs服务器
http://blogold.chinaunix.net/u3/113851/showart_2338435.html
(1)安装apt-get install nfs-kernel-server
(2)配置 /etc/exports   ;exportfs  -rv
vi /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#        to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
#trident 's rootfs
/home/nfsroot       *(rw,sync,no_root_squash)

#qemu 's arm-ubuntu filesystem image
/home/qxczj/b8/arm_ubuntu_nfsroot  *(rw,sync,no_root_squash)

# from /home/qxczj/b8/arm_ubuntu_nfsroot
/home/qemu_arm_ubuntu_nfsroot *(rw,sync,no_root_squash)

#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
(3)使用  mount.nfs 172.16.55.62:/home/nfsroot  /mnt

三、Trident板子重启参数
Me:
setenv bootcmd "tftp 0x100000 vmlinux.ub;bootm 0x100000"
setenv bootargs "root=/dev/nfs rw nfsroot=172.16.55.62:/home/nfsroot ip=172.16.55.226:172.16.55.62:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"
yuan:
bootcmd=tftp 0x100000 172.16.55.225:uImage;bootm 0x100000
bootargs=root=/dev/nfs rw nfsroot=172.16.55.225:/home/nfs_trident ip=172.16.55.226:172.16.55.225:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8
四、u盘启动
usb start
usb storage
usb tree
setenv bootargs "root=/dev/sda2 rw ip=172.16.55.252:172.16.55.191:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"setenv bootcmd "usb start;fatload usb 0:1 0x100000 uImage;bootm 0x100000"


三+四:参数重新配置需要修改的参数
 网络: ipaddr  serverip gatewayip 
 内核参数+启动命令:  bootargs+bootcmd
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1.原版参数:  pnx8473_hirf_moca_debug_defconfig里,“noinitrd console=ttyS1,115200n8 mtdparts=nx_2016:1024k@0k(uldr),512k@1024k(u-boot),5m@1536k(kernel),32m@7m(root),32m@39m(appfs),-(extra);nx_sfc:1024k@0k(uldr),512k@1024k(u-boot),5m@1536k(kernel),8m@7m(root),-(sfc-extra) root=/dev/mtdblock3 rootfstype=jffs2 rw rootflags=noatime”
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2.ME:  55.62,nfs
setenv bootargs "root=/dev/nfs rw nfsroot=172.16.55.62:/home/nfsroot ip=172.16.55.252:172.16.55.62:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"
setenv bootcmd "tftpboot 0x100000 vmlinux.ub;bootm 0x100000" -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  3.ME:  u盘启动
setenv bootargs "root=/dev/sda2 rw ip=172.16.55.226:172.16.55.62:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"
bootcmd="usb start;fatload usb 0:1 0x100000 uImage;bootm 0x100000"
setenv bootcmd "usb start;fatload usb 0:1 0x100000 vmlinux.ub;bootm 0x100000"
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


五、编译uclib版sdk
Files:
APOLLO_SHINER_GA_SDK_3.2.0_20101217.bin
APOLLO_SHINER_CUMULATIVE_PATCH_3.2.115_20110211.tar.gz
操作:
(1)解压源码:  ./APOLLO_SHINER_GA_SDK_3.2.0_20101217.bin   
(2)修改源码:  cd  SRC;tar -xzvf ..115..tar.gz
              改pnx8473_hirf_moca_debug_defconfig  CONFIG_SATA_APOLLO=m
            新增1:    更新vpmfb.c , pm_surface_internal.c
            新增2:    target/src/configs/hwconfig/summit.cfg
                         PIO_BOARD_AUDIO_MUTE          = (191+GPIO_DEVICE_ID_INTERNAL+GPIO_POSITIVE_POLARITY+GPIO_PIN_IS_OUTPUT)
            新增3:  target/src/configs/swconfig/swconfig.cfg
                         将与CEC有关的两项的YES改为NO。=》解决在LG液晶屏上播放卡死的问题。
(3)配置(解压编译器和环境变量):   cd SRC; `cat source.cat`
(4)编译



u盘启动版本:
操作:
(1)解压源码:  ./APOLLO_SHINER_GA_SDK_3.2.0_20101217.bin   
(2)修改源码:  cd  SRC;tar -xzvf ..115..tar.gz
              改pnx8473_hirf_moca_debug_defconfig  
              串口信息:      CONFIG_SATA_APOLLO=m
              改内核为支持ext3:CONFIG_EXT3_FS=y
              修改bootargs!:CMDLINE

CONFIG_CMDLINE=“root=/dev/sda2 rw ip=172.16.55.252:172.16.55.191:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8”

(3)配置(解压编译器和环境变量):   cd SRC; `cat source.cat`
(4)编译


六、编译glibc版sdk
p { margin-bottom: 0.21cm; }a:link {  在上面的五配置之前还需

1)拷贝glibc编译器到toolchains

2)对SRC打三个补丁

3)编完后拷贝一些库到根文件系统



ftp://yanfauser:20060228@ftp.jinglun.com.cn/glibc/

cdSRC

cp.../gnu_cortex-a9_tools_glibc.tar.gzopen_source_archive/linux/toolchains/


patch-p1 < .../001.pnx8400_a9_env.sh

patch-p1 < .../002.project_include.mk.patch

patch-p1 < .../003.busybox-1.16.1.config.patch


afterbuilding your system (make in foldertarget/build/systems/linux/stbtv/), cp -a ${_TMSYSROOT}/usr/lib/lib*to your lib folder in your rootfs.


七、烧写uboot到flash上

On Uboot:
setenv ethaddr 00:25:8f:67:82:28
setenv serverip 172.16.55.90
setenv ipaddr 172.16.55.88

tftp uldr.bin.uartboot_img
nand erase 0x0 0x100000
nand write 0x0 0x100000

tftp ub.bin
nand erase 0x100000 0x80000
nand write 0x100000 0x80000

tftp Image

nand erase 0x180000 0x800000

nand write 0x180000 0x800000


八、UBIFS相关参数
setenv loadaddr 0x100000
setenv uboot_macaddr 1
setenv uboot_cmdline 1
setenv ethaddr 00:60:37:03:12:17
setenv ipaddr 172.16.55.232
setenv netmask 255.255.255.0
setenv serverip 172.16.55.225
setenv bootcmd "tftp 0x100000 172.16.55.225:uImage;bootm 0x100000"
setenv mtdparts "mtdparts=nx_2017:1024k@0k(uldr),512k@1024k(u-boot),8m@1536k(kernel),1014m@10m(rootfs),-(extra)"
setenv bootargs "root=/dev/nfs rw nfsroot=172.16.55.225:/home/nfs_h1 ip=172.16.55.232:172.16.55.225:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off ${mtdparts} console=ttyS1,115200n8"
saveenv


setenv bootargs "${mtdparts} ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs ip=172.16.55.232:172.16.55.225:172.16.55.254:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"

ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs


三种启动方式:
nfs:
setenv bootargs "root=/dev/nfs rw nfsroot=$serverip:/home/nfs_h1_rec   ip=$ipaddr:$serverip:$gatewayip:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8"

nfs+mtdparts:
setenv bootargs "root=/dev/nfs rw nfsroot=$serverip:/home/nfs_h1_rec  ip=$ipaddr:$serverip:$gatewayip:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8 mtdparts=nx_2017:1024k@0k(uldr),1024k@1024k(u-boot),8m@2048k(kernel),1014m@10m(rootfs),-(extra)"


mtdpars:
setenv bootargs "mtdparts=nx_2017:1024k@0k(uldr),512k@1024k(u-boot),8m@1536k(kernel),1014m@10m(rootfs),-(extra) ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs ip=$ipaddr:$serverip:$gatewayip:255.255.255.0:stb_006037031510:eth0:off console=ttyS1,115200n8 mtdparts=nx_2017:1024k@0k(uldr),1024k@1024k(u-boot),8m@2048k(kernel),1014m@10m(rootfs),-(extra)"


S50里添加应用程序
在S50里面,
ifconfig eth0 172.16.55.227 netmask 255.255.255.0
route add default gw 172.16.55.254
export LD_LIBRARY_PATH=/opt/lib
set_display_mode 720P
player_demo /data/ts/4.ts &
sleep 1
set_display_mode 720P


九、制作和烧写ubifs镜像

  • 制作
mkfs.ubifs -r rootfs -m  2048 -e 126976 -c 8458 -o ubifs.img
ubinize -o ubi.img -m  2048 -p 128KiB -s 2048 ubinize.cfg

[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=900MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

  (1)在内核层烧写(格式化)
用镜像文件格式化/dev/mtd8      http://patchwork.ozlabs.org/patch/42566/
ubiformat -s 1024 -f ubifs1b.img /dev/mtd8

ubiformat -s 2048 -f ubi.img.big /dev/mtd3

  (2)在uboot下烧写

  •  修改mtdpats
原始的mtdparts
Apollo # mtdparts

device nand0 , # parts = 6
 #: name                size            offset          mask_flags
 0: uldr                0x00100000      0x00000000      0
 1: u-boot              0x00080000      0x00100000      0
 2: kernel              0x00500000      0x00180000      0
 3: root                0x02000000      0x00700000      0
 4: appfs               0x02000000      0x02700000      0
 5: extra               0x3b900000      0x04700000      0

active partition: nand0,0 - (uldr) 0x00100000 @ 0x00000000

defaults:
mtdids  : none
mtdparts: none


mtdparts add nand0 8m@1536k kernel ro
mtdparts add nand0 1014m@10m rootfs ro
修改后:
device nand0 , # parts = 4
 #: name                size            offset          mask_flags
 0: uldr                0x00100000      0x00000000      0
 1: u-boot              0x00080000      0x00100000      0
 2: kernel              0x00800000      0x00180000      1
 3: rootfs              0x3f600000      0x00a00000      1

active partition: nand0,0 - (uldr) 0x00100000 @ 0x00000000
  • 烧写(注意位置是整个rootfs的区!!!)
tftpboot ubi.img
nand erase 0xa00000  0x3f600000
nand write 0xa00000  0x3f600000