hugebird 发表于 2008-8-27 15:00:00

以前读过一些BCM ADSL的固件的源码(USR9108的),个人认为BCM ADSL的源码可以分成3部分,
第1部分是linux Kernel, 这部分是完全公开的,Broadcom只是做了很小的修改,用户可以通过修改kernel的编译配置加入必要底层功能,比如支持USB设备,各种文件系统等等。可以通过U盘扩充内存,为以后运行脱机下载做好准备。这部分没什么好说的可以参考任何linux关于内核编译的文章。

第2部分是用户应用程序,比如IPtable,PPPOE, busybox,SSH Droptear,Samba, ftp-server, http-server等各种应用和服务,这部分代码完全公开,用户可以自由添加。在路由器上的脱机BT工具,ml-donkey实际上都可以从mipsle平台上移植过来。

第3部分是Broadcom硬件配置和管理接口,系统里面进程名为CFM, 这个模块是用户WEB管理界面和底层驱动之间的抽象层,类似VC++里面的MFC库一样,从网上搜索的资料猜测CFM是Class and Function Module的缩写。这个模块不是开源模块,属于Broadcom专有,里面屏蔽了好多功能,比如重定向了telnet server,WWW server等等,某些版本的固件无法用telnet就是CFM中做了屏蔽。CFM对网络的重定向主要利用IPtable过滤功能。我们要添加功能可以利用CFM接口实现,或者绕过CFM,参考DD-WRT或者Tomato的管理接口。

最后说一下功能扩充对硬件的要求,首先处理器要6348以上,如果脱机下载估计要6358. 其次必须支持 USB扩充存储。存放固件的flash 个人认为在有USB扩充存储的情况下4MB足以,应用程序完全可以从U盘上调入执行。内存32MB至少,推荐64MB,可以使用U盘临时文件模拟内存。大内存的驱动可能在CFE中实现的,网上没有找到ADSL内存DIY的例子。如果要支持64MB或128MB需要设置参数重新编译CFE源码。boradcom提供CFE的源码,但63xx芯片的驱动未集成到CFE中,不过应该能找到可以的支持大内存的CFE。
顺便说一句题外话,6338的路由在BT时死机主要的原因是内存不够,不是6338处理能力不够。通常6338是8MB内存,IP会话最大值是系统根据内存大小自动确定的,内存小,同时打开的会话就少。16MB内存是63xx系列ADSL做路由一个稳定工作的基本要求。

一直没机会搞交叉编译环境,估计调试不会太负杂。以上个人意见,仅供参考

dsw1234 发表于 2009-1-6 16:22:46

难倒众人啊!!有兴趣没能力

minibox2000 发表于 2009-2-19 10:52:54

Ding

有心无力呀

minibox2000 发表于 2009-2-19 10:53:34

DING

YOU XIN WU LI

zxy223 发表于 2009-2-19 15:47:41

学习了,不过大部分不懂,看来还要多学习。感谢分享。。

etherman 发表于 2009-2-23 16:54:27

简单编译就可以了。貌似类似的工作hugebird已经利用usr的源代码实现过了,倒是openwrt更值得看看。

cmcgcf08 发表于 2009-2-23 18:44:20

资料很多,只是很多都看不懂.

yikok 发表于 2009-3-4 13:02:02

不错,学习了,呵呵

happy780502 发表于 2009-3-28 22:47:12

谢谢 看看谢谢 看看

5417 发表于 2009-4-2 19:34:41

顶一下。lz留联系方式。合作一下。
页: 1 [2] 3 4 5
查看完整版本: bcm6358 系列猫的开发包。有LINUX的朋友可以研究下