LINUX.ORG.RU
решено ФорумTalks

Откуда дрова в Linux'е?


7

1

Беру относительно новый смартфон (2011), вставляю в USB, включаю режим модема, в Linux появляется интерфейс usb0, поднимаю через dhcpcd — работает. На работе вставляю в компьютер с Windows — не находит дров.

Та же история была с обычным 3G-модемом.

Я далек от устройства Linux, его разработки и т.п. Но чисто для собственного просвещения:

1. Откуда беруться дрова в линуксе (или как там они называются?..) Энтузиасты сами пишут и распространяют?

2. Как получается, что мне даже ничего не пришлось скачивать с интернета? То есть в системе по дефолту стоят дрова на всё оборудование, которое Linux поддерживает?

P.S. Просьба не флудить, а отвечать строго по теме. Тем, кто умеет читать — заранее спасибо.


Это называется «вендопроблемы».

anon_666
()

Из лесу вестимо

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

Kalashnikov ★★★
()

Откуда беруться дрова в линуксе

Из лесу, вестимо.

Мне кажется, мягко говоря, странным, что ты нафлудил на звезду и не знаешь элементарной матчасти. Дрова - в ядре. Их туда производители железа и сторонние программисты пихают.

max_udoff
()

оборудование, если оно делается хорошими людьми, общается с компом по неким стандартам.
если стандарт открыт, то нет проблем впихнуть его реализацию в дистрибутив.
если стандарт закрыт, но производитель сам делает дровишки, их впихивают в дистрибутив, если его концепция не предусматривает тотальной открытости и свободы кода.
если он закрыт и производитель оборудования жопится делать реализацию для линупсов, то энтузиасты занимаются реверс-инженерингом и делают свою реализацию. именно с такими и возникает подавляющее большинство проблем.

anonymous_sapiens ★★★★★
()

Надо сказать спасибо дяде Марку и дяде Леннарту, а то так бы и набирал pon/poff в консольке.

Lighting ★★★★★
()

в linux, видимо, некоторые универсальные, а в windows для каждой железяки, мб, свои.

jeuta ★★★★
()

1. В ядре.
Попробуйте почитать вывод find /lib/modules - это всё модули ядра, то есть драйверы.

2. Да. Производители чаще всего либо их не пишут, либо коммитят в основную ветку ядра, так что Вам остаётся запустить собранное мейнтейнерами ядро со всеми включёнными в виде модулей драйверами.
Драйвера для видеоркарт Nvidia, ATI и некоторых сетевых карт (Broadcom) в ядро не включены и должны быть скачаны с оф.сайта (но есть написанные энтузиастами встроенные в ядро свободные драйвера).
На ARM-устройствах всё тоже печально, там значительная часть драйверов берётся у производителей в виде несвободных блобов.

AITap ★★★★★
()

Как получается, что мне даже ничего не пришлось скачивать с интернета? То есть в системе по дефолту стоят дрова на всё оборудование, которое Linux поддерживает?

У вас точно звезда, или у меня с глазами плохо?

upcFrost ★★★★★
()

Да ядро и практически и есть дрова.

pi11 ★★★★★
()

на линуксе это CDC Ethernet и драйвер соответсвенно usbnet.ko

а на винде это rndis

собственно cdc ethernet и rndis два разных протокола и usb девайс один из них может и не поддерживать.

но если этот смартфон на основе линукса, то скорее всего он использует g_ether который поддерживает и rndis и cdc ethernet.

http://www.linux-usb.org/usbnet/

собственно usb cdc открытая спека и достаточно реализовать один раз драйвер для работы с этим классом устройств. как напирмер: mass storage на основе bulk only транспорта и все флешки, которые имплементируют mass storage будут работать.

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

или у меня с глазами плохо?

с глазами - в соседний тред

TheAnonymous ★★★★★
()

Да, в ядро Linux по умолчанию включены драйвера для всех устройств, которые он поддерживает. Не включены могут быть только несвободные драйвера (если дистрибутив проводит такую политику) или ещё нестабильные.

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

Разумеется, можно собрать своё ядро, оставив только то, что действительно нужно. Однако при условии, что обычно драйвера хранятся в виде подгружемых модулей и если они не активны (устройство не подключено), то занимают только дисковое пространство, а не оперативку, это нужно делать лишь в особых случаях.

KivApple ★★★★★
()

Да что вы пристали со звездой. Ну увели аккаунт у человека, с кем не бывает.

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

Какая высокая концентрация полезной информации! Спасибо.

toady2
() автор топика

То есть в системе по дефолту стоят дрова на всё оборудование, которое Linux поддерживает?

Да, за редким исключением. Причем, не только на диске, но и в памяти. Поэтому ядро занимает в памяти довольно много места.

В Windows же ядро модульное - драйвера в отдельных библиотеках и загружаются при необходимости.

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

Надо сказать спасибо дяде Марку и дяде Леннарту, а то так бы и набирал pon/poff в консольке.

Марк написал ядро?

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

Марк написал ядро?

тебе прямым текстом написали про user space

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

разница с .ko?

Ядро не может подгружать .ko по мере обнаружения оборудования. Что есть в памяти на момент загрузки - то и есть.

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

Ядро не может подгружать .ko по мере обнаружения оборудования

Да что ты говоришь? А как же тогда у меня подгружается модуль веб-камеры при её подключении?

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

А как же тогда у меня подгружается модуль веб-камеры при её подключении?

Вероятно, какой-то демон его подгружает. Но в каждом случае это индивидуально.

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

Ядро не может подгружать .ko по мере обнаружения оборудования.

спасибо - поржал, ссылку на документацию дать, или сам найдешь?

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

Ну вот. В линуксе значит есть гибкий контроль за подгрузкой драйверов, в то время как в венде хрен знает какие несменяемые механизмы.

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

Херню несёшь или у тебя корявый initrd, который все в память сует. По сути и там и там сейчас ядро - гибридное. И чем по сути отличается .sys от .ko?

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

Вероятно, какой-то демон его подгружает. Но в каждом случае это индивидуально.

А в винде это не сервис делает, ага. Подгружает всё это дело udev тащемтпа.

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