找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 11581|回复: 13

抛砖引玉,自定义编译OpenWrt whiterussian0.9

[复制链接]
发表于 2008-2-6 15:20 | 显示全部楼层 |阅读模式
参考链接  http://wiki.openwrt.org/ImageBuilderHowTo
              
以下都是以我的情况为实例,硬件为centos5-x86-64bit的服务器,已yum -y update到最新软件。
常规的过程就不多说了,主要步骤为
1、前提条件:需要一台安装了2.6内核的linux机器,安装了足够的工具软件,已能编译自己的kernel
2、下载 OpenWrt-ImageBuilder-Linux-x86_64.tar.bz2 ,解压缩,得到你的工作目录,
3、 设置 ,我主要解释“自定义设置”*
4、 编译,make clean all ,获得你要的image文件,有.trx 和 .bin格式。

==========================================================

* 对于第3项,“自定义设置”

3.1  进入工作目录下的packages目录,添加你需要的软件包,如
       wget http://web/wl_3.90.37-1_mipsel.ipk ,可以加入任意多个;
3.2  创建一个自定义的软件包列表文件,进入工作目录下的lists目录,
       cp -v default.brcm-2.4 cliusn-image.brcm-2.4
       然后修改这个新建的cliusn-image.brcm-2.4文件,向文件中添加你要的软件包,去除不需要的软件包,我不需要web界面,但需要支持USB 硬盘(为了节省内存,格式化为ext2,因为kmod-ext2很小,ext2性能完全可以接受,USB1.1只需要如下的那些usb驱动,brcm2.4硬件需要kmod-usb-ohci),根据我的路由器belkin 7231硬件,我的cliusn-image.brcm-2.4 内容如下:
base-files
base-files-brcm
bridge
busybox
dnsmasq
dropbear
ipkg-sh
iptables
iwlib
kmod-brcm-wl
kmod-diag
kmod-ppp
kmod-pppoe
kmod-switch
kmod-wlcompat
mtd
nvram
ppp
ppp-mod-pppoe
uclibc
wificonf
kmod-ext2
kmod-usb-core
kmod-usb-ohci
kmod-usb-storage
ntpclient
wl

3.3 在工作目录下,创建 files 目录,files目录下再创建 etc目录,可以再etc目录里再创建目录和加入文件;
如下所示:
[root@hitxt files]# pwd
/home/cliusn/imagebuilder/files
[root@hitxt files]# tree
.
`-- etc
    |-- TZ                                    
    |-- banner
    |-- config
    |   `-- firewall
    |-- crontabs
    |   `-- root
    |-- dropbear
    |   |-- dropbear_dss_host_key
    |   `-- dropbear_rsa_host_key
    |-- ethers
    |-- hosts
    |-- init.d
    |   `-- S99myinit
    |-- passwd
    |-- resolv.conf
    `-- usbdrive

5 directories, 12 files

(未完,继续)

[ 本帖最后由 cliusn 于 2008-2-6 15:57 编辑 ]
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2008-2-6 15:26 | 显示全部楼层
[root@hitxt etc]# cat TZ
HKT-8                                 时区:东八区,没有CHN,只能用香港,否则用台wan

banner ,根据自己的需要,写点注释,个性化一下,无关紧要的。

etc/firewall
最后我追加了
forward:dport=16660:192.168.1.160:16660
forward:dport=16661:192.168.1.160:16661
forward:dport=16662:192.168.1.160:16662
forward:dport=16663:192.168.1.160:16663
以便端口转发,192.168.1.160是一台用bt 、emule的电脑,这样做保证可以到高id。

[root@hitxt etc]# cat crontabs/root
0 */2 * * *     ntpclient -c 1 -s -h 1.asia.pool.ntp.org > /dev/null 2>&1
每2小时,网络对时

dropbear_dss_host_key
dropbear_rsa_host_key
是ssh链接用的key,从原来安装的openwrt中复制出来的,无关紧要,完全可以忽略,我自己这么做而已

[root@hitxt etc]# cat ethers
00:18:F3:10:B2:CA       192.168.1.160
00:0D:3A:C39:CC       192.168.1.60
00:06:29:E9:88:9B       192.168.1.150
00:12:25:2F:10:39       192.168.1.50
用来dhcp赋予某些电脑固定的ip地址

[root@hitxt etc]# cat hosts
127.0.0.1 localhost OpenWrt_cliusn 无关紧要,完全可以忽略,我自己这么做而已

[root@hitxt etc]# cat init.d/S99myinit
#!/bin/sh
wl radio off
ntpclient -c 1 -s -h 1.asia.pool.ntp.org > /dev/null 2>&1
自定义的init启动进程文件,要注意使用chmod a+x /<your path>/S99myinit
使它可执行,我这里的作用的关闭无线,开机联网后,自动对时,否则系统时间是2000年

[root@hitxt etc]# cat passwd
root1$8U$nEljdfsIwF/qrNSwegvSUd/:0:0:root:/tmp:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
可有可无,作用为直接指定了ssh是root的口令,否则第一次用telnet登陆,无口令,需要自己用passwd指定口令,这个文件,需要从已安装的openwrt中用winscp等软件传出来,因为口令是加密的,不可逆。

[root@hitxt etc]# cat resolv.conf
nameserver 221.228.255.1
nameserver 218.2.135.1
本地的DNS

[root@hitxt etc]# cat usbdrive
#!/bin/sh /etc/rc.common
START=99
STOP=40
start()
{
        echo -n "Mounting USB drive: "
        mount -t ext2 -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
        echo "Done."
}
stop()
{
        echo -n "Umounting USB drive:  "
        sync
        sync
        umount /dev/scsi/host0/bus0/target0/lun0/part1
        echo "Done."
}
restart()
{
        stop
        start
}
usb硬盘加载脚本,以后需要使用就执行 usbdrive start|restart|stop


如果,我的路由器的nvram已经设置正确,我使用pppoe上网,刷好这个自定义的firmware后,打开路由器,一切就好了,不需要再设置了。(当然,是简单的应用,没有涉及到amule rtorrent samba http等软件和服务。)

[ 本帖最后由 cliusn 于 2008-2-6 15:51 编辑 ]
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2008-2-6 15:53 | 显示全部楼层
我关注的问题:

那些用kamikaze的朋友介绍一些编译kamikaze的自定义步骤和技巧。
我的路由器只有32M内存,希望继续研究,怎样使用最少的内存资源,我不用web界面及时为了这个目的。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2008-2-6 18:28 | 显示全部楼层
配置kamikaze和配置linux内核是一样的界面,选择方式也一样。
推荐选择全部模块,然后生成Imagebuilder可以定制安装的模块,不用重头编译,还可以添加自己的模块,脚本构造的很强啊。
kamikaze的mips2.6内核对bcm的无线芯片支持还不是很好,等2.6.24内核进去估计会好点吧。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2008-2-7 12:50 | 显示全部楼层
正在用 CentOS5 x86-64 服务器编译kamikaze svn ....... 选用 2.6 的kernel
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2008-2-10 04:05 | 显示全部楼层
一看就是强呀,我小白一个很是羡慕啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2008-2-10 17:15 | 显示全部楼层
楼上的朋友过奖了。用kamikaze svn 版openwrt的朋友才是强。 我试用了一下,还是用回whiterussian版,用上述办法,直接在里面集成了samba,usb硬盘分区改成vfat,只需要预先集成一个kmod-vfat,当然kmod-ext2就不需要了,也试验了ctorrent等。继续试验QoS方面的东西。
等kamikaze 出稳定版后再用kamikaze 版。

[ 本帖最后由 cliusn 于 2008-2-10 17:22 编辑 ]
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2008-2-11 10:23 | 显示全部楼层
看来.和make 内核差不多吧.
有qos方面的模 块吗.
对openwrt下的软件,不怎样了解.说说
kamikaze 有什么用的.
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2008-2-11 11:34 | 显示全部楼层
和make 内核差不多。

qos 模块    http://downloads.openwrt.org/whiterussian/packages/qos-scripts_1.2.0-0_mipsel.ipk

安装后设置也简单,只要改一下conf设置文件中上传、下传速率(单位kbps)就可以了,然后启动进程,效果比较明显,PC上emule上传速度自动调节,一般可以达到接近最大值,浏览器上网仍然很快,如果不开qos,这是浏览器上网很慢了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2008-2-11 11:43 | 显示全部楼层
使用qos后,
root@OpenWrt:~# iptables -vL -t mangle
Chain Default (4 references)
pkts bytes target     prot opt in     out     source               destination
2065K 1977M CONNMARK   all  --  any    any     anywhere             anywhere            CONNMARK restore
1451K 1454M Default_ct  all  --  any    any     anywhere             anywhere            MARK match 0x0
  348  344K MARK       all  --  any    any     anywhere             anywhere            MARK match 0x1 length 400:65535 MARK set 0x0
    0     0 MARK       all  --  any    any     anywhere             anywhere            MARK match 0x2 length 800:65535 MARK set 0x0
2220  175K MARK       udp  --  any    any     anywhere             anywhere            MARK match 0x0 length 0:500 MARK set 0x2
4287  641K MARK       icmp --  any    any     anywhere             anywhere            MARK set 0x1
1443K 1453M MARK       tcp  --  any    any     anywhere             anywhere            MARK match 0x0 tcp spts:1024:65535 dpts:1024:65535 MARK set 0x4
    0     0 MARK       udp  --  any    any     anywhere             anywhere            MARK match 0x0 udp spts:1024:65535 dpts:1024:65535 MARK set 0x4
5201  249K MARK       tcp  --  any    any     anywhere             anywhere            length 0:128 MARK match !0x4 tcp flags:FIN,SYN,RST,PSH,ACK,URG/SYN MARK set 0x1
34005 1375K MARK       tcp  --  any    any     anywhere             anywhere            length 0:128 MARK match !0x4 tcp flags:FIN,SYN,RST,PSH,ACK,URG/ACK MARK set 0x1

Chain Default_ct (1 references)
pkts bytes target     prot opt in     out     source               destination
3097  437K MARK       all  --  any    any     anywhere             anywhere            MARK match 0x0 ipp2p v0.8.1_rc1 --kazaa --gnu --edk --dc --bit MARK set 0x4
  576 46094 MARK       all  --  any    any     anywhere             anywhere            MARK match 0x0 LAYER7 l7proto edonkey MARK set 0x4
    0     0 MARK       all  --  any    any     anywhere             anywhere            MARK match 0x0 LAYER7 l7proto bittorrent MARK set 0x4
   12   600 MARK       tcp  --  any    any     anywhere             anywhere            MARK match 0x0 tcp multiport ports 22,53 MARK set 0x1
   77  5140 MARK       udp  --  any    any     anywhere             anywhere            MARK match 0x0 udp multiport ports 22,53 MARK set 0x1
1980 94880 MARK       tcp  --  any    any     anywhere             anywhere            MARK match 0x0 tcp multiport ports 20,21,25,80,110,443,993,995 MARK set 0x3
    0     0 MARK       tcp  --  any    any     anywhere             anywhere            MARK match 0x0 tcp multiport ports 5190 MARK set 0x2
    0     0 MARK       udp  --  any    any     anywhere             anywhere            MARK match 0x0 udp multiport ports 5190 MARK set 0x2
1451K 1454M CONNMARK   all  --  any    any     anywhere             anywhere            CONNMARK save

Chain PREROUTING (policy ACCEPT 3118K packets, 1935M bytes)
pkts bytes target     prot opt in     out     source               destination
538K  153M Default    all  --  ppp0   any     anywhere             anywhere
538K  153M IMQ        all  --  ppp0   any     anywhere             anywhere            IMQ: todev 0

Chain INPUT (policy ACCEPT 69405 packets, 6163K bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 3047K packets, 1928M bytes)
pkts bytes target     prot opt in     out     source               destination
763K  912M Default    all  --  any    ppp0    anywhere             anywhere

Chain OUTPUT (policy ACCEPT 119K packets, 135M bytes)
pkts bytes target     prot opt in     out     source               destination
1062 63109 Default    all  --  any    ppp0    anywhere             anywhere

Chain POSTROUTING (policy ACCEPT 3166K packets, 2063M bytes)
pkts bytes target     prot opt in     out     source               destination
764K  912M Default    all  --  any    ppp0    anywhere             anywhere
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2008-2-12 10:47 | 显示全部楼层
writing firmware v2.8.1 on 8/2/12 (y/m/d)
adding 992 bytes of garbage
Makefile:73: 警告:覆盖关于目标“/home/djy/OpenWrt-ImageBuilder-Linux-i686/bin/pptp/openwrt-wr850g-.bin”的命令
Makefile:55: 警告:忽略关于目标“/home/djy/OpenWrt-ImageBuilder-Linux-i686/bin/pptp/openwrt-wr850g-.bin”的旧命令
Makefile:73: 警告:覆盖关于目标“/home/djy/OpenWrt-ImageBuilder-Linux-i686/bin/pptp/openwrt-wr850g-.bin”的命令
Makefile:55: 警告:忽略关于目标“/home/djy/OpenWrt-ImageBuilder-Linux-i686/bin/pptp/openwrt-wr850g-.bin”的旧命令
djy@djy-desktop:~/OpenWrt-ImageBuilder-Linux-i686$
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2008-3-24 10:30 | 显示全部楼层
自行编译用svn我编译过,只是没上到target上,觉得麻烦.我的是 7231-4P. 16M内存.

我使用的是交叉编译环境,而不是 X86版本.

另外你用的是 自己再添加 ipkg包的方式,这个太耗精力,十分耗.... svn的方式本身就对国外连接速度做出挑战...

而且使用的是别人已经构建好的 cross toochain,意义已经改变. 不知道兄弟是否有意思一起自己从新建立个交叉平台来编一个kernel呢?
我买这个路由器就是这个目的. 自己构建嵌入式系统.  目前我的计划是 bootloader不做,只是先搞出来个  7231-4p kernel .然后再说其他的.

PS:现在神风0.9版本还不能算是十分好用,在 join 其他路由器的时候 不是很好使.(使用的是x-wrt) .

2.6的kernel没有无线功能. 2.4的kernel在i/o方面又不行....

联系方式 qq:4 ##1##8##1##4##4##1##0
sniperpr AT gmail com
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2010-11-5 13:51 | 显示全部楼层
顶一下,希望高手发个最新的编译步骤。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2012-12-16 11:41 | 显示全部楼层
做个标记先
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-19 20:54

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表