Ostatnio stałem się posiadaczem płyty głównej printserwera Edimax PS-3205U z prcesorem ADM5120
miałem świadomość że na większości takich urządzeń jest postawiony Linux Embeded, dlatego też zacząłem poszukiwać informacji na temat tego procesora.
Dane płyty
175MHz
16MB RAM
2MB Flash
2x USB+ 1LPT+ 1xEthernet
Puki co udało mi się tylko podłączyć płytę do komputera za pomocą portu RS232
i wyświetlić komunikat botloadera i systemu
Możliwości tego urządzenia są dość duże np serwer ftp udostępniający zawartość dysku podłączonego poprzez USB, kamera internetowa czy starowanie urządzeniami poprzez internet bez użycia komputera
Na razie nie mogę się zalogować do urządzenia ale myślę że z biegiem czasu uda mi się to zrobić. Później spróbuje wgrać do niego OpenWrt czy nawet własną dystrybucje
Niestety z 2MB flasha nie poszalejesz za bardzo z OpenWrt. Miałem płytkę routera na ADM5120 i 2MB flash, męczyłem się z nią trochę, w końcu sobie odpuściłem ze względu właśnie na małą pamięć flash. Można co prawda bootować z pamięci USB, ale mnie nie zadowalało - też za dużo kombinowania...
Fakt 2Mb to trochę mało ale na początek wystarczy.
Początkowo łączyłem się poprzez HyperTerminal jednak nie działał on zbyt dobrze. Spróbowałem minicoma oraz inny pod linuxa, jednak po tych próbach wróciłem do HyperTerminal. problem tkwił w ustawieniach HyperTerminala miałem ustawione sprzętowe sterowanie przepływem czego wynikiem było brak reakcji na polecenia wysyłane z komputera
Prawidłowe ustawienie:
Liczba bitów na sekundę: 115200
Bity danych: 8
Parzystość: Brak
Bity stopu:1
Sterowanie przepływem: Brak
Przy takich ustawieniach wszystko powinno działać
Flashowanie:
Najpierw należy nawiązać połączenie poprzez HyperTerminal
Następnie należy płytę printserwera czy rutera podłączyć do prądu
Kiedy pokaże się
Code:
ADM5120 Boot:
należy wcisnąć trzy razy spacje
Wówczas na ekranie pojawi się
Code:
Linux Loader Menu
====================
(a) Download vmlinuz to flash ...
(b) Download vmlinuz to sdram (for debug) ...
(c) Exit
Teraz należy wcisnąć przycisk "a" na klawiaturze
następnie w Menu górnym HyperTerminala wybrać Transfer->Wyślij plik
Pojawi się okienko
W okienku należy wybrać plik do fleshowania (ja na początek pobrałem go ze strony http://midge.vlad.org.ua/firmware/latest/bin/ - jest to strona między innymi poświęcona ruterowi Edimaxa)
i protokół xmodem no i oczywiście nacisnąć przycisk Wyślij
Wysyłanie potrwa kilka minut, po zakończeniu należy nacisnąć przycisk c
poniżej kod z terminala
Code:
jump to linux code!!
LINUX started...
ADM5120 Demo board
CPU revision is: 0001800b
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 8kB, 2-way, linesize 16 bytes.
Linux version 2.4.32 (vlad@woody.vlad.org.ua) (gcc version 3.4.5 (OpenWrt-2.0)) #2 đÎÄ ďËÔ 16 17:33:25 EEST 2006
am5120_setup() starts.
System has PCI BIOS
Determined physical RAM map:
memory: 00e7d000 @ 00183000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs ro panic=5 console=/dev/ttyS0
CPU clock: 175MHz
Using 87.500 MHz high precision timer.
Calibrating delay loop... 174.48 BogoMIPS
Memory: 14652k/14836k available (1204k kernel code, 184k reserved, 84k data, 72k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 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: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction... available.
POSIX conformance testing by UNIFIX
Autoconfig PCI channel 0x8015ac80
Scanning bus 00, I/O 0x11500000:0x115ffff0, Mem 0x11400000:0x11500000
00:00.0 Class 0600: 1317:5120
Mem unavailable -- skipping
I/O unavailable -- skipping
fixup resource
fixup host controller
am5120 fix up
pcibios_fixup
fixup IRQ
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
squashfs: version 3.0 (2006/03/15) Phillip Lougher
pty: 256 Unix98 ptys configured
devfs_register(ttyS): could not append to parent, err: -17
MX29LV320B flash device: 200000 at 1fc00000
Amd/Fujitsu Extended Query Table v1.0 at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Creating 5 MTD partitions on "MX29LV320B flash device":
0x00000000-0x00008000 : "Boot Partition"
0x00010000-0x000b0000 : "Kernel"
0x000b0000-0x001e0000 : "Root"
0x001e0000-0x00200000 : "Data"
0x00010000-0x00200000 : "WholeFlash"
MX29LV320B flash device initialized
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 360 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
LED & GPIO Driver v1.1
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing prom memory: 0kb freed
Freeing unused kernel memory: 72k freed
Algorithmics/MIPS FPU Emulator v1.5
Info: Starting midge version . MIDGE_TYPE is a tmpfs
Info: Mounting tmpfs to /ram
mount: No /proc/mounts
Info: Checking for first boot...
Info: This is first boot!
Info: Copying /etc to /ram...
Info: Making symlinks...
mount: No /proc/mounts
tar: Removing leading '/' from member names
umount: Couldn't umount /proc: Invalid argument
Info: Replacing /
Info: Remount /proc
Info: Generating random mac address...
mount: Mounting proc on /proc failed: Device or resource busy
usb.c: registered new driver hub
usb-shci.c: Start Init AHCI_INIT
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
insmod: init_module: usb-ohci: No such device
SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
IPP2P v0.8.1_rc1 loading
ipt_time loading
Software Watchdog Timer: 0.05, timer margin: 60 sec
ADM5120 Switch Module Init V1.3
ADM5120 MAC: 00:0E:2E:42:69:5B
Reopen device: eth0
Reopen device: eth1
Reopen device: eth2
Reopen device: eth3
Reopen device: eth4
Initializing random number generator... done.
Starting watchdog: OK
Starting network...
S49quagga: Starting zebra ... done.
S49quagga: Starting ospfd ... done.
S49quagga: Starting watchquagga ... done.
Syncing time...
Jan 1 02:00:23 watchquagga[1516]: watchquagga 0.98.5 watching [zebra ospfd], mode [global restart]
Jan 1 02:00:24 watchquagga[1516]: ospfd state -> up : connect succeeded
Jan 1 02:00:24 watchquagga[1516]: zebra state -> up : connect succeeded
Starting inetd: OK
Starting crond: OK
Jan 1 02:00:24 crond[1557]: crond 2.3.2 dillon, started, log level 8
BusyBox v1.1.2 (2006.10.09-07:21+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
Na dzisiaj tyle. powoli będę rozwijał opis.
Na początek spróbuje zainstalować ftp korzystające z zewnętrznego dysku USB czy pendrive, http,
A jak skołuje kamerkę to postaram się przekierować strumień video poprzez http