1

Temat: WRT54G/GS i mMMC - problemy

Witam,

Kamikaze 7.09

postanowiłem wzbogacić moje routerki o obsługe kart mmc  (sandisk 2GB) - sprawa banalna od strony sprzętowej (obrazek poniżej)
http://metaligy.com/temp/wrt54g_v2.2_mmc.jpg

oba routerki różnią się tylko kościa pamięci RAM i FLASH (WRT54G v2.2 i WRT54GS v.1.1), sygnały GPIO sa rozmieszczone identycznie a testy wykazały poprawność połączeń i numeracji ("while true; do gpio enable 5; sleep 1; gpio disable 5; sleep 1; done"). po zainstalowaniu kmod-broadcom-mmc system WYKRYWA karte:

mmc Hardware init
mmc Card init
mmc Card init *1*
mmc Card init *2*
Size = 1985024, hardsectsize = 1024, sectors = 1985024
Partition check:
mmca: p1

niby wszystko ok, ale jak próbuje użyć fdisk to system automatycznie oopsuje a dioda POWER zaczyna szybko mrugać

root@OpenWrt:~# fdisk /dev/mmc/disc0/disc
Note: sector size is 1024 (not 512)
Segmentation fault
root@OpenWrt:~#
root@OpenWrt:~#
root@OpenWrt:~# dmesg
...
fdisk: Forwarding exception at [<800963c4>] (8014cfe0)
fdisk: Forwarding exception at [<800963cc>] (8014cfe8)
Kernel unaligned instruction access in unaligned.c::do_ade, line 550:
$0 : 00000000 1000fc00 0007000d 00000000 817f7140 00000001 c01ab278 000000ff
$8 : c01b0000 000000ff 00000008 c01b0000 000000ff fffffff7 c01b0000 ffffffdf
$16: 801d4e4c 817f7140 81c86980 00000000 00000001 00000000 c01b0000 0000009c
$24: 00000007 801aa5d4                   818b2000 818b3d70 817f7400 800abfa0
Hi : 00000000
Lo : 00009800
epc   : 0007000d    Tainted: P
Status: 1000fc02
Cause : 00000010
PrId  : 00029007
Process fdisk (pid: 1013, stackpage=818b2000)
Stack:    818b2000 818b3d98 817f7000 c01aa3e0 81c86980 c01aa0b0 0000a000
00000000 00000000 c01aa650 8107ea78 81043934 81c5c660 818bc89c 00000002
00000002 00000001 8000f1b8 1000fc01 818b3e08 818b2000 810580c0 00000001
00000000 818bc7e0 00000000 818b3ed0 800aa614 00456008 818924e0 00000b20
00001000 818b3e08 80017df0 00000000 00000000 00000000 818b3ed0 801d4eac
801d4eac ...
Call Trace:   [<c01aa3e0>] [<c01aa0b0>] [<c01aa650>] [<8000f1b8>] [<800aa614>]
[<80017df0>] [<8003d0c4>] [<80026314>] [<80026c88>] [<800270a8>] [<8002708c>]
[<8000b484>] [<8000b420>] [<80027664>] [<80027820>] [<80037b04>] [<80008a60>]
[<80136b04>] [<8005b9ec>]

Code:<7>fdisk: Forwarding exception at [<80006494>] (8014ca00)
(Bad address in epc)

root@OpenWrt:~#

Router staje się niestabilny  i czasami pomaga tylko odłączenie zasilania, system oopsuje też przy próbie założenia systemu plików na karcie.

Czy ktos się spotkał z podobnym problemem? i go rozwiązał? Dodam, że stosowałem różne moduły mmc.o oraz własną kompilację z svn i efekt jest bardzo podobny... pomóżcie!

Pozdrawiam.

2

Odp: WRT54G/GS i mMMC - problemy

Próbowałeś mniejszą kartę? ten driver miał chyba jakieś ograniczenie, ale nie pamiętam ile.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez pancio 2007-12-10 08:16:34)

Odp: WRT54G/GS i mMMC - problemy

trudno stwierdzić czy próbowałem, wrzyciłem jeszcze kartę 1GB Kingstone-a - efekt? Nie oopsuje przy fdisku (choć dioda zasilania zaczyna szybko mrugać) da się nawet wykonać mkfs.ext2 do fazy zapisu superbloków - potem router umiera (dioda nadal mruga, brak reakcji na połączenia sieciowe).

W tejroot@OpenWrt:~# mkfs.ext2 /dev/mmc/disc0/part1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
125952 inodes, 1006076 blocks
50303 blocks (5.00%) reserved for the super user
First data block=1
123 block groups
8192 blocks per group, 8192 fragments per group
1024 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553

Writing inode tables: done
Writing superblocks and filesystem accounting information:

sytuacji nie da się nawet stwierdzić czy wystąpiło oopsowanko przy tworzeniu systemu plików. Próbowałem też partycjonować kartę 2GB dzieląc ją na obszary <128MB ale to nic nie dało. sprubuję tego samego przy Kingstone...

Edit:

okazało się, że router zwicha na jakieś 15-20 min ale operację zapisu superbloku przeprowadza do końca, dmesg zwraca natomiast:

root@OpenWrt:~# dmesg
tion failed (gfp=0x20/0)
__alloc_pages: 0-order allocation failed (gfp=0x20/0)
__alloc_pages: 0-order allocation failed (gfp=0x20/0)
__alloc_pages: 0-order allocation failed (gfp=0x20/0)
__alloc_pages: 0-order allocation failed (gfp=0x20/0)
...

oczywiście zamontowanie przygotowanj partycji jest niemożliwe...

4

Odp: WRT54G/GS i mMMC - problemy

Z tym umieraniem to poczekaj chwilę. Ktoś opisywał na forum openwrt.org, że tak właśnie mu działa - zamiera na czas kopiowania czy innych operacji. Żeby dioda nie migała, musisz się posłużyć gpiomask opisywany zwykle przy przeróbce sdmod.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: WRT54G/GS i mMMC - problemy

dosyć istotne: wymagany pakiet kmod-fs-ext2 (wydawało mi się, że e2fsprogs instaluje moduł do ext2). Teraz da się zamontować partycje. Problem występuje natomiast przy próbie montowania pozostałych partycji (gdy podzielimy karte na kilka partycji). Z testów wynika, że sterownik mmc.o radzi sobie nieźle z partycją do 256M a powyżej już dostaje komunikaty: __alloc_pages: 0-order allocation failed (gfp=0x20/0). Test e2fsck na partycji do 256MB daje pozytywne rezulaty, natomiast na skrajnym 1GB zawiesza router (czekałem ponad 45 min). Sprawdzę jeszcze przy 512MB... jakieś sugestie?

6

Odp: WRT54G/GS i mMMC - problemy

Wygląda na brak pamięci do przeprowadzenia operacji do końca. Może po prostu sformatuj kartę na normalnym linuksie, ew. wyłącz/usuń z pamięci wszystko co na tą chwilę nie jest Ci potrzebne: dnsmasq, http, telnet, dhcp itd.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: WRT54G/GS i mMMC - problemy

Zgadza się, sformatowałem kartę pod debianem i wrt normalnie ją zamontował, natomiast próby kontroli integralności dysku nie przechodzi (pewnie znowu brakuje mu pamięci). Podzieliłem zatem karte 1GB na 4  i montuje jako osobne dyski. I tu kontrola fsck może być wykonana zaledwie dla jednej partycji (po wykonaniu kontroli znacząco maleje ilość dostępnej pamięci operacyjnej - fsck chyba nie zwalnia uzywanych zasobów), aby wykonać kontrolę pozostałych trezba zrestartować router i kontrolować po kolei. Zastanawiam się tylko, czy system raz na x montowań nie zacznie mi samoczynnie sprawdzać dysków bo to nieuchronnie spowoduje zwis routera. Wniosek? Tworzymy partycje na zewnetrznym linuksie, formatujemy z -I 256 (dla jajka <2.6.10 - przynajmniej tak mi sie wydaje), w razie potrzeby e2fsck robimy osobno dla każdej partycji po kolejnych rebootach... ech malo stabilny ten modulik do mmc.

8

Odp: WRT54G/GS i mMMC - problemy

Strasznie na około. Zrób jedną partycję 1G, ale wyłącz sprawdzanie systemu plików (tune2fs -c 0 -t 0) i nie będziesz miał tego problemu.

Musisz tylko pamiętać, że jeżeli na twardo odłączysz zasilanie, to przed ponownym włączeniem ręczenie zrobić fsck na zewnętrznym systemie żeby sprawdzić czy coś nie nie posypało.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.