Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
[править] Подключение USB-flash к компьютеру
- Итак, начнем :)
[править] Конфигурация ядра
- USB флешки видны в Linux как scsi устройства, ибо поддержка usb устройств в ядре Linux реализуется именно посредством эмуляции скази, т.е. типа /dev/sda1(2,3) и т.д, смотря сколько партиций.
| Примечание: возможно, информация устарела, так как некоторые флешки монтируются в /dev/uba(b,c)1(2,3) ... (?)
|
- Следовательно, чтобы была возможность подключения флешки, сначала необходимо добавить поддержку scsi в ядро
| Linux Kernel Configuration: Включаем поддержку SCSI
|
Device Drivers --->
SCSI device support
<*>legacy /proc/scsi/ support
--- SCSI support type (disk, tape, CD-ROM)
<*> SCSI disk support
<*> SCSI generic support
--- Some SCSI devices (e.g. CD jukebox) support multiple LUNs
<*> Probe all LUNs on each SCSI device
|
- Далее добавляем непосредственно поддержку USB (я не говорю о клавиатурах или других устройствах USB, а говорю только о флешке)
| Linux Kernel Configuration: Поддержка USB
|
Device Drivers --->
USB support
<*> Support for Host-side USB
<*> USB device filesystem
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> USB Mass Storage support
|
| Примечание: В разделе USB Mass Storage support есть куча других устройств - я там не отмечал ничего, у меня заработало и так. :Подозреваю, что для специфических устройств (всмысле каких то навороченных флешек) нужно будет что нибудь еще там отметить.
|
- Кроме того, для этих всяких сложных флешек скорее всего придется добавить MTD в ядро
| Linux Kernel Configuration: MTD
|
Device Drivers --->
Memory Technology Devices (MTD) --->
|
ну и там включить что надо.
| Примечание: Для большинства современных флешек, USB носителей и цифровых фотоаппаратов поддержка MTD не требуется.
|
[править] Монтирование
- После загрузки с новым ядром, вставляем флешку и смотрим
#ls /dev/
- если с ядром все ок, то должно появиться /dev/sda (для USB-накопителей используется эмуляция SCSI). Впрочем, при наличии других SCSI-накопителей или по иным причинам может использоваться /dev/sdb, /dev/sdc и т.д.
- Если этого не происходит, делаем ну и т.п.
dmesg | grep usb
- Если и здесь ничего нет, то советую перегрузиться и посмотреть включенны ли USB контроллеры в BIOS :)
- Если dmesg | grep usb выдает результат, а когда вставляем флешку - никакой реакции, то нужно проверить еще раз - все ли отмеченно в ядре.
- Вобщем - надеемся, что все заработало и теперь нужно смонтировать флешку.
- Добавляем в /etc/fstab строку
| Файл: /etc/fstab
|
/dev/sda1 /mnt/usb auto user,noauto,rw 0 0
|
- И можно монтировать. Не будет лишним напомнить отмонтировать флешку перед тем как ее вытаскивать!
- Если такой вариант вас не устраивает, то вы можете установить пакет submount (HOWTO_Submount) и монтировать флешку вот так:
| Файл: /etc/fstab
|
/dev/sda1 /mnt/usb subfs fs=vfat,auto,umask=0,quiet,sync 0 0
|
| Предупреждение: Опция sync в параметрах mount является необходимой, т.к. форсирует мгновенную запись на устройство. Если ее не будет, то когда вы удалите устройство из системы, данные не будут записаны на него. Поэтому, чтобы избежать проблем такого рода, дождитесь пока индикатор на носителе перестанет мигать и после этого извлеките устройство. НО для файловой системы fat c версии ядра linux 2.6.13 sync ставить нельзя т.к. функционирование данной опции сильно изменилось и максимальная скорость записи на usb2.0 это 200 клибойт в секунду а для usb1.0 это где то 10 - 20 килобайт в секунду. Кроме того, опция sync в параметрах mount убьет Вашу флешку с гарантией за 6 месяцев использования. См. http://bugs.debian.org/309625 (Взято с HOWTO Udev и автомонтирование носителей)
|
- Примечание: Чтобы нормально читать кодировку 866 (русские символы) нужно добавить codepage=866 и iocharset=utf8 (если у вас юникод, либо koi8-r например).
| Файл: /etc/fstab
|
/dev/sda1 /mnt/flash vfat noauto,codepage=866,iocharset=utf8,noexec,user 0 0
|
- Примечание 2: Можно включить нужную кодировку в ядре
| Linux Kernel Configuration: Включение кодировок
|
File systems --->
Native Language Support --->
(UTF-8) Default NLS Option
<*> Codepage 866 (Cyrillic/Russian)
<*> NLS UTF-8
DOS/FAT/NT Filesystems --->
<*> VFAT (Windows-95) fs support
(866) Default codepage for FAT
(utf8) Default iocharset for FAT
|
- Тогда в fstab можно поставить строчку по умочанию
| Файл: /etc/fstab
|
/dev/sda1 /mnt/usb auto user,noauto,rw 0 0
|
- Вроде бы все. Удачи всем!
[править] Автомонтирование под kde
Необходима конфигурация ядра, описанная выше. Добавьте флаги "hal" и "dbus" в /etc/make.conf. Установите пакеты hal dbus (собственно udev-104 и выше) и pmount. Здесь dbus - сервис, обеспечивающий взаимодействие между процессами (аналог COM в Windows), hald (из hal) - служба поддержки различных устройств, pmount - отвечает за съёмные устройства (необходима для успешной записи и отмонтирования устройств).
USE="hal dbus" в /etc/make.conf
emerge dbus hal pmount
emerge -DNu world
Добавление службы hald на уровень default
rc-update add hald default
/etc/init.d/hald start
Теперь USB-flash-drive будут монтироваться автоматически в папке /media в виде паки disk.. disk1 и т. д.
Здесь следует отметить что имеет место две особенности с записью на USB-flashdrive устройства:
1. Отложенная запись. Когда вы что-то записали на носитель после выбора из меню правой кнопкой мыши "отмонтировать" или "безопасно извлечь" необходимо дождаться пока светодиод на устройстве прекратит мерцать (окончание записи на носитель) и исчезнет, собственно, на значке устройства на рабочем столе зелёный треугольник.
2. При наличии в системе в момент монтирования других активных пользователей все права на носитель - запись, чтение, монтирование и отмонтирование при таком автомонтировании автоматически присваиваются пользователю с минимальным номером консоли kde.
Добавьте в групп plugdev локальных пользователей компьютера для разрешения работы с USB-flash-drive
gpasswd -a USER plugdev
Наслаждайтесь :)
[править] Автомонтирование под xfce4 и Gnome
Здесь ситуация в чём-то похожа kde. Аналогично сказанному при описанной выше конфигурации ядра добавляем флаги hal и dbus в /etc/make.conf. Далее
emerge -DNu world
rc-update add hald default
gpasswd -a USER plugdev
Здесь необходимо отметить поддержку в ядре во строенном виде драйвера FAT.
И ещё, в виду специфики работы xfce4 загрузку всех сетевых девайсов (за исключением vmnet) необходимо внести на один загрузочный уровень выше уровня загрузки hald. По умолчанию - на уровень boot. Иначе возможна некорректная работа hald.
Gnome это не касается.