1

Тема: Тренувальне залізо для новачка

Хочу спробувати навчитися писати драйвери під Лінукс,
але для цього потрібна окрема машина, яку не шкода втратити.
Знаю, що є Raspberry Pi, але чим він краще звичайного старого вживаного ноутбука?
І взагалі що краще в таких випадках обирати і чому?

2

Re: Тренувальне залізо для новачка

Teg Miles написав:

Хочу спробувати навчитися писати драйвери під Лінукс,
але для цього потрібна окрема машина, яку не шкода втратити.

Чому? Навіщо? Які це ви такі драйвери хочете одразу писати?

3

Re: Тренувальне залізо для новачка

wander написав:
Teg Miles написав:

Хочу спробувати навчитися писати драйвери під Лінукс,
але для цього потрібна окрема машина, яку не шкода втратити.

Чому? Навіщо? Які це ви такі драйвери хочете одразу писати?

Для вай-фай адаптера Асус:)

Подякували: leofun011

4

Re: Тренувальне залізо для новачка

Все ще не розумію, навіщо вам тоді

Teg Miles написав:

потрібна окрема машина, яку не шкода втратити

?
Якщо ви щось і можете втратити (в теорії), то це вай-фай адаптер Асус, для якого будете писати драйвер.
І чому саме для вай-фай адаптера під Лінукс? Невже до вас не написали?

5

Re: Тренувальне залізо для новачка

wander написав:

Все ще не розумію, навіщо вам тоді

Teg Miles написав:

потрібна окрема машина, яку не шкода втратити

?
Якщо ви щось і можете втратити (в теорії), то це вай-фай адаптер Асус, для якого будете писати драйвер.
І чому саме для вай-фай адаптера під Лінукс? Невже до вас не написали?

Є один неофіційний драйвер, яким я раніше користувався.
Але мені цікаво чи зможу я займатися системним програмуванням,
плюс такий драйвер можна до свого резюме додати, як pet-project.

6

Re: Тренувальне залізо для новачка

virtualbox, QEMU

Подякували: Teg Miles1

7

Re: Тренувальне залізо для новачка

reverse2500 написав:

virtualbox, QEMU

Хто з них з'їдає менше ресурсів?

8

Re: Тренувальне залізо для новачка

однаково, залежить від того яку ОС ставити, то ж емуляція

9

Re: Тренувальне залізо для новачка

Teg Miles написав:
reverse2500 написав:

virtualbox, QEMU

Хто з них з'їдає менше ресурсів?

qemu+kvm

Подякували: leofun01, Teg Miles, ReAl3

10

Re: Тренувальне залізо для новачка

Teg Miles написав:

Хочу спробувати навчитися писати драйвери під Лінукс,
але для цього потрібна окрема машина, яку не шкода втратити.
Знаю, що є Raspberry Pi, але чим він краще звичайного старого вживаного ноутбука?
І взагалі що краще в таких випадках обирати і чому?

У випадку драйверів залізо для тестування має бути на тій самій архітектурі що й залізо на яке пишете.

Подякували: Teg Miles1

11

Re: Тренувальне залізо для новачка

Teg Miles написав:
wander написав:
Teg Miles написав:

Хочу спробувати навчитися писати драйвери під Лінукс,
але для цього потрібна окрема машина, яку не шкода втратити.

Чому? Навіщо? Які це ви такі драйвери хочете одразу писати?

Для вай-фай адаптера Асус:)

Оххх....
Такий драйвер можна буде додати до резюме на рівень тімліда саме по лінуксовому ядру.

Треба стандарт 802.11 почитати, а він станом на зараз мабуть вже більше 4 тисяч сторінок. Знати треба «багато про ядро/драйвери взагалі» і ще добре саму підсистему ядра mac80211 ну й мережеву.

Для початку «з нуля» треба щось простіше, кнопочки/світлодіодики, пристрої на SPI/I2C, самому написати якийсь драйвер для сканування матричної клавіатури (хоча є готовий універсальний для такого, то потім його через device tree прив'язати).
Для цього щось типу RaspberryPi/OrangePi буде зручнишим.

Подякували: Teg Miles, leofun012

12

Re: Тренувальне залізо для новачка

ReAl написав:
Teg Miles написав:
wander написав:

Чому? Навіщо? Які це ви такі драйвери хочете одразу писати?

Для вай-фай адаптера Асус:)

Оххх....
Такий драйвер можна буде додати до резюме на рівень тімліда саме по лінуксовому ядру.

Треба стандарт 802.11 почитати, а він станом на зараз мабуть вже більше 4 тисяч сторінок. Знати треба «багато про ядро/драйвери взагалі» і ще добре саму підсистему ядра mac80211 ну й мережеву.

Для початку «з нуля» треба щось простіше, кнопочки/світлодіодики, пристрої на SPI/I2C, самому написати якийсь драйвер для сканування матричної клавіатури (хоча є готовий універсальний для такого, то потім його через device tree прив'язати).
Для цього щось типу RaspberryPi/OrangePi буде зручнишим.

Який жах, я ж думав, що це просто адаптер і можна буде більш-менш швиденько з усім розібратися:).
Зараз Qemu налаштував і граюся. Raspberry гарна річ, але коштує грошей.
До речі, ось по цій книжці зараз працюю Linux Kernel Programming Kaiwan N. Billimoria Second Edition (2024).
Там з нуля доволі детально і послідовно все описано. Виходить, що розділи з написанням драйверів(модулів), —
це лише вступ до головної теми цієї книги.

Подякували: leofun011

13

Re: Тренувальне залізо для новачка

Ще поглянь сюди:
Книжка Linux Device Drivers - 3 ed.
Вона стара і деякі речі помінялися. Але вона добре починає від основ.
І є репозиторій з усіма прикладами з книжки, який постійно оновлюється для роботи з сучасним ядром.

Щодо WiFi — чим складніший адаптер, тим більше він бере на себе, тим менше всього треба зробити, щоб вбудуватися у підсистему mac80211. Чим простіший, тим більше всього робиться у його драйвері, але у будь-якому разі немало.

Подякували: Teg Miles, leofun012

14

Re: Тренувальне залізо для новачка

ReAl написав:

Ще поглянь сюди:
Книжка Linux Device Drivers - 3 ed.
Вона стара і деякі речі помінялися. Але вона добре починає від основ.
І є репозиторій з усіма прикладами з книжки, який постійно оновлюється для роботи з сучасним ядром.

Щодо WiFi — чим складніший адаптер, тим більше він бере на себе, тим менше всього треба зробити, щоб вбудуватися у підсистему mac80211. Чим простіший, тим більше всього робиться у його драйвері, але у будь-якому разі немало.

Знаю про цю книжку, але автор там працює з ядром 2.6, тому вирішив щось новіше для початку знайти.

15

Re: Тренувальне залізо для новачка

Ну от приклади всі готові щонайменше для 5.10

16

Re: Тренувальне залізо для новачка

ReAl написав:

Ну от приклади всі готові щонайменше для 5.10

А в тій книзі, що я зараз читаю, ядро 6.1.25 плюс купа корисних порад щодо сучасних програм і ресурсів.

17

Re: Тренувальне залізо для новачка

Ну тут залежить від того, що зрештою робити, куди орієнтуватися.

В Embedded використовуються старіші ядра і довше за них тримаються, бо часто downstream-ні ядра. Виробник специфічних SoC (або основи SoC у вигляді процесора та набору стандартних IP для стандартних інтерфейсів — у нас до цієї основи SoC додавали свій набір специфічних IP та DSP) додає свої драйвери які не йдуть в upstream, потім інші додають до них свої драйвери.
У нас у проєкті перехід з 4.19 на 5.10 відбувся влітку 23-го. І то отримали від ST недопиляне, в якому не всі потрібні нам драйвери працювали.
І думаю це так і залишиться надовго, якщо не назавжди. Воно коли automotive просертифікується, то щось кардинально міняти ніхто не хоче. Максимум, backport чогось принципового по безпеці з новішого ядра у старе. Нещодавно робили.

https://replace.org.ua/extensions/om_images/img/680e81220e418/bdb162e38b00547dbdb062bab1ffda06.jpg

Подякували: leofun011

18

Re: Тренувальне залізо для новачка

ReAl написав:

Ну тут залежить від того, що зрештою робити, куди орієнтуватися.

В Embedded використовуються старіші ядра і довше за них тримаються, бо часто downstream-ні ядра. Виробник специфічних SoC (або основи SoC у вигляді процесора та набору стандартних IP для стандартних інтерфейсів — у нас до цієї основи SoC додавали свій набір специфічних IP та DSP) додає свої драйвери які не йдуть в upstream, потім інші додають до них свої драйвери.
У нас у проєкті перехід з 4.19 на 5.10 відбувся влітку 23-го. І то отримали від ST недопиляне, в якому не всі потрібні нам драйвери працювали.
І думаю це так і залишиться надовго, якщо не назавжди. Воно коли automotive просертифікується, то щось кардинально міняти ніхто не хоче. Максимум, backport чогось принципового по безпеці з новішого ядра у старе. Нещодавно робили.

https://replace.org.ua/extensions/om_images/img/680e81220e418/bdb162e38b00547dbdb062bab1ffda06.jpg

Embedded — дуже крута тема, але й дуже складна.
Спочатку треба хоча б із десктопним Лінуксом розібратися.

19

Re: Тренувальне залізо для новачка

ReAl написав:

Щодо WiFi — чим складніший адаптер, тим більше він бере на себе, тим менше всього треба зробити, щоб вбудуватися у підсистему mac80211. Чим простіший, тим більше всього робиться у його драйвері, але у будь-якому разі немало.

Зважаючи, що це адаптер asus то скоріше всього то якийсь RTL чип в базі, і добре якщо на нього є вже драйвер де можна підгледіти етап завантаження бінарника firmware, тому скоріше всього його чекає другий варіант.

20

Re: Тренувальне залізо для новачка

ReAl написав:

Для початку «з нуля» треба щось простіше, кнопочки/світлодіодики, пристрої на SPI/I2C,

Можна запиляти управління led-підсвіткою компа, може якесь уніфіковане API під це діло.