Emprex NSD-100

Alternatywne oprogramowanie instalujesz na własne ryzyko!

Specyfikacja

Pamięć RAM64MB
Pamięć Flash8MB
Dysk TwardyPodłaczany pod port USB 2.0
Interfejsy2xUSB 2.0 oraz 1xLAN 10/100MB/s
Przyciski2x do bezpiecznego usuwania dysku oraz 1x reset
LEDy1x Power, 1x LAN, 2x USB
Wymiary150mm (W) x 111.8mm (D) x 30mm (H)
ZasilaczWyjście: 5V/2A, Wejscie: 100V ~ 240V

Status portowania

  • najnowszy trunk Kamikaze
  • kernel 2.6.28.9 (kernel 2.6.29 nie jest używany prze OpenWrt)
  • port lan działa (czasami zanika kontakt w telnecie, trwaja prace nad wyeliminowaniem problemu)
  • dodano pare paczek do obrazu (wiecej info w dalszej czesci strony)
  • dioda Power działa, reszta musi poczekać

TODO:

ProblemPostęp
naprawić ostatecznie lan95%
obraz z użyciem squashfs50%
flaszowanie urządzenia bez zmian w bootloaderze0%
wysłać kod do dev. OpenWrt0%
obsługa przycisków/ledów10%

Instalacja

Instalacja konsoli szeregowej

Zanim zaczniesz wgrywać OpenWrt zaopatrz się w:

  • Lutownice + umiejętności lutowana
  • Działający kabelek RS232

W obecnej chwili, aby wgrać OpenWrt musimy podłączyć RS232 w celu zmiany zmiennych w bootloaderze ARMboot. Dzieki temu OpenWrt będzie startował automatycznie z flasza. Jednak zanim do tego dojdziemy musimy podłączyć konsole szeregową(RS232). Fabryczny Emprex NSD-100 posiada niemal całą elektronikę(w tym potrzebne nam złacze) przykrytą ekranem w postaci metalowej puszki. Na potrzeby podłączenia konsoli możemy ją zdjąć, poprzez odlutowane jej w punktach lutowniczych.
Alternatywnym wyjściem jest przylutowanie kabla od spodu płytki, trzeba tylko uważać na właściwe przylutowanie pinów.

Patrząc z góry, po zdjeciu ekranu
[USB|USB]   |LAN|
      ___________
      |VCC|NC|TX|
      |GND|NC|RX|
      ̅̅̅̅̅̅̅̅̅̅̅
|LEDY|

Wgrywanie firmware

  • rootfs

openwrt-star9100-rootfs.tgz

  • kernel
Downloadconsoletftp
kernel 2.6.28.9PobierzPobierz

Pogróbioną czcionką zaznaczono zalecany obraz

Kernel zawiera moduły:

  • ext2
  • ext3
  • xfs
  • printer
  • sd
  • usb
  • storage
  • Pobieramy kernel w wersji console na urządzenia(wgetem) i wgrywamy w następujacy sposób:
  dd if=openwrt-star9100-2.6.28.9-zImage of=/dev/mtdblock1

Programowanie chwile trwa, tak wieć prosze być cierpliwym.

  • Pobieramy rootfs i rozpakowujemy na dysk zewnętrzny. System plików dysku/karty ext2 lub ext3.
  • Kernel w wersji tftp służy to wgrywania przez tftp, z tymże jest to raczej w celach testowych. Gdyż kernel nie nadpisuje się w pamieci.

Po poprawnym uruchomieniu urządzenie jest widoczne pod ip 192.168.1.2 za pomoca telnetu.

Obraz zawiera:

 ntpclient
 samba-server
 vsftpd
 transmission-deamon-1.74

Pakiety w repo:

 lighttpd
 rtorrent
 p910nd
 cfdisk
 fdisk
 swap-utils
 mc
 unzip
 screen

Konfiguracja po wgraniu

Warto ustawić repo opkg:

  src emprex ftp://artekw/cerbero.pl/openwrt/emprex/packages

Kompilowanie firmware

Cały kod wpierający platformę STAR910x jest umieszczony na gicie, http://artekw.cerbero.pl/git, projekt star9100.git.

Proces kompilacji:

  • pobieramy kod z gita do dowolnego katalogu komendą
git clone http://artekw.cerbero.pl/git/star9100
  • przenosimy do głównego katalogu buildroot'a(trunk) (pomijamy folder 'tools')
  • wykonujemy polecenie 'make menuconfig'
    • zaznaczamy platformę STAR9100
    • wyłaczamy Enable EABI support
      • zaznaczamy [*] Advanced configuration options (for developers) —>
      • — Toolchain Options —>
      • [ ]Enable EABI support
    • wybieramy interesujące pakiety (im więcej zaznaczymy, tym kompilacja będzie dłuższa)
  • ostatecznie wykonujemy komendę 'make'

Powrót do oficjalnego FW

Pobieramy plik mtd.bin na dysk zewnętrzny(pendrive, dysk 2.5”). Następnie po zbotowaniu OpenWrt wykonujemy komende

 dd if=mtd.bin of=/dev/mtdblock1

Czekamy chwile i rebotujemy urządzenie. Należy pamiętać, aby ustawić bootloader jak to było przed dokonaniem przeróbki.

login/hasło: admin/root

Wydajność

Znane problemy

  • czasami zanika kontakt w telnecie

Kernel boot

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 2.6.28.9 (artek@home) (gcc version 4.1.2) #2 Wed Aug 5 18:56:28 CEST 2009
[    0.000000] CPU: FA526id(wb) [66015261] revision 1 (ARMv4), cr=0000397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: STAR_STR9104
[    0.000000] Warning: bad configuration page, trying to continue
[    0.000000] Ignoring unrecognised tag 0x00000000
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyS0,38400 root=/dev/sda1 rootwait init=/etc/preinit
[    0.000000] PID hash table entries: 256 (order: 8, 1024 bytes)
[    0.000000] STR9100 CPU Clock: 200 MHz
[    0.000000] IRQ Timer1 at int #0x0 clock 100000000(Hz)
[42949372.960000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[42949372.960000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[42949372.980000] Memory: 64MB = 64MB total
[42949372.980000] Memory: 62504KB available (2052K code, 171K data, 100K init)
[42949372.980000] Calibrating delay loop... 153.19 BogoMIPS (lpj=765952)
[42949373.180000] Mount-cache hash table entries: 512
[42949373.180000] CPU: Testing write buffer coherency: ok
[42949373.190000] net_namespace: 288 bytes
[42949373.190000] NET: Registered protocol family 16
[42949373.280000] SCSI subsystem initialized
[42949373.280000] usbcore: registered new interface driver usbfs
[42949373.290000] usbcore: registered new interface driver hub
[42949373.290000] usbcore: registered new device driver usb
[42949373.360000] NET: Registered protocol family 2
[42949373.460000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[42949373.460000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[42949373.460000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[42949373.460000] TCP: Hash tables configured (established 2048 bind 2048)
[42949373.460000] TCP reno registered
[42949373.490000] NET: Registered protocol family 1
[42949373.490000] NetWinder Floating Point Emulator V0.97 (double precision)
[42949373.510000] Registering mini_fo version $Id$
[42949373.510000] msgmni has been set to 122
[42949373.510000] io scheduler noop registered
[42949373.510000] io scheduler anticipatory registered
[42949373.510000] io scheduler deadline registered
[42949373.510000] io scheduler cfq registered (default)
[42949373.510000] Serial: 8250/16550 driver4 ports, IRQ sharing disabled
[42949373.530000] serial8250.11: ttyS0 at MMIO 0xf7800000 (irq = 10) is a 16550A
[42949373.530000] console [ttyS0] enabled
[42949373.570000] loop: module loaded
[42949373.590000] Driver 'sd' needs updating - please use bus_type methods
[42949373.620000] str9100_flash: Found 1 x16 devices at 0x0 in 16-bit bank
[42949373.630000]  Amd/Fujitsu Extended Query Table at 0x0040
[42949373.640000] str9100_flash: Swapping erase regions for broken CFI table.
[42949373.650000] number of CFI chips: 1
[42949373.660000] cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
[42949373.670000] Creating 3 MTD partitions on "str9100_flash":
[42949373.680000] 0x00000000-0x00020000 : "armboot"
[42949373.700000] 0x00020000-0x007e0000 : "Kernel & Ramdisk"
[42949373.710000] 0x007e0000-0x00800000 : "configure"
[42949373.730000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[42949373.740000] ehci-str9100 ehci-str9100: STR9100 EHCI Host Controller
[42949373.750000] ehci-str9100 ehci-str9100: new USB bus registered, assigned bus number 1
[42949373.760000] ehci-str9100 ehci-str9100: irq 24, io mem 0xfcc00000
[42949373.790000] ehci-str9100 ehci-str9100: USB 2.0 started, EHCI 1.00
[42949373.810000] usb usb1: configuration #1 chosen from 1 choice
[42949373.820000] hub 1-0:1.0: USB hub found
[42949373.830000] hub 1-0:1.0: 2 ports detected
[42949373.860000] EHCI platform driver Successfully registerd<6>ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[42949373.880000] Initializing STR9100 OHCI controller
[42949373.990000] ohci-str9100 ohci-str9100: STR9100 OHCI
[42949374.000000] ohci-str9100 ohci-str9100: new USB bus registered, assigned bus number 2
[42949374.020000] ohci-str9100 ohci-str9100: irq 23, io mem 0xfc400000
[42949374.090000] usb usb2: configuration #1 chosen from 1 choice
[42949374.100000] hub 2-0:1.0: USB hub found
[42949374.110000] hub 2-0:1.0: 2 ports detected
[42949374.130000] Initializing USB Mass Storage driver...
[42949374.140000] usbcore: registered new interface driver usb-storage
[42949374.150000] USB Mass Storage support registered.
[42949374.160000] usbcore: registered new interface driver libusual
[42949377.160000] usb 1-2: new high speed USB device using ehci-str9100 and address 2
[42949377.170000] Registered led device: str9100:green:generic
[42949377.180000] TCP cubic registered
[42949377.190000] NET: Registered protocol family 17
[42949377.210000] Waiting for root device /dev/sda1...
[42949377.440000] usb 1-2: configuration #1 chosen from 1 choice
[42949377.450000] scsi0 : SCSI emulation for USB Mass Storage devices
[42949382.470000] scsi 0:0:0:0: Direct-Access     Generic  USB  SD Reader   0.00 PQ: 0 ANSI: 2
[42949382.490000] sd 0:0:0:0: [sda] 121856 512-byte hardware sectors: (62.3 MB/59.5 MiB)
[42949382.500000] sd 0:0:0:0: [sda] Write Protect is off
[42949382.510000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[42949382.530000] sd 0:0:0:0: [sda] 121856 512-byte hardware sectors: (62.3 MB/59.5 MiB)
[42949382.540000] sd 0:0:0:0: [sda] Write Protect is off
[42949382.550000] sd 0:0:0:0: [sda] Assuming drive cache: write through
[42949382.560000]  sda: sda1
[42949382.580000] sd 0:0:0:0: [sda] Attached SCSI removable disk
[42949382.620000] kjournald starting.  Commit interval 5 seconds
[42949382.630000] EXT3-fs: mounted filesystem with ordered data mode.
[42949382.640000] VFS: Mounted root (ext3 filesystem) readonly.
[42949382.650000] Freeing init memory: 100K
[42949382.670000] Please be patient, while OpenWrt loads ...
- preinit -
Press CTRL-C for failsafe
[42949384.540000] EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
[42949384.560000] EXT3 FS on sda1, internal journal
- init -

Please press Enter to activate this console. 


BusyBox v1.13.4 (2009-08-04 12:51:25 CEST) 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
 KAMIKAZE (bleeding edge, r17107) -------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------

Link, recenzje

Podziękowania

  • Yohanes Nugroho (przeportowanie sterownika lan)
  • obsy (pomoc w róznych kwestiach)
  • sherriff (za fotke płytki, testowanie systemu, zgłaszane błedy)
  • mik

Archiwum

Modyfikacja booloadera

Mając przylutowaną już konsole musimy wejść w booloader. W tym celu przytrzymujemy przycisk reset i załączamy zasilanie. Naszym oczom ukaże sie znak zachety

 STR9100>

Wpisujemy

 setenv bootcmd bootm 0x10020000
 saveenv

Jednak zanim tego dokonamy, zalecam przepisanie gdzieś na bok domyślną wartość bootcmd. W tym celu wpisujemy

  printenv

W moim przypadku było to:

 bootcmd=go 0x10020000

openwrt/porty/emprex.txt · ostatnio zmienione: 2010/01/06 15:24 przez arteq
Do góry
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0