LINUX.ORG.RU

vanilla kernel показывает русские имена файлов на флешке как '???'


0

0

Использую Fedora Core 6 (2.6.19-1.2895.fc6). Но появилось желание перейти на vanilla kernel. Скачал, выставил параметры, скомилировал. Вроде бы всё работает, но есть проблема -- при монтировании флешек, имена файлов на них показываются знаками вопроса. Какой из параметров при компилировании ядра отвечает за это? Или дело не в ядре а в каких-то дополнительных настройках монтирования?

anonymous

если со старым ядром было все впорядке, то беда в File Systems-> Native Language Support -> Default NLS Option.Если вкомпилирована поддержка языков, то должно монтироваться, если явно указать кодировку mount -o iocharset=utf8,codepage=cp866 /dev/диск /куда

Marmirus ★★
()

Забыл сказать основное. На флэшке файловая система -- FAT16 для совместимости с окружающими виндами... Сейчас посмотрел настройки -- вкомпилированы все кодировки. С "родным" ядром федоры русские шрифты подцепляются по-умолчанию и автоматом. А тут -- никак...

anonymous
()
Ответ на: комментарий от Marmirus

Раньше, когда вся информация о монтируемых устройствах была в /etc/fstab.conf, всё было понятно -- где и что менять и как выставить нужные флаги. А теперь монтированием, насколько я понимаю, занимается демон HAL (или я не прав?), и я даже не знаю в каких конфигах что править, чтобы вставлять аргументы для removable device'ов...

anonymous
()
Ответ на: комментарий от anonymous

команда mount, введенная без параметров, покажет, что с какими опциями примонтировано. что, если размонтировать флешку и смонтировать с указанными параметрами?

Marmirus ★★
()
Ответ на: комментарий от Marmirus

Ядро vanilla 2.6.19.2. Когда система сама монтирует флэшку, то по команде mount выдаётся: /dev/sdb1 on /media/disk type vfat (rw,noexec,nosuid,nodev,shortname=winnt,uid=500)

если давать команду: mount -t vfat -o iocharset=utf8,codepage=cp866 /dev/sdb /mnt/tmp то получаю ответ (и если /dev/sdb, и если /dev/sdb1): mount: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or other error In some cases useful info is found in syslog - try dmesg | tail or so при этом в dmesg: SELinux: initialized (dev sdb1, type vfat), uses genfs_contexts FAT: Unrecognized mount option "codepage=cp866" or missing value FAT: Unrecognized mount option "codepage=cp866" or missing value hfs: unable to parse mount options FAT: Unrecognized mount option "codepage=cp866" or missing value FAT: Unrecognized mount option "codepage=cp866" or missing value

Хотя в .config установлено: CONFIG_NLS_CODEPAGE_866=m

anonymous
()
Ответ на: комментарий от anonymous

/etc/fstab.conf или всё же просто /etc/fstab ? cp866 или просто 866 ?

Попробуй вот это: mount -t vfat /dev/sda1 /media/disk -o codepage=866,utf8

acheron ★★★★
()
Ответ на: комментарий от acheron

remount не срабатвыает. Как были "???", так и остаются. Но если отмнотировать, а потом дать команду mount -t vfat /dev/sdb1 /media/tmp -o codepage=866,utf8 то всё прекрасно. При этом чётко видна разница: Если монтирует HAL (неправильно), по команде mount выводится: /dev/sdb1 on /media/disk type vfat (rw,noexec,nosuid,nodev,shortname=winnt,uid=500) а если монтировать ручками, то получается: /dev/sdb1 on /media/tmp type vfat (rw,codepage=866,utf8).

Как же настроить так, чтобы всё монтировалось автоматом прекрасно?

anonymous
()
Ответ на: комментарий от anonymous

либо искать конфиг hal'а, и в "политике" прописать параметры, только как и что, чем он монтирует, надо искать, разбираться.
вот что-то примерно.. http://wiki.sisyphus.ru/admin/IvmanAutomount/notes
еще вариант - добавить в fstab строку

/dev/sdb1 /media/disk vfat noauto,user,iocharset=utf8,codepage=cp866 0 0

Marmirus ★★
()
Ответ на: комментарий от Marmirus

Попробовал перекомпилировать ядро с CONFIG_NLS_DEFAULT="cp866". Безрезультатно. Знаки вопроса... Пробовал и CONFIG_NLS_CODEPAGE_866=m и CONFIG_NLS_CODEPAGE_866=y. Результат один. Буду ковырять HAL... Не получится -- придётся прописывать стационарно, в fstab... Заодно решил "избавиться" от IPv6 на уровне ядра. Выкинул всё, что касалось IPv6. Теперь при загрузке система орёт, что типа iptables-restore FAILED, отсуствует модуль IPv6 ядра... Кому из устройств это надо? Где ещё отключить эту хрень? Или от греха подальше всё вернуть на место, чтобы не орало?

anonymous
()
Ответ на: комментарий от anonymous

колупай настройки в etc по поводу IPv6, видимо, где-то че-то по дефолту прописано.

Marmirus ★★
()
Ответ на: комментарий от anonymous

> remount не срабатвыает

Значит, какой-то файл открыт.

По поводу ядра и HAL -- проще не трогать ядро и разобраться в HALе. У меня для флешек параметры просто берутся из /etc/fstab , проблем никаких, как так получилось -- не понял :)

acheron ★★★★
()
Ответ на: комментарий от acheron

Уффф. Два дня ковырял настройки HAL и облазил весь интернет. Не получилось. Максимум, чего смог добиться, это что по команде lshal выводятся данные о том, что флэшка ДОЛЖНА монтироваться с нужными параметрами. Но она, тем не менее, не монтируется. Настройки делал в файле /etc/hal/fdi/policy/vfatcharset.fdi Сейчас у меня файл такой: <?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <match key="volume.fstype" string="vfat"> <merge key="volume.policy.mount_option.iocharset" type="string">utf8</merge> <merge key="volume.policy.mount_option.codepage" type="string">866</merge> </match> </device> </deviceinfo>

При этом пробовал всякие комбинации: - вместо volume.policy => storage.policy; - вместо iocharset" type="string">utf8 => iocharset=utf8" type="bool">true - вместо policy.mount_option => default.mount_option РЕЗУЛЬТАТА НЕТ. У кого есть опыт настройки HAL? Поделитесь, плиз!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.