Az
RTL8181 (Some info about the RTL8181)
A
"firmware": Linux és ennek elérése ( Serial access
of the firmware)
RTL8181
Linux project
Néhány
link (Some links)
X-Micro
AP Linux - további részletek (More details)
Újabb
fordulat (A new approach: mounting the firmware's filesystem under a web)
Különféle
megjegyzések (Miscellaneuse notes)
Mire
használható? még néhány ötlet.
(Costume use of the AP: some tipps)
In this paper we summarised our invetigations
aroud the new, RTL8181-based X-Micro wlan access point. The main aim of
this text is to inform our project members about the new development on
this area, consequently the texts mainly Hungarian :-((. We hope, in the
near future we will have some times to translate some part of texts to
English. But you can follow the main points of the contents based on the
short english notes, the original Linux comands and its outputs, and the
pictures too.
A címben jelzett, fenti eszköz az X-Micro taiwani cég
gyártmánya, meglepõen olcsó áron
megszerezhetõ, 2004 februárjában mintegy 9000 HUF
+ ÁFA.
Az eszköz FCC azonosító kódja:
FCC ID RAFXWL-11bARG
A firmware verzió: V.1.2.2
Az eszköz csatlakozóit, a kijelzõ LED-eket, valamint
az alkatrészek elhelyezkedését a vázlat tartalmazza.
A kidobozolás nem teljesen probléma mentes, 4 db, 6 lapú
sûlyesztett hornyokat tartalmazó csavar fogja össze a
doboz két felét. Kioldásukhoz szükség
van egy speciális csavarhúzóra.
Az RTL8181
(Some info about the RTL8181)
Az eszköz lelke az RTL8181 SoC, vagyis egy "egész rendszer egyetlen tokban" szervezésû controler.
A szóbanforgó eszközben 208 lábú változatban
van szerelve, és a panel alsó "forrasztási" oldalán
foglal helyet.
A tokban integrált fõbb egységek: 32bites, 200
MHz Risc CPU, 2 ethernet controler, 1 wlan controler, a címezhetõ
max. memóriaméret 32 Mbyte RAM,- itt 8 Mega, 4 Mbyte flash,
PCI compliant, tartalmaz egy 16550 UART-ot, mindezt összesürítve
egy 17x17 mm-es tokban.
Az angol, bõvebb leirás alant következik:
RTL8181
802.11b Wireless Gateway SoC with WLAN Dual-Mode CapabilityGeneral Description
The RTL8181 is a highly integrated System-on-a-Chip with a
high-performance 32-bit RISC microcontroller, two Ethernet MACs, and a
WLAN controller embedded onto a single chip with a space-saving total
package size of 17mm x 17mm. It is a cost-effective solution for
wireless LAN access points, wireless SOHO routers, wireless Internet
gateways, etc.The embedded Lexra LX5280 32-bit RISC CPU runs at up to 200MHz and
features separate 8KB instruction and data caches. The processor pipeline
is a dual-issue 6-stage architecture; the CPU fetches two instructions
per cycle, allowing two instructions to be executed concurrently in two
pipes and giving a 30% performance improvement over uni-scalar
architecture.The RTL8181 includes two Fast Ethernet MACs, one perhaps used for a LAN
interface and the other connected to a WAN port. An embedded IEEE 802.11b
WLAN MAC and Baseband controller saves BOM costs and allows a very small
footprint compared to systems requiring an external 802.11b adapter. For
extra design flexibility, a PCI interface is also supported. An IEEE
802.11a device could be connected through this PCI interface to provide
WLAN dual mode service.As required by modern operating systems, a Memory Management Unit (MMU)
allows the memory to be segmented and protected. The integrated memory
controller permits the use of glueless interfaces to external SDRAM and
Flash memory.Features
Core Processor
LX5280 32-bit RISC architecture
Superscalar architecture, containing 2 execution pipelines for high
performance
Embedded 8KB I-Cache, 8KB D-Cache and 4KB DRAM
MMU support
Up to 200MHz operating frequencyWLAN Controller
Integrated IEEE 802.11b compliant MAC and DSSS Baseband processor
Supports 1, 2, 5.5, or 11Mbps data rates
Supports long and short preamble
Supports antenna diversity and AGC
Universal chip for various radio front ends
Embedded with encryption/decryption engine for 64 and 128-bit WEPFast Ethernet Controller
Fully compliant with IEEE 802.3/802.3u
Supports MII interface with full and half duplex capability
Supports descriptor-based buffer management with scatter-gather
capability
Supports IP, TCP, and UDP checksum offload
Supports IEEE 802.1Q VLAN tagging and 802.1P priority queue
Supports full-duplex flow control (IEEE 802.3X)PCI Bridge
Complies with PCI 2.2
Supports one external PCI device
Supports PCI master/slave modeMemory Controller
Supports external 16/32-bit SDRAM with 2 banks access, up to 32M bytes
Supports external 16-bit Flash memory, up to 4M bytesUART
16550 compatible
16-byte FIFO buffer
Auto CTS/RTS flow controlGPIO
20 programmable I/O ports
Individually configurable input, output, and edge transition linesApplications
Wireless LAN access points
Wireless SOHO routers
Wireless Internet gateways
Az alábbi fotók scannerrel készültek, a kidobozolt
eszközrõl. A külsõ mûanyag dobozban egy majdnem
teljesen zárt, vékony (0.1 mm) lemezbõl készült
belsõ árnyékoló doboz van, ebben foglal helyet
a legalább háromrétegû panel.
Foto 1.: top view
Foto 2.: botton view
A konfigurálás
Az access point konfigurálása a lan porton keresztül
történik.
Ehhez szükség van egy másik rendszerre, amely tartalmaz
legalább egy, a 192.168.1.0 tartományba esõ ip címet,
és egy patch (fordítós) kábellel össze
van kötve az A.P. lan portjával. Az A.P. induló (default)
címe: 192.168.1.254.
A konfiguráláshoz használt rendszer web browserét
erre a címre kell irányítani.
A kezdõ lap bal oldalán látható menübõl
választva lehet konfigurálni a különféle
funkciókat. Az új értékekhez nem kell a rendszert
újra indítani.
A konfigurálás részleteire itt nem térünk
ki, ez megtalálható az eszközhöz mellékelt
füzetkében, ill. kis gyakorlattal a web felületen értelemszerûen
elvégezhetõ.
Az eszköz - hasonlóan más gyártóktól
származó, RTL8181-re alapozott access pointokhoz ill. wireless
routerekhez, - "firmwarekent" Linuxot tartalmaz.
A Linuxhoz a hozzáférés az RTL8181 UART soros
portján keresztül történik, ezen keresztül
más szoftvert is tölthetünk be. A gyári firmware
frissítése a lan porton keresztül is végezhetõ.
Az itt tárgyalt eszközben nincs csatlakozó kiképezve
a soros port elérésére, csak a forrasztási
szemek találhatók meg a panelen. A fix pontokat az RTL8181
lábainak azonosítása jelenti. Szerencsére a
vezetékek egyszerûen és egyértelmûen követhetõk
a panelen. A soros csatlakozó számozása rá
van nyomtatva a panelra, így egyértelmû lehet a hivatkozás.
Az 1-es láb négyszögletes felületü, a többi
kerek. A csatlakozó kiosztása nem azonos az eddigi dokumentációkban
megtalálható más eszközök hasonló
célú csatlakozóinak kiosztásával. A
6 forrasztási pöttybõl álló csatlakozó
hely egyértelmûen megfigyelhetõ a panel alsó
oldalát ábrázoló fotón, a nagy IC alatt.
Az 1. láb az IC alatt mintegy középen látható.
A panel felsõ oldalát ábrázoló fotón
a felfestett számozás is látható.
Rövid azonosítás után sikerült a kiosztást
visszafejteni:
X-Micro Wlan 11b Acess Point
Serial connector
| Serial connector | RTL8181 pin | Function (view from the controller) |
| 1. | 17. | Transmit Out |
| 2. | 15. | Receive In |
| 3. | GND | GND |
| 3. | VCC | 3.3V |
| 5. | 14. | CTS |
| 6. | 16. | RTS |
A kommunikációhoz az 1,2,3 csatlakozót kell használni.
Szükség van egy RS232 szintillesztõre, az adás
és vétel vonalak illesztéséhez. (MAX232) A
terminálporgram paraméterei:
38400, 8N1, Xon/Xoff protocol.
A tápfeszültség bekapcsolása után
a terminálon megjelenõ boot folyamatot alább láthatjuk.
?display on
entering boot loader, turning on display
decompressing kernel:
Uncompressing Linux... done, booting the kernel.
done decompressing kernel.
Linux version 2.4.18-MIPS-01.00 (root@localhost.localdomain) (gcc version 3.0.3) #14 Fri Jun 13 15:24:13 CST 2003
Determined physical RAM map:
memory: 00800000 @ 00000000 (usable)
Initial ramdisk at: 0x80159000 (304016 bytes)
On node 0 totalpages: 2048
zone(0): 2048 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/ram console=0 ramdisk_start=0 single
Calibrating delay loop... 204.39 BogoMIPS
Memory: 6252k/8192k available (1243k kernel code, 1940k reserved, 376k data, 44k init, 0k highmem)
Dentry-cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode-cache hash table entries: 512 (order: 0, 4096 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
unavailable.
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
block: 64 slots per queue, batch=16
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Serial driver version 6.02 (2003-03-12) with no serial options enabled
ttyS00 at 0x00c3 (irq = 3) is a rtl_uart1
state->flags=00000000
RealTek E-Flash System Driver. (C) 2002 RealTek Corp.
Found 1 x 1MiB MXIC MX29LV800B at 0xbfc00000
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
order=00000000 in rt_init
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 1024)
NET4: Ethernet Bridge 008 for NET4.0
Starting kswapd
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 296k freed
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 44k freed
mount /proc file system ok!
serial console detected. Disabling virtual terminals.
console=/dev/ttyS0
init started: BusyBox v0.60.1 (2003.09.05-08:06+0000) multi-call binary
BusyBox v0.60.1 (2003.09.05-08:06+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.Initialize WLAN interface
length=0?
length=0?
SIOCGIFFLAGS: No such device
bridge br0 doesn't exist; can't delete it
Setup bridge...
Algorithmics/MIPS FPU Emulator v1.5
device eth0 entered promiscuous mode
device wlan0 entered promiscuous mode
This is 8201BL
eth0: Promiscuous mode enabled.
eth0: Promiscuous mode enabled.
eth0: Promiscuous mode enabled.
eth0: Promiscuous mode enabled.
SIOCDELRT: No such process
SIOCDELRT: No such process
br0: port 2(wlan0) entering listening state
br0: port 1(eth0) entering listening state
br0: port 2(wlan0) entering learning state
br0: port 2(wlan0) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth0) entering learning state
br0: port 1(eth0) entering forwarding state
br0: topology change detected, propagating
SIOCDELRT: No such process
SIOCDELRT: No such process
279
#
# helpBuilt-in commands:
-------------------
. : break cd continue eval exec exit export help login newgrp
read readonly set shift times trap umask wait# login
login: not found
#
A bejelentkezõ logból látjuk, hogy a kernel verziója:
Linux version 2.4.18-MIPS-01.00A processzor sebességét jellemzõ érték:
204.39 BogoMIPSA 8 Mega RAMot a követrkezõ felosztás szerint használja:
Memory: 6252k/8192k available (1243k kernel code, 1940k reserved,
376k data, 44k init, 0k highmem)
A Flash memóriát a Realtek cég drivere kezeli:
RealTek E-Flash System Driver. (C) 2002 RealTek Corp.
Found 1 x 1MiB MXIC MX29LV800B at 0xbfc00000
A bináris programok a BusyBox saját változatára
épülnek:
BusyBox v0.60.1 (2003.09.05-08:06+0000)A hálózati controler típusa:
Ezután lényegében egy
wlan0
eth0
és egy br0 interface felkonfigurálása történik
meg, majd kapunk egy
#
promtot.
A help paranccsal próbálkozva a BusyBox által
elfogadott parancsokat látjuk.
Ami feltûnhet, hogy hiányzik a fileok listázára
szolgáló valamilyen parancs.
A help által fellistázott parancsok azonban csak egy
részét jelentik a használható
lehetõségeknek. A
busybox
parancsot kiadva a következõ listát kapjuk:
busybox
BusyBox v0.60.1 (2003.09.05-08:06+0000) multi-call binaryUsage: busybox [function] [arguments]...
or: [function] [arguments]...BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use, and BusyBox
will act like whatever it was invoked as.Currently defined functions:
[, busybox, cat, cut, echo, expr, grep, gunzip, head, hostname,
ifconfig, init, kill, linuxrc, msh, ps, reboot, rm, route, sh,
sleep, tail, test, wc, zcat#
További próbálkozások után még sikerült kipróbálni a következõ parancsokat:
cd
ps
set
cat
A ps outputja, a process lista:
# ps
PID Uid Stat Command
1 root S init
2 root S [keventd]
3 root S [ksoftirqd_CPU0]
4 root S [mtdblockd]
5 root S [bdflush]
6 root S [kupdated]
7 root S [kswapd]
8 root S -sh
279 root S webs
281 root R ps
#
Az interfacek és a routing tábla az
ifconfig és a
route
parancs outputja:
# ifconfig
br0 Link encap:Ethernet HWaddr 00:02:72:04:61:1C
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:871 errors:0 dropped:0 overruns:0 frame:0
TX packets:780 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:62080 (60.6 kb) TX bytes:232815 (227.3 kb)eth0 Link encap:Ethernet HWaddr 00:02:72:04:61:1C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:871 errors:0 dropped:0 overruns:0 frame:0
TX packets:780 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:74274 (72.5 kb) TX bytes:232815 (227.3 kb)
Interrupt:4lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)wlan0 Link encap:Ethernet HWaddr 00:02:72:04:61:1C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:2 Memory:bd400000-0# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
#
Az /etc alkönyvtárban meg lehet próbálni náhány ismert, feltételezhetõen létezõ file tartalmát megjeleníteni.
pl. a hosts file tartalma:
# cat hosts
172.20.1.254 rtl8181.realtek.com.tw rtl8181
# Local serviceszebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # RIPd vty
ripngd 2603/tcp # RIPngd vty
ospfd 2604/tcp # OSPFd vty
bgpd 2605/tcp # BGPd vty
ospf6d 2606/tcp # OSPF6d vty
A passwd fileból láthatjuk a fejlesztõk user neveit is.
# cat passwd
root:x:0:0:root:/root:/bin/tcsh
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/var/ftp:
nobody:x:99:99:Nobody:/:
nscd:x:28:28:NSCD Daemon:/:/bin/false
mailnull:x:47:47::/var/spool/mqueue:/dev/null
ident:x:98:98:pident user:/:/bin/false
rpc:x:32:32:Portmapper RPC user:/:/bin/false
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/bin/false
xfs:x:43:43:X Font Server:/etc/X11/fs:/bin/false
john:x:500:500:John Huang:/home/john:/bin/tcsh
dliu:x:501:501::/home/dliu:/bin/tcsh
odysseus:x:502:502::/home/odysseus:/bin/tcsh
ygtai:x:503:503::/home/ygtai:/bin/tcsh
hcjong:x:504:504::/home/hcjong:/bin/tcsh
rpm:x:37:37::/var/lib/rpm:/bin/bash
ntp:x:38:38::/etc/ntp:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
radvd:x:75:75:radvd user:/:/bin/false
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
apache:x:48:48:Apache:/var/www:/bin/false
squid:x:23:23::/var/spool/squid:/dev/null
named:x:25:25:Named:/var/named:/bin/false
pcap:x:77:77::/var/arpwatch:/bin/nologin
ldap:x:55:55:LDAP User:/var/lib/ldap:/bin/false
#
Sceenshot with 2 way access of the AP:
- in the terminal window appears the command
line interface from the serial line,
- in the browser's window you can see the configuration
pages of the AP, from the LAN interface.
------------------------------------------
RTL8181 Linux project
Néhány napja felkerült a sourceforge.net -re a RTL8181-re
fejlesztett GNU Linux 0.1-es
verziója. Még kissé kezdetén tart a project,
pl. nincs driver a wlan interfacehoz, de már mindenkepp érdemes
nyomonkisérni a munkát.
A project elérése a sourceforge gépen:
http://sourceforge.net/projects/rtl8181/
Lényegében egy ausztárliai cég fejleszti,
ennek kezdõ lapja:
http://www.streetdata.com.au/
A piacon megtalálható, RTL8181 alapú eszközök
meglehetõsen impresszív listája itt található:
http://rtl8181.sourceforge.net/rtl8181_devices.php
Egy, a fentiekhez hasonló Minitar nevû eszköz fotója
és a soros port illesztõ kapcsolása itt található:
http://rtl8181.sourceforge.net/pinouts_7206APB.php
Az X-Micro cég lapja a fent bemutatott eszközrõl
itt érhetõ el:
http://www.x-micro.com/wlan-ap.htm
A reklámkép és a doboz képe:

2004 február 6.
A Guerillanet listán ( http://lists.linux.hu ) az elsõ beszámolót olvasva Zeller egy "jól irányzott segítségével" sikerült továbbjutnom a Linux felderítésében. A levél:
On Mon, 9 Feb 2004 11:19:57 +0100 , "Zelena Endre" <ZelenaE@ab-aegon.hu>
said:
> Hi,
> Írod, hogy hiányzik a fájlok listázására szolgáló valamilyen parancs...
> Az echo viszont ott van a busybox definiált funkciói között, ergo tényleg
> nincs szükségg az ls-re :-)))
>
> Zeller
>
> (Ha esetleg nem világos, miért nem kell ls, akkor page down :-))
>
> echo *
Gyorsan kiderült, hogy még az elvárásaimhoz
képest is helyenként meglepõen lecsupaszított
a rendszer, pl. a /dev alatt mindössze négy eszköz szerepel:
console, mtd, null, ttyS0,
a /lib alatt két file, a uClib és a loader, vagyis ld-uClib.so.0
és a libc.so.0.
Nincs root, home kövnytár, a /bin /sbin /usr/bin és /usr/sbin is nagyon kevés filet tartalmaz. Az ismert programok (mint az egyébbként szokásos az ilyen pici Linuxok esetében) csak szimbolikus linkek, és a busybox "sokfunkciós" programra mutatnak.
Persze a rendszer indítása is eltér a megszokottól.
Sikerült megtalálnom a rendszert indító scriptet:
/bin/init.sh
Ebbõl kiderül, hogy többféle "üzemmódra"
van felkészítve, és a scriptnek adott paraméterek
szerint indulhat access pointként, vagy gatewayként is. Sajnos
az utóbbi üzemmódnak hardware következményei
is vannak, két ethernet interfész kell hozzá, és
amint az a korábban készített fotókon látszik,
az AP kártyán a második ethernet interfésznek
csak a helye van meg.
Az init.sh eleje, az inditási paraméterek és a
fõ üzemmódok:
# cat init.sh(Megjegyzés: A soros vonali kapcsolatból mentett listák eleje kicsit zavaró lehet. Elfelejtettem ugyanis hostnevet adni a rendszernek, alapban pedig nincs, ill. nem ir ki semmit. A scriptek elején tehát az elsõ hashmark (#) karakter a rendszer promtja, utána a kiadott parancs következik.
#!/bin/sh
#
# script file to start network
#
# Usage: init.sh {gw | ap} {all | bridge | wan}
#if [ $# -lt 2 ]; then echo "Usage: $0 {gw | ap} {all | bridge | wan}"; exit 1 ; fi
if [ $1 = 'ap' ]; then
### bridge (eth0+wlan0) confiuration #########
GATEWAY='false'
BR_INTERFACE=br0
WLAN_INTERFACE=wlan0
BR_LAN1_INTERFACE=eth0
BR_LAN2_INTERFACE=$WLAN_INTERFACE
##############################################
fiif [ $1 = 'gw' ]; then
### gateway (eth0+eth1+wlan0) configuration ##
GATEWAY='true'
WAN_INTERFACE=eth1
BR_INTERFACE=br0
WLAN_INTERFACE=wlan0
BR_LAN1_INTERFACE=eth0
BR_LAN2_INTERFACE=$WLAN_INTERFACE
##############################################
fi
....
A scriptbõl látszik, hogy a flash kezelésére
külön program készült, ezt kicsit megvallatva nagyon
sok, a flashben tárolt default és beállított
értéket lehet kiolvasni.
A flash help-je:
# flash helpA flashbõl kiolvasható értékek:
Usage: flash cmd
option:
cmd:
default -- write flash parameters to default.
get mib-name -- get a specific mib from flash memory.
set mib-name mib-value -- set a specific mib into flash memory.
all -- dump all flash parameters.
reset -- reset current setting to default.
# flash all
HW_BOARD_ID=0
HW_NIC0_ADDR=00027204611c
HW_NIC1_ADDR=000272818123
HW_WLAN_ADDR=00027204611c
HW_REG_DOMAIN=3
HW_RF_TYPE=3
HW_TX_POWER=242,242,242,242,242,242,242,242,242,242,242,242,242,242
HW_ANT_DIVERSITY=0
HW_TX_ANT=0
HW_CS_THRESHOLD=11
HW_CCA_MODE=1
HW_PHY_TYPE=0
HW_WLAN_LED_TYPE=0
DEF_ELAN_MAC_ADDR=000000000000
DEF_WLAN_MAC_ADDR=000000000000
DEF_SSID=X-Micro
DEF_CHANNEL=11
DEF_WEP=0
DEF_WEP64_KEY1=0000000000
DEF_WEP64_KEY2=0000000000
DEF_WEP64_KEY3=0000000000
DEF_WEP64_KEY4=0000000000
DEF_WEP128_KEY1=00000000000000000000000000
DEF_WEP128_KEY2=00000000000000000000000000
DEF_WEP128_KEY3=00000000000000000000000000
DEF_WEP128_KEY4=00000000000000000000000000
DEF_WEP_DEFAULT_KEY=0
DEF_WEP_KEY_TYPE=1
DEF_FRAG_THRESHOLD=2346
DEF_SUPPORTED_RATES=15
DEF_BEACON_INTERVAL=100
DEF_PREAMBLE_TYPE=0
DEF_BASIC_RATES=3
DEF_RTS_THRESHOLD=2347
DEF_AUTH_TYPE=2
DEF_HIDDEN_SSID=0
DEF_WLAN_DISABLED=0
DEF_INACTIVITY_TIME=30000
DEF_RATE_ADAPTIVE_ENABLED=1
DEF_DTIM_PERIOD=3
DEF_WLAN_MODE=0
DEF_NETWORK_TYPE=0
DEF_ALIAS_NAME=X-Micro WLAN 11b Access Point
DEF_IP_ADDR=192.168.1.254
DEF_SUBNET_MASK=255.255.255.0
DEF_DEFAULT_GATEWAY=0.0.0.0
DEF_DHCP=0
DEF_STP_ENABLED=0
DEF_WLAN_MACAC_NUM=0
DEF_WLAN_MACAC_ENABLED=0
DEF_SUPER_NAME=super
DEF_SUPER_PASSWORD=super
DEF_USER_NAME=
DEF_USER_PASSWORD=
ELAN_MAC_ADDR=000000000000
WLAN_MAC_ADDR=000000000000
SSID=jozsimesh
CHANNEL=6
WEP=0
WEP64_KEY1=0000000000
WEP64_KEY2=0000000000
WEP64_KEY3=0000000000
WEP64_KEY4=0000000000
WEP128_KEY1=00000000000000000000000000
WEP128_KEY2=00000000000000000000000000
WEP128_KEY3=00000000000000000000000000
WEP128_KEY4=00000000000000000000000000
WEP_DEFAULT_KEY=0
WEP_KEY_TYPE=1
FRAG_THRESHOLD=2346
SUPPORTED_RATES=15
BEACON_INTERVAL=100
PREAMBLE_TYPE=0
BASIC_RATES=3
RTS_THRESHOLD=2347
AUTH_TYPE=2
HIDDEN_SSID=0
WLAN_DISABLED=0
INACTIVITY_TIME=30000
RATE_ADAPTIVE_ENABLED=1
DTIM_PERIOD=3
WLAN_MODE=0
NETWORK_TYPE=0
ALIAS_NAME=teton
IP_ADDR=192.168.1.200
SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=192.168.1.254
DHCP=0
STP_ENABLED=0
WLAN_MACAC_NUM=0
WLAN_MACAC_ENABLED=0
SUPER_NAME=super
SUPER_PASSWORD=super
USER_NAME=
USER_PASSWORD=
A következõ rövid részlet az init.sh scriptbõl
való és a
flash program paraméterezését, valamint az egyes
alrészek indításáért felelõs
scripteket sorolja fel.
TOOL=flashA legfelsõ szintû script az /etc alatt található, profile a neve. Az /etc tartalma:
GETMIB="$TOOL get"
LOADDEF="$TOOL default"
LOADDS="$TOOL reset"
SET_IP=fixedip.sh
START_DHCP_SERVER=dhcpd.sh
START_DHCP_CLIENT=dhcpc.sh
START_BRIDGE=bridge.sh
START_WLAN=wlan.sh
START_PPPOE=pppoe.sh
START_FIREWALL=firewall.sh
# echo *Látható, hogy az adott esetben az init sript access point módban fog indulni.
host.conf hosts nsswitch.conf passwd ppp profile protocols services udhcpcA profile script pedig így néz ki:
# cat profile
ifconfig lo 127.0.0.1# start AP system
init.sh ap all# extact web pages
flash extr /web# start web server
webs&
flash extr /web
majd elindítja a mini web szervert.
Érdemes megfigyelni, hogy a flash program help-je nem tartalmazza
az
extr paraméter.
Ez adta az ötletet, hogy egy kicsit jobban szemügyre vegyem
a flash programot. A "vallatás" eredménye a flash program
néhány, nem nyilvánvaló lehetõsége
lett.
Egy teljesebb parameter lista:
get
set
all
default
reset
extr
test
-hwconftest
-dsconftest
-csconf
WLAN_MACAC_ADDR
DEF_WLAN_MACAC_ADDR
Egy bonyolultabb használatra példa: a wlan interface
hardware címének (MAC address) módosítására
szolgáló rész nem nyilvános "help-je":
flash set WLAN_MACAC_ADDR cmd
add mac-addr, comment -- append a filter
mac address.
del mac-addr -- delete a filter mac
address.
delall -- delete all filter mac address.
Kiderült még, hogy a web lapokat gzippel tömöritve is tudja írni a flashbe, ill. visszaolvasni.
Ami a web interface mögött van.
(Some files, behind the web
interface)
---------------------------------------------------
A /web alkönyvtár tartalmazza a web browserrel elérhetõ
felületek kialakításához szükséges
szöveg, kép és script fileokat.
# echo *
code.html graphics home.asp menu-images menu.html menu_empty.html mtmcode.js password.asp saveconf.asp stats.asp status.asp tcpip.asp title.htm upload.asp wlactrl.asp wladvanced.asp wlbasic.asp wlsecurity.asp wlstatbl.asp
Ezek közül külön is érdemes foglalkozni
az mtmcode.js java scripttel,
valamint az upload.asp scripttel, ami a firmware frissítésért
felelõs.
2004 február 7.
Miután kb. egy napig vallattam az X-Micro AP-t a soros porton kertesztül, hogy kicsit jobban megismerjem a benne rejtõzõ "lelkét", vagyis a micro(uC) Linuxot, és a web interfacet megvalósító programok részetesebb nézegetéséhez fogtam volna, egy apró fordulat következett, ami sokkal egyszerûbbé teszi a további munkát. És ami szintén nem mellékes, olyanok számára is könnyen és kényelmesen követhetõvé, akiknek "momentán" nem áll rendelkezésre maga a hadware, vagy ha van kéznél, de nem szánták el magukat a "garanciális feltételeket megsértõ" kidobozolásra és vezetékek, RS232 illesztõ csatlakozás forrasztására.
Rábukkantam arra, hogy a Minitar nevû taiwani cég
több változatban is elérhetõvé tette az
RTL8181 alapú eszközeinek "firmeware"-jét. Ezek - jelenleg
három verzióban - letölthetõk a http://www.minitar.com/
címrõl.
A cég további adatai:
Email:
For Sales enquiries: sales@minitar.com
For Information and Press: info@minitar.com
For Support: support@minitar.com
Minitar Corporation
5FL., No. 53, Sec. 4, Chung Hsin Road,
San Chung City, Taipei Hsien, Taiwan
Tel: +886-2-89881083
Fax: +886-2-89881074
Csak közbevetõleg jegyzem meg, hogy az RTL8181
alapú eszközök kicsiny, de lelekes és gyorsan növekvõ
tábora körében becsben áll a Minitar cég,
mert készségesnek mutatkozott az együttmûködésre
az open source fejlesztõkkel, és bizonyos nyomok szerint
az egyik "firmware" változat forrás kódját
is közzé tette, bár a link, ami mögött lennie
kellene, pillanatnyilag (?) csak hibát ad vissza.
(A "firmware" idézõjeles kifejezést itt az eszközbe
betölthetõ, futtatható gyári filera használom,
ami lényegében egy bináris formájú Linux,
részleteket lsd. alább)
A következõ részlet a www.melbournewireless.org.au minitarral foglalkozó oldaláról való:
- Minitar's OEM appears to be Edimax. Product Link. (2003-11-08)
- Source is available on the Melbourne Wireless website. (2003-11-08)
- Mitch from perthwireless has discovered a working password for the
busybox login prompt (6-11-03)
- Minitar say they will now produce source for the GPL'd code in these
units. (23-10-03)
- Minitar has now released the source that they recieved from realtek.
(25-10-03)
The kernel archive they've releasead seems to be missing a number of
important .c files the drivers for the CPU, wifi, and rom chips particularly
- A new Linux RTL8181 Sourceforge project has started here. This has
a good table of RTL8181 based products. (2-3-04)
A minitar archivumából letölthetõ "firmware"
kis bûvészkedés (lásd alább) után
három file-já bontható: (két változatot
sikerült feldolgoznom, az utóbbi, 2.32 verzió - nem
a legutolsó verzió - file neveit használom itt).
A 2.32 verzió file neve a kitömörítés
után:
general-ap_upg_2.32_8m.bin
(A file neve a következõ "spekulációknak"
adhat alapot: a general az angol üzeneteket tartalmazó változatra
utal, szemben a távolkeleti nyelvû verziókkal. az ap
az access point módban felálló rendszert jelentheti,
szemben a router-gateway változatokkal.
Az upg upgrade változat, a 8m pedig a hw memória méretét
jelöli. A bin formátum pedig azt, hogy közvetlenül
memóriába -flashbe- tölthetõ a file tartalma).
A fent megnevezett file az alább bemutatott scripttel bontható
szét három darabra, ezek:
A szétbontást, mint azt már szóbahoztam,
egy scripttel lehet elvégezni, ez a fent idézett melbournewireless
lapról való (a szerzõ talán Michnea ?, lásd
ott.).
#!/bin/bash
ZIPFILE=Minitar_AP_Firmware_2.32.zip
FIRMWARE=general-ap_upg_2.32_8m.bin
DOWNLOADSITE="http://www.minitar.com/downloads/"
#-- START
wget "$DOWNLOADSITE$ZIPFILE"
unzip -jo $ZIPFILE
dd if=$FIRMWARE bs=1 skip=12 count=$((0x18000)) | \
zcat ->webpages-ap.bin
dd if=$FIRMWARE bs=1 skip=$((12+0x18000)) | \
zcat ->vmlinux_img
dd if=vmlinux_img bs=1 count=$((0x16d000)) >kcoff
dd if=vmlinux_img bs=1 skip=$((0x16d000)) |zcat ->tmpimg.img
rm -f vmlinux_img
#-- END
A script elvégzi a letöltést és a kicsomagolást
is, ha ezek már megvannak, akkor értelemszerûen csak
a lényeg, a "szétszedõ" rész kell, a három
dd parancs.
Mivel a szétszedés lényege, hogy ismerjük a fileok méretét, ezért csak a megadott verzióra müködik helyesen. A legutolsó, 2.34-es verzióhoz nem készült script, így ennek szétbontása nekem nem sikerült. (Ha valakinek sikerül, adjon hírt magáról).
A filesystem felmountolása a hagyományos (számomra
megjegyezhetetlen)
módon így történhet:
mount -t ext2 -o loop tmpimg.img /mnt/floppy -o ro,nodev,nosuid,noexec
Én az újabb, és könnyen fejben tartható
megoldást ajánlom:
losetup /dev/loop0 /tmp/tmpimg.img (ha a file a /tmp alatt van)
mount /dev/loop0 /mnt (ha a /mnt alatt akarjuk látni).
A felmountolás után kényelmesen tanulmányozhatjuk
a különbözõ alkönytárak tartalmát,
azzal a megszorítással, ami a "nem élõ" filesystemre
érvényes:
- a proc "filesystem" természetszerûleg "nem éled
fel", hiszen ez szorosan összefügg magával a hardwerrel,
ezt üres alkönyvtár jelzi.
- ugyanígy a /dev alkönyvtárat is, az ok ugyanaz,
mint fent.
- a bináris fileokkal nemigen tudunk mit kezdeni.
- a szimbolikus linkek csalóka file méreteket mutatnak,
szinte valamennyi mérete azonos (262K), mert szinte valamennyi a
busybox-ra mutat, ennek pedig ekkora a mérete.
- viszont tanulmányozhatjuk a /web könyvtárban a
web-es interfész kialakítását, egy browserrel
akár meg is nézhetjük, mintha igazi eszköz lenne
mögötte.
Mit tehetünk még?
A dolog természetszerûleg leginkább arra való,
amire szánták: új verzióként betölthetjük
az eszközünkbe.
Ha kedvünk tartja, tanulmányozhatjuk a passwd filet és
környékét (lásd fent a hírek között,
hogy mit csinált még Mitch a perthwireless-tõl).
Aki nem akarja a fenti lépéseket végigcsinálni,
esetleg csak bele szeretne nézni, annak idõlegesen felmountolom
az egyetemi web szerverem munkakönyvtárába a filesystemet.
Ha az alábbi URL-re hív rá, akkor ebben fogja találni
magát.
(a végleges UIRL-t lásd az utolsó részben).
Ez a Minitar eszközökbe tölthetõ változat
természetszerûleg nem teljesen azonos az X-Micro változattal.
Nekem az eddigi vizsgálódások után úgy
tûnik, hogy mintegy 90 százalékban fedik egymást.
Természetesen érdemes vizsgálni a különbségeket,
a leginkább hasznos azonban a forráskód tanulmányozása
lenne. Remélem, sikerül a nyomára akadnom. Ez annál
is inkább elvárható lenne, mert a fenti Linux GPL
licensze elõirja, hogy senki nem teheti zárttá a vele
készült, rá épült rendszerét (ha
jól értem a dolgot).
2004 febr. 10
Andrew Miklas letter about the missing drivers
in the "Open Source" firmware packages
Links to the mounted version of the Minitar's
file system on a web server
--------------------------------------------
Az elõzõ rész végén azt gondoltam,
hogy egyelõre befejeztem az rtl8181 alapú, - nekem az X-Micro
cég gyártmányaként rendelkezésre álló
- wlan ap/routerek néhány aktuális problémájának
áttekintését. Miután felküldtem a guerillanet
listára az utolsó beszámoló részt, Cövektöl
(covek (at) mailbox.hu) az alábbi levelet kaptam, ami további
keresgélésre késztetett. Cövek! köszi az
infót!:
>Nálam van egy BUFFALO AirStation WLA-L11G típusú cucc.
>A neten nyomozgattam egy leírás után és a buffalo oldalán
>a letöltések között meglepõdve találtam az alábbi fájlt:
>
>GPL_linux_source.zip
>28M a mérete, ha jól látom akkor két alkönytárat tartalmaz:
>2.4.5 kernelforrás
>router alkonyvtár benne pár cucc.
>
>Azt nem tudom, hogy mihez van, de érdemes lehet megnézni...
Két levél töredék egy listáról:
(Az alábbi szöveg innen való: http://lkml.org/lkml/2003/9/29/294
).
Buffalo (buffalotech.com) have also a bunch of products, MIPS basedUgyanarról a fileról, forrás-csomagról van szó, mint amit én is letöltöttem, és nézegettem.
wireless routers and bridges, running Linux. I could not find the driver of the wireless cards -based on Broadcom 4306 chips- in the kernel bundle they distribute in their website:http://www.buffalotech.com/wireless/support/faq/index.php)
http://www.buffalotech.com/wireless/support/faq/GPL_linux_source.zipMaybe I oversaw them.
Nor they provide drivers for the wireless cardbus. I wrote them
about it but received no answer
The buffalo firmware is rumoured to be very old and buggy. The site misses the source for the recent firmwares.Úgy tûnik, hogy nem is a Buffalotech "helytelen" viselkedésérõl van szó. Egy harmadik, hosszú levélbõl kiderül, hogy a fõ fejlesztõ a Linksys, és tudatosan elzárkóznak a kulcsfontosságú driverek forrásának kiadásától. Egyik hivatkozásuk az, hogy õk is külsõ céggel készittették el és nem rendelkeznek a forrással (!).
http://lkml.org/slashdot.php?mid=336711
Andrew Miklas írta.
Részletesen, két módon is bizonyítja, hogy
a Linksys un. "GPL Code Center"-ében található Linux
forrás nem teljes, nem lehet segítségével elõállítani
azt a bináris változatot, ami hibátlanul fordítódik
le, és betölthetõ lenne, adott esetben a Linksys WRT54G
típusú access pointba. Egy másik módszerrel
a kernel szimbólumtáblájából mutatja
ki a hiányzó kódok nyomait. Egyértelmû,
hogy a Broadcomm ethernet és a wlan interface meghajtói hiányoznak.
A levél felsorol néhány e-mail címet, hogy
aki érdeklõdni szeretne a témában a Linksysnél,
az tudjon hova fordulni. Bár megjegyzi, hogy eddig érdemi
válasz nem jött.
Tizen írták alá, a legismertebb név Alan
Cox-é, van közöttük magyar név is.
A történet tehát itt tart, valószínûleg
jelenleg nem érdemes több, vagy más forrás
filet keresni vagy letölteni, nagy valószínûséggel
egyikben sincs meg a teljes kód.
Tehát mûködõ, egyéni igényekhez
igazított firmware változatot nem tud elõállítani
a "szabad szoftver" közösség az általuk, általunk
hosszú évek munkájával létrehozott Linux
fejlesztõi környezetben. Hiába a GPL licensz, a jog
ebben az esetben (?) mintha csak az erõsebb felet védené.
Ami az X-Micro és a Minitar AP-ket illeti, az elõzõ levél folytatásaként jelzem, hogy elérhetõ a Minitar felmountolt filesystem:
http://kvtr.elte.hu/rtl8181/ alatt.
A web interface pedig innen tanulmányoztahó:
http://kvtr.elte.hu/rtl8181/web/index.asp
Természerszerûleg a programokra, scriptekre hivatkozások
hibaüzeneteket eredményeznek.
(Az elérhetõség csak ideiglenes, ugyanis könnyen
elõfordulhat, hogy a különféle próbálkozások
a filesystemen keresztül elérhetõ programokal a szerver
leállsást fogják okozni. Az újrainduláskor
a filesystem nem fog ujra láthatóvá vállni,
és nincs szándékomban kézzel, újra feltenni.)
Még egyszer visszatérek a korábban feltett kérdére:
Mire használható még?
Természetesen nemcsak nekem jut eszembe az egyéni igényeknek
megfelelõ rendszer összeállítás. Néhány
ötletet minden különösebb keresés nélkül
is találtam. Pl. a NoCatAuth-ot szeretnék beletenni. Egy
másik ötlet, hogy egységesített web felületet
szeretnének tervezni, itt látható is egy példa:
http://www.smallnetbuilder.com/Reviews/images/scrnshots/buffalo_log.jpg
Körbejárták a logfileok problémáját.
Az ilyen kis rendszerekben kevés az erõforrás a gyakran
elenõrizhetetlen méretû logfileok számára.
Mind a memóriában, mind a flash területen tárolt
log fileok rejtenek problémákat. Felvetették azt a
lehetõséget, hogy a syslogd külsõ gépre
küldje át a log fileokat. Ezzel a megoldással egy jó
eszközhöz lehet jutni pl. a rádiós forgalom ellenõrzésése,
vizsgálata céljából.
A soros vonalon, általam vizsgált X-Micro rendszerben
a log készítés le van tiltva.
Még két ötlettel megtoldom a fentieket:
- ha ilyen olcsók az eszközök, értelmesnek tûnik minden egyes wlan hálózatba az AP, vagy a router mellé, egy elõre elhatározott címre tenni egy ilyen piciny, információs web szervert. Ez annyi átalakítást igényelne, hogy a webes konfigurációt részletesen tanulmányozni és dokumentálni kellene, hogy hogyan lehet megoldani a soros vonalon hagyományos Linux parancsokkal (ifconfig, route, stb) és ekkor feleslegessé válna a webes rendszermódosítási lehetõség, ki lehet törölni a webfileokat tartalmazó állományt. Kb 300 kbyte terület szabadulna így fel, amiben meg lehetne tervezni a kis információs szerver szolgáltatásait, akár frissíthetõ oldalakkal is. Ha egy új, ismeretlen érdeklõdõ kapcsolódik be a rendszerbe, ezen a kis web szerveren keresztül részletes információkat kaphatna a hálózatról, de más, helyi dolgokról is.
- egy másik ötlet alapja az, hogy már lehet kapni - igaz, húzós áron - olyan kis dobozokat, amiknek van IP címe, és pici web szerveren keresztül érhetõ el, és pl. egy távoli szerver géprõl lehet bizonyos hw adatokat folyamatosan nyomonkövetni, vagy adott esetben egy hw resetet kiadni. Lényegében egy távmérõ, távvezérlõ dobozka, amit bárhonnan el lehet érni. Az ilyen átalakításhoz leginkább az rtl8181 GPIO vonalainak kezeléséhez kellene egy driver, valamint egy kis hardware átalakítás, kivezetni néhány i/o vonalat és ellátni meghajtókkal, ill. védelemmel.
Az ötleteket nyilván lehet folytatni, és majdnem biztos, hogy a közeljövõben meg fognak jelenni az elsõ megoldások is. Addig érdemes felkészülni a fogadásukra.
2004 február 11.
2004 február 14.
Tölgyesi János