存档

‘技术’ 分类的存档

解惑–关于笔记本的PC卡转并口端口地址不能更改的问题

2008年6月22日

如果你是找解决方法找到这个帖子的,那么很遗憾,我解决不了这个问题。现在我只是想说说为什么解决不了。

去年底,还在无锡的时候,程杰买了一个PCMCIA的并口卡,100多块,结果因为不能更改IO地址,仿真软件都没法识别到PC卡的并口,所以后来又退掉了,只是那时候我还用着我的老联想,所以没在意怎么解决。现在新换的X60没有并口,这让我很郁闷,所有的仿真器都用不了了,突然需要用到了并口,虽然知道PCMCIA卡转出来的并口不好用,但是还是禁不住诱惑买了一块回来做测试。

今天上午10点的样子收到卡到现在一直在研究这块卡,但是得出来的结论是依然无法改端口地址。至于原因,我想是这样子的,这块卡的驱动芯片是NM9805(据我所知,市面上卖的卡都是这个驱动芯片),这个芯片是基于PCI接口的(废话,插在PC卡上),地址范围当然是在PCI16位地址内。而378/278那个地址是系统保留给主板自带并口使用,不会分配给 PCI转接卡使用的。所在没有办法改。

但他们的功能是一样的,仅是操作地址不同。只要能在软件里将所操作的并口地址改为uPnP分配到的地址就可以正常工作。

目前为止我只找到了一款软件能更改并口地址,就是H-Jtag,所以我的这块卡就变成了ARM专用了,呵呵。。。

Jacob 技术

8086汇编写的七段数码管程序

2008年6月16日

考G的前几天,我妹妹找我写8086程序,说是课程设计,一直拖到现在才写,没有调试环境也不知道结果对不对。

题目是这样的:
系统实验平台上的七段数码管显示是采用共阴极。参考资料如下:

图1-1共阴共阳极数码管

相应的驱动显示数据如表1-1所示

表1-1共阴共阳极数码管段码

现要求:利用8255A的A口接开关量,利用两个数码管分别显示A口的开关量的数值。如A口的开关量为0101 0011,则这两个数码管的显示数值为:53;如果如A口的开关量为1111 1010,则这两个数码管的显示数值为:FA;依次类推。(本题只要求显示0-F共16个)。
(1)、请设计线路图,并画出连接线路图。
(2)、完成完整的程序。
(3)、验证设计的结果。

注:
实验平台上的8255A端口地址是:A口是60H;B口是61H;C口是62H;控制口是63H

这是我写的程序:

;课程设计一:七段数码管
;题目要求:利用8255A的A口接开关量,利用两个数码管分别显示A口的开关量的数值。如A口的开关量为0101 0011,
;          则这两个数码管的显示数值为:53;如果如A口的开关量为1111 1010,则这两个数码管的显示数值为:
;          FA;依次类推。(本题只要求显示0-F共16个)。
;程序说明:本程序为8086汇编程序,使用两个共阴数码管显示8255A口所接的开关量,硬件连接如下:
;          8255的A口接开关量,B口接两个共阴数码管的a-g,dp,C口低二位分别接两个数码管的公共
;          端作为片选信号。(电路图略)

OUTPORT1 EQU 63H    ;8255控制寄存器端口地址
OUTPORTA EQU 60H    ;A口地址
OUTPORTB EQU 61H    ;B口地址
OUTPORTC EQU 62H    ;C口地址
DATA SEGMENT      ;LED为共阴七段数码管码表
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS
CODE SEGMENT        ;定义代码段
ASSUME CS:CODE,DS:DATA
START:    MOV AX,DATA
MOV DS,AX

MOV AL,10010000B  ;控制字,方式0,A口输入,B口、C口输出
MOV DX,OUTPORT1    ;控制寄存器端口送DX
OUT DX,AL      ;控制字送8255

MOV DX,OUTPORTA    ;读取端口A
IN AL,DX      ;

MOV BL,AL      ;保留读取值

MOV CL,04      ;取低四位
SHL AL,CL
SHR AL,CL
LEA BX,LED      ;DATA送BX
XLAT        ;查表

MOV DX,OUTPORTB    ;B口地址送DX
OUT DX,AL      ;数据送B口显示
MOV AL,02H      ;送位码02H至C口
MOV DX,OUTPORTC    ;C口地址送DX
OUT DX,AL      ;C口输出

CALL DELAY      ;小延时

MOV AL,BL      ;恢复已读取的数据
MOV CL,04      ;取高四位
SHR AL,CL
LEA BX,LED      ;DATA送BX
XLAT        ;查表
MOV DX,OUTPORTB    ;B口地址送DX
OUT DX,AL      ;数据送B口显示
MOV AL,01H      ;送位码01H至C口
MOV DX,OUTPORTC    ;C口地址送DX
OUT DX,AL      ;C口输出

CALL DELAY      ;小延时

JMP START      ;循环

DELAY  PROC      ;小延时子程序
PUSH CX
PUSH AX
MOV AX,6
X1:  MOV CX,0ffFH
X2:  DEC CX
JNE X2
DEC AX
JNE X1
POP AX
POP CX
RET
DELAY ENDP

CODE ENDS      ;代码段结束
END START      ;源程序结束

Jacob 技术

利用贝尔金F5D7231-4将cmwap变为cmnet

2008年2月10日

电脑端软件安装:
1.下载windows版OpenVPN软件,http://openvpn.net/download.html
2.安装OpenVPN。
3.开始-程序-OpenVPN-Generate a static OpenVPN key.
4.生成的key在config文件夹下。key.txt
把它的内容复制出来备用

路由端操作:
1.刷VPN版的DD-WRT,我刷的是DD-WRT v24 RC-6 (01/02/08) vpn
2.路由端-管理-诊断
输入以下代码保存为启动命令,其中
—–BEGIN OpenVPN Static key V1—–
……
—–END OpenVPN Static key V1—–
之间内容用刚才的key.txt内容替换。

openvpn –mktun –dev tap0
brctl addif br0 tap0
ifconfig tap0 0.0.0.0 promisc up
echo ”
—–BEGIN OpenVPN Static key V1—–
……
—–END OpenVPN Static key V1—–
” > /tmp/static.key
ln -s /usr/sbin/openvpn /tmp/myvpn
/tmp/myvpn –dev tap0 –secret /tmp/static.key –comp-lzo –port 443 –proto tcp-server –verb 3 –daemon

将以下代码保存为防火墙命令。

iptables -I INPUT 1 -p tcp –dport 443 -j ACCEPT

重启路由器。ps命令后能看到myvpn运行。

客户端的电脑端操作:
1.打开OpenVPN GUI,右击命令行图标,选择Edit Config

2.输入以下代码
# Use the following to have your client computer send all traffic through your router
# (remote gateway)
remote ****.3322.org
http-proxy-retry
http-proxy 10.0.0.172 80
port 443
dev tap
secret key.txt
proto tcp-client
comp-lzo
route-gateway 192.168.*.*
redirect-gateway

其中****.3322.org为你路由器的DDNS域名,192.168.*.*为路由器的ip地址。
3.将第一步生成的key.txt复制到客户端电脑的config目录

3.使用手机的拨号软件连接到cmwap网络。链接成功。

4.右击OpenVPN图标,选择connect进行连接VPN。链接成功即可上网,应用程序无需设置代理。你的IP地址是路由器的ip地址。与内网完全一样。

Jacob 技术

频谱分析仪和示波器的比较

2008年1月10日

示波器顾名思义就是用来观察信号的波形的,也就是信号幅度随时间的变化而变化的图形(曲线).
频谱分析仪用来观察信号的各频率下的能量分布,

联系和区别:示波器仅能根据波形\查信号的周期来分析现象,而无法精确分析信号中各种频率分量,
频谱分析仪则相反,虽然能够精确分析信号中各种频率分量,但无法了解各频率分量中的相位关系,以及它们组合后的整体波形.

在示波器中,横坐标是时间,纵坐标是电压幅度(V)
而在频谱分析仪中,横坐标是频率,纵坐标是幅度(通常用DB量度)
如果用的是数字仪器,通常这两种功能很容易同时实现.

甚至配合声卡的spectralab软件,也能分析复合信号的相位、频率、幅度,并可当一台简易示波器使用,只是声卡采样频率不高限制了有效分析带宽.

Jacob 技术

【转帖】示波器有关知识及选型方案

2008年1月8日

示波器自从问世以来,它一直是最重要、最常用的电子测试仪器之一。由于电子技术的发展,示波器的能力在不断提升,其性能与价格也五花八门,市场参差不齐。示波器看似简单,但如何选择,也存在许多问题。本文根据多年的经验,结合北京海洋兴业科技有限公司选型指南,从几个方面告知您在选择示波器时应注意的问题:

一、了解您需要测试的信号
您要知道用示波器观察什么?您要捕捉并观察的信号其典型性能是什么?您的信号是否有复杂的特性?您的信号是重复信号还是单次信号?您要测量的信号过渡过程的带宽,或者上升时间是多大?您打算用何种信号特性来触发短脉冲、脉冲宽度、窄脉冲等?您打算同时显示多少信号?您对测试信号作何种处理?

二、选择示波器的核心技术差异:模拟(DRT)、数字(DSO)、还是数模兼合(DPO)
传统的观点认为模拟示波器具有熟悉的控制面板,价格低廉,因而总觉得模拟示波器 “ 使用方便 ” 。但是随着 A/D 转换器速度逐年提高和价格不断降低,以及数字示波器不断增加的测量能力和实际上不受限制的测量功能,数字示波器已独领风骚。但是数字示波器显示具有三维的缺陷、处理连续性数据慢等缺点,需要具有数模兼合技术的示波器,例 DPO 数字荧光示波器。

三、确定测试信号带宽
带宽一般定义为正弦波输入信号幅度衰减到 -3dB 时的频率,即幅度的70.7% 。带宽决定示波器对信号的基本测量能力。如果没有足够的带宽,示波器将无法测量高频信号,幅度将出现失真,边缘将会消失,细节数据将被丢失;如果没有足够的带宽,得到的信号所有特性,包含响铃和振鸣等都毫无意义。
一个决定您所需要的示波器带宽有效经验—— “5倍经验准则”:将您要测量的信号最高频率分量乘以5,使测量结果获得高于2%的精度。
在某些应用场合,您不知道你的感兴趣的信号带宽,但是您知道它的最快上升时间,这时频率响应用下面的公式来计算关联带宽和仪器的上升时间: Bw=0.35/信号的最快上升时间。
数字示波器带宽有两种类型:重复(或等效时间)带宽和实时(或单次)带宽。重复带宽只适用于重复的信号,显示来自于多次信号采集期间的采样。实时带宽是示波器的单次采样中所能捕捉的最高频率,且当捕捉的事件不是经常出现或瞬变信号时就更为重要,实时带宽与采样速率紧密联系。
带宽越高越好,但是更高的带宽往往意味着更高的价格,因此应按照预算来选择您要观察的信号频率成分。

四、A/D转换器的采样速率(或采样速度)
单位为每秒采样次数( S/s ),指数字示波器对信号采样的频率。示波器的采样速率越快,所显示的波形的分辨率和清晰度就高,重要信息和事件丢失的概率就越小。
如果需要观测较长时间范围内的慢变信号或低频信号,最小采样速率就发挥了作用,为了在显示的波形记录中保持固定的波形数,需要调整水平控制旋钮,而所显示的采样速率也将随着水平调节旋钮的变化而变化。
如何计算采样速率?计算方法取决于所测量的波形类型,以及示波器所采用的信号重建方式,例正弦插入法,矢量插入法等。为了准确地再现信号并避免混淆,奈奎斯定理规定:信号的采样速率必须不小于其最高频率成分的两倍。然而,这个定理的前提是基于无限长时间和周期连续的信号。由于示波器不可能提供无限时间的记录长度,而且从定义上看,低频干扰是不连续的,也不是周期的,所以采用两倍于最高频率成分的采样速率通常是不够的。
实际上,信号的准确再现取决于其采样速率和信号采样点间隙所采用的插值法,即波形重建。一些示波器会为操作者提供以下选择:测量正弦信号的正弦插值法,以及测量矩形波、脉冲和其他信号类型的线性插值法。

有一个比较采样速率和信号带宽时很有用的经验法则:如果您正在观察的示波器有内插(通过筛选以便在取样点间重新生成),则(采样速率 / 信号带宽)的比值至少应为 4∶1 ;无正弦内插时,则应采取 10∶1 的比值。

五、屏幕刷新率也称为波形更新速度
所有的示波器都会闪烁,示波器每秒钟以特定的次数捕获信号,在这些测量点之间将不再进行测量,这就是波形捕获速率,也称屏幕刷新率,表示为波形数每秒( wfms/s )。一定要区分波形捕获速率与A/D采样速率的区别。采样速率表示示波器在一个波形或周期内A/D采样输入信号的频率 ; 波形捕获速率则是指示波器采集波形的速度。波形捕获速率取决于示波器的类型和性能级别,且有着很大的变化范围。高波形捕获速率的示波器将会提供更多的重要信号特性,并能极大地增加示波器快速捕获瞬时的异常情况,如抖动、矮脉冲、低频干扰和瞬时误差的概率。
一般来讲,模拟示波器由于电路简单,其屏幕刷新率较高,而数字存储示波器( DSO )使用串行处理结构每秒钟可以捕获 10 到 5000 个波形。为了改变数字示波器屏幕刷新率低的问题,数字荧光示波器采用并行处理结构,可以提供更高的波形捕获速率,有的高达每秒数百万个波形,大大提高了捕获间歇和难以捕捉事件的可能性,并能让您更快地发现信号存在的问题。

六、选用适当的存储深度,也称记录长度
存储深度是示波器所能存储的采样点多少的量度。如果您需要不间断的捕捉一个脉冲串,则要求示波器有足够的存储器以便捕捉整个事件。将所要捕捉的时间长度除以精确重现信号所须的采样速率,可以计算出所要求的存储深度。
存储深度与采样速率密切相关。您所需要的存储深度取决于要测量的总时间跨度和所要求的时间分辨率。
现代的示波器允许用户选择记录长度,以便对一些操作中的细节进行优化。分析一个十分稳定的正弦信号,只需要 500 点的记录长度;但如果要解析一个复杂的数字数据流,则需要有一百万个点或更多点的记录长度。
在正确位置上捕捉信号的有效触发,通常可以减小示波器实际需要的存储量。

七、根据需要选择不同的触发功能
示波器的触发能使信号在正确的位置点同步水平扫描,使信号特性清晰。触发控制按钮可以稳定重复的波形并捕获单次波形。

Jacob 技术 ,

数字示波器中带宽与采样速率概念解释

2008年1月8日

为了准确地再现信号并避免混淆,奈奎斯定理规定:信号的采样速率必须不小于其最高频率成分的两倍。这里的采样速率是指AD的采用速率,最高频率成分是指被测信号的频率。然而,这个定理的前提是基于无限长时间和周期连续的信号。由于示波器不可能提供无限时间的记录长度,而且从定义上看,低频干扰是不连续的,也不是周期的,所以采用两倍于最高频率成分的采样速率通常是不够的。

实际上,信号的准确再现取决于其采样速率和信号采样点间隙所采用的插值法,即波形重建。一些示波器会为操作者提供以下选择:测量正弦信号的正弦插值法,以及测量矩形波、脉冲和其他信号类型的线性插值法。

有一个比较采样速率和信号带宽时很有用的经验法则:如果您正在观察的示波器有内插(通过筛选以便在取样点间重新生成),则(采样速率 / 信号带宽)的比值至少应为 4∶1 ;无正弦内插时,则应采取 10∶1 的比值。

MSPS 是指抽样速率(Million samples per second),是指从模拟信号里抽样的速率。对抽样后的点,要进行量化和编码,量化编码以后就是2进制的数字信号了,这时候单位就换成了Mbit 或MByte。具体换算可以根据A/D的分辨率来换。而每符号用几位数据则决定于A/D转换的位数精度。

在我的课题中,我将要采用的AD 转换器是ADI公司的AD9283BRS-100,其为8bit,100MSPS,3V的AD转换器。也就是说根据奈奎斯特定理,2片 AD9283BRS-100交替采样,将能实现100M的带宽;而根据经验法则,使用正弦内插采样方式,将实现50M的带宽;无正弦内插时,将实现20M 的带宽。

Jacob 技术 ,

贝尔金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 技术