USB disky pod Linuxem - Krutá realita

USB disky pod Linuxem

31.08.2005

linux-problem

Bohužel jsem v poslední době narazil na velké množství s externími USB disky pod linuxem, které se při přenášení velkých souborů jednoduše zaseknou. Pokud si připojíte k linuxové stanici MP3 přehrávač - nic se neděje, jednoduše jej odpojíte a zapojíte znovu, ale pokud v Linuxu zálohujete do externího USB rámečku v ranních hodinách, toto jednoduše možné není.

Kde je chyba?

Chyba je jak už je obvyklé na obou frontách. Zatímco výrobci hardwaru šetří kde můžou, a tak jejich USB disky a externí USB rámečky mají problém zvládnout větší množství dat přenášených najednou, tak linuxoví vývojáři chtějí poskytnout uživatelům co největší výkon a přenáší dat více, než je hardware schopen zvládnout. Hardware je samozřejmě optimalizován pro Windows, které sice mají nižší výkon při přenosech, ale zase fungují se všemi USB chipsety spolehlivě (jak by ne, když je pro ně výrobci optimalizují).

Trošku zde ovšem vidím chybu ve vývojářích jádra, kteří než aby se zaměřili na špatnou praxi dodržují nějaké standardy i možnosti hardwaru. Obdobné problémy mají vývojáři i v modulech ACPI, kde se zpočátku zaměřovali na specifikaci (kterou nikdo nedodržuje) a po dlouhé době se konečně vydali směrem k praxi a funkčnímu řešení, i když nebude zrovna košér.

Jak to zprovoznit

  • Nejdřívě si stáhneme nejnovější linuxový kernel z adresy www.kernel.org, v době psaní tohoto článku 2.6.12. Případně můžeme použít kernel přiložený k naší distribuci.
  • Poté rozbalíme kernel do složky /usr/src/linux těmito příkazy
cd /usr/src tar -zxvvf /root/kernel-xxxx.tar.gz cp /boot/config-xxx /usr/src/kernel-xxx/.config
  • Nyní nalezneme soubor /drivers/usb/storage/scsiglue.c a změníme hodnotu max_sectors = 256 na 128
  • Nakonec zkompilujeme kernel příkazy
make menuconfig (ESC a uložit) make bzImage make modules make modules_install cp arch/i386/vmlinux /boot/vmlinuz-2.xxx vim /etc/lilo.conf (nebo grub.conf) ...

Závěr

I když návod není úplně přesný (kompilace kernelu závisí na vaší distribuci a nelze ji přesně popsat) měl by alespoň pokročilejším uživatelům pomoci při problémech s USB disky. Mě po změně nastavení začal USB disk fungovat zcela spolehlivě a rychlost přenosu se dokonce znatelně zvýšila (z 11MB/s na 20MB/s). Nicméně pokud máte kvalitní USB chipset, toto nastavení pouze degraduje výkon a nebude mít žádný význam.

Přidat komentář

:-D 8-) :-) ;-) :-o :-( :evil: :idea:

Pro příspěvky je vyžadována podpora obrázků

Pro ověření zde prosím napište text, který vidíte na obrázku

Re: USB disky pod Linuxem od llook

02.09.2005 #

Řekl bych, že tady je stran vývojářů nedostatek spíše v omezených možnostech konfigurace. Když už ne přes parametry jádra, tak aspoň přes menuconfig.
Konfigurovat něco v souborech s příponou ".c" není dobrá praxe...

od markon

02.09.2005 #

2llook: v nových verzích se to dá konfigurovat i za běhu, myslím že je na to patch, kterej je (nebo bude) ve vanilla kernelu.

Spíš by to defaultně mělo být stabilnější než výkonnější. Ostatně ač je to k nevíře, Windows jsou standardně optimalizovány spíše pro stabilitu než výkon.