ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:204.48KB ,
资源ID:24799293      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24799293.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译版本之实用篇1119.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译版本之实用篇1119.docx

1、编译版本之实用篇1119CSM开发环境建立之实用篇 -基于Li lei同学的新手入学篇 Author: HZ8312 boyuan liuTime stamp: 2008/11/11 1、 基本准备 12、 开始编译用户代码 13、 编译后的一些特殊处理 24、 编译rootfs 25、 编译userfs 26、 上板 27、 升级 48、 更新userfs的特定部分 69、 杂七杂八 610、 GDB的使用 911、 配置mib browser调试环境(现在默认有值,可不做) 1012、 新系统的关键宏定义: 101、 基本准备类似10.4.37.210的编译服务器一台、代码一份、telne

2、t工具一个、tftp工具一个。运行代码总体分为:板卡模式(直接在板卡上运行,和以前系统类似)NFS模式(使用服务器代码,利用mount服务)2、 开始编译用户代码登录名:xxxx, psw:123456, 进入/home/liuboyuan/HZ08312_B1205_OAM_SERVER/B1200_CSM/icm/build/icm3目录下依次执行./build platform 2.4.20 csm1a./build apps 2.4.20 csm1a./build scm 2.4.20 csm1a或者直接执行./build all 2.4.20 csm1a可能会碰到permission

3、 denied 的情况,请使用sudo ./build xxxx 2.4.20 csm1a进行编译。3、 编译后的一些特殊处理由于现在的代码是基于debug版本,所以有些地方要做特殊处理。上面的步骤做完之后,3.1 保存icmappsbuildnmgtlib.mpc下的libsnmp.so,后面要用到。3.2 备份好之后删除icmappsbuildnmgtbin.mpc和icmappsbuildnmgtlib.mpc两个目录,重新执行:./build nmgt 2.4.20 csm1a。3.3 如果编译不过去,提示snmp_trace找不到之类,请重新执行3.2,直到成功为止。3.4 把lib

4、snmp.so放回原来的地方,在编译userfs的时候要用。3.5 编译scm不用做特殊处理。4、 编译rootfs进入/home/liuboyuan/HZ08312_B1205_OAM_SERVER/B1200_CSM/icm/rootfs目录下./build_rootfs csm1a编译kernel目录下的东西。如果出现permission denied,请使用sudo5、 编译userfs进入/home/liuboyuan/HZ08312_B1205_OAM_SERVER/B1200_CSM/icm/install目录下sudo ./make_userfs 1.0.0.1(版本号,随意)

5、由于我们系统不使用upgrade,所以编译userfs时,所有有关upgrade的错误可以不理会,但是如果缺少其他文件,那就是前面apps或者plat中编译有错误,重新编译。最终生成的images都在B1200_CSM/icm/install/目录下,分别是rootfs.jffs2,userfs.jffs2,用于板卡烧录,对应的目录是rootfs和userfs,可用于远程文件系统。6、 上板 csm1a板的串口波特率:115200; 上电后,秒内按ctrl+c进入uboot命令行方式下,第一次开机需设置以下参数:(通过module entity可以提取出来)bdinfoset 0 0x11 1

6、0 123456789a bdinfoset 0 0x12 10 A1bdinfoset 0 0x03 16 0123456789abcdefgbdinfoset 0 0x04 10 2008-08-21bdinfoset 0 0x05 10 hz21071bdinfoset 0 0x06 10 UTSbdinfoset 0 0xFF 00 0 bdinfoset Fc1MacAddr 00:E0:8E:00:01:25bdinfoset Fc2MacAddr 00:E0:8E:00:01:26bdinfoset BrgMacAddr 00:E0:8E:00:01:26setenv ipadd

7、r 10.4.41.166 /板卡的ipsetenv gatewayip 10.4.41.254 /板卡网关ipsetenv serverip 10.4.37.210 /开NFS和TFTP的虚拟机的ipsetenv linux_rootpath /home/csm/B1200CSM/B1200_CSM/icm/install/rootfs /mount的目录setenv linux_bootfile vmlinux1 /kernel文件名 可以不做saveenv 然后直接在uboot下输入:Updaterootfs 烧录rootfsUpdateuserfs 烧录userfs重起板卡,自动启动,

8、就可以正常用了。 NFS模式:首先设置编译服务器内容:修改rootfs/etc/rc.d/init.d/mountrd脚本,注释掉mount用户分区。#mount -t jffs2 /dev/mtdblock/1 /usr/local修改rootfs/usr/local/etc/init.d/start_apps脚本,注释掉防火墙配置。echo Configuring firewall#/usr/local/etc/init.d/rc.icm2App启动脚本位于/usr/local/etc/init.d/start_apps,可以修改以免自动运行hip和rmp。根据下图,你可以按需要执行你要运

9、行的组件再设置板卡内容:setenv ipaddr 10.4.41.166 /板卡的ipsetenv gatewayip 10.4.41.254 /板卡网关ipsetenv serverip 10.4.37.210 /开NFS和TFTP的虚拟机的ipsetenv linux_rootpath /home/csm/B1200CSM/B1200_CSM/icm/install/rootfs /mount的目录setenv linux_bootfile vmlinux1 /kernel文件名 saveenv run linux_nfs_run更新代码很方便,只需要重新设置serverip和linux

10、_rootpath就可以使用不同的代码了。7、 升级编译升级文件,编译修改后的nmgt或者scm、hip,不需要再进行文件位置的移动:在B1200_CSM/icm/install/目录下运行脚本make_package_csm1a 1.0.0.0,生成csm1a_upgrade.gz。正常结果:liuboyuan10 install$ sudo ./make_package_csm1a 1.0.0.1cp: cannot stat ./apps/upgrade/cfg_upgrade: No such file or directorychmod: cannot access tmp/cfg_

11、upgrade: No such file or directorycp: omitting directory ./ppc_82xx-strip: cfg_upgrade: No such file or directory把编译出来的csm1a_upgrade.gz上传至节点: telnet登陆节点,随便哪个目录下都可以执行:icm2_upgrade /tftpboot csm1a_upgrade.gz f,如下:root10.20.30.1:# icm2_upgrade /tftpboot csm1a_upgrade.gz -funzip successfulnew version is

12、 1.0.0.1old_version is 1.0.0.1Upgrading.nmgt not match .start_apps not match. Doneroot10.20.30.1:#not match的意思是upgrade.gz中的文件和板卡上的文件不匹配,就是需要更新的文件可以看出来是否更新了你修改的文件。该升级更新的文件列表在 install下file_list_csm1a中。不更新rootfs8、 更新userfs的特定部分只适用于NFS模式。在/home/liuboyuan/HZ08312_B1205_OAM_SERVER/B1200_CSM/icm/build/icm3

13、下执行如下脚本:,命令格式为:update bcmupdate nmgtupdate scmupdate platformupdate hip多数情况nmgt、scm、hip为我们自己手动复制文件即可,其它两种bcm和platform由于涉及文件较多,所以建议使用这种方法升级。如果要更新platform,则执行./build platform后,执行update platform。如果需要更新bcm,则执行./build apps后,update bcm,之后同上。9、 杂七杂八经常会碰到的问题,总结如下:1、 现象:walk有的时候会卡住原因:sanity进程把cpu抢占100%,导致其它操

14、作无响应解决办法:直接在板卡上注释掉etc/rc.d/init.d/dhcpd 中的两行/usr/bin/sanity_check &/usr/bin/sanity_check &由于dhcpd是存在于rootfs上,所以如果不更新rootfs的情况下,不需要重新修改。2、 现象:直接启动后登陆不上去原因:没有配置ip地址和路由解决办法:在CSM下执行sh ifconfig eth0 10.230.9.253 netmask 255.255.255.0sh route add default gw 10.230.9.254 eth0 或者更改/usr/local/upgrade/start_n

15、mgt_dhcp,在sleep 25后面加上 ifconfig eth0 10.230.9.253 netmask 255.255.255.0 route add default gw 10.230.9.254 eth0,这样每次重起就不用再设置了。 但是更新.gz后是需要重新配置的。3、 现象:GDB连不上原因:防火墙开启解决办法:运行/etc/init.d/rc.flush即可4、 现象:TFTP上传不上去原因:iptables的管理权限不是root解决办法:执行chown root /usr/sbin/iptables5、 现象:启动过程中出现iptables permission de

16、nied原因:没有使用root用户编译rootfs解决办法:执行 chown root /usr/sbin/iptables6、 配置虚板的话,在nmgt侧可以使用module entity中的provision state查看,如果想查看scm侧的虚板状况,可以在当前CSM下(串口上的CSM, 默认进入到hip)输入dlbd 0,查看板卡信息。7、 现象:凡是发现和ip相关的不通现象,首先考虑防火墙,执行命令iptables L 看看结果是什么。8、 单独编译不包含debug的NMGT以前我们使用的build nmgt 2.4.20 csm1a是编译debug版本的nmgt,现在不能用了,如

17、果想单独编译nmgt,可以在apps/build/nmgt下,执行以下脚本:#!/bin/shexport PLATFORM=POWERPC_82XX_MVISTAexport KERN_DIR=kernel/linux/2.4.20sudo jam -f ././Jambase -d2 2&1 | tee build.out自己运行或者写个sh文件运行都可以9、 Linux下常用命令收集参考附件:10、 GDB的使用节点侧(server端):root10.4.38.235:/# gdbserver 10.4.41.166:2001 /usr/local/bin/scm /节点IPProces

18、s ./scm created; pid = 124Remote debugging from host 10.4.38.61creating task: init, status = 0INIT : creating queue: , status = 0INIT : creating queue: M51_, status = 0或者可以关联进程号,先在root下运行ps:PID USER VSZ STAT COMMAND279 root 90508 S /usr/bin/nmgt active 206 root 90508 S /usr/bin/nmgt active 227 root

19、90508 S /usr/bin/nmgt active 228 root 90508 S /usr/bin/nmgt active 265 root 90508 S /usr/bin/nmgt active 266 root 90508 S /usr/bin/nmgt active 267 root 90508 S /usr/bin/nmgt active 274 root 90508 S /usr/bin/nmgt active 275 root 90508 S /usr/bin/nmgt active 281 root 90508 S /usr/bin/nmgt active 283 r

20、oot 90508 S /usr/bin/nmgt active 420 root 90508 S /usr/bin/nmgt active 502 root 2772 S telnetd 503 root 2780 S -sh 506 root 2772 S tail -f /var/log/messages 629 root 2772 R psdbgserver xxxx:2001 -attach num(你想调试的那个进程的)dbgserver xxxx:2001 attach 281就是调试nmgt进程PC侧启动:(gdb) qzsjlocalhost scm4$ ppc_82xx-g

21、db -q bin.mpc/scm(你要调试的文件路径,build下的或者usr/local/bin下的都可以)(gdb) target remote 10.4.41.166:2001Remote debugging using 10.4.38.235:2001常用命令列表:1、(gdb) l - l命令相当于list,从第一行开始例出原码。2、(gdb) - 直接回车表示,重复上一次命令3、(gdb) break 16 - 设置断点,在源程序第16行处。4、gdb) break func - 设置断点,在函数func()入口处。5、(gdb) info break - 查看断点信息。6、(g

22、db) r - 运行程序,run命令简写7、(gdb) n - 单条语句执行,next命令简写。8、(gdb) c - 继续运行程序,continue命令简写。9、(gdb) p i - 打印变量i的值,print命令简写。 p/x 打印成16进制10、(gdb) bt - 查看函数堆栈。11、(gdb) q 16) & 0xff)#define PHY_INDEX_2_SLOT(indx) (indx)8)&0xff)#define PHY_INDEX_2_PORT(indx) (indx)&0xff)#define PHY_INDEX(slf, slot, port) (slf)16)+(slot)8)+(port)#define PHY_INDEX_BOARD(slf, slot) PHY_INDEX(slf, slot, 0xFF)#define PHY_INDEX_SLOT(slf, slot) PHY_INDEX(slf, slot, 0xFE)#define BOARD_HDTYPE_2_MODULE(board_type, hd_type) (board_type 16)#define MODULE_2_HDTYPE(module_type) (module_type & 0xff)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1