Skocz do zawartości

Problemy Z Mp3 Rockchip Usb Mp3


Hagil

Rekomendowane odpowiedzi

Witam,

 

mam następujący problem

 

Ostatnio zakupiłem odtwarzacz zbudowany na chipie RockChip

odtwarza on mp3 oraz pliki avi

 

Moja Fedora Core 6 poprawnie go wykrywa i montuje, ale przy próbie przesłania jakiś plików z komputera na odtwarzacz lub odwrotnie następuje błąd odczytu/zapisu i się odłącza sam.

 

Odtwarzacz jest sprawny, wszystko poprawnie działa na Windowsie XP oraz 2000

Pamięci Flash USB są obsługiwane poprawnie, odczyt i zapis działa poprawnie.

 

Oto co wyskakuje w konsoli po podłączeniu:

szymon@localhost ~]$ scsi 5:0:0:0: Direct-Access RockChip USB MP3 1.00 PQ: 0 ANSI:0 CCS
SCSI device sda: 4088832 512-bytes hdrw sector (2093 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
SCSI device sda: 4088832 512-bytes hdrw sector (2093 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
sd 5:0:0:0: Attached scsi removable disk sda
sd 5:0:0:0: Attached scsi generic sg0 type 0

 

Problemy następnie pojawiają się przy kopiowaniu:

 

szymon@localhost ~]$ cp /media/disk/VOICE/REC0001.WAV /home/szymon/
end_request: I/O error, dev sda, sector 24557
end_request: I/O error, dev sda, sector 24776
end_request: I/O error, dev sda, sector 24792
end_request: I/O error, dev sda, sector 24536
cp: czytanie `/media/disk/VOICE/REC0001.WAV': Błąd wejścia/wyjścia
szymon@localhost ~]$ Buffer I/O error on device sda, logic block lost page write due to I/O error on sda

 

I następuje zerwanie połączenia z playerem

 

System plików był FAT, zmieniłem na FAT32 i nic nie pomogło

 

Proszę o pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

Napisz jaki jest wynik polecenia fdisk -l z podlaczonym i zamontowanym mp3. Jesli twój mp3 pracuje na partycji sda1, lub podobnej spróbuj wykonac czynnosci:

 

Spróbuj stworzyc nowa tablice partycji sda1, na której to pracuje player. Wlóz mp3 do portu USB i nie montuj go. Odpal z roota (su -):

# fdisk /dev/sda

 

- wklep: o, potem 1 i dalej stosuj sie do komunikatów.

 

Taka operacja usuwa czysci cala tablice sda, w tym partycje z twoim mp3.

 

- No i utwórz sobie nowa partycje sda1:

 

wklep: n, 1, i potwierdzaj komunikaty.

 

Potem sformatuj mp3:

 

mkfs.vfat /dev/sda1

 

Spróbuj zamontowac.

Odnośnik do komentarza
Udostępnij na innych stronach

Po wydaniu komendy: fdisk -l /dev/sda

tak to wygladalo:

[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 2093 MB, 2093481984 bytes
65 heads, 62 sectors/track, 1014 cylinders
Units = cylinders of 4030 * 512 = 2063360 bytes

This doesn't look like a partition table
Probably you selected the wrong device.

  Device Boot	  Start		 End	  Blocks   Id  System
/dev/sda1   ?	   58274	  747398  1388585221   6e  Unknown
Partition 1 has different physical/logical beginnings (non-Linux?):
 phys=(288, 110, 57) logical=(58273, 45, 6)
Partition 1 has different physical/logical endings:
 phys=(622, 111, 24) logical=(747397, 56, 45)
Partition 1 does not end on cylinder boundary.
/dev/sda2   ?	  476056	  881769   817510834+  73  Unknown
Partition 2 has different physical/logical beginnings (non-Linux?):
 phys=(377, 32, 36) logical=(476055, 28, 52)
Partition 2 has different physical/logical endings:
 phys=(511, 107, 53) logical=(881768, 1, 4)
Partition 2 does not end on cylinder boundary.
/dev/sda3   ?	  447327	  862162   835892528+  2c  Unknown
Partition 3 has different physical/logical beginnings (non-Linux?):
 phys=(362, 116, 53) logical=(447326, 31, 30)
Partition 3 has different physical/logical endings:
 phys=(353, 32, 46) logical=(862161, 31, 36)
Partition 3 does not end on cylinder boundary.
/dev/sda4   ?	  716051	  716065	   27492+  77  Unknown
Partition 4 has different physical/logical beginnings (non-Linux?):
 phys=(353, 107, 44) logical=(716050, 35, 56)
Partition 4 has different physical/logical endings:
 phys=(378, 105, 51) logical=(716064, 12, 46)
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order

 

Po przeprowadzeniu zalecanych dzialan z uzyciem fdisk-a wygladalo juz poprawnie:

 

[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 2093 MB, 2093481984 bytes
65 heads, 62 sectors/track, 1014 cylinders
Units = cylinders of 4030 * 512 = 2063360 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        1014     2043179   83  Linux

 

Jednak to nie rozwiazalo problemu, gdyz po poleceniu mkfs.vfat /dev/sda1

 

[root@localhost ~]# mkfs.vfat /dev/sda1
(...)
Buffer I/O error on device sda1, logic block 127
lost page write due to I/O error on sda1
Buffer I/O error on device sda1, logic block 128
lost page write due to I/O error on sda1
Buffer I/O error on device sda1, logic block 129
lost page write due to I/O error on sda1
end_request: I/O error, dev sda, sector 542
end_request: I/O error, dev sda, sector 782
sda : READ CAPACITY failed,
sda : status=0, message=00, host=7, driver=00,
sda : sense not available.
sda: Write Protect is off
sda: assuming drive cache: write through

 

I sie player rozlacza, a po ponownym podlaczeniu jakies pliki sa na dysku playera (smieci powstale po przerwaniu formatowania) których niemozna usunac.

Niemozna bylo sformatowac pod linuksem (próbowalem równiez programem qtparted), poniewaz nastepowalo rozlaczanie polaczenia.

Mozna bylo jedynie pod windowsem.

Cala operacja dalatylko taki skutek, ze tablica alokacji obecnie wyglada poprawnie, a player jak nie dzialal, tak nie dziala poprawnie pod Linuksem.

 

Podejrzewam ze to moze miec zwiazek, ze przesyl realizuje RockChip, który najprawdopodobniej nie jest dobrze obslugiwany przez Linuksa, ale to tylko moje spekulacje.

W specyfikacji jednak ze jest wspierany przez Linuksa od jadra 2.4.2, wiec nie wiem co mam o tym myslec.

 

ps. Napisze jeszcze ze wszystkie informacje o bledach musialem przepisywac z konsoli, poniewaz w terminalu tylko wyskakuja tylko zdawkowe informacje:

szymon@localhost ~]$ cp /media/disk/VOICE/REC0001.WAV /home/szymon/
cp: czytanie `/media/disk/VOICE/REC0001.WAV': Blad wejscia/wyjscia

Odnośnik do komentarza
Udostępnij na innych stronach

Powiem tak sprawdz u kogos na windowsie (wiem wiem ble ble) jezeli problem sie powtórzy i nadal beda smieci to masz uszkodzony pendrive i zostaje reklamacja.Na 80% to jest problem z pamiecia flash w mp3-ujce.

Ale nie mozna tez wykluczyc problemów sprzetowych z magistrala USB itp.

Odnośnik do komentarza
Udostępnij na innych stronach

Powiem tak sprawdź u kogoś na windowsie (wiem wiem ble ble) jeżeli problem się powtórzy i nadal będą śmieci to masz uszkodzony pendrive i zostaje reklamacja. (...)

Jak już pisałem sprawdzałem playera na windowsie xp (tylko po to zainstalowałem go) oraz na windowsie 2000 (na uczelni) i tam działa bez żadnego problemu.

Testowałem też na drugim kompie (również z Fedorą Core 6) i to samo co u mnie na kompie, rozłącza się.

Śmieci są po tym, jak traci łączność, i tym samym przerywa formatowanie w trakcie (pod windowsem bez problemy sformatowałem).

 

(...)

Ale nie można też wykluczyć problemów sprzętowych z magistralą USB itp.

No właśnie wydaje się że z magistralą jest wszystko OK, ponieważ na windowsie działa wszystko ok, a także pendrive (Kingstona) działa bez problemu na Linuksie, a także na windowsie.

Kolega także był z zewnętrznym dyskiem 80 GB na USB, i podczas przekopiowania mu ok 20 GB danych nie było żadnych problemów,więc sądze że to nie magistrala, a bardziej problem softwarowy z Linuksem.

Odnośnik do komentarza
Udostępnij na innych stronach

Oto co dotyczy playera wypluwa po poleceniu: dmesg

 

usb 5-5: new high speed USB device using ehci_hcd and address 3
usb 5-5: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi2 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
scsi 2:0:0:0: Direct-Access     RockChip USB MP3          1.00 PQ: 0 ANSI: 0 CCS
SCSI device sda: 4088832 512-byte hdwr sectors (2093 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 4088832 512-byte hdwr sectors (2093 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
sda: sda1
sd 2:0:0:0: Attached scsi removable disk sda
usb-storage: device scan complete
sd 2:0:0:0: Attached scsi generic sg0 type 0
SELinux: initialized (dev sda1, type vfat), uses genfs_contexts
usb 5-5: reset high speed USB device using ehci_hcd and address 3
usb 5-5: reset high speed USB device using ehci_hcd and address 3
sd 2:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 830
sd 2:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 1070
sda : READ CAPACITY failed.
sda : status=0, message=00, host=7, driver=00 
sda : sense not available. 
sda: Write Protect is off
sda: Mode Sense: 00 00 00 00
sda: assuming drive cache: write through
usb 5-5: USB disconnect, address 3
Buffer I/O error on device sda1, logical block 504
lost page write due to I/O error on sda1

 

Widze że zaczyna pluć błędami po:

SELinux: initialized (dev sda1, type vfat), uses genfs_contexts

Czy może mieć to związek z SELinux ?

 

Po tym następuje:

usb 5-5: reset high speed USB device using ehci_hcd and address 3

Czy to może być tym resetem spowodowane?

 

Edit:

 

A oto dla porównania co się dzieje po podłączeniu pendriva Kingostona (z którym nie ma najmniejszych problemów):

usb 5-5: new high speed USB device using ehci_hcd and address 6
usb 5-5: configuration #1 chosen from 1 choice
scsi5 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
scsi 5:0:0:0: Direct-Access     Kingston DataTraveler 2.0 6.50 PQ: 0 ANSI: 0 CCS
SCSI device sda: 1970175 512-byte hdwr sectors (1009 MB)
sda: Write Protect is off
sda: Mode Sense: 45 00 00 08
sda: assuming drive cache: write through
SCSI device sda: 1970175 512-byte hdwr sectors (1009 MB)
sda: Write Protect is off
sda: Mode Sense: 45 00 00 08
sda: assuming drive cache: write through
sda: sda1
sd 5:0:0:0: Attached scsi removable disk sda
sd 5:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
SELinux: initialized (dev sda1, type vfat), uses genfs_contexts

 

Jak widać po inicjalizacji SELinux nie ma żadnych resetów.

Więc może to być to?

Czyżby SELinux tak mieszał?

 

Jeśli to on, to jak zrobić to, aby to działało, a nie wyłączać całego SELinux (bo tak to sam umiem zrobić, ale tego bym niechciał)?

 

Edit 2

Jednak to chyba nie SELinux miesza.

To z wylączony SELinux:

 

usb 5-5: new high speed USB device using ehci_hcd and address 5
usb 5-5: configuration #1 chosen from 1 choice
scsi4 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
scsi 4:0:0:0: Direct-Access     RockChip USB MP3          1.00 PQ: 0 ANSI: 0 CCS
SCSI device sda: 4088832 512-byte hdwr sectors (2093 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 4088832 512-byte hdwr sectors (2093 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
sda: sda1
sd 4:0:0:0: Attached scsi removable disk sda
sd 4:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
usb 5-5: reset high speed USB device using ehci_hcd and address 5
usb 5-5: reset high speed USB device using ehci_hcd and address 5
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555622
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555638
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555878
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
sd 4:0:0:0: SCSI error: return code = 0x00070000
end_request: I/O error, dev sda, sector 555382
usb 5-5: USB disconnect, address 5
Buffer I/O error on device sda1, logical block 555032
lost page write due to I/O error on sda1

 

Przetestowałem również na Debianie i tam też bład wejścia/wyjścia

 

Nie mam już pomysłów na to co to może być :(

Odnośnik do komentarza
Udostępnij na innych stronach

Zna się ktoś na regułach udev?

 

po wpisaniu:

udevinfo -a -p `udevinfo -q path -n /dev/sda`

 

wyskakuje to:

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sda':
   KERNEL=="sda"
   SUBSYSTEM=="block"
   SYSFS{stat}=="    2264    57558    69177    10275        1        0        1      168        0     9717    10443"
   SYSFS{size}=="4088832"
   SYSFS{removable}=="1"
   SYSFS{range}=="16"
   SYSFS{dev}=="8:0"

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-5/5-5:1.0/host2/target2:0:0/2:0:0:0':
   ID=="2:0:0:0"
   BUS=="scsi"
   DRIVER=="sd"
   SYSFS{ioerr_cnt}=="0x1"
   SYSFS{iodone_cnt}=="0x913"
   SYSFS{iorequest_cnt}=="0x913"
   SYSFS{iocounterbits}=="32"
   SYSFS{timeout}=="60"
   SYSFS{state}=="running"
   SYSFS{rev}=="1.00"
   SYSFS{model}=="USB MP3         "
   SYSFS{vendor}=="RockChip"
   SYSFS{scsi_level}=="3"
   SYSFS{type}=="0"
   SYSFS{queue_type}=="none"
   SYSFS{queue_depth}=="1"
   SYSFS{device_blocked}=="0"
   SYSFS{max_sectors}=="240"

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-5/5-5:1.0/host2/target2:0:0':
   ID=="target2:0:0"
   BUS==""
   DRIVER==""

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-5/5-5:1.0/host2':
   ID=="host2"
   BUS==""
   DRIVER==""

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-5/5-5:1.0':
   ID=="5-5:1.0"
   BUS=="usb"
   DRIVER=="usb-storage"
   SYSFS{modalias}=="usb:v071Bp3203d0100dc00dsc00dp00ic08isc06ip50"
   SYSFS{bInterfaceProtocol}=="50"
   SYSFS{bInterfaceSubClass}=="06"
   SYSFS{bInterfaceClass}=="08"
   SYSFS{bNumEndpoints}=="02"
   SYSFS{bAlternateSetting}==" 0"
   SYSFS{bInterfaceNumber}=="00"

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5/5-5':
   ID=="5-5"
   BUS=="usb"
   DRIVER=="usb"
   SYSFS{maxchild}=="0"
   SYSFS{version}==" 2.00"
   SYSFS{devnum}=="4"
   SYSFS{speed}=="480"
   SYSFS{bMaxPacketSize0}=="64"
   SYSFS{bNumConfigurations}=="1"
   SYSFS{bDeviceProtocol}=="00"
   SYSFS{bDeviceSubClass}=="00"
   SYSFS{bDeviceClass}=="00"
   SYSFS{bcdDevice}=="0100"
   SYSFS{idProduct}=="3203"
   SYSFS{idVendor}=="071b"
   SYSFS{bMaxPower}=="400mA"
   SYSFS{bmAttributes}=="80"
   SYSFS{bConfigurationValue}=="1"
   SYSFS{bNumInterfaces}==" 1"
   SYSFS{configuration}==""

 looking at parent device '/devices/pci0000:00/0000:00:10.4/usb5':
   ID=="usb5"
   BUS=="usb"
   DRIVER=="usb"
   SYSFS{serial}=="0000:00:10.4"
   SYSFS{product}=="EHCI Host Controller"
   SYSFS{manufacturer}=="Linux 2.6.20-1.2933.fc6 ehci_hcd"
   SYSFS{maxchild}=="8"
   SYSFS{version}==" 2.00"
   SYSFS{devnum}=="1"
   SYSFS{speed}=="480"
   SYSFS{bMaxPacketSize0}=="64"
   SYSFS{bNumConfigurations}=="1"
   SYSFS{bDeviceProtocol}=="01"
   SYSFS{bDeviceSubClass}=="00"
   SYSFS{bDeviceClass}=="09"
   SYSFS{bcdDevice}=="0206"
   SYSFS{idProduct}=="0000"
   SYSFS{idVendor}=="0000"
   SYSFS{bMaxPower}=="  0mA"
   SYSFS{bmAttributes}=="e0"
   SYSFS{bConfigurationValue}=="1"
   SYSFS{bNumInterfaces}==" 1"
   SYSFS{configuration}==""

 looking at parent device '/devices/pci0000:00/0000:00:10.4':
   ID=="0000:00:10.4"
   BUS=="pci"
   DRIVER=="ehci_hcd"
   SYSFS{msi_bus}==""
   SYSFS{broken_parity_status}=="0"
   SYSFS{enable}=="1"
   SYSFS{modalias}=="pci:v00001106d00003104sv00001043sd000080EDbc0Csc03i20"
   SYSFS{local_cpus}=="ffffffff"
   SYSFS{irq}=="17"
   SYSFS{class}=="0x0c0320"
   SYSFS{subsystem_device}=="0x80ed"
   SYSFS{subsystem_vendor}=="0x1043"
   SYSFS{device}=="0x3104"
   SYSFS{vendor}=="0x1106"

 looking at parent device '/devices/pci0000:00':
   ID=="pci0000:00"
   BUS==""
   DRIVER==""

 

Chodzi mi o to, aby zmienić (dać regułę) do udev:

SYSFS{max_sectors}=="240"

na:

SYSFS{max_sectors}=="128"

 

Doczytałem że to może pomóc, ale moje próby nie powiodły się, a próbowałem dodawać przez dodanie pliku z regułą do katalogu:

/etc/udev/rules.d/,

ale chyba coś źle robie.

 

Zna się ktoś na regułach udev, kto mógłby mi pomóc?

Odnośnik do komentarza
Udostępnij na innych stronach

Problem po części rozwiązany.

 

Sprawa się tyczy, że Linux chce przesyłać dane do i z odtwarzacza w zbyt dużych porcjach jak dla tego odtwarzacza.

Domyślą max_sectors w Linuksie to 240.

 

Jeśli odtwarzacz lub ogólnie pamięć usb nam się sama wymontowuje to należy:

 

1. Sprawdzić max_sectors przez wydanie komendy (dla sda) :

cat /sys/block/sda/device/max_sectors

2. Następnie możemy zmienić po zalogowaniu się na roota

echo 128 >/sys/block/sdb/device/max_sectors

 

Mi wystarczyło ograniczenie do 128, ale jeśli to nie pomoże można spróbować z niższymi wartościami :)

 

Niestety nie wiem jak zrobić żeby automatycznie zmieniało to po wykryciu playera, ale można wreszcie korzystać pod Linuksem z niego.

 

Mam nadzieje że mój opis komuś się przyda :)

 

ps. Dzięki Daniello za podpowiedz komend które przydały mi się do zidentyfikowania problemu :)

Odnośnik do komentarza
Udostępnij na innych stronach

w przypadku mojego mplayer'a (sprawdzałem na kilku XP i 2K)

znikanie spowodowane jest wydajnością USB (400mA), a nie systemem;

z FC6 i USB na PCI zachowuje się względnie ok,

może masz podobny problem z słabymi portami, a nie systemem?

 

Odnośnik do komentarza
Udostępnij na innych stronach

To jest spowodowane systemem, i opisałem jak zrobić żeby działało opisałem w poprzednim moim poście.

Na moim komputerze specjalnie zainstalowałem WinXP aby sprawdzić czy to player, czy system, i tam nie miałem takich problemów.

 

Jak już pisałem rozwiązanie podałem w moim poprzednim poście.

 

Pozdrawiam

 

Hagil

 

ps. Oto link do strony traktującej o USB w Linuksie (strona po angielsku):

Linux USB FAQ

 

 

Edit 26.12.2008

 

Dziś podłączyłem opisywany player pod Fedore 8 i okazało się że już działa poprawie, bez wpisywania żadnych komend :D

Zapewno coś gdzieś poprawili i wykrywa wartość max_sectors poprawnie :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...