BBルータ解剖
 
ASUS WL-500g

個人的な雑感

パラレルポートを搭載して、プリンタサーバになるようですが、今のプリンタは ほとんど USB 対応なことを考えると、不要なのでは、と思ってしまいます。 WL-500g は USB1.1 ポートを装備していて、上位機種の WL-500g deluxe は USB 2.0 ポートを搭載しているようです。デザインは、個人的に好きなほうで、 立てて使うときに、本体横の内蔵しているスタンドを引き起こして使うのは、 便利だと思います。2005.1.24

CPU と OS

CPU は mips 系の CPU を搭載しているようです。調べてみましたら、前期の製品は Broadcom BCM4702 、後期の製品は Broadcom BCM4333 を使用しているようですが、 詳細はよくわかりません。 OS はファームウェアから、

Linux version 2.4.20 (root@localhost.localdomain)
(gcc version 3.2.3 with Broadcom modifications) #88 Thu Aug 26 14:27:30 CST 2004

とあり、 Linux で動作しているようです。内部に miniPCI スロットがあり、 そこに Broadcom のチップが乗った無線 LAN カードが入っているようです。


アップデートファームの取り出し
確認ファーム Version : 1.8.1.9

ASUS のページからファームウェアをダウンロードしてきます。 今回は wg01080109_WL500g_EN.zip を使うことにしました。この wg01080109_WL500g_EN.zip を 解凍すると、

wg01080109_WL500g_EN.trx

のファイルが取り出せます。この wg01080109_WL500g_EN.trx は前半部分が gzip で 圧縮されたkernel ファイル、後半が Compressed ROMFS(cramfs) のイメージファイル ですので、それを dd コマンドを使って取り出します。

dd if=wg01080109_WL500g_EN.trx of=piggy.gz bs=1 skip=28 count=790335
dd if=wg01080109_WL500g_EN.trx of=image bs=1 skip=790364

取り出した piggy.gz はそのまま gunzip などで解凍すると、 piggy というファイルが 取り出せます。このファイルは kernel ファイルですので、あとは strings コマンド などで眺めるぐらいしかできません。

もう一つのファイル image は cramfs ですので、 Linux の PC などでそのまま マウントが出来ます。

mount -o loop image /mnt/loop

のような感じです。 image の tree 結果を以下につけます。
[toyota@kashyyyk]% tree
.
|-- bin
|   |-- ash -> busybox
|   |-- busybox
|   |-- cat -> busybox
|   |-- chmod -> busybox
|   |-- cp -> busybox
|   |-- date -> busybox
|   |-- dd -> busybox
|   |-- echo -> busybox
|   |-- false -> busybox
|   |-- grep -> busybox
|   |-- kill -> busybox
|   |-- ln -> busybox
|   |-- ls -> busybox
|   |-- mkdir -> busybox
|   |-- mknod -> busybox
|   |-- more -> busybox
|   |-- mount -> busybox
|   |-- msh -> busybox
|   |-- mv -> busybox
|   |-- ping -> busybox
|   |-- ps -> busybox
|   |-- pwd -> busybox
|   |-- rm -> busybox
|   |-- rmdir -> busybox
|   |-- sh -> busybox
|   |-- sleep -> busybox
|   |-- true -> busybox
|   `-- umount -> busybox
|-- dev
|-- etc
|   |-- hosts -> /tmp/hosts
|   |-- ld.so.cache
|   |-- ld.so.conf
|   |-- resolv.conf -> /tmp/resolv.conf
|   `-- services
|-- lib
|   |-- ld-uClibc.so.0
|   |-- libc.so.0
|   |-- libcrypt.so.0
|   |-- libdl.so.0
|   |-- libnsl.so.0
|   |-- libpthread.so.0
|   `-- modules
|       `-- 2.4.20
|           |-- build -> /root/broadcom/src/linux/linux
|           |-- kernel
|           |   |-- drivers
|           |   |   |-- i2c
|           |   |   |   `-- i2c-core.o
|           |   |   |-- media
|           |   |   |   `-- video
|           |   |   |       `-- videodev.o
|           |   |   |-- net
|           |   |   |   |-- et
|           |   |   |   |   `-- et.o
|           |   |   |   |-- il
|           |   |   |   |   `-- il.o
|           |   |   |   |-- robo
|           |   |   |   |   `-- robo.o
|           |   |   |   `-- wl
|           |   |   |       `-- wl.o
|           |   |   |-- scsi
|           |   |   |   |-- scsi_mod.o
|           |   |   |   |-- sd_mod.o
|           |   |   |   `-- sg.o
|           |   |   `-- usb
|           |   |       |-- host
|           |   |       |   |-- ehci-hcd.o
|           |   |       |   |-- uhci.o
|           |   |       |   |-- usb-ohci.o
|           |   |       |   `-- usb-uhci.o
|           |   |       |-- printer.o
|           |   |       |-- pwc.o
|           |   |       |-- storage
|           |   |       |   `-- usb-storage.o
|           |   |       `-- usbcore.o
|           |   `-- net
|           |       `-- ipv4
|           |           `-- netfilter
|           |               |-- ip_nat_starcraft.o
|           |               `-- ipt_NETMAP.o
|           |-- ov511_decomp.o
|           |-- ov518_decomp.o
|           |-- ov51x.o
|           |-- parport
|           |   |-- lp.o
|           |   |-- parport.o
|           |   `-- parport_splink.o
|           `-- pcmcia
|-- mnt
|-- proc
|-- sbin
|   |-- bpa_connect -> rc
|   |-- bpa_disconnect -> rc
|   |-- ddns_updated -> rc
|   |-- erase -> rc
|   |-- hb_connect -> rc
|   |-- hb_disconnect -> rc
|   |-- hotplug -> rc
|   |-- ifconfig -> ../bin/busybox
|   |-- init -> rc
|   |-- insmod -> ../bin/busybox
|   |-- klogd -> ../bin/busybox
|   |-- logread -> ../bin/busybox
|   |-- lsmod -> ../bin/busybox
|   |-- ntp -> rc
|   |-- rc
|   |-- reboot -> ../bin/busybox
|   |-- restore -> rc
|   |-- rmmod -> ../bin/busybox
|   |-- rmstorage -> rc
|   |-- rmwebcam -> rc
|   |-- sendalarm -> rc
|   |-- start_ddns -> rc
|   |-- stats -> rc
|   |-- stopservice -> rc
|   |-- syslogd -> ../bin/busybox
|   |-- watchdog -> rc
|   |-- wmac -> rc
|   |-- write -> rc
|   `-- wsrom -> rc
|-- tmp
|-- usr
|   |-- bin
|   |   |-- basename -> ../../bin/busybox
|   |   |-- free -> ../../bin/busybox
|   |   |-- killall -> ../../bin/busybox
|   |   |-- route -> ../../bin/busybox
|   |   |-- traceroute -> ../../bin/busybox
|   |   |-- uudecode -> ../../bin/busybox
|   |   |-- uuencode -> ../../bin/busybox
|   |   `-- wget -> ../../bin/busybox
|   |-- lib
|   |   |-- iptables
|   |   |   |-- libipt_DNAT.so
|   |   |   |-- libipt_LOG.so
|   |   |   |-- libipt_MARK.so
|   |   |   |-- libipt_MASQUERADE.so
|   |   |   |-- libipt_NETMAP.so
|   |   |   |-- libipt_POOL.so
|   |   |   |-- libipt_SNAT.so
|   |   |   |-- libipt_TCPMSS.so
|   |   |   |-- libipt_TTL.so
|   |   |   |-- libipt_autofw.so
|   |   |   |-- libipt_icmp.so
|   |   |   |-- libipt_iplimit.so
|   |   |   |-- libipt_limit.so
|   |   |   |-- libipt_mac.so
|   |   |   |-- libipt_mark.so
|   |   |   |-- libipt_mport.so
|   |   |   |-- libipt_pool.so
|   |   |   |-- libipt_standard.so
|   |   |   |-- libipt_state.so
|   |   |   |-- libipt_tcp.so
|   |   |   |-- libipt_tcpmss.so
|   |   |   |-- libipt_time.so
|   |   |   `-- libipt_udp.so
|   |   |-- libnetconf.so
|   |   |-- libnvram.so
|   |   |-- libshared.so
|   |   `-- libsw.so
|   |-- sbin
|   |   |-- bpalogin
|   |   |-- brctl
|   |   |-- dproxy
|   |   |-- epi_ttcp
|   |   |-- et
|   |   |-- ez-ipupdate
|   |   |-- httpd
|   |   |-- infosvr
|   |   |-- iptables
|   |   |-- iptables-restore
|   |   |-- lpd
|   |   |-- mini_sendmail
|   |   |-- nas
|   |   |-- nas4not -> nas
|   |   |-- ntpclient
|   |   |-- nvram
|   |   |-- pppd
|   |   |-- pppoe-relay
|   |   |-- pppoecd
|   |   |-- pptp
|   |   |-- rcamd
|   |   |-- stupid-ftpd
|   |   |-- test
|   |   |-- udhcpc -> udhcpd
|   |   |-- udhcpd
|   |   |-- upnp
|   |   |-- vconfig
|   |   |-- wl
|   |   `-- wlconf
|   `-- tmp -> ../tmp
|-- var -> tmp/var
`-- www
    |-- Advanced_ACL_Content.asp
    |-- Advanced_APLAN_Content.asp
    |-- Advanced_APWAN_Content.asp
    |-- Advanced_Authentication_Content.asp
    |-- Advanced_BasicFirewall_Content.asp
    |-- Advanced_DDNS_Content.asp
    |-- Advanced_DHCP_Content.asp
    |-- Advanced_DMZDHCP_Content.asp
    |-- Advanced_DMZDLFilter_Content.asp
    |-- Advanced_DMZDWFilter_Content.asp
    |-- Advanced_DMZIP_Content.asp
    |-- Advanced_DMZLAN_Content.asp
    |-- Advanced_DMZWAN_Content.asp
    |-- Advanced_DynamicRoute_Content.asp
    |-- Advanced_Exposed_Content.asp
    |-- Advanced_FactoryDefault_Content.asp
    |-- Advanced_FilterHelp_Widzard.asp
    |-- Advanced_Firewall_Content.asp
    |-- Advanced_FirmwareUpgrade_Content.asp
    |-- Advanced_GRouterHelp_Widzard.asp
    |-- Advanced_GWStaticRoute_Content.asp
    |-- Advanced_Help_Widzard.asp
    |-- Advanced_LANWAN_Content.asp
    |-- Advanced_LANWAN_Content_JP.asp
    |-- Advanced_LFirewall_Content.asp
    |-- Advanced_MACFilter_Content.asp
    |-- Advanced_MultiPPPoE_Content.asp
    |-- Advanced_NAT_Content.asp
    |-- Advanced_OperationMode_Content.asp
    |-- Advanced_OperationMode_Content_501b.asp
    |-- Advanced_Password_Content.asp
    |-- Advanced_PortForwarding_Widzard.asp
    |-- Advanced_PortMapping_Content.asp
    |-- Advanced_PortTrigger_Content.asp
    |-- Advanced_PrinterSetup_Content.asp
    |-- Advanced_PrinterSetup_Widzard.asp
    |-- Advanced_QOS_Content.asp
    |-- Advanced_RDHCP_Content.asp
    |-- Advanced_RLANWAN_Content.asp
    |-- Advanced_RMISC_Content.asp
    |-- Advanced_RemoteControl_Widzard.asp
    |-- Advanced_RouteStatus_Content.asp
    |-- Advanced_RouterHelp_Widzard.asp
    |-- Advanced_SettingBackup_Content.asp
    |-- Advanced_ShowTime_Widzard.asp
    |-- Advanced_StaticRoute_Content.asp
    |-- Advanced_StorageRight_Content.asp
    |-- Advanced_StorageTool_Content.asp
    |-- Advanced_StorageUser_Content.asp
    |-- Advanced_URLFilter_Content.asp
    |-- Advanced_USBStorage_Content.asp
    |-- Advanced_UniqueKey_Content.asp
    |-- Advanced_VirtualServer_Content.asp
    |-- Advanced_VirtualServer_Widzard.asp
    |-- Advanced_WAdvanced_Content.asp
    |-- Advanced_WAdvanced_Content_500g.asp
    |-- Advanced_WAdvanced_Content_501b.asp
    |-- Advanced_WCertificate_Content.asp
    |-- Advanced_WClientMore_Content.asp
    |-- Advanced_WClient_Content.asp
    |-- Advanced_WMode_Content.asp
    |-- Advanced_WMode_Content_501b.asp
    |-- Advanced_WSecurity_Content.asp
    |-- Advanced_WebCam_Content.asp
    |-- Advanced_Wireless_Content.asp
    |-- Basic_AOperation_Content.asp
    |-- Basic_AccessPoint_SaveRestart.asp
    |-- Basic_GOperation_Content.asp
    |-- Basic_HomeGateway_SaveRestart.asp
    |-- Basic_Operation_Content.asp
    |-- Basic_ROperation_Content.asp
    |-- Basic_Router_SaveRestart.asp
    |-- Checking.asp
    |-- EMITest.asp
    |-- Logout.asp
    |-- Main_AStatus_Content.asp
    |-- Main_AdmStatus_Content.asp
    |-- Main_Content.asp
    |-- Main_DHCPStatus_Content.asp
    |-- Main_FWStatus_Content.asp
    |-- Main_GStatus_Content.asp
    |-- Main_IPTStatus_Content.asp
    |-- Main_Index.asp
    |-- Main_Index_AccessPoint.asp
    |-- Main_Index_Content.asp
    |-- Main_Index_HomeGateway.asp
    |-- Main_Index_Router.asp
    |-- Main_List.asp
    |-- Main_LogStatus_Content.asp
    |-- Main_Operation.asp
    |-- Main_Password_Content.asp
    |-- Main_RStatus_Content.asp
    |-- Main_Status_Content.asp
    |-- Main_WStatus_Content.asp
    |-- Restarting.asp
    |-- SaveRestart.asp
    |-- ShowWebCam.asp
    |-- ShowWebCamPic.asp
    |-- Title.asp
    |-- UpdateError.asp
    |-- Updating.asp
    |-- UploadError.asp
    |-- Uploading.asp
    |-- WL300g.CFG -> /tmp/settings
    |-- WL500b.CFG -> /tmp/settings
    |-- WL500g.CFG -> /tmp/settings
    |-- WL500gx.CFG -> /tmp/settings
    |-- WL520g.CFG -> /tmp/settings
    |-- WL530g.CFG -> /tmp/settings
    |-- WizardDetect.asp
    |-- WizardFirst.asp
    |-- display.jpg -> /var/tmp/display.jpg
    |-- firmware.asp
    |-- general.js
    |-- general_501b.js
    |-- graph
    |   |-- !.gif
    |   |-- AP.gif
    |   |-- Connecting.gif
    |   |-- Corner.gif
    |   |-- Disconnect.gif
    |   |-- Firewall.gif
    |   |-- List_backgroup.gif
    |   |-- Notebook.gif
    |   |-- PC.gif
    |   |-- Upload.gif
    |   |-- Upload_BAD.gif
    |   |-- Upload_OK.gif
    |   |-- V.gif
    |   |-- apicon.gif
    |   |-- apply.gif
    |   |-- asusLogo.jpg
    |   |-- asusLogoA.jpg
    |   |-- asusLogoG.jpg
    |   |-- asusLogoR.jpg
    |   |-- blank.gif
    |   |-- closedfolder.gif
    |   |-- delthisentry.gif
    |   |-- doc.gif
    |   |-- firewall1.gif
    |   |-- firewall2.gif
    |   |-- firewall3.gif
    |   |-- gatewayLogo.gif
    |   |-- help.gif
    |   |-- iBox.gif
    |   |-- iBox_title_all.jpg
    |   |-- internet.gif
    |   |-- internet_all.gif
    |   |-- internet_none.gif
    |   |-- internet_some.gif
    |   |-- lastnode.gif
    |   |-- many.gif
    |   |-- node.gif
    |   |-- openfolder.gif
    |   |-- pixel.gif
    |   |-- restore.gif
    |   |-- sArrow.gif
    |   |-- save.gif
    |   |-- showroutingtable.gif
    |   |-- start.gif
    |   |-- sumhorsd.gif
    |   |-- sumtextb.jpg
    |   |-- vertline.gif
    |   |-- wds_ap.gif
    |   |-- wds_mixed_anony.gif
    |   |-- wds_mixed_both.gif
    |   |-- wds_mixed_connect.gif
    |   |-- wds_wds_anony.gif
    |   |-- wds_wds_both.gif
    |   |-- wds_wds_connect.gif
    |   |-- wf_g.gif
    |   |-- wf_none.gif
    |   `-- x.gif
    |-- index.asp
    |-- index_501b.asp
    |-- index_JP.asp
    |-- md5.js
    |-- netcam_mfc_activeX.cab
    |-- overlib.js
    |-- phrase.js
    |-- quick.js
    |-- quick_501b.js
    |-- redirect.asp
    |-- redirecting.asp
    `-- style.css

37 directories, 343 files

Linux 周りなどは、ASUS のサイトから、ソースがダウンロードできます。 かなり大きいファイルですが、解析してみると面白いかもしれません。


Team Yokohama X-VACCINE & Tatsuyoshi Networks
もどる