Как LiveCD знают который драйверы использовать?

Есть ли ограничения на то, в каком компьютере можно использовать LiveCD? В противном случае, как LiveCD могут знать и иметь все драйверы для Ваших аппаратных средств, особенно если они не подключены к Интернету?

3
задан 11.07.2010, 14:21

4 ответа

Вы, вероятно, думаете об этом с точки зрения пользователя Windows / установщик / администратор. В Linux / мир бесплатного программного обеспечения, разработчики часто имеют к или принимают решение записать свои собственные драйверы. По сути, нет ограничений на распределение их (авторское право), и они уже написали код, чтобы выяснить, там ли аппаратные средства (как выше).

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

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

0
ответ дан 07.12.2019, 23:09

Каждое устройство PCI имеет и идентификатор поставщика и идентификатор устройства. И каждый драйвер устройства (модуль ядра) содержит список поддерживаемого "поставщика, которого идентификационные пары" ID:device т.е. ОС могут определить который драйвер загрузиться путем рассмотрения этих идентификационных пар.

Например, на Linux Вы видите идентификаторы системы, которую Вы используете в третьем столбце lspci -n вывод (разделенный двоеточием):

$ lspci -n | head -n 3
00:00.0 0600: 8086:7190 (rev 01)
00:01.0 0604: 8086:7191 (rev 01)
00:07.0 0601: 8086:7110 (rev 08)

Здесь 0x8086 идентификатор поставщика Intel (это - также название одного из их 16-разрядных процессоров, на которых x86 архитектура базируется).

И если Вы смотрите на

$ head -n 4 /lib/modules/<kernelversion>/modules.pcimap
# pci module         vendor     device     subvendor  subdevice  class      ...
shpchp               0xffffffff 0xffffffff 0xffffffff 0xffffffff 0x00060400 ...
matroxfb_base        0x0000102b 0x00000519 0xffffffff 0xffffffff 0x00000000 ...
matroxfb_base        0x0000102b 0x0000051b 0xffffffff 0xffffffff 0x00000000 ...

Вы видите таблицу модуля ядра драйвера устройства (первый столбец) и поддерживаемый поставщик и идентификатор устройства (2-й и 3-й столбец).

Идентификаторы устройства PCI сохраняются в идентификационный Репозиторий PCI.

9
ответ дан 07.12.2019, 23:09

Типичный дистрибутив Linux обеспечивает драйверы для устройств наиболее распространенного оборудования. Во время процесса загрузки компьютера LiveCD проанализирует Вашу определенную аппаратную конфигурацию и загрузит все необходимые драйверы оборудования. В большинстве случаев это работает довольно хорошее, но если у Вас есть редкое или очень старое устройство могут быть некоторые проблемы.

0
ответ дан 07.12.2019, 23:09

Тем же путем нормальная установка делает. Это смотрит на псевдонимы, обеспеченные различными модулями, и подходит их с текущими аппаратными средствами.

$ modinfo nouveau | grep ^alias:
alias:          pci:v000012D2d*sv*sd*bc03sc*i*
alias:          pci:v000010DEd*sv*sd*bc03sc*i*
$ modinfo cdc-ether | grep ^alias:
alias:          usb:v413Cp8184d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v413Cp8183d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v413Cp8147d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0930p1311d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0930p130Cd*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0930p130Bd*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1049d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1909d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp190Ad*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1906d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1905d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1904d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1902d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v0BDBp1900d*dc*dsc*dp*ic02isc0Aip00*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v07B4p0F02d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp9050d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp9032d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp9031d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp8007d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp8006d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp8005d*dc*dsc*dp*ic02isc06ip00*
alias:          usb:v04DDp8004d*dc*dsc*dp*ic02isc06ip00*
0
ответ дан 07.12.2019, 23:09

Теги

Похожие вопросы