Dzisiaj jest 8 gru 2024, 11:25

Strefa czasowa UTC+1godz.




Nowy temat Odpowiedz w temacie  [ Posty: 237 ]  Przejdź na stronę 1, 2, 3, 4, 5 ... 12  Następna
Autor Wiadomość
 Tytuł: Iomega IConnect - Wireless Data Station - instalacja Debiana
Post: 16 lis 2011, 18:22 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Pierwsza część arykułu dotycząca opisu urządzenia znajduje się w wątku viewtopic.php?f=39&t=1219
Trzecia część artykułu dotycząca instalacji OpenWrt znajduje się w wątku viewtopic.php?f=39&t=1231
Czwarta część artykułu dotycząca instalacji ArchLinuxa znajduje się w wątku viewtopic.php?f=39&t=1232

Bootloader
Zastosowany bootloader (uboot) jest bardzo elastyczny i posiada wiele ciekawych właściwości, m.in: możliwość wczytania obrazów z podłączonego nośnika USB czy definiowana makr. Ta właściwość wykorzystana została do uruchomienia innego oprogramowania bez potrzebny kasowania oryginalnej zawartości pamięci flash - po prostu wystarczy zdefiniować w bootladerze konieczność wczytania obrazów z zewnętrznego nośnika. Nie ma też konieczności zapisu ustawień bootloadera - można do celów testowych po prostu wczytać i uruchomić inny obraz w pamięci RAM.

Po podłączeniu interfejsu szeregowego podczas uruchamiania należy nacisnąć dowolny klawisz. Pojawi się znak zachęty

         __  __                      _ _
        |  \/  | __ _ _ ____   _____| | |
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ V /  __/ | |
        |_|  |_|\__,_|_|    \_/ \___|_|_|
 _   _     ____              _
| | | |   | __ )  ___   ___ | |_
| | | |___|  _ \ / _ \ / _ \| __|
| |_| |___| |_) | (_) | (_) | |_
 \___/    |____/ \___/ \___/ \__|
 ** MARVELL BOARD: RD-88F6281A LE

U-Boot 1.1.4 (Feb  2 2010 - 10:13:16) Marvell version: 3.4.25

Mapower version: iConnect 2.1 (512MB) (2010/02/02)

U-Boot code: 00600000 -> 0067FFF0  BSS: -> 006CFB00

Soc: 88F6281 A0 (DDR2)
CPU running @ 800Mhz L2 running @ 266Mhz
SysClock = 266Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000   size 256MB
DRAM Total size 256MB  16bit width
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:512 MB
Flash:  0 kB

CPU : Marvell Feroceon (Rev 1)

Streaming disabled
Write allocate disabled

Module 0 is RGMII
Module 1 is TDM

USB 0: host mode
PEX 0: PCI Express Root Complex Interface
PEX interface detected Link X1
Net:   egiga0 [PRIME], egiga1
Hit any key to stop autoboot:  0
Marvell>>

I od tej pory można już wydawać polecenia do bootloadera. Obrazy do uruchomienia można załadować albo z tftp albo z podłączonego nośnika na USB. W tym drugim przypadku przed wczytaniem obrazów należy uruchomić jeszcze obsługę USB (polecenie usb_start). Warto spojrzeć także na możliwość tworzenia makr, dzięki czemu obsługa może być mniej uciążliwa.

Instalacja debiana
Mając już wiedzę z zakresu działania bootloadera można pokusić się o zainstalowanie debiana. Możliwość uruchomienia tej dystrybucji na wielu platformach sprzętowych (w chwili obecnej jest możliwość uruchomienia na ponad 20 architekturach - nie mylić z rodzajem procesora, z czego połowa jest oficjalnie wspierana) przynosi wymierne korzyści w postaci stale utrzymywanej dużej liczby pakietów.

Do instalacji nośnika niezbędne jest posiadanie:
- łącza gigabitowego do internetu (np. do routera lub laptopa - z powodu błędu w instalatorze debiana wymagane jest właśnie łącze gigabitowe dla tych architektur)
- nośnik USB - pendrive, dysk zewnętrzny. Zalecany jest jak najszybszy nośnik
- kabel szeregowy RS232C TTL
Instalacja polega na uruchomieniu instalatora debiana, zainstalowaniu go na nośniku i odpowiedniej konfiguracji bootloadera, a dzięki jego właściwością możemy po prostu uruchomić debiana bez potrzeby jakiejkolwiek zmiany w systemie (np. do sprawdzenia systemu), uruchomić z zewnętrznego nośnika lub zainstalować w pamięci flash.

Cześć wspólna

Instalator można uruchomić albo przez sieć albo z podłączonego pendrive; w tym pierwszym przypadku niezbędne będzie uruchomienie jeszcze serwera tftp. W zależności od wybranej metody instalacji należy ściągnąć dwa pliki instalatora: uInitrd oraz uImage i umieścić jest w katalogu głównym serwera tftp lub na pendrive. Nośnik musi być z systemem plików FAT lub Ext2. Podczas instalacji pendrive zostanie przeformatowany i na nim będzie zainstalowany debian. Wszystkie ew. pliki które na nim były zostaną skasowane. Podstawowa instalacja debiana zajmuje ok 400MB, choć system można oczywiście bardziej "odchudzić”.

Kabel szeregowy, kabel sieciowy i pendrive podłączamy do IConnect, włączamy zasilanie. Uruchamiamy całość; podczas startu bootloadera należy go przerwać (nacisnąć dowolny przycisk).
Upewniamy się, że mamy ustawione następujące zmienne środowiskowe:
- arcNumber na 1682
- mainlineLinux na yes

Wystarczy po prostu je wprowadzić:
setenv mainlineLinux yes
setenv arcNumber 1682
saveenv
reset


Teraz w zależności od wybranej metody instalacji należy uruchomić następujące polecenia:
- instalator z usb z systemem plików fat
usb start
fatload usb 0:1 0x01100000 /uInitrd
fatload usb 0:1 0x00800000 /uImage

- instalator z usb z systemem plików ext2
usb start
ext2load usb 0:1 0x01100000 /uInitrd
ext2load usb 0:1 0x00800000 /uImage

- instalator z serwera tftp
setenv serverip 192.168.1.2
setenv ipaddr 192.168.1.1
tftpboot 0x01100000 uInitrd
tftpboot 0x00800000 uImage

W tym ostatnim przypadku serwer tftp musi być dostępny pod adresem 192.168.1.2. Wybieramy oczywiście jedną z metod. Następnie:
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000

Po wykonaniu tych poleceń uruchomiony zostanie normalny instalator debiana, dzięki któremu zainstalujemy system na nośniku. Jeżeli ktoś nigdy nie instalował debiana można posłużyć się szeregiem poradników dostępnych na sieci, choć instalacja sprowadza się w sumie do odpowiadania na pytania i wpisaniu wymaganych danych (loginów i haseł).

Kilka uwag co do instalacji:
- przy partycjonowaniu dysku najlepiej wybrać opcję proponowaną przez instalator - przeznaczenie całego dysku na dystrybuuję z domyślnym podziałem na partycję (/boot, system plików oraz swap). Bardziej zaawansowane osoby mogą dokonać podziału według własnego uznania, ale zalecane jest pozostawienie partycji /boot z systemem plików ext2.
- w pewnym momencie instalacji zostanie wyświetlony komunikat o niemożliwości zainstalowania bootloadera. Należy to zignorować i kontynuować następny krok
- instalator zaproponuje domyślnie zestawy pakietów (np. dla web serwera). Należy to całkowicie zignorować i odznaczyć wszystkie opcje, później będzie można zainstalować wymagane pakiety. Takie postępowanie znacznie przyśpieszy instalacje, bo...
- zastosowanie wolnego nośnika powoduje, że instalacja może potrwać nawet dwie godziny

Po zakończeniu pracy instalatora należy odłączyć nośnik i podłączyć go do "normalnego" linuksa lub systemu, który obsługuje system plików ext2/ext3 (taki powstał na nośniku po instalacji). Bez problemu można posłużyć się systemem LiveCD lub maszyną wirtualną. Nośnik należy zamontować w systemie (o ile nie został zamontowane automatycznie), np.
mkdir -p /tmp/boot
mkdir -p /tmp/fs
mount -t ext2 /dev/sdb1 /tmp/boot
mount -t ext3 /dev/sdb2 /tmp/fs

Nazwy urządzeń zależne są od systemu i należy to uwzględnić wydając te polecenia.

Następnie należy pobrać dwa pliki:
- uImage i umieścić go w katalogu /tmp/boot (czyli partycji bootującej na nośniku)
- modules.tar.gz, rozpakować i umieścić w /tmp/fs (czyli w systemie plików), dokładnie w takich katalogach jakie zawarte jest w archiwum.

Przygotowane przeze mnie jądro zawiera obsługą wszystkich podstawowych elementów systemu (RTC, USB, Ethernet, LED, gpio, lm63) oraz interfejsu radiowego. Bazuje na kernelu 2.6.39.4.

Tak przygotowany nośnik należy odłączyć od systemu:
umount /dev/sdb1
umount /dev/sdb2

Następnie znów podłączyć do routera i zaczynamy ostatni etap, czyli przygotowanie bootloadera.

Uruchomienie debiana bez modyfikacji w systemie

Jest to bardzo przydatna opcja żeby sprawdzić czy przygotowany system po prostu działa lub gdy nie chcemy modyfikować oryginalnego systemu. Po ponownym podłączeniu wszystkiego i przerwaniu bootloadera należy wykonać polecenia
usb start; ext2load usb 0:1 0x00800000 /uImage
setenv bootargs 'console=ttyS0,115200 \
mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),\
0x300000@0x540000(initrd),0x1f400000@0x980000(boot) \
root=/dev/sda2 rootdelay=10 3'
bootm 0x00800000


(uwaga: druga linia jest całością! znaku \ nie powinno być tylko kontynuacja linii. Podział został wprowadzony ze względu na znaczną szerokość tekstu. Jeżeli ktoś ma problem z interpretacją zapisu to całe polecenie jest dostępne w pliku: http://ecco.selfip.net/projekty/iconnect/debian/boot_from_usb.txt)

Należy zauważyć, że rootfs spodziewany jest na drugiej partycji.

Po wykonaniu w/w poleceń zostanie wczytane jądro startowe i uruchomiony system. Możemy teraz zaktualizować go i wykonać dalsze czynności konfiguracyjne czy zainstalować dodatkowe pakiety. Przy pierwszym uruchomieniu należy koniecznie wykonać polecenie:
depmod -a

oraz upewnić się, że mamy zainstalowany demon telentu lub ssh (np. pakiet openssh-server czy dropbear).

Ponieważ ani system ani bootloader nie został zmodyfikowany to po ponownym uruchomieniu zostanie wczytany oficjalny system IConnect. Ponowne uruchomienie debiana wymaga w/w poleceń w bootloaderze. Polecam ten sposób w celu pełnej konfiguracji systemu.

Uruchomienie debiana z modyfikacją bootloadera

Jeżeli system został sprawdzony można zmodyfikować bootloader tak, aby zawsze po starcie wczytywał system z nośnika. W tym celu po starcie urządzenie i przerwaniu bootloadera wystarczy wydać polecenia:
setenv bootargs 'console=ttyS0,115200 \ mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),\
0x300000@0x540000(initrd),0x1f400000@0x980000(boot) \
root=/dev/sda2 rootdelay=10 3'
setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x00800000 /uImage'
setenv bootcmd 'run bootcmd_usb; bootm 0x00800000; reset'
saveenv
reset

a następnie po prostu zrestartować urządzenie. W/w polecenia to po prostu zapisanie odpowiednich zmiennych środowiskowych bootloadera odpowiadających za automatycznie uruchomienie kodu.

Zaletą takiego rozwiązania jest łatwość wykonania backupu (po prostu kopiujemy zawartość nośnika) a także aktualizacji czy np. zmiany kernela. Nie zmieniamy także zawartości pamięci flash, więc w prosty sposób można wrócić do oryginalnego oprogramowania.
Wadą - konieczność obecności nośnika w urządzeniu, (bo z niego uruchamia się system) i tym samym zajęte jest na stałe jedno gniazdo USB. No i oczywiście leży odłogiem 512MB pamięci flash.

Uruchomienie debiana z wewnętrznej pamięci flash
Jeżeli mamy już sprawdzony i działający system można go przenieść do pamięci flash. Należy pamiętać że mamy tylko ok 500MB pamięci, co po kompresji pozwoli na zmieszczenie ok 700MB danych - i tyle co najwyżej może liczyć system który chcemy umieścić w pamięci flash.

Procedura będzie działała poprawnie, jeżeli kernel który jest używany w debianie posiada wkompilowany na stałe system plików UBIFS. Kernel pobrany z http://ecco.selfip.net/projekty/iconnect/debian/ jest prawidłowy i zawiera wkompilowany ten system plików.

Przeniesienie do flash polega na zapisaniu jądra (uImage) w określone miejsce, w pozostałej pamięci utworzenie systemu plików UBIFS (choć można by było zrobić np. jffs) a następnie odpowiednie uruchomienie całości przez bootloader.

1. Uruchamiamy debiana wg metody przedstawionej powyżej. wszystko poniżej wykonujemy z poziomu uruchomionego debiana z konta root
2. Upewniamy się że tablica podziału flash jest identyczna jak ta:
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 000c0000 00020000 "uboot"
mtd1: 00020000 00020000 "env"
mtd2: 00300000 00020000 "zImage"
mtd3: 00300000 00020000 "initrd"
mtd4: 1f400000 00020000 "boot"

Jeżeli nie - należy poprawnie wprowadzić parametry w bootloaderze (parametry mtdparts).
2. Instalujemy pakiet mtd-utils zawierający zestaw narzędzi do pamięci flash
# apt-get update
# apt-get install mtd-utils

3. Zapisujemy kernel w odpowiednim miejscu we flash
# flash_eraseall -j /dev/mtd2
# nandwrite -pm /dev/mtd2 /boot/uImage

Jeżeli pojawią się błędy należy ponowić operację flash_eraseall/nandwrite
4. Tworzymy system plików UBIFS w pamięci nand. UBIFS jest szybszy i bardziej wydajny niż jffs, najczęściej stosuje się go właśnie dla pamięci nand.
# ubiformat /dev/mtd4 -s 512
# ubiattach /dev/ubi_ctrl -m 4
# ubimkvol /dev/ubi0 -N rootfs -m

5. Należy teraz zamontować flash ze świeżo utworzonym systemem plików ubifs i przekopiować istniejącą strukturę plików
# mkdir -p /mnt/mtd
# mount -t ubifs ubi0:rootfs /mnt/mtd
# mkdir /tmp/root
# sync
# mount -o bind / /tmp/root
# cd /tmp/root
# cp -rf ./ /mnt/mtd
# sync

6. Do zmiany jest nowy plik fstab we flash; należy mu wskazać, że główny system plików to właśnie ubifs. Zmieniamy go na następującą postać (do edycji jest plik /mnt/mtd/etc/fstab)
/dev/root / ubifs defaults,noatime,rw 0 0
proc /proc proc defaults 0 0

7. Ostatnie to odmontowanie zasobów i restart
# cd /
# sync
# umount /tmp/root
# shutdown -r now

Należy zauważyć, że w ten sposób nie został zmodyfikowany system Debiana na nośniku, więc za pomocą prostych poleceń w bootloaderze można uruchomić go niezależnie od tego, co jest aktualnie we flash
8. Po ponownym uruchomieniu przerywamy bootloader i wprowadzamy polecenia
setenv bootargs 'console=ttyS0,115200 \ mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),\
0x300000@0x100000(zImage),0x300000@0x540000(initrd),0x1f400000@0x980000(boot) \
ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs'
nand read.e 0x2000000 0x100000 0x300000
bootm

(uwaga: pierwsze cztery linie są całością, znaku \ ma nie być a zamiast niego ma się zaczynać następna linia. Jeżeli ktoś ma problem z interpretacją zapisu to całe polecenie jest dostępne w pliku: http://ecco.selfip.net/projekty/iconnect/debian/boot_from_nand.txt).
9. Jeżeli system się uruchomił i działa poprawnie należy go zrestartować, przerwać bootloader i na stałe zapisać w nim odpowiednie polecenia poleceniami:
setenv bootcmd_nand 'nand read.e 0x2000000 0x100000 0x300000'
setenv bootcmd 'run bootcmd_nand; bootm'
setenv bootargs 'console=ttyS0,115200 \ mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),\
0x300000@0x540000(initrd),0x1f400000@0x980000(boot) ubi.mtd=4 \
root=ubi0:rootfs rootfstype=ubifs'
saveenv

(uwaga: pierwsze cztery linie są całością, znaku \ ma nie być a zamiast niego ma się zaczynać następna linia).

W ten oto sposób mamy debiana działającego z pamięci flash. Należy pamiętać o jak namniejszym zużyciu pamięci; np. warto /tmp zamontować jako ramfs.

Zalety - wolne porty USB. Wady - ograniczona pojemnóść systemu plików.

Obsługa sprzętu z poziomu debiana

LED
Obsługa led jest identyczna jak w openwrt i opisana w tym poradniku: http://eko.one.pl/?p=openwrt-leds (oczywiście z dokładnością co do poleceń uci, których nie ma w debianie, chodzi o obsługę za pomocą /sys).

Dostępne są następujące ledy:
root@iconnect:/sys/class/leds# ls
led_level   
power_red_led      
power_blue_led   
otb_led      
usb_1_led      
usb_2_led
usb_3_led
usb_4_led
rt2800pci-phy0::assoc   
rt2800pci-phy0::radio   
rt2800pci-phy0::quality 

Czyli np. można wykonać
# echo heartbeat > /sys/class/leds/power_red_led/trigger


Sensor temperatury
Dostęp przez magistalę i2c:
root@iconnect:/# cd /sys/bus/i2c/devices/0-004c/
root@iconnect:/sys/bus/i2c/devices/0-004c# ls
alarms     power        temp1_max    temp2_fault     temp2_min_alarm
driver     pwm1          temp1_max_alarm    temp2_input     uevent
hwmon     pwm1_enable  temp2_crit    temp2_max
modalias  subsystem    temp2_crit_alarm  temp2_max_alarm
name     temp1_input  temp2_crit_hyst    temp2_min

Odczyt temperatur wykonujemy przez odczyt plików temp1_input i temp2_input, np.
root@iconnect:~# cat /sys/bus/i2c/devices/0-004c/temp1_input
36000
root@iconnect:~# cat /sys/bus/i2c/devices/0-004c/temp2_input
36000


Przyciski
Dostępne są przez gpio. Przycisk OTB to gpio 35, przycisk reset - 12. Najpierw należy uczynić je widocznym dla systemu, czyli:
echo 35 > /sys/class/gpio/export

Następnie może odczytać stan przycisku poleceniem
cat /sys/class/gpio/gpio35/value


Dostęp do danych w pamięci flash
Jeżeli debian jest uruchomiony z zewnętrznego nośnika, to można zamontować wewnętrzną pamięć flash. System plików we flash to UBIFS, który wymaga kilku dodatkowych operacji żeby zobaczyć jego zawartość.
1. "łączymy" pamięć flash z system plików
root@iconnect:~# ubiattach /dev/ubi_ctrl -m 4
[ 3511.047558] UBI: attaching mtd4 to ubi0
[ 3511.051427] UBI: physical eraseblock size:   131072 bytes (128 KiB)
[ 3511.057781] UBI: logical eraseblock size:    129024 bytes
[ 3511.063225] UBI: smallest flash I/O unit:    2048
[ 3511.067954] UBI: sub-page size:              512
[ 3511.072608] UBI: VID header offset:          512 (aligned 512)
[ 3511.078471] UBI: data offset:                2048
[ 3511.485428] UBI: max. sequence number:       1088
[ 3511.505927] UBI: attached mtd4 to ubi0
[ 3511.509702] UBI: MTD device name:            "boot"
[ 3511.514650] UBI: MTD device size:            500 MiB
[ 3511.519642] UBI: number of good PEBs:        3995
[ 3511.524488] UBI: number of bad PEBs:         5
[ 3511.528955] UBI: number of corrupted PEBs:   0
[ 3511.533433] UBI: max. allowed volumes:       128
[ 3511.538075] UBI: wear-leveling threshold:    4096
[ 3511.542813] UBI: number of internal volumes: 1
[ 3511.547276] UBI: number of user volumes:     1
[ 3511.551739] UBI: available PEBs:             0
[ 3511.556216] UBI: total number of reserved PEBs: 3995
[ 3511.561201] UBI: number of PEBs reserved for bad PEB handling: 39
[ 3511.567335] UBI: max/mean erase counter: 2/1
[ 3511.571621] UBI: image sequence number:  0
[ 3511.576415] UBI: background thread "ubi_bgt0d" started, PID 1295
UBI device number 0, total 3995 LEBs (515450880 bytes, 491.6 MiB), available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)

2. dostępna jest jedna partycja o nazwie "boot" w tym urządzeniu, więc teraz można ją zamontować:
root@iconnect:~# mount -t ubifs ubi0:boot /mnt
[ 3547.516898] UBIFS: mounted UBI device 0, volume 0, name "boot"
[ 3547.522811] UBIFS: file system size:   507967488 bytes (496062 KiB, 484 MiB, 3937 LEBs)
[ 3547.530856] UBIFS: journal size:       25417728 bytes (24822 KiB, 24 MiB, 197 LEBs)
[ 3547.538569] UBIFS: media format:       w4/r0 (latest is w4/r0)
[ 3547.544441] UBIFS: default compressor: lzo
[ 3547.548556] UBIFS: reserved for root:  4952683 bytes (4836 KiB)

3. w /mnt mamy już jej zawartość. Oryginalne pliki przechowywane są w postaci jednego pliku będącego kontenerem, zawierającego w sobie filesystem (urządzenie blokowe), więc należy je także zamontować:
root@iconnect:~# ls -al /mnt/images/*
-rwxr-xr-x 1 root root 123654144 Oct 24  1938 /mnt/images/apps
-rwxr-xr-x 1 root root   5242880 Oct 24  1938 /mnt/images/config
-rwxr-xr-x 1 root root   1774212 Oct 24  1938 /mnt/images/initrd
-rwxr-xr-x 1 root root     32768 Oct 24  1938 /mnt/images/oem
-rwxr-xr-x 1 root root   1990980 Oct 24  1938 /mnt/images/zImage
root@iconnect:~# mkdir /tmp/etc
root@iconnect:~# mount -o loop /mnt/images/config /tmp/etc/
[ 3602.754618] EXT2-fs (loop0): warning: mounting unchecked fs, running e2fsck is recommended

W tym przypadku plik "config" to zawartość katalogu /etc oryginalnego oprogramowania.

Aktualizacja: dostępna jest także instalacja debiana bez interfejsu szeregowego, wymagany jest tylko pendrive. Opis: http://www.congenio.de/infos/iconnect.html (w języku niemieckim, użyj Tłumacza Google).

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja deb
Post: 16 lis 2011, 18:47 
Offline
Użytkownik

Rejestracja: 22 sty 2011, 20:32
Posty: 116
Lokalizacja: Poznań
setenv mainlineLinux yes
setenv arcNumber 1682
saveenv
reset


Przy rozpoczeciu procedury od tego, dostaje przy uruchomieniu instalacji "Bad Magic Number"

Zrezygnowalem z tych komend na wzror z kroonen'a i leci wlasnie :)


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja deb
Post: 17 lis 2011, 17:18 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Domyślnie jest 1682, więc tak powinno zostać po prostu.

----- Dodano ----- 17 lis 2011, o 17:18 -----

Zaktualizowałem trochę opis, dodałem także przepis na uruchomienie debiana z wewnętrznej pamięci flash (z systemem plików UBIFS).

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 20 lis 2011, 11:46 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 12:13
Posty: 1942
Lokalizacja: Suwałki
czy to jest poprawny wpis ?
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000; reset'

wg mnie powinno być
setenv bootcmd 'setenv bootargs $(bootargs); run bootcmd_usb; bootm 0x00800000; reset'


No chyba ze masz w evn $(bootargs_console); U mnie w standardzie nie ma.

_________________
Pozdrawiam, Artur
http://digi-led.pl


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 20 lis 2011, 11:55 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
setenv bootcmd 'run bootcmd_usb; bootm 0x00800000; reset'

Tak prawdę mówiąc, bo args jest już zdefiniowane. Tak, masz rację, pozostałość po moich zabawach.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 20 lis 2011, 12:07 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 12:13
Posty: 1942
Lokalizacja: Suwałki
i ostatnia sprawa

testujesz botowanie z ubifs dla mtd=4, a juz na stałe zapisujesz jako 2

_________________
Pozdrawiam, Artur
http://digi-led.pl


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 20 lis 2011, 12:22 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Poprawiełem, dzięki. mtd2 to kernel oczywiscie, musi być 4.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 22 lis 2011, 21:41 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 12:13
Posty: 1942
Lokalizacja: Suwałki
brakuje
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000

po wyborze sposobu instalacji

_________________
Pozdrawiam, Artur
http://digi-led.pl


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 22:34 
Offline
Użytkownik

Rejestracja: 30 sty 2012, 22:18
Posty: 8
Cześć!
Po pierwsze wielkie dzięki z ten tutorial - klarowność 100.
Uruchomienie systemu z zewnętrznego nośnika poszło od strzału, chociaż czasami po twardym
restarcie urządzenia uboot nie widzi nośnika. Dopiero po sekwencji wyciągnij-łóż ;)
usb start; ext2load usb 0:1 0x00800000 /uImage wczytuje kernel - jakieś sugestie?.

Trochę większy dylemat mam natomiast z instalacją bezpośredni do flasha urządzenia.
Po wykonaniu całej procedury, podczas ładowania

[ 2.518818] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 2.524688] UBIFS: default compressor: lzo
[ 2.528799] UBIFS: reserved for root: 4952683 bytes (4836 KiB)
[ 2.535231] VFS: Mounted root (ubifs filesystem) on device 0:10.
[ 2.541699] Freeing init memory: 120K
INIT: version 2.88 booting
[ 2.664085] usb 1-1: new high speed USB device number 2 using orion-ehci
Using makefile-style concurrent boot in runlevel S.
[ 2.814612] usb 1-1: New USB device found, idVendor=058f, idProduct=6254
[ 2.821352] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2.846470] hub 1-1:1.0: USB hub found
[ 2.851120] hub 1-1:1.0: 4 ports detected
.udev/ already exists on the static /dev! ... (warning).
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...[ 3.134258] usb 1-1.4: new full speed USB device number 3 using orion-ehci
[ 3.234261] usb 1-1.4: device descriptor read/64, error -32
done.
Waiting for /dev to be fully populated...[ 3.444259] usb 1-1.4: device descriptor read/64, error -32
[ 3.634294] usb 1-1.4: new full speed USB device number 4 using orion-ehci
done.
[ 3.891927] end_request: I/O error, dev mtdblock0, sector 0
[ 3.897532] Buffer I/O error on device mtdblock0, logical block 0
[ 3.903874] end_request: I/O error, dev mtdblock0, sector 0
[ 3.909477] Buffer I/O error on device mtdblock0, logical block 0
[ 3.915860] end_request: I/O error, dev mtdblock0, sector 0
[ 3.921466] Buffer I/O error on device mtdblock0, logical block 0
[ 3.927738] end_request: I/O error, dev mtdblock0, sector 0
[ 3.933341] Buffer I/O error on device mtdblock0, logical block 0
[ 3.939639] end_request: I/O error, dev mtdblock0, sector 0
[ 3.945236] Buffer I/O error on device mtdblock0, logical block 0
[ 3.951550] end_request: I/O error, dev mtdblock0, sector 0
[ 3.957148] Buffer I/O error on device mtdblock0, logical block 0
.......
[ 5.704624] uncorrectable error :
[ 5.707872] end_request: I/O error, dev mtdblock1, sector 8
[ 5.713775] uncorrectable error :
[ 5.717043] end_request: I/O error, dev mtdblock1, sector 128
[ 5.723129] uncorrectable error :
[ 5.726432] end_request: I/O error, dev mtdblock1, sector 0
[ 5.732343] uncorrectable error :
[ 5.735613] end_request: I/O error, dev mtdblock1, sector 0
[ 5.785096] Unable to handle kernel paging request at virtual address fffffff0
[ 5.792359] pgd = c0004000
[ 5.795107] [fffffff0] *pgd=0fffe831, *pte=00000000, *ppte=00000000
[ 5.801427] Internal error: Oops: 17 [#1]
[ 5.805453] Modules linked in:
[ 5.808526] CPU: 0 Not tainted (3.1.2-iconnect #4)
[ 5.813699] PC is at ubi_leb_read+0x18/0x134
[ 5.817986] LR is at 0x9800
[ 5.820797] pc : [<c01fb678>] lr : [<00009800>] psr: 80000013
[ 5.820804] sp : cf9ebec0 ip : cf9ebef0 fp : cf9ebeec
[ 5.832339] r10: 00000200 r9 : cf8c7c00 r8 : cfbdd000
[ 5.837589] r7 : cfbdd000 r6 : 00000200 r5 : cf8c7c00 r4 : 00000200
[ 5.844147] r3 : 00009800 r2 : cfbdd000 r1 : 00000f73 r0 : fffffff0
[ 5.850705] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 5.858046] Control: 0005397f Table: 0f044000 DAC: 00000017
[ 5.863818] Process mtdblock5 (pid: 404, stack limit = 0xcf9ea270)
[ 5.870026] Stack: (0xcf9ebec0 to 0xcf9ec000)
[ 5.874412] bec0: cfb132f8 cf8ea510 cf8930b8 cf9e8000 00000200 cf8c7c00 00000200 00000001
[ 5.882634] bee0: cf9ebf2c cf9ebef0 c0202580 c01fb670 00000200 00000000 00000f73 00000000
[ 5.890857] bf00: c0172778 00009800 00000200 1e6b0000 cf885100 00009800 0001f800 cfbdd000
[ 5.899080] bf20: cf9ebf7c cf9ebf30 c01e26b8 c02024ec 00000200 cf9ebf4c cfbdd000 c0166450
[ 5.907303] bf40: cf9ebf64 00000200 c0165a40 c0165024 cf8ea510 00000008 000f3581 c04847ac
[ 5.915526] bf60: cf8ea510 cf885100 cf9ea000 cfbdd000 cf9ebfbc cf9ebf80 c01e1db0 c01e25f4
[ 5.923749] bf80: c01e1b80 c04847ac cf8930b8 cf885110 cf9ebfbc cf9ebfcc cf82bdb8 cf885100
[ 5.931971] bfa0: c01e1b80 00000000 00000000 00000000 cf9ebff4 cf9ebfc0 c0038838 c01e1b90
[ 5.940195] bfc0: cf82bdb8 00000000 cf885100 00000000 cf9ebfd0 cf9ebfd0 cf82bdb8 c00387ac
[ 5.948417] bfe0: c000fa10 00000013 00000000 cf9ebff8 c000fa10 c00387c0 00000000 00000000
[ 5.956652] [<c01fb678>] (ubi_leb_read+0x18/0x134) from [<c0202580>] (gluebi_read+0xa8/0xf0)
[ 5.965136] [<c0202580>] (gluebi_read+0xa8/0xf0) from [<c01e26b8>] (mtdblock_readsect+0xd4/0x118)
[ 5.974065] [<c01e26b8>] (mtdblock_readsect+0xd4/0x118) from [<c01e1db0>] (mtd_blktrans_thread+0x230/0x330)
[ 5.983859] [<c01e1db0>] (mtd_blktrans_thread+0x230/0x330) from [<c0038838>] (kthread+0x8c/0x94)
[ 5.992696] [<c0038838>] (kthread+0x8c/0x94) from [<c000fa10>] (kernel_thread_exit+0x0/0x8)
[ 6.001095] Code: e24cb004 e1a07002 e1a0e003 e24dd010 (e5904000)
[ 6.007467] ---[ end trace 2cee61feaa49dff5 ]---
[ 6.012461] usb 1-1.4: device not accepting address 6, error -32
[ 6.020049] hub 1-1:1.0: unable to enumerate USB device on port 4

W tym miejscu system się zatrzymuje.
Co może być przyczyną takich błędów?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 22:37 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Co do pierwszej części - tak, bootloader miał taki zachcianki nieraz, że nie widział z jakiegoś powodu nośnika. Po restarcie nie było problemu.

To drugie - wygląda na błędy sektor we flash, tyle że ubifs powinien to samodzielnie wykryć i oznaczyć. Ile masz błędnych sektorów?

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 22:57 
Offline
Użytkownik

Rejestracja: 30 sty 2012, 22:18
Posty: 8
Marvell>> nand info
Device 0: NAND 512MB 3,3V 8-bit, sector size 128 KB
Marvell>> nand bad
Device 0 bad blocks:


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 23:05 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Ciekawe. Podczas instalacji (tzn formatowania) nic nie wypisał?

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 23:16 
Offline
Użytkownik

Rejestracja: 30 sty 2012, 22:18
Posty: 8
root@Iconnect:~# cat /proc/mtd
608 dev: size erasesize name
609 mtd0: 000c0000 00020000 "uboot"
610 mtd1: 00020000 00020000 "env"
611 mtd2: 00300000 00020000 "zImage"
612 mtd3: 00300000 00020000 "initrd"
613 mtd4: 1f400000 00020000 "boot"
614 root@Iconnect:~# flash_er^Gaseall -j /dev/mtd2
615 Erasing 128 Kibyte @ 0 -- 0 % complete. Cleanmarker written at 0.Erasing 128 Kibyte @ 20000 -- ...<wycięte> 100%
616 root@Iconnect:~# nandwrite -pm /dev/mtd^G2 /boot/uImage
617 Writing data to block 0 at offset 0x0
618 Writing data to block 1 at offset 0x20000
619 Writing data to block 2 at offset 0x40000
620 Writing data to block 3 at offset 0x60000
621 Writing data to block 4 at offset 0x80000
622 Writing data to block 5 at offset 0xa0000
623 Writing data to block 6 at offset 0xc0000
624 Writing data to block 7 at offset 0xe0000
625 Writing data to block 8 at offset 0x100000
626 Writing data to block 9 at offset 0x120000
627 Writing data to block 10 at offset 0x140000
628 Writing data to block 11 at offset 0x160000
629 Writing data to block 12 at offset 0x180000
630 Writing data to block 13 at offset 0x1a0000
631 Writing data to block 14 at offset 0x1c0000
632 Writing data to block 15 at offset 0x1e0000
633 Writing data to block 16 at offset 0x200000
634 Writing data to block 17 at offset 0x220000
635 root@Iconnect:~# ubiformat /dev/mtd4 -s 512
636 ubiformat: mtd4 (nand), size 524288000 bytes (500.0 MiB), 4000 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
637 libscan: scanning eraseblock 0 -- 0 % complete libscan: scanning eraseblock 1 -- 0 % complete libscan: scanning eraseblock 2 -- ... <wyciete>
638 ubiformat: 4000 eraseblocks have valid erase counter, mean value is 0
639 ubiformat: formatting eraseblock 0 -- 0 % complete ubiformat: formatting eraseblock 1 -- 0 % complete ubiformat: formatting eraseblock 2 -- < wyciete>
640 root@Iconnect:~# ubiattach /dev/ubi_ctrl -, ^H^Hm 4
641 [ 183.818510] UBI: attaching mtd4 to ubi0
642 [ 183.822433] UBI: physical eraseblock size: 131072 bytes (128 KiB)
643 [ 183.828727] UBI: logical eraseblock size: 129024 bytes
644 [ 183.834190] UBI: smallest flash I/O unit: 2048
645 [ 183.838911] UBI: sub-page size: 512
646 [ 183.843563] UBI: VID header offset: 512 (aligned 512)
647 [ 183.849419] UBI: data offset: 2048
648 [ 184.241623] UBI: max. sequence number: 0
649 [ 184.258017] UBI: attached mtd4 to ubi0
650 [ 184.261834] UBI: MTD device name: "boot"
651 [ 184.266733] UBI: MTD device size: 500 MiB
652 [ 184.271733] UBI: number of good PEBs: 4000
653 [ 184.276454] UBI: number of bad PEBs: 0
654 [ 184.280930] UBI: number of corrupted PEBs: 0
655 [ 184.285393] UBI: max. allowed volumes: 128
656 [ 184.290031] UBI: wear-leveling threshold: 4096
657 [ 184.294768] UBI: number of internal volumes: 1
658 [ 184.299231] UBI: number of user volumes: 0
659 [ 184.303787] UBI: available PEBs: 3956
660 [ 184.308509] UBI: total number of reserved PEBs: 44
661 [ 184.313334] UBI: number of PEBs reserved for bad PEB handling: 40
662 [ 184.319454] UBI: max/mean erase counter: 2/1
663 [ 184.323753] UBI: image sequence number: 0
664 [ 184.330472] UBI: background thread "ubi_bgt0d" started, PID 1324
665 UBI device number 0, total 4000 LEBs (516096000 bytes, 492.2 MiB), available 3956 LEBs (510418944 bytes, 486.8 MiB), LEB size 129024 bytes (126.0 KiB)
666 root@Iconnect:~# ubimkvol /dev/ubi0 -N rootfs -m
667 Set volume size to 510418944
668 Volume ID 0, size 3956 LEBs (510418944 bytes, 486.8 MiB), LEB size 129024 bytes (126.0 KiB), dynamic, name "rootfs", alignment 1


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 23:18 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
Wszystko piękne i ładnie. Nie wiem na razie dlaczego tak reaguje.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 30 sty 2012, 23:22 
Offline
Użytkownik

Rejestracja: 30 sty 2012, 22:18
Posty: 8
No właśnie.
Czy taki efekt może być jeżeli kernel nie obsługuje ubifs?
chociaż
[ 2.535231] VFS: Mounted root (ubifs filesystem) on device 0:10.


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 31 sty 2012, 06:20 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
To by nie zamontował go, tak jak piszesz.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 31 sty 2012, 08:29 
Offline
Użytkownik

Rejestracja: 22 sty 2011, 20:32
Posty: 116
Lokalizacja: Poznań
Dla pocieszenia napisze, ze moj iconnect z ostatniego deala na ibood, rowniez strzela bledami w odczycie flasha.
Tak czy siak planuje wymiane nand na wiekszy, wiec za jakis czas napisze, czy w tym tkwil problem.


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 31 sty 2012, 08:34 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
To już wiemy czemu te z ibood są takie tanie - jak nie zaniżony zegar to błędy ze flashem...

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 31 sty 2012, 14:17 
Offline
Użytkownik

Rejestracja: 30 sty 2012, 22:18
Posty: 8
Będziesz badał tą sprawę?

----- Dodano ----- 31 sty 2012, o 14:17 -----

Jeżeli miałaby to być wina flasha to pytanie czemu oryginalny sys śmiga bez problemów?
Dodam że wykonałem erase na mtd2 i 4 i reinstalacje oryginalnego sysu - no errors.


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Iomega IConnect - Wireless Data Station - instalacja Deb
Post: 31 sty 2012, 14:22 
Offline
Administrator
Awatar użytkownika

Rejestracja: 9 kwie 2010, 23:28
Posty: 14176
Lokalizacja: Warszawa
O ile pamiętam oryginał masz cramfs, który inaczej flasha obsługuje. A tu masz ubifs i też masz inaczej.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 237 ]  Przejdź na stronę 1, 2, 3, 4, 5 ... 12  Następna

Strefa czasowa UTC+1godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Przejdź do:  
cron
designed by digi-led.pl
...Copyright © 2010-2013, Ekipa openrouter.info