LINUX.ORG.RU

Доведение до ума драйвера Samsung Exfat

 


0

0

На сайте http://opensource.samsung.com/ последняя версия - 1.2.4. С ней может записывать только root, и из винды потом не читается (не хватает прав). Версия 1.2.5 лежит в другом месте - здесь (слил в один патч: http://pastebin.com/rHTPM31K), с ней запись возможна по-прежнему только от root, но после записи каждого файла нам пишут «не удалось изменить права на файл», и из винды потом читается. Следующие версии есть, но я не нашёл. А я хочу чтобы записывалось от пользователя. Может, нужно какое-нибудь правило udev или udisks?

Если кто-то не понимает о чём я, есть три драйвера: exfat-fuse, exfat-nofuse и Samsung Exfat. Exfat-fuse появился раньше всех, сначала там было только чтение, потом добавили запись. Exfat-nofuse создан из noname-исходников, случайно найденных в сети (автору осталось только дописать Makefile). Этот код оказался созданным Samsung, и это не удивительно: эта компания также создала F2FS, ФС для флешек. Обнаружение исходников, выложенных в открытый доступ кем-то из сотрудников, привело к нежелательным для Samsung последствиям: в них был код, скопированный из GPL-ного модуля ядра VFAT, и поэтому компании пришлось открыть драйвер, теперь официально. Это и есть Samsung Exfat, а exfat-nofuse - его форк.

Проблема Samsung Exfat в том, что у него не было обновлений с момента релиза: версия 1.2.4 поддерживает ядра Linux 2.6.32-3.8. В 1.2.5 появилась поддержка 3.9 и 3.10. Exfat-nofuse же можно установить в последние ядра Linux, но по отзыву человека, мнению которого я доверяю, он падает. Может быть и не-форк тоже падает, но мне кажется что ванильный код может оказаться чистым, а в форке могли что-нибудь случайно испортить, так как там много изменено (например в этом коммите пишут «Добавили Samsung exfat 1.2.5 + наш код = 1.2.7»). Я хочу нормально поюзать не-форк, и посмотреть «а как он?».

Samsung постоянно меняет места публикации этого GPL-ного модуля: совсем не публиковать нельзя, потому что он явно используется в телевизорах и мобильниках, а делать это открыто - нехорошо по отношению к Майкрософту, который, скорее всего, предоставил спеки Exfat, и наверное очень обиделся, когда код «утёк». Ссылку на версию 1.2.5 я нашёл в вышеобозначенном коммите, а в этом ссылаются уже на совсем другое место: Samsung Galaxу source, который вследствие особенностей сайта http://opensource.samsung.com/ фиг скачаешь: нужно знать точный поисковой запрос (на каждую модель устройства публикуется отдельный архив исходников).

Жду предложений по Samsung exfat, а пока попользуюсь exfat-nofuse (который падает).

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 11)

А у меня всё-таки вопрос, чем плох exfat-fuse? (теоретический ответ в стиле fuse по идеи медленный, но не замерял - как-то неочень)

fornlr ★★★★★
()

оффтоп: exfat-fuse - оно работает, не падает? Если медленно то насколько?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от t184256

Я вот единственное сравнивал скорость записи на флешку с exfat-fuse и «стандартный fat32» - первый вариант оказался значительно быстрее (раза в два).

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

А теперь попробуй отмонтировать :-) Всё «ускорение» от «технологии отложенной записи» исчезает, когда ты пробуешь её отмонтировать.

По теме FUSE - у меня NTFS-3G спокойно себе записывал 50 Мб/сек с HDD на HDD при 35% загрузке одного ядра CPU. Немногие флешки могут позволить такую скорость записи.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)

Интересная история изложена, спасибо за увлекательное чтение.

Меня удивляет ваше упорное желание пользоваться сабжем при том обстоятельстве, что Samsung не хочет, чтобы вы им пользовались, и прилагает все усилия для того, чтобы у вас им пользоваться не получилось.

А серьёзно - для чего оно?

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

Пробовал конечно, я сравнивал честное время запись на флешку данных + время отмонтирования.

Там копейки были на umount этот - 30 секунд при записи папки с кучей файлов (распакованные исходники virtualbox), хотя само копирование заняло 9 минут.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)

У меня exfat используется на OpenWRT для торрентов. Можете себе представить, как там работает fuse (да горят в аду фанаты использовать fuse для нормального IO).

Я сам пилил самсунговский драйвер, чтобы собирался. Никаких проблем с правами не было (в нём ТУПО используется кусок vfat, все патенты связаны исключительно с самой exfat как явления, при этом exfat мало отличается от fat32).

В нём есть баг: больше одного раздела fat/exfat не подключает.
На ixbt.com «сборщики» OpenWRT его допилили - ищи, проси сорцы, конпеляй.

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

Я так понимаю речь была не о нужности самой файловой системы exfat (оно понятно), а о нужности именно сабжа - Samsung Exfat.

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

Ну, на этот вопрос я тоже ответил. 30% одного ядра при задачах, с которыми DOS справлялся (ни журнала, ни дефрагмментации... Ничего), это просто какой-то запредельный разврат.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Deleted

> некоторые считают, что без журнала, это тьма египетская

Подходит ко мне друг, даёт флешку, и говорит что нужно записать два файла. Я вставляю её, и начинаю записывать первый файл. Дождавшись, когда останется 20 секунд (Windows XP, а Linux в те годы я ещё не пробовал) я запускаю копирование второго файла. Друг говорит «а вот это ты зря сделал» (ему было пора уходить). На моих глазах 20 секунд превратились в 2 минуты.

Друг мне объяснил что флешки не умеют в два потока - точнее умеют, но с проседанием скорости. 1 файл в 100 мегабайт запишется очень быстро, а 100 файлов по 1 мегабайту - очень медленно (если одновременно, а если последовательно - то тоже быстро).

Вот поэтому у всех на флешках ext2, а не ext3 (то, о чём я рассказал, общеизвестно). Журнал делает запись на флешку файл и журнал одновременно, что даёт проседание в скорости.

ZenitharChampion ★★★★★
() автор топика
5 августа 2015 г.

Попробовал на седьмом CentOS-е ванильный Samsung Exfat. Наложил твой патч 1.2.4 → 1.2.5. Всё записывается от пользователя, и на видне потом читается, если монтировать со следующими параметрами:

moprone exfat_core
modprobe exfat_fs
mkdir /mnt/fleshka-exfat
mount -t exfat /dev/sdb1 -o rw,uid=1000,gid=1000,dmask=0002,fmask=0003 /mnt/fleshka-exfat

Взяты отсюда: https://wiki.debian.org/NTFS

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