存档

2007年11月 的存档

贝尔金F5D7231-4潜力挖掘教程-增大ROM,增加USB

2007年11月11日

买来的路由是F5D7231-4不带p的,所以是2M的FLASH,16M的SDRAM,不带USB口

2M的FLASH后果是只能刷micro版的dd,不带u口就不能插u盘,不能插打印机

16M的SDRAM倒是勉勉强强够用,已经在taobao上买了内存,到了就加到64M,无奈平邮过来的。。。

下面说说FLASH升级和usb口的增加

1. 2M变4M
原来的芯片是AMD的AM29LV160BD,2M空间,在taobao上买了MX29LV320CBTC-90,4M空间,16元一片

用风枪把原来的芯片吹下来,然后把新的片子换上去就完成了硬件操作,说的简单,但是对于没有风枪焊台的人来说就比较痛苦了,如果实在不行可以找手机店里的人帮忙。

由于新换的片子里面是空的,所以我们要往里面写一些启动数据,也就是CFE,注意原来2M芯片里的数据,现在是不能用的,要写下面的两个中的一个,下面两个分别是4M FLASH,16M SDRAM的,和4M FLASH,64M SDRAM的,选你需要的写进去,写的时候要用到JTAG口和一个JTAG烧录软件,JTAG口的硬件制作和串口的硬件如图

烧录软件

如果64M要用下面一段代码

nvram set sdram_config=0×0033
nvram set sdram_refresh=0×8040
nvram set sdram_init=0×0008
nvram set sdram_ncdl=0×0000
nvram commit
reboot

最后用tftp写入dd固件即可,这时已经可以写mini的和std的了

2.  增加USB口

实际上7231-4p和7231-4 v1444  的主板完全一样。只需补上以下器件。
需要增加的部分如下
usb数据接口,补上以下原件:
F51: 短接(或者用 500mA 保险丝可以从废旧的电脑主版上拆)
R723 和 R724:  15k电阻
R733 和 R734:  22R 或33R 电阻
J51: USB接口

5V电源部分,补上以下原件:
C906:100µF-470µF ( > 16V )
C986:  10µF ( > 16V )
U981: LM7805 (三端稳压)

Jacob 技术

贝尔金F5D7231-4潜力挖掘教程-建立SWAP交换分区

2007年11月11日

建立SWAP分区是BT和电驴的关键,否则,肯定RAM不够的
有的DD的内存很小,导致装软件时候有些不爽,现在可以用一部分Flash来充当内存,就像Windows的交换文件一样。
虽然不知道效果如何,至少内存看着大了,呵呵

步骤1、机器上要装载好一个USB存储设备(光靠机内那点儿Flash可不够)
2、在/opt目录里面,安装好Optware
3、安装busybox
安装前,需要手工去除两个和Busybox冲突的文件
cd /opt/bin
rm reset
rm clear
然后再/opt/bin/ipkg install busybox
就行了……

4、创建一个交换文件,我这里的例子,U盘mount在了/jffs上面,蓝色的字是系统给的应答:
创建一个32M的交换文件
/jffs # dd if=/dev/zero of=/jffs/Swapfile bs=1024 count=32768
32768+0 records in
32768+0 records out

5、将这个交换文件用作Swap分区:
/jffs # /opt/bin/busybox mkswap /jffs/Swapfile
Setting up swapspace version 1, size = 33550337 bytes
/jffs # /opt/bin/busybox swapon /jffs/Swapfile

6、用free指令查看可用内存,发现总内存已经是46868KB了,呵呵,过一会儿dd就会自己去用swap分区了,但我还没有长期测试,不知道效果究竟如何
/jffs # free
/ # free
total          used           free        shared      buffers
Mem:        14108        13656          452            0          156
Swap:        32760         1176        31584
Total:        46868        14832        32036

Jacob 技术

贝尔金F5D7231-4潜力挖掘教程-安装软件

2007年11月11日

当挂在好U盘以后,我们总应该用它来做点什么。
注:以下部分内容参考于ddwrt的wiki
http://www.dd-wrt.com/wiki/index.php/Optware

下面的操作,基于你的u盘分区已经挂载到了/jffs上,如果挂到了/mnt或别的地方,请自行修改一下
第一步,Telnet到路由器,输入以下命令
mkdir /jffs/opt
mount -o bind /jffs/opt /opt
这两条指令确保你有一个足够大并且可写的/opt目录,因为所有optware都要安装在这个目录下。

第二步,安装ipkg-opt和optware运行库,输入或者粘贴进去这两条指令
wget http://pastebin.ca/raw/328107  -O - | tr -d ‘\r’ > /tmp/optware-install.sh
sh /tmp/optware-install.sh

全自动安装好optware的基础文件。
注:如果安装过程中显示什么link失败,是因为你的U盘分区不是linux的ext2或者ext3分区,windows的fat格式没法做link,所以不支持optware

第三步,更新一下ipkg可装软件列表
命令是
/opt/bin/ipkg update

【可选软件安装】
1、samba2
安装命令
/opt/bin/ipkg install samba2
安装成功以后,注意,在/opt/etc/samba/smb.conf里面,有基础需要修改和添加
第一处,这里要填你的工作组名,要和XP的机器一样
workgroup = MSHOME

第二处
guest account = root
这里最好改成root,否则的话某些目录会出显权限不够没法写入的情况,不过不知道有没有危险

第三处
# This one is useful for people to share files
这行下面,就是添加用户想要共享的目录的地方啦,比如我就添加了amule下载完成的目录
例子:
[incoming]
comment = aMule download dir
path = /opt/share/amule/.aMule/Incoming
read only = no
public = yes
以上设置修改完以后,特别是前两处修改完,就可以启动samba拉,使用指令
/opt/etc/init.d/S80Samba来启动,完成以后,在XP的网络邻居里,就可以看见DD这台虚拟的文件服务器啦

【可选软件安装】
2、amule

安装指令
/opt/bin/ipkg install amule
成功以后,同样
有一些需要修改的地方
在/opt/share/amule/.aMule/下面会生成几个设置文件,里面有参数需要修改(注:这是一个隐含目录,ls看不到,但是cd可以进去)
amule.conf其中几行需要修改,请大家活用vi ~
Password=
这行,需要填入用户设置的password的MD5值,
生成MD5的指令:
echo -n yourpasswordhere | md5sum | cut -d ‘ ‘ -f 1
把yourpasswordhere换成你要设的字符串,然后把生成出来的字串考出备用。

AcceptExternalConnections=1
一定要改为=1,否则amule不会启动的

[WebServer]
Enabled=1
这里要改成1,否则WEB配置界面amuleweb不会启动

ECPassword=
这行是进入web界面的password,一样要输入MD5值,而不是直接输入字符,我觉得最好和上面那个password一样

Template=default
这行是选择web界面,个人感觉default比较好看,php-default其实也不差,chicane更好看 嘿嘿

这一切以后,还有重要一步,就是给amule开放端口,就在dd-wrt的NAT选项里,给192.168.1.1开放以下三个端口转发:
4662 TCP
4672 UDP
4665 UDP

【07-10-17】补充,还需要手动更新一下服务器列表,方法是:
进入/opt/share/amule/.aMule,删掉server.met(rm指令),然后用wget + 新的server.met地址,地址网上搜一下就有了

然后就可以通过指令启动amule拉
/opt/etc/init.d/S57amule
启动几秒以后,就可以通过http://192.168.1.1:4711访问amule的web配置界面了,进入的密码就是刚才文件中填入的密码(这回不是输入MD5!)

进入界面

内存占用:

# free
total         used         free       shared      buffers
Mem:        14108        13664          444            0          400
Swap:        32760         7148        25612
Total:        46868        20812        26056

吃了一些SWAP缓冲区 呵呵
上网开Webpage不成问题,速度稍有减慢

3、HTTP服务器
安装指令:
/opt/bin/ipkg install thttpd

配置方法:
安装过后,在/opt/etc里面会生成thttpd.conf文件
里面有几处需要更改,如下红字
dir=/opt/share/www
port=808
user=root
这两行是server的主目录,和端口号,大家根据自己情况更改。

cgipat=/cgi-bin/*
如果你的server需要CGI支持,就要加入这行,否则的话CGI没法用。

启动指令:
/opt/etc/init.d/S57thttpd start

启动之后,http://路由IP:808就可以看见默认的index.html了
index.html是默认的首页名称。

4、FTP Server
安装指令
/opt/bin/ipkg install proftpd

配置方法:
安装过后,在/opt/etc里面会生成proftpd.conf文件
有几处需要修改的地方:
ServerType后面要改成standalone

# Set the user and group under which the server will run.
User                            root
Group                           root
这里,两个都改成root

# To cause every FTP user to be “jailed” (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
为了安全起见,删掉DefaultRoot前面的#号,把每个用户锁在自己的专属文件夹里

AuthUserFile /opt/passwd
这里改为/opt/passwd,而不是/etc/passwd

# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire section.
这一段以后的东西,如果不想要匿名访问,可以删掉

保存后,退回到telnet界面,打入cp /etc/passwd /opt
然后编辑/opt/passwd
会看到类似于:
ftp:XXXXXXX:0:0:Ftp User,,,:/opt/share/www/ftp:/bin/sh
的一行或几行
将第一个冒号前面的名字由root改成你想要起的用户名,
XXXXX的地方是经过hash的密码,如何获得呢?你可以更改进入dd-wrt的界面的密码,然后从/etc/passwd里面root那一行里拷贝过来就行啦
/opt/share/www/ftp是这个用户登陆以后所在的默认目录,当然要挂到U盘上

最后,退到telnet界面,输入cp /opt/doc/proftpd/S58proftpd /opt/etc/init.d
chmod +x  /opt/etc/init.d/S58proftpd
就行啦

启动指令是/opt/etc/init.d/S58proftpd
之后别的电脑就可以访问FTP服务了

【新增FTP被动 PASV指令支持方法】
在proftp.conf第一行添加
PassivePorts 60000 60050
然后在web界面端口群转发里面添加从60000到60050的端口到192.168.1.1
重启FTP进程就行了
这样别人用FTP软件连接你的FTP,就可以选择使用被动模式Passive Mode了

5、BT下载
/opt/bin/ipkg install transmission

如果需要WEB管理,要安装上面所述的THTTPD,然后打开CGI支持
具体还没有试出来…… 希望大家补充

Jacob 技术

贝尔金F5D7231-4潜力挖掘教程-挂u盘,挂打印机

2007年11月11日

首先,确认你的dd的SSH管理功能打开了,并且要开启jffs2功能,确认你的flash剩余空间足够。
打开SSH的菜单有两处:
1) Services–>Secure Shell–>SSHd打开–>Password Login打开,端口可以选默认的22,如果觉得危险,也可以选别的,但是在Winscp中要设置好对应的端口。

2)菜单–>Administration–>Remote Access–>SSH Management

我刷的是rc4 mini,大概还有700KB的空间,足够装下驱动了
开启JFFS2的菜单–>Administration–>JFFS2 Support–>JFFS2选Enable / Clear第一次使用选Enable,之后选Disable(好像会自动变成Disable)

然后安装一个名叫Winscp的软件,以便可以直接存取ddwrt的jffs系统

设置中的用户名就是root,IP请根据自己的路由更改,密码就是自设的密码,连接以后有几个警告和Group等等错误,不用理他

下一步,左边是你电脑上的文件,右边是你DD上的文件夹,如果jffs2安装正确的话,应该已经往/jffs目录写入东西了,好,把压缩包里面的东西解压,写进/jffs
(只有两个目录的东西,etc和lib)

下一步telnet进路由,执行这个语句

ipkg update
ipkg install p910nd

下一步,在dd的start up命令里面,加入以下语句
注意,红色字体部分根据路由器机型的不同而不同。我的只支持USB1.1,所以只加载了usb-ohci的驱动。
一般来说,USB1.1的芯片,都不用加载ehci的驱动,但是uhci和ohci具体需要加载哪个,就看不同的机种了。

打印机驱动是print.o 如果还要加载u盘的存储设备要加入相应的文件系统驱动
我加载的是ext2文件系统的驱动,因为我的u盘是ext2的

insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/usb-ohci.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o
#insmod /jffs/lib/modules/2.4.30/ext2.o
#insmod /jffs/lib/modules/2.4.30/ext3.o
#insmod /jffs/lib/modules/2.4.30/fat.o
#insmod /jffs/lib/modules/2.4.30/vfat.o
insmod /jffs/lib/modules/2.4.30/printer.o
/jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0

sleep 3
umount /jffs
umount /mnt
mount /dev/scsi/host0/bus0/target0/lun0/part1 /jffs
mount /dev/mtdblock/4 /mnt
mount -o bind /jffs/opt /opt

最后6行的作用是将u盘mount到系统中,代替原来的/opt目录

都弄好后,重启路由,如果一切顺利的话,U盘的灯就会亮起来啦
在telnet里面,输入dmesg,应该能看到如下的字样:

usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
PCI: Setting latency timer of device 00:04.0 to 64
usb-ohci.c: USB OHCI at membase 0xb8004000, IRQ 2
usb-ohci.c: usb-00:04.0, PCI device 14e4:4716
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver…
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
hub.c: new USB device 00:04.0-1, assigned address 2
scsi0 : SCSI emulation for USB Mass Storage devices
Vendor: Generic   Model: USB SD Reader     Rev: 2.00
Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 1002496 512-byte hdwr sectors (513 MB)
sda: Write Protect is off
Partition check:
/dev/scsi/host0/bus0/target0/lun0: p1
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2

代表着你的系统已经识别了USB总线,并且识别了USB 大容量存储器。

hub.c: new USB device 00:04.0-1, assigned address 5
printer.c: usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0×4348
pid 0×5584

代表着你的系统已经识别了USB打印机

使用共享打印机的电脑设置:

以XP Professional为例,进入控制面板,打印机和传真机,选择添加打印机,选择”连接到此计算机的本地打印机“

勾去自动检测,选择下一步,创建新端口,选择Standard TCP/IP Port,下一步,下一步,第一行输入路由ip地址

下一步,选择自定义,点击设置,确保协议是RAW,端口是9100,下一步,完成

然后选择你的USB打印机型号,完成安装

至此,USB打印机就可以使用了

Jacob 技术