/*****************************************************************************************************************
Document Author : ELvins Fu
Digtal technology park, A3 -06 , shenzhen, China
*************************************************************************************************************
Module : Unversion Gateway Application
Software Version : 6.1.1
Date : 2015-2016
Description: the document include the envrionment install by special needs.
********************************************************************************************************************/
驱动环境搭建说明书
Version :0.1
简 介
本安装文档适用于Lantiq’s CPE 软件软件组件Universal Gateway(UGW)Release 6.1.1 版本的安装.
注意安装的目录一定要在用户工作目录下,否则后续编译会出现问题。
一:安装环境概要说明
1、其硬件参考平台为
•GRX300 Family:
–PXB 4310, V1.2
–PXB 4387, V2.1
–PXB 4369, V2.1
–PXB 4389, V2.1
–PXB 4389 720 MHz, V2.1
•XWAY™ ARX300 Family:
–XWAY™ ARX368 (PSB 50368), V1.2
–XWAY™ ARX388 (PSB 50388), V1.2
•XWAY™ xRX200 Family:
–XWAY™ VRX268 (PSB 80910), V1.2
–XWAY™ VRX288 (PSB 80920), V1.2
–XWAY™ GRX288 (PXB 4210), V1.2
•VRX220 Family:
–PSB 80220, V1.1
–PSB 80221, V1.1
2、UGW 软件参考平台
UGW软件编译框架建立于openWRT发行版本。
Linux® Version: 3.10 LTS
Toolchain: GCC 4.8-linaro, uClibc-0.9.33.2, binutils-2013.05-66
3、UGW软件的先决条件
•Linux 3.10.xx内核
•至少512M内存和1G处理器
•安装实用工具
–glibc version ≥ 2.3.2
–automake ≥ 1.7.2
–autoconf ≥ 2.57
–bison
–gawk
–git
–flex
–zip, unzip
–bzip2, bunzip2
–gzip, gunzip
–zlib
–patch
–perl
–wget
–tar
–libncurses
–texinfo
–python ≥ 2.6.5
注释:对于Ubuntu,额外的包libssl-dev, zlib1g-dev, libncurses5-dev, cl-yacc 需要安装。
- 安装UGW的CD
注释:Lantiq也许只给出install.sh
- 安装补丁
例如:
ubuntu@sky:~/work/Lantiq/Damai/UGW-6.1.1-SW-CD/Software/Sources$ ls
00-01-00-UGW-6.1.1-SW-CD-Day0-Generic-Patch.sh
01-01-00-UGW-6.1.1-SW-CD-Day0-Session-Management-Patch.sh 02-01-00-UGW-6.1.1-SW-CD-Day0-Qos-Adaptation-Layer-Patch.sh
03-01-00-UGW-6.1.1-SW-CD-Day0-GRX220-Telit-Patch.sh
安装这四个脚本之后会生成ugw-patches目录
- 安装环境搭建
- 选择编译模块
sudo chmod -R 777 UGW-6.1.1
在UGW 6.1.1目录下
执行
•./scripts/ltq_change_environment.sh switch
会出现
[0]Abort
[01] ./config/ARX388_GW_HE_ADSL_SAMPLE
[02] ./config/GRX220_GW_EL_ETHWAN_LTE
[03] ./config/GRX288_GW_HE_ETHWAN_LTE_SAMPLE
[04] ./config/GRX300_GW_HE_ETHWAN_16K_SAMPLE
[05] ./config/GRX300_GW_HE_VDSL_LTE
[06] ./config/GRX300_GW_HE_VDSL_LTE_DEBUG_SAMPLE
[07] ./config/GRX300_GW_HE_VDSL_LTE_WITH_COMPACTION_SAMPLE
[08] ./config/GRX300_RT_HE_ETHWAN_LTE
[09] ./config/GRX330_GW_HE_GFAST_ETHWAN_SAMPLE
[10] ./config/GRX330_GW_HE_VDSL_LTE_BLNR_SAMPLE
[11] ./config/GRX330_GW_HE_VDSL_LTE
[12] ./config/GRX330_GW_HE_VDSL_LTE_QTN_2RGMII_SAMPLE
[13] ./config/GRX330_GW_HE_VDSL_LTE_QTN_RGMII_SAMPLE
[14] ./config/GRX330_RT_HE_ETHWAN_LTE
[15] ./config/VRX220_GW_EL_VDSL_SPI
[16] ./config/VRX220_RT_EL_VDSL
[17] ./config/VRX288_GW_HE_VDSL_LTE
[18] ./config/VRX288_GW_HE_VDSL_LTE_NFS_SAMPLE
选择合适的模型,Make编译之后,最终在UGW-6.1.1/bin/lantiq/<model-name>/ 目录下生成最终的镜像文件
•u-boot.ltq
•u-boot-nand.bin
•gphy_firmware.img
•uImage
•rootfs.img
•firmware.img
•fullimage.img
- 编译过程
•压缩包从dl/解压到build_dir/
用户空间的包解压在build_dir/target-mips_r2_uClibc-0.9.33.2_<model-name>/
用户内核头信息编译在
build_dir/linux_lantiq_<model-name>/.
主机使用工具的临时文件在
build_dir/host
•工具链编译在
build_dir/toolchain_<arch>_<gcc_version>_uClibc<version>/
安装在
staging_dir/toolchain_<arch>_<gcc_version>_uClibc<version>/.
•编译系统补丁在
target/linux/lantiq/patches-3.10/
复制target/linux/files/ 下的文件到build_dir/linux_lantiq_<model-name>/.
•文件系统在
target/Linux®/lantiq/base-files/
复制到build_dir/target-mips_r2_uClibc-0.9.33.2/root-lantiq/
- 菜单配置
注释:各个环境的菜单命令有所不同,根据具体的模型和用户所需求的设计进行更改。
- 额外命令
•make package/feeds/open_applications/busybox-prepare or make package/feeds/open_applications/busybox/prepare
•make package/feeds/open_applications/busybox-compile or make package/feeds/open_applications/busybox/compile
•make package/feeds/open_applications/busybox/install
•make target/linux/prepare
•make target/linux/compile
•make target/linux/install
•make package/kernel/install
•make rootfs
•make firmware
•make fullimage
•make package/feeds/ltq_feeds_uboot/open_uboot/install
•make target/linux/install
- 系统环境建立和开始
- 系统建立
Lantiq设备(CPE)的典型建立过程如下:
本地建立
-参考版
-主机PC
远程控制(可选)
-DSLAM
-B-RAS
Lantiq设备(CPE)的数据流图如下
- 更新开发板的镜像
•打开开发板的电源
•打开超级终端
-速率 115200
-数据位 8
-检验位 无
-停止位 1
-流控 无
•建立tftp传输环境
•烧写uboot、内核与文件系统
- 备份和恢复/保存WIFI校准文件
对于GRX300或ARX388:备份WIFI校准文件
cd /tmp/
read_img wlanconfig wlanconfig.tar.gz
tar -xvzf wlanconfig.tar.gz
tftp p-1 cal_wlan0.bin 192.168.X.X
对于GRX300或ARX388:恢复/保存WIFI校准文件
tftp g-r cal_wlan0.bin 192.168.X.X
/etc/rc.d/wave_wlan_dut write
注释:只针对GRX300或ARX388硬件参考平台
- 烧写过程
•烧写启动代码uboot。
有的开发板利用USB烧录,有的开发板利用UART串口烧录,本文以通过UART烧录为例(默认烧入到NAND Flash中) 。
-打开串口终端
-使用终端发送uboot.asc(倘若开发板中无启动程序)
-烧写uboot
-将开发板转为NAND Flash启动
-设置服务器(Ubuntu)和开发板的IP地址
-更新内核和文件系统
注释:各种平台的烧录命令不一样,请根据具体的参考文档作出相应的改变。
- 登录(参考文档中会有)
例如
Ltcqe login:root (开发板登录名)
Password : admin (开发板密码)
- 外部工具链和uboot的修改
- 外部工具栏的使用
make menuconfig使用菜单界面进行配置
-选用默认模型配置编译UGW。
- 从UGW-6.1.1/staging_dir中拷贝已经编译好的工具链toolchain-mips_r2_gcc-4.8-linaro_uClibc-0.9.33.2到你的备份位置,如/opt/cross/toolchain-mips_r2_gcc-4.8-linaro_uClibc-0.9.33.2。
-修改环境变量/etc/profile中的PATH(加上你的工具链的路径)
-在make menuconfig 中去选择[*] Advanced configuration options (for developers) --->
[*] Use external toolchain --->
Toolchain root(填上你的工具链的路径) 。
make编译即是使用外部的工具链,
- uboot的修改
例如我们将uboot默认从SPI Flash启动,那么必须修改uboot的环境参数,具体如下
VR9 # print
bootcmd=run flash_flash
bootdelay=5
baudrate=115200
preboot=echo;echo Type \"run flash_nfs\" to mount root filesystem over NFS;echo bootfile="uImage"
mem=62M
phym=64M
ethaddr=00:E0:92:00:01:40
netdev=eth0
console=ttyLTQ0
tftppath=
loadaddr=0x80800000
rootpath=/mnt/full_fs
rootfsmtd=/dev/mtdblock3
nfsargs=ramargs=setenv bootargs root=/dev/ram rw addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):on
addmisc=setenv bootargs $(bootargs) console=$(console),$(baudrate) ethaddr=$(ethaddr) mem=$(mem) panic=1 mtdparts=$(mtdparts) init=/etc/preinit vpe1_load_addr=0x83f00000 vpe1_mem=1M ubootver=$(ver)
flash_nfs=
net_nfs=
net_flash=
net_ram=tftp $(loadaddr) $(tftppath)$(bootfile);run ramargs addip addmisc;bootm
u-boot=u-boot.ltq
rootfs=rootfs.img
firmware=firmware.img
fullimage=fullimage.img
totalimage=totalimage.img
load=tftp $(loadaddr) $(u-boot)
update=protect off 1:0-2;era 1:0-2;cp.b $(loadaddr) B0000000 $(filesize)
flashargs=setenv bootargs root=$(rootfsmtd) ro rootfstype=squashfs quiet
flash_flash=sf probe 3;sf read $(loadaddr) $(f_kernel_addr) $(f_kernel_size);run flashargs addip addmisc;bootm
$(loadaddr); run update_fullimage; reset
update_uboot=tftpboot $(loadaddr) $(tftppath)$(u-boot);sf probe 0:3;sf erase 0 10000;sf write $(loadaddr) 0 $(
filesize);run reset_sysconfig;reset
update_kernel=tftpboot $(loadaddr) $(tftppath)$(bootfile);upgrade $(loadaddr) $(filesize)
update_bootloader=run update_uboot;run update_gphyfirmware
update_rootfs=tftpboot $(loadaddr) $(tftppath)$(rootfs);upgrade $(loadaddr) $(filesize)
update_firmware=tftpboot $(loadaddr) $(tftppath)$(firmware);upgrade $(loadaddr) $(filesize)
update_fullimage=tftpboot $(loadaddr) $(tftppath)$(fullimage);upgrade $(loadaddr) $(filesize)
update_totalimage=tftpboot $(loadaddr) $(tftppath)$(totalimage);upgrade $(loadaddr) $(filesize)
update_gphyfirmware=tftpboot $(loadaddr) $(tftppath)gphy_firmware.img;sf probe 3;sf erase 10000 20000;sf write
$(loadaddr) 10000 $(filesize);reset
gphy_fw_addr=0x10000
reset_uboot_config=sf probe 3; sf write 80400000 $(f_ubootconfig_addr) $(f_ubootconfig_size)
reset_ddr_config=sf probe 3; sf write 80400000 $(f_ddrconfig_addr) $(f_ddrconfig_size)
reset_sysconfig=sf probe 3;sf erase $(f_sysconfig_addr) 10000
mtdparts=ltq_sflash:64k(uboot),64k(gphyfirmware),512k(firmware),13568k(rootfs),2048k(data),64k(sysconfig),8k(ubootconfig),4k(dectconfig),8k(wlanconfig),-(res)
part0_begin=0x00000000
part1_begin=0x00010000
part2_begin=0x00020000
part3_begin=0x000A0000
total_part=4
flash_end=0x00FFFFFF
data_block0=uboot
data_block1=gphy_firmware
data_block2=firmware
data_block3=rootfs
data_block4=kernel
data_block5=data
data_block6=sysconfig
data_block7=ubootconfig
data_block8=dectconfig
data_block9=wlanconfig
total_db=10
f_uboot_addr=0x00000000
f_uboot_size=0
f_ubootconfig_addr=0x00FF0000
f_ubootconfig_size=0x2000
f_ubootconfig_end=0x00FF1FFF
f_gphy_firmware_addr=0x00010000
f_gphy_firmware_size=0
f_gphy_firmware_end=IFX_CFG_FLASH_GPHY_FIRMWARE_IMAGE_END_ADDR
f_kernel_addr=0x00DDFFFF
f_kernel_size=0
f_kernel_end=IFX_CFG_FLASH_KERNEL_IMAGE_END_ADDR
f_rootfs_addr=0x000A0000
f_rootfs_size=0
f_rootfs_end=IFX_CFG_FLASH_ROOTFS_IMAGE_END_ADDR
f_firmware_addr=0x00020000
f_firmware_size=0
f_fwdiag_addr=IFX_CFG_FLASH_FIRMWARE_DIAG_START_ADDR
f_fwdiag_size=IFX_CFG_FLASH_FIRMWARE_DIAG_SIZE
f_sysconfig_addr=0x00FE0000
f_sysconfig_size=0x10000
f_dectconfig_addr=0x00FF2000
f_dectconfig_size=0x1000
f_wlanconfig_addr= 0x00FF3000
f_wlanconfig_size=0x2000
f_ddrconfig_addr=0x0000FFE0
f_ddrconfig_size=32
f_ddrconfig_end=0x0000ffff
f_data_addr=0x00DE0000
f_data_size=0x200000
f_data_end=0x00FDFFFF
ethact=vr9 Switch
ipaddr=192.168.2.50
serverip=192.168.2.48
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot-2010.06-LANTIQ-v-2.3.16.1
根据这些环境参数修改菜单中的ubootloader中的envrionment setting参数。
注释:外部工具链的权限问题,参数合适与正确的修改。