Uszkodzenie systemu plików na karcie SD

19

Jeśli trochę użyję Pi, wkrótce pojawi się uszkodzenie systemu plików.

Na przykład ten plik został zmieniony na inny:

$ ls -alt  /etc/apt/apt.conf.d
total 16
lrwxrwxrwx 1 root root   13 Oct  2 22:18 50raspi -> ../init.d/ntp

Lub /var/lib/dpkg/info/fake-hwclock.liststał się plikiem binarnym, co oznacza, że ​​dpkg nie może już działać:

dpkg: unrecoverable fatal error, aborting:
 files list file for package 'fake-hwclock' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

fsckw systemie plików znajduje wiele błędów i wysyła dziesiątki plików do lost+found:

Pass 1D: Reconciling multiply-claimed blocks
(There are 34 inodes containing multiply-claimed blocks.)

File /etc/fake-hwclock.data (inode #26, mod time Thu Aug 16 02:20:47 2012) 
  has 1 multiply-claimed block(s), shared with 1 file(s):
        ... (inode #30, mod time Thu Aug 16 02:20:47 2012)

...

Inode 30 ref count is 1, should be 3.  Fix? yes

dmesg wyświetla coś, co wygląda jak błędy we / wy:

[   49.082758] mmc0: final write to SD card still running
[   59.088233] mmc0: Timeout waiting for hardware interrupt - cmd12.
[   59.089411] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900

Próbowałem z czterema różnymi kartami SD, SanDisk SDHC 16 GB i Duracell SDHC 16 GB. Wygląda na to, że nie jest to karta.

Próbowałem także z Raspbian 2012-08-16-wheezy i ArchLinux 13-06-2012. Oba mają ten sam problem, więc zakładam, że nie jest to błąd w systemie operacyjnym.

Zgodnie z radami @gnibbler i @Avio uruchomiłem memtester (który, w przeciwieństwie do memtest86 na PC, działa za jądrem i dlatego nie może przetestować całej pamięci RAM) i nie zgłosił problemu. „memtester 200 2” -> wszystko OK

Po dyskusji w http://www.raspberrypi.org/phpBB3/viewtopic.php?f=29&t=6201&start=400 spróbowałem z nowego obrazu z config.txt napisanym dla małego podkręcania:

core_freq 240
arm_freq 650
sdram_freq 350

ale pogorszyło to problem (dużo limitów czasu na karcie)

Mam tylko jedno Raspberry Pi, więc nie mogę sprawdzić z innym. Znany problem? Zepsuty sprzęt?

bortzmeyer
źródło
Zmierz napięcie zasilania - upewnij się, że naprawdę wynosi 5 V i jest stabilne. Może być spowodowany przez wadliwy taran lub coś takiego. Czy możesz na nim uruchomić memtest?
John La Rooy
Nie mam teraz woltomierza (nie jestem facetem od sprzętu). Po klawiaturze USB, ładowarce i kablu HDMI to małe i tanie Pi będzie dość drogie, jeśli będę musiał kupić woltomierz.
bortzmeyer
Czy komunikat „Przekroczono limit czasu oczekiwania na przerwanie sprzętowe” nie oznacza, że ​​coś jest nie tak z czytnikiem kart SD?
bortzmeyer
Nie znajduję obrazu z memtestem. Google mnie nie lubi lub nie jestem wystarczająco bystry. Jakiś wskaźnik?
bortzmeyer
Wielkie dzięki, @ oliver-salzbug, za zmiany i przepraszam za zniekształcone dane wyjściowe, które załączyłem.
bortzmeyer

Odpowiedzi:

5

Być może wkrótce odpowiem na własne pytanie, ale do tej pory opcja, która była najbardziej skuteczna, to:

over_voltage=2

Do tej pory (to tylko kilka dni), wydaje się lepiej (jeszcze nie ma korupcji lub przekroczenia limitu czasu karty).

Nie jestem ekspertem od problemów z zasilaniem, więc zanim użyjesz tego na swoim Pi, przeprowadź badania.

Czy to oznacza, że ​​moje Pi ma problem z napięciem, jak sugeruje @gnibbler?

bortzmeyer
źródło
2
Zaakceptowałem własną odpowiedź, ponieważ wydaje się, że działa, a inne sugestie nie.
bortzmeyer
1
Wymień zasilacz na dobry, który ładuje nowoczesne telefony komórkowe i zapewnia prawdziwy 1A lub więcej.
avra
2

Istnieje bardzo duża szansa, że ​​masz problem z pamięcią RAM i być może nie występuje zawieszanie się jądra, ponieważ architektura Raspberry Pi jest w pewnym stopniu tolerancyjna do pewnego stopnia uszkodzenia pamięci .

Pierwszą rzeczą do zrobienia jest zmiana podziału pamięci, zmniejszenie pamięci wideo do minimum, aby zmaksymalizować ilość dostępnej pamięci RAM ( 240 MB pamięci RAM i 16 MB pamięci VRAM ). Sugeruję zacząć od nowego raspbian, świeżo skopiowanego do SD. Następnie możesz zainstalować i uruchomić memtester.

sudo aptitude install memtester

Tutaj znajduje się mały poradnik o tym, jak uruchomić memtester, a to jest strona człowiekiem. Wiersz poleceń powinien wyglądać następująco:

sudo memtester 200 2

Gdzie 200jest ilość MB do przetestowania i 2liczba przebiegów. Pamiętaj, że to rozwiązanie działa wyłącznie w userspace, więc ilość wolnej pamięci jest mniejsza od całkowitej dostępnej pamięci. Jeśli chcesz dokładną liczbę, wpisz:

cat /proc/meminfo

Jednak biorąc pod uwagę, że problem nie występuje w twoich kartach pamięci, a Raspberry Pi jest dość „monolityczny”, prawdopodobnie jedyną dostępną opcją będzie zwrócenie Pi do twojego sprzedawcy.

Avio
źródło
Zawsze miałem ustawiony podział pamięci na 240/16 (używam tego urządzenia do monitorowania sieci, a nie centrum multimedialnego).
bortzmeyer
1

Jest to dalekie ujęcie, ale za każdym razem, gdy uruchamiam się, rpi-updateaby zaktualizować oprogramowanie wewnętrzne, system plików zostaje w jakiś sposób uszkodzony, tak że nie mogę już utworzyć obrazu karty SD za pomocą dd (patrz moje pytanie ). Po raz pierwszy zauważyłem, kiedy próbowałem ręcznie zaktualizować oprogramowanie, aby zainstalować, ffmpega teraz, gdy omxplayer próbował zaktualizować oprogramowanie.

puk
źródło