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

Protel DXP 快捷键大全

2007年8月4日

enter——选取或启动
esc——放弃或取消
f1——启动在线帮助窗口
tab——启动浮动图件的属性窗口
pgup——放大窗口显示比例
pgdn——缩小窗口显示比例
end——刷新屏幕
del——删除点取的元件(1个)
ctrl+del——删除选取的元件(2个或2个以上)
x+a——取消所有被选取图件的选取状态
x——将浮动图件左右翻转
y——将浮动图件上下翻转
space——将浮动图件旋转90度
crtl+ins——将选取图件复制到编辑区里
shift+ins——将剪贴板里的图件贴到编辑区里
shift+del——将选取图件剪切放入剪贴板里
alt+backspace——恢复前一次的操作
ctrl+backspace——取消前一次的恢复
crtl+g——跳转到指定的位置
crtl+f——寻找指定的文字
alt+f4——关闭protel
spacebar——绘制导线,直线或总线时,改变走线模式
v+d——缩放视图,以显示整张电路图
v+f——缩放视图,以显示所有电路部件
home——以光标位置为中心,刷新屏幕
esc——终止当前正在进行的操作,返回待命状态
backspace——放置导线或多边形时,删除最末一个顶点
delete——放置导线或多边形时,删除最末一个顶点
ctrl+tab——在打开的各个设计文件文档之间切换
alt+tab——在打开的各个应用程序之间切换
a——弹出edit\align子菜单
b——弹出view\toolbars子菜单
e——弹出edit菜单
f——弹出file菜单
h——弹出help菜单
j——弹出edit\jump菜单
l——弹出edit\set location makers子菜单
m——弹出edit\move子菜单
o——弹出options菜单
p——弹出place菜单
r——弹出reports菜单
s——弹出edit\select子菜单
t——弹出tools菜单
v——弹出view菜单
w——弹出window菜单
x——弹出edit\deselect菜单
z——弹出zoom菜单
左箭头——光标左移1个电气栅格
shift+左箭头——光标左移10个电气栅格
右箭头——光标右移1个电气栅格
shift+右箭头——光标右移10个电气栅格
上箭头——光标上移1个电气栅格
shift+上箭头——光标上移10个电气栅格
下箭头——光标下移1个电气栅格
shift+下箭头——光标下移10个电气栅格
ctrl+1——以零件原来的尺寸的大小显示图纸
ctrl+2——以零件原来的尺寸的200%显示图纸
ctrl+4——以零件原来的尺寸的400%显示图纸
ctrl+5——以零件原来的尺寸的50%显示图纸
ctrl+f——查找指定字符
ctrl+g——查找替换字符
ctrl+b——将选定对象以下边缘为基准,底部对齐
ctrl+t——将选定对象以上边缘为基准,顶部对齐
ctrl+l——将选定对象以左边缘为基准,靠左对齐
ctrl+r——将选定对象以右边缘为基准,靠右对齐
ctrl+h——将选定对象以左右边缘的中心线为基准,水平居中排列
ctrl+v——将选定对象以上下边缘的中心线为基准,垂直居中排列
ctrl+shift+h——将选定对象在左右边缘之间,水平均布
ctrl+shift+v——将选定对象在上下边缘之间,垂直均布
f3——查找下一个匹配字符
shift+f4——将打开的所有文档窗口平铺显示
shift+f5——将打开的所有文档窗口层叠显示
shift+单左鼠——选定单个对象
crtl+单左鼠,再释放crtl——拖动单个对象
shift+ctrl+左鼠——移动单个对象
按ctrl后移动或拖动——移动对象时,不受电器格点限制
按alt后移动或拖动——移动对象时,保持垂直方向
按shift+alt后移动或拖动——移动对象时,保持水平方向

Jacob 技术

AVR口线方式驱动DDS模块(旧),芯片AD9850

2007年7月31日

把模块上那块万恶的CPLD拆了,直接驱动口线,成功驱动~模块产生的正弦波很漂亮,频率能到很高,到普源25M的示波器极限是没什么问题。芯片转换出来的方波就不行了,上M就不漂亮~

对输入AD9850的标准正弦波,进行直接数字合成生成。输入频率最高为125MHZ,可生成0-Fclk/2范围内的任意频率正弦波和方波。

+3.3V或+5V单电源工作,正常,掉电模式。
可输入的时钟频率最高可达125MHZ
频率分辨率达到2^-32

AD9850 采用直接数字合成技术,利用片内集成的高性能的DAC和高速比较器,形成完全可编程的频率合成器和时钟发生器。可输入的时钟频率最高可达125MHZ,具有32bit的频率字使得频率分辨率达到2-32; 5bit来进行相位调制,允许输出以180o,90o,45o,22.5o,11.25o,以及它们的任意组合和相位角为增量跳变。具有可选的串行或并行数据传输方式。

此模块应用中,dds9850采用的是并行输入方式。

并行输入方式下,内部40bit的寄存器装载5个8位的字节。如下为并行输入时的频率字:W0包含相位调制字,掉电模式控制和装载模式控制。接下来的W2到W5是32bit的频率控制字。

Jacob 技术 ,

计数器的上升沿和下降沿触发

2007年7月31日

以一个最简单的计数器为例:

Port(
clock:in std_logic;
pulse:in std_logic;
q:out std_logic_vector(3 downto 0)
);
q输出为对pulse跳变沿的递增计数。clock为系统高速时钟。
Process(clock) begin
if rising_edge(clock) then
dly1pul <= pulse;
dly2pul <= dly1pul;
end if;
End process;
en <= dly1pul and not dly2pul;–上升沿
–en <= not dly1pul and dly2pul;–下降沿
–en <= dly1pul xor dly2pul;–上升沿和下降沿
Process(clock) begin
if rising_edge(clock) then
if en = ‘1′ then
cnt <= cnt + 1;
end if;
end if;
End process;
q <= cnt;

单对于此小问题,当然采用倍频实现双沿计数也是可行的,但是我们不要忘记,倍频器在很多CPLD或FPGA中是不支持的,即便支持其资源也是很宝贵的。
我看到的一些设计中,动辄采用某一信号作为时钟,应该说这种做法是欠妥的。因为不是全局时钟的时钟信号最大扇出是有限的,其很难保证时钟延时应小于信号延时的基本要求。当遇到要对某个信号的跳变沿处理时,建议采用上述小例子中en信号的处理办法。

Jacob 技术

E2PROM操作,解决重启问题

2007年7月29日

#define EERE 0
#define EEWE 1
#define EEMWE 2

void E2PROM_Write(unsigned int Addr,unsigned char Data)
{
while(EECR & (1< EEAR=Addr;
EEDR=Data;

EECR|=(1<

EECR|=(1< }

unsigned char E2PROM_Read(unsigned int Addr)
{
while(EECR & (1<

EEAR=Addr;
EECR|=(1<

return EEDR;
}

E2PROM读写函数,没有考虑中断的影响,毕竟这东西用的不多,本来以为这样子就可以用了,写了段记录开机次数的程序。

temp=E2PROM_Read(0×00a);

E2PROM_Write(0×00a,temp+1);

运行,结果0×00a地址的值确实在增加,只不过是不停的增加,换句话来说就是单片机不停的重启,查了写资料,发现是看门狗的缘故,在写E2PROM的时候必须喂狗,不然单片机就会复位。看门狗的操作我还不会,所以就从熔丝把看门狗关了,程序运行正常。明天有时间研究看门狗去。。。

Jacob 技术 , ,

CH375 USB芯片

2007年7月17日

从沁恒电子拿来的空板和芯片,焊了一下上系统立马能用了,程序写了一些,上位机能对下位机发数据了,下位机对上位机发实现起来应该也不困难,就是上位机软件不太会写,不知道怎么用它的dll库文件,沁恒网站上好像也没有c#的实例,先放一放吧,资料过一段时间整理好了再传

Jacob 技术

CVAVR与AVR Studio程序联调

2007年7月12日

没看到有资料介绍这个,虽然很简单

1. 进入CV主界面,点图标栏上的甲壳虫标志,弹出一个对话框,在这里选择AVR Studio主程序的位置,和版本。

2. 确定后,一个警告框提示你编译时将多生成一个cof文件用于调试,用于调试的AVR Sudio的版本不能小于4.06,确定后即可进入AVR Studio界面。

3. 点OPEN打开生成的cof文件。这里提示将生成用于调试的aps文件,确定后选择调试器的类型和仿真芯片的类型,这是目标板和仿真器都要供电。

4. 右边的方框里显示代码文件,有一个黄色的箭头指向将要执行的语句,在这里可以和别的仿真器一样实现断点,单步执行等操作。左侧可以看到寄存器值等。

Jacob 技术

TI的430Day

2007年7月11日

昨天在南京举行了TI的430DAY活动,在金陵之星大酒店进行了一天的讲座。最后是每人赠送一个eZ430开发工具和2个小开发板。

eZ430是个2线的仿真器,这个小东西创意的确不错,可惜使用不方便,需要将外壳拆下来才可以使用。感觉这样很容易损坏,接口也感觉不牢,容易接触不良。还是缺少使用说明,这样的结果估计一半人都不会使用的。

触摸板可以独立使用,也可以和eZ430联合使用。触摸板下面是一个松下的CR2032锂电池,将触摸板右上方的短路快连上,就可以做触摸板实验,按下任意键LED将发光,不按下就不亮。按键1亮度最高,按键4最暗。

比较意外的是430F22X学习板还带了一根并口线和探针,以及没有焊接的两个双排插针。

这个形式的研讨会只是了解一下而已,只有赠送的开发板比较吸引人,很多人大概都是冲着它来的。不过对430的印象好了不少。

Jacob 技术