Не могу работать с Flash-картами памяти
Bodro 8 октября, 2008 - 00:09
Добрый день!
Проблема такая. У меня старый компьютер и поддержка USB 2.0 просто не предусмотрена железом. Поэтому могу ипользовать только USB 1.1. Но и его не могу сейчас использовать! С разъёмами всё впорядке. Потому что до этого стояла Fedora Core 6 и в ней всё работало. Суть такая. Я не могу подключить флешку. Девайса /dev/sda просто нет. Скажите пожалуйста, что надо сделать, чтобы у меня была возможность использоват Flash? Может я в ядре какую опцию не включил может ещё что. В Gentoo я недавно.
»
- Для комментирования войдите или зарегистрируйтесь
Что выводит команда
Что выводит команда
zcat /proc/config.gz| grep 'USB|SCSI|BLK' | grep -v '\#'
bodro@bodro ~ $ zcat
bodro@bodro ~ $ zcat /proc/config.gz| grep 'USB|SCSI|BLK' | grep -v '\#'
bodro@bodro ~ $
Т.е. ничего. Значит в ядре нет поддержки? А что там надо включить?
А команда ls -l
А команда
ls -l /proc/config.gz
Ну или вместо команды в предыдущем посте попробуйте
cat /usr/src/linux_ВАША_ВЕРСИЯ/.config | grep 'USB|SCSI|BLK' | grep -v '\#'
Первая
Первая команда:
bodro@bodro ~ $ ls -l /proc/config.gz
-r--r--r-- 1 root root 9165 Ð 6 12:04 /proc/config.gz
Ядро у меня на данный момент стоит 2.6.26.5.
Вторая команда:
bodro@bodro /usr/src $ cat /usr/src/linux-2.6.26.5/.config | grep 'USB|SCSI|BLK' | grep -v '\#'
bodro@bodro /usr/src $
Т.е. пусто. А вот команда
zcat /proc/config.gz
выводит конфиг ядра. Т.е. можно его там просмотреть.
Судя по всему у меня в ядре нет поддержки USB. Я правильно понял?
Да, правильно. И
Да, правильно. И не только USB.Я поторопился с выводами.
Эти команды справедливы для zsh (моя оболочка), но не работают в bash.
Измените их так:
cat /usr/src/linux/.config | grep USB | grep -v '\#'
cat /usr/src/linux/.config | grep SCSI | grep -v '\#'
cat /usr/src/linux/.config | grep BLK | grep -v '\#'
Не, тут zsh не
Не, тут zsh не причём. grep по умолчанию не использует регулярные выражения. У вас видимо алиас c grep на egrep стоит. Т.е. для данных команд достаточно заменить grep на egrep
Точно,
Точно, давно настраивал, забыл :)
Попробовал как
Попробовал как вы сказали:
bodro@bodro ~ $ zcat /proc/config.gz| egrep 'USB|SCSI|BLK' | egrep -v '\#'
CONFIG_BLK_DEV_INITRD=y
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIBFUSB=m
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
CONFIG_BLK_DEV_XD=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_CRYPTOLOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_UB=m
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
CONFIG_BLK_DEV_IDEFLOPPY=y
CONFIG_BLK_DEV_IDEACPI=y
CONFIG_BLK_DEV_PLATFORM=y
CONFIG_BLK_DEV_IDEDMA_SFF=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_HD_ONLY=y
CONFIG_BLK_DEV_HD=y
CONFIG_USB_HID=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
CONFIG_USB_MON=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_SELECTED=y
CONFIG_USB_GADGET_AMD5536UDC=y
CONFIG_USB_AMD5536UDC=y
CONFIG_USB_GADGET_DUALSPEED=y
CONFIG_USB_ETH=y
CONFIG_USB_ETH_RNDIS=y
CONFIG_CRYPTO_BLKCIPHER=y
bodro@bodro ~ $
Что далше делать?
Хм... А где скази
Хм... А где скази и сата?
Должно быть примерно так: http://paste.org.ru/?ff5rgk (Ядро 2.6.17-gentoo-r5)
По крайней мере
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
+ драйверы ваших ATA и USB контролеров должны быть.
Т.ч. включайте в ядре подсистемы скази и сата и пересобирайте.
Правда, учитывая ваше зелезо, на счёт сата не уверен, но всё ж проверьте
Машина у меня
Машина у меня старенкая. Поэтому у меня только IDE. SATA нет. А вот на счёт SATA. Я так понимаю, что даля работы Flash мне нужно включить SATA и драйвер USB контроллеров. Я правильно вас понял? Начинаю эксперементы.
Собственно
Собственно вот:
Т.е. для работы usb накопителей нужна подсистема скази
Я включил в
Я включил в ядре следующие опции:
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
Но устройств /dev/sda не увидел. Где мне включить драйверы моих USB-контроллеров? Может ещё что надо? И ещё, я скази подключаю как модуль. Может надо в ядро?
dmsg | grep USB
dmesg | grep USB
.
У меня в ядре конечно много разного нафиг ненужного осталось (начинал я с кофига Live CD, потому как до этого с 2.6 дел не имел):
В плане монтирования с USB-устройствами проблем нет.
Есть другие проблемы.
--
Live free or die
bodro@bodro ~ $ sudo dmesg |
bodro@bodro ~ $ sudo dmesg | grep USB
usbhid: v2.6:USB HID core driver
Вот что выводит.
Это после
Это после втыкания флешки? Если да, не включена в ядре поддержка вашего железа. Удостовертесь, что включена поддержка всего, что выводит lspci. Особенно касательно USB
Всех с новым Годом! Включил
Всех с новым Годом!
Включил поддержку USB в ядре, включил HID. Клавиатура USB заработала, но вот девайс /dev/sda до сих пор не появился. Что ж ещё надо то??? В какой ветке включить что надо чтобы появился /dev/sda??? Flash карты как подключить???
нужно включить SCSI диски и
нужно включить SCSI диски и SCSI Generic
Как включать, как модули или
Как включать, как модули или в ядро? Или не принципиально?
если модулем, то нужно их
если модулем, то нужно их грузить до того как монтирвоать пробовать, а так - не принципиально
Это ваще хана какая
Это ваще хана какая то!
Включил как часть ядра. Нет! Не появился /dev/sda. Может я чё не понимаю??? Включил поддержку SCSI (SCSI Device Support), поддержку SCSI дисков (SCSI disk support), включил USB Mass Storage support и все появившиеся storages. По прежнему нет sda! Я даже Low Performance USB Block driver включил, но и /dev/uba не появились!!!
Может я не догоняю чё?
/dev/sda есть, а вот /dev/uba
/dev/sda есть, а вот /dev/uba нет!
А зачем вам /dev/uba? Оно,
А зачем вам /dev/uba? Оно, ЕМНИП, к флеш накопителям никакого отношения не имеет.
А /dev/sda указывает не на вашу флешку?
ub* — это устройства от
ub* — это устройства от старого и кривого драйвера ядра. Они не нужны.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
он не старый и не кривой, он
он не старый и не кривой, он нужен для другого, но весьма редко. раньше он конфликтовал с "дровами на флэшки", теперь видимо нет.
Я читал что он работает
Я читал что он работает медленно, зато гораздо стабильнее чем через эмуляцию SCSI.
Типаеси каой-либо девайс не работает через SCSI эмуляцию (/dev/sda), то можно попробовать чрез /dev/uba. В ядре я включил опцию, но самого девайса не появилось. Втыкаю Flash, а /dev/uba не появился.
В чём причина?
1 где читал? сыылку. 2
1 где читал? сыылку.
2 прочитай наконец хэлп к этой опции.
3 хочеш "медленно и стабильно" ? ставь в опциях монтирования sync и он у тебя стабильно быстро убьёт флэшку "надёжной" синхронной записью
"Также существует
"Также существует альтернативный драйвер для USB-накопителей. Называется он Low Performance USB Block driver и находится в разделе Device Drivers -> Block devices. При его использовании разделы именуются не /dev/sda1, /dev/sdb1 и т. д., а /dev/uba1, /dev/ubb1 и т. д. Это низкопроизводительный драйвер. Он медленнее «USB Mass Storage support», но более надёжный. Этот драйвер работает в обход эмуляции SCSI. Благодаря тому, что он реализует только самые необходимые для работы функции, с его помощью можно заставить работать более широкий спектр устройств. Поэтому, если ваше устройство не работает с «USB Mass Storage support», попробуйте этот драйвер."
Ссылка: http://wiki.linuxformat.ru/index.php/LXF78:Конфигурация_ядра:_готовые_рецепты
Вот я и хочу в этом разобраться! Кто нибудь поможет мне?
Да, он действительно для
Да, он действительно для "флешек"
Для избежания конфликтов с usb-storage рекомендуют включить USB_LIBUSUAL. Я думаю, лучше "USB Mass Storage support" вообще при этом выключить.
Покажите, что пишет ядро при втыкании/вытаскивании флешки. Тогда может и появятся идеи, почему у вас файл устройства не появляется.