Nauka programowania device driverów

1

Witam
Przerabiam książkę "Linux Device Drivers 3 edycja" i chciałem sobie zainstalować na windowsie przez wirtualną maszynę linuxa tak aby móc się na czymś uczyć. Ale wpadłem gdzieś na forum na ten link: https://github.com/cirosantilli/linux-kernel-module-cheat że niby jak ściągnięmy gitem te pliki spod tego linka z masterowego repo to mamy wszystko i wirtualną maszynę i jakiegoś okrojonego linuxa dla potrzeb nauki programowania w kernelu. Także nic więcej nie trzeba. Brzmiało zachęcająco więc sklonowałem sobie repo masterowe. Niestety nie wiem dalej co mam zrobić z plikami które tam są ze względu na fatalny tutorial. Np. tłumaczą by przekompilować jądro linuxa:

cd kernel_module
./make-host.sh

Ale jak to wykonuję w windowsowym command linie to mi pojawia się komunikat "Nazwa "." nie jest rozpoznawalna jako polecenie wewnętrzne lub zewnętrzne, program wykonywalny lub plik wsadowy". Make'a mam zainstalowanego i ustawiony path. Mógłby ktoś doświadczony w linuxie zerknąć na tego linka i powiedzieć czy jest to godne uwagi czy może ściema jakaś i lepiej na własną rękę poszukac maszyny wirtualnej jak i jakiegoś linuxa?

0

mi się wydaje, że jest to jakiś skrypt który jądro linuxa buduje, ten gość na forum w wątku poświęconym jak się uczyć programować device drivery pisze, że nie poleca wirtualnej maszyny i ubuntu tylko to co niżej i odsyła do tego linka:

Buildroot, which is highly configurable, documented and maintained, also builds host QEMU so easy to patch it up (e.g. to add your own devices since out-of-tree devices are not possible yet ?)
QEMU emulator: small comprehensible source, ARM support, official Android emulator, kernel GDB support
Embedded distros can generate rootfs images smaller than 10MiB, and it becomes possible to understand the entire userland setup, which will make it easier to focus on the kernel.

I have made a setup to make everything as automated as possible: https://github.com/cirosantilli/linux-kernel-module-cheat

Więc może jest tu taki kuriozalny przypadek, że na początku trzeba pobrać QEMU/wirtualną maszynę i jakiegoś linuxa A. Odpalamy to w windowsie. Następnie ściągamy pliki z jego linka i z poziomu linuxa budujemy obraz innego linuxa B. Wychodzimy do windowsa. Kasujemy linuxa A i odpalamy linuxa B w QEMU/maszynie wirtualnej i uczymy się programować. Jak to tak jest to muszę powiedzieć, że autor jest conajmniej introwertykiem, bo powinien opisać w swoim tutorialu że taką kuriozalną procedurę trzeba wykonać ale zaletą jest to, że finalnie będziemy uczyli się programowac na jakimś małym obrazie linuxa B.:)

1

Zacznij od tego, że do developmentu Linuksa potrzebujesz raczej Linuksa na fizycznej maszynie. Chyba, że wolisz się bawić w incepcję i uruchamiać hypervisor w hypervisorze.

Dwa, koleś w ogólności dobrze radzi - maszyna na fizycznym hoście, z wirtualizacją umożliwi Ci zbudowanie i wytestowanie zmodyfikowanego jądra, a w razie błędów nie odetnie Cię od maszyny. Pytanie jeszcze jest takie: do czego ten sterownik chcesz pisać? Bo generalnie to w przypadku sterowników to sprawa wygląda tak, że trzeba najpierw rozumieć jak działa dany sprzęt, bo API kernela jest stosunkowo proste.

Edit: typo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1