Kolejna płytka. Witryna produktu:
http://www.propox.com/products/t_231.htmlJest to płytka wyposażona w procesor Atmela ARM926-EJ AT91SAM9260 (AT91SAM9G20). Na pokładzie znajduje się 64MB pamięci RAM i 1GB flash (w podstawowej wersji, jest możliwość zamówienia innych, bardziej rozbudowanych wersji). Zasilana jest z 3,3v, zawiera również wbudowany jeden port RJ45 oraz zbudowany zegar czasu rzeczywistego.
Resztę elementów (np. USB) można dołączyć na dodatkowych płytkach; w sprzedaży znajduje się także dodatkowa płytka ewaluacyjna. Sam moduł jest stosunkowo drogi, ale na uwagę zasługuje duża ilość pamięci flash oraz liczne wyprowadzenia (GPIO i przetworniki), dzięki czemu idealnie nadaje się do wbudowanych systemów sterowania.
Oryginalnie systemem osadzonym jest OpenWrt Kamikaze w dość starożytnej wersji (r13xxx). Producent spisał się na piątkę, bo dostarcza zarówno pełne źródła jak również odpowiednią dokumentację jak skompilować kernel i system.
Kernel jest w wersji 2.6.29.3 i zawiera łatki których nie ma normalnie w OpenWrt. Natomiast nie stanowi problemu kompilacja samego userlandu - w trunku bez problemu znajdziemy
target Atmel AT91, dzięki temu uzyskamy aktualną wersję oprogramowania.
Przygotowałem takie pakiety, znajdują się one pod adresem
http://ecco.selfip.net/at91/Z ciekawostek - system posiada podwójny bootloader: RomBOOT, który startuje uboota, który startuje już właściwe jądro.
Sam system plików oparty jest o
ubifs (nie squashfs, nie jffs), ktory zawiera własne mechanizmy zapewnienia oszczędności zapisu we flash. Jest to permanentny system plików (podobnie jak jffs) - wszystkie zmiany w plikach zachodzą bezpośrednio w nich. Flash systemowy standardowo podzielny jest na dwie części: system plików (125MB) oraz resztę montowaną jako /mnt/storage. Urządzenia odpowiedzialne za systemy plików to ubi0:rootfs i ubi0:storage (nie /dev/coś tam). Flash podzielny jest na strony po 256KB (nie 64KB jak to jest w routerach), typ flash to nand. Oczywiście w tego typu pamięciach spotyka się uszkodzone bloki; sam ubifs już dba o obsługę i przesuwanie danych w takich przypadkach.
Po dołączeniu dodatkowych złącz normalnie dostępne jest USB (można podłączyć np. kartę radiową na USB).
Wydajność samego procesora (w porównaniu do jednostki stosowanej w popularnym TP-Linku TL-WR1043ND):
mem pi e float version OS Device CPU Freq
2.8s 8.1s 8.0s 0.5s openwrt r18948 TP-Link TL-WR1043ND Atheros AR9132 rev 2 400MHz
7.1s 40.4s 38.1s 0.4s openwrt r26081 mmnaet1001 ARM926EJ-S rev 5 (v5l) 200Mhz
Na koniec jeszcze bootlog z takiego systemu:
RomBOOT
>PU���ѵ20081201
U-Boot 2009.08 (wrz 30 2009 - 09:11:29)
DRAM: 64 MB
NAND: 1024 MiB
In: serial
Out: serial
Err: serial
Net: macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0xc5e1)
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x200000, size 0x200000
2097152 bytes read: OK
## Booting kernel from Legacy Image at 22000000 ...
Image Name: Linux-2.6.29.3
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1438060 Bytes = 1.4 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux.............................................................................................. done, booting the kernel.
Linux version 2.6.29.3 (cezary@eko.one.pl) (gcc version 4.5.2 (Linaro GCC 4.5-2011.02-0) ) #8 PREEMPT Sun Mar 13 21:16:27 CET 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Propox MMnet1000
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: mem=64M console=ttyS0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs init=/etc/preinit
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttyS0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
allocated 327680 bytes of page_cgroup
please try cgroup_disable=memory option if you don't want
Memory: 64MB = 64MB total
Memory: 61572KB available (2660K code, 207K data, 100K init)
Calibrating delay loop... 99.12 BogoMIPS (lpj=495616)
Mount-cache hash table entries: 512
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
net_namespace: 936 bytes
NET: Registered protocol family 16
AT91: Power Management
AT91: Starting after software reset
bio: create slab <bio-0> at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 23
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 120
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered (default)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL
loop: module loaded
eth0 (macb): not using net_device_ops yet
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfffc4000 irq 21 (3a:1f:34:08:54:54)
eth0: attached PHY driver [Davicom DM9161A] (mii_bus:phy_addr=ffffffff:00, irq=-1)
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 5 MTD partitions on "atmel_nand":
0x000000000000-0x000000040000 : "bootstrap"
0x000000040000-0x000000080000 : "u-boot"
0x000000080000-0x000000200000 : "u-boot environment"
0x000000200000-0x000000800000 : "kernel"
0x000000800000-0x000040000000 : "filesystems"
UBI: attaching mtd4 to ubi0
UBI: physical eraseblock size: 262144 bytes (256 KiB)
UBI: logical eraseblock size: 258048 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: volume 1 ("storage") re-sized from 3251 to 3499 LEBs
UBI: attached mtd4 to ubi0
UBI: MTD device name: "filesystems"
UBI: MTD device size: 1016 MiB
UBI: number of good PEBs: 4064
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 256
UBI: number of internal volumes: 1
UBI: number of user volumes: 2
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 4064
UBI: number of PEBs reserved for bad PEB handling: 40
UBI: max/mean erase counter: 2/2
usbmon: debugfs is not available
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
at91_ohci at91_ohci: AT91 OHCI
UBI: background thread "ubi_bgt0d" started, PID 296
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 20, io mem 0x00500000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: AT91 OHCI
usb usb1: Manufacturer: Linux 2.6.29.3 ohci_hcd
usb usb1: SerialNumber: at91
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver libusual
mice: PS/2 mouse device common for all mice
rtc-at91sam9 at91_rtt.0: rtc core: registered at91_rtt as rtc0
IRQ 1/rtc0: IRQF_DISABLED is not guaranteed on shared IRQs
cpuidle: using governor ladder
Registered led device: usr
TCP cubic registered
NET: Registered protocol family 17
rtc-at91sam9 at91_rtt.0: setting system clock to 2011-03-13 20:34:51 UTC (1300048491)
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size: 131862528 bytes (128772 KiB, 125 MiB, 511 LEBs)
UBIFS: journal size: 9420800 bytes (9200 KiB, 8 MiB, 37 LEBs)
UBIFS: media format: 4 (latest is 4)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 0 bytes (0 KiB)
VFS: Mounted root (ubifs filesystem) on device 253:1.
Freeing init memory: 100K
Warning: unable to open an initial console.
- preinit -
Press the [f] key and hit [enter] to enter failsafe mode
- regular preinit -
- init -
Please press Enter to activate this console. cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: US
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
cfg80211: Calling CRDA for country: US
eth0: link up (100/Full)
cfg80211: Regulatory domain changed to country: US
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
(2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
(5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
(5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
(5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
usbcore: registered new interface driver rt73usb
UBIFS: mounted UBI device 0, volume 1, name "storage"
UBIFS: file system size: 900329472 bytes (879228 KiB, 858 MiB, 3489 LEBs)
UBIFS: journal size: 9420800 bytes (9200 KiB, 8 MiB, 37 LEBs)
UBIFS: media format: 4 (latest is 4)
UBIFS: default compressor: lzo
UBIFS: reserved for root: 0 bytes (0 KiB)
BusyBox v1.17.3 (2011-03-12 17:57:49 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
ATTITUDE ADJUSTMENT (bleeding edge, xxxxxx) ----------
* 1/4 oz Vodka Pour all ingredents into mixing
* 1/4 oz Gin tin with ice, strain into glass.
* 1/4 oz Amaretto
* 1/4 oz Triple sec
* 1/4 oz Peach schnapps
* 1/4 oz Sour mix
* 1 splash Cranberry juice
-----------( by obsy, http://eko.one.pl )------------