Проблема с установкой модулей (подлкючение флешки) в Gentoo 2006.0 [solved]

Скомпилировал ядро 2.6 -> make && make modules_install
"find /usr/src/linux/ -name *.o " выдает, что есть куча модулей с расширением .o .
Oднако make modules_install показывает, что идет копирование(установка) модулей _только_ с расширением .ko

И например команда modprobe usb-storage выдает, что модуль usb_storage not found.

Что не так делаю?

Вы делаете всё

Вы делаете всё правильно. .ko - это готовый модуль ядра, а .о это объектный файл - т.е. просто скомпилированный исходник - заготовка для модуля ядра.

OK, спасибо. С

OK, спасибо. С этим разобрался.

Осталась одна проблема - не могу смонтировать флэшку.
less /proc/bus/usb/devices выдает, что Product = Flash disk, Manufacturer=Generic на одной из шин (Bus=01, Lev = 01 и т.д.)

т.е. флешка вроде системой наблюдается. Когда же даю команду монтирования - mount -t vfat /dev/sda1 /mnt/flash - то появляется сообщение - sda1 is not valid block device.

dmesg | grep usb
usb1-2: new full speed device using uhci_hcd and address 3

Вcе нужные модули скомпилировал, как написано вот здесь

Только один нюанс - комп не новый:
less /proc/cpuinfo - Celeron (Mendocino) 501 Mhz (класса PII)

Может что-то с железом?

Флешка рабочая - нормально работает на соседней PIII-машине с Debian на борту и ядром 2.4. В Gentoo использую 2.6.

А файл /dev/sda1

А файл /dev/sda1 есть?

udev запущен?

> А файл /dev/sda1

> А файл /dev/sda1 есть?
Есть. Когда поставил udev, как написано вот здесь, sda* исчез.

# udevinfo -e | grep usb
P: /class/usb_device/usbdev1.1
N: bus/usb/001/001
P: /class/usb_device/usbdev1.2
N: bus/usb/001/002

#less /proc/bus/usb/devices
Bus=01, Lev = 01 и т.д.
Manufacturer=Generic
Product = Flash disk

#dmesg | grep SCSI
SCSI subsystem initialized

# mount -t vfat /dev/sda1 /mnt/flash
mount: special device /dev/sda1 does not exist

mount /sda - тоже самое
?

Стоп. А usb-storage у

Стоп. А usb-storage у тебя как компилится, модулем или в ядро?

> Стоп. А usb-storage

> Стоп. А usb-storage у тебя как компилится, модулем или в ядро?
Компилировался в ядро. Переделал. Сейчас модулем... Во время загрузки выдается сообщение - usb-storage подгружен. lsmod это подверждает.

Отключаю флешку. rmmod usb-storage. lsmod показывает usb-storage выгружен. Подключаю флешку, lsmod показывает, что ядро само подхватило usb-storage.

Однако /dev/sda1 при этом не создается.

?

А если файл

А если файл вручную создаешь, работает?
# mknod /dev/sda b 8 0
# mknod /dev/sda1 b 8 1

Процесс udev есть?
# pgrep -l udev

> А если файл

> А если файл вручную создаешь, работает?
Нет, если создать вручную, будет так - /dev/sda1 in not valid block device.

> Процесс udev есть?
Есть ->
# pgrep -l udev
1001 udevd

Видимо, все-таки что-то с железом...

Попробуй

Попробуй собрать с OHCI HCD.

fdisk -l что-нибудь кроме винтов показывает?

> fdisk -l

> fdisk -l что-нибудь кроме винтов показывает?
Нет, кроме винтов ничего

> Попробуй собрать с OHCI HCD.
Я собрал OHCI HCD и UHCI HCD модулями.

Когда подгружаю modprobe uhci-hcd, автоматически подхватывается usb_storage (видно по lsmod). C ohci-hcd такого эффекта не наблюдается.

Кроме того lspci -v | grep USB показывает: -if 00 [UHCI]
Значит, все-таки нужен UHCI.

Проблема

Проблема разрешилась самым неожиданным образом.

После внимательного рассмотрения dmesg, выяснилось, что udev подключает флешку на устройство uba:

Цитата:
uhci_hcd 0000:00:02.2: UHCI Host Controller
uhci_hcd 0000:00:02.2: new USB bus registered, assigned bus number 1
uhci_hcd 0000:00:02.2: irq 11, io base 0x0000e000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
usb 1-2: new full speed USB device using uhci_hcd and address 2
ub(1.2): GetMaxLUN returned 0, using 1 LUNs
uba: uba1
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.

udevinfo показало -

Цитата:
device '/sys/block/uba/uba1' has major:minor 180:1
looking at class device '/sys/block/uba/uba1':
KERNEL=="uba1"
SUBSYSTEM=="block"
SYSFS{dev}=="180:1"
SYSFS{size}=="64480"
SYSFS{start}=="32"
SYSFS{stat}==" 3990 4130 1 1"

follow the "device"-link to the physical device:
looking at the device chain at '/sys/devices/pci0000:00/0000:00:02.2/usb1/1-2/
BUS=="usb"
ID=="1-2:1.0"
DRIVER=="ub"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceClass}=="08"
SYSFS{bInterfaceNumber}=="00"
SYSFS{bInterfaceProtocol}=="50"
SYSFS{bInterfaceSubClass}=="06"
SYSFS{bNumEndpoints}=="02"
SYSFS{modalias}=="usb:v1043p8006d0100dc00dsc00dp00ic08isc06ip50"

При попытке подмантировать uba1 командой mount -t vfat /dev/uba1 /mnt/flash выдалось сообщение -

Цитата:
mount: special device /dev/uba1 does not exist

В dmesg нашел причину -

Цитата:
Unable to load NLS charset cp437
FAT: codepage cp437 not found
FAT: invalid media value (0xa5)
VFS: Can't find a valid FAT filesystem on dev uba.

Тогда в fstab прописал следующее -

Цитата:
/dev/fd0 /mnt/floppy vfat noauto,users,codepage=866,iocharset=koi8-r 0 0

После чего команды mount /mnt/flash прошла на Ура!

С устройства можно считывать и записывать файлы. Все работает нормально.

Подозреваю, что такая проблема может случаться на старых usb-контролерах.

несовсем так,

несовсем так, просто в ядре включена поодержка "медленного усб драйвера", там кстати и варнинг есть.

> просто в ядре

> просто в ядре включена поодержка "медленного усб драйвера", там кстати и варнинг есть.

Я ее на нашел. Подскажите, pls, где ее искать?

В Device Drivers -> USB support у меня стоит -

[ * ] Support for Host-side USB
[ * ] Usb device filesystem
< M > OHCI HCD support
< M > UHCI HCD support
< M > USB Mass Storage support
[ * ] USB Mass Storage verbose debug
< M > USB Human Interface Device (full HID) support
[ * ] HID input layer support
< M > eGalax TouchKit USB Touchscreen Driver
[ * ] USB Monitor
< M > Cypress USB thermometer driver support
< M > USB PhidgetServo support

видимо тут

видимо тут

Да, все верно!

Да, все верно! Когда отключаешь это -

CONFIG_BLK_DEV_UB:
Symbol: BLK_DEV_UB [=n]
Prompt: Low Performance USB Block driver
Defined at drivers/block/Kconfig:354
Depends on: USB
Location:
-> Device Drivers
-> Block devices

То flash'ка начинает определяться через /dev/sda1/

Где Вы раньше были? ;-) Столько времени потратил... ;(

Re: Где Вы раньше были? ;-) Столько времени потратил... ;(

на поиск по сайту? ;)

:))

Ты своим ником людей отпугиваешь :))

я?!! может мне

я?!!
может мне уйти? :)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".