crazyfrog Skrevet 2. mars 2011 Del Skrevet 2. mars 2011 Da er jeg igang med ett prosjekt for og få en sata driver til og fungere på min ESXi server. Problem stilling. Hovedkort har en Marvell se6121 chip driver som ikke støttes i linux. Skal visst være ett kjent problem link Så det som er målet mitt er og få esxi'en til og registrere driver og greie og lese disker. Helst i RAID. (Har 5 disker på 250GB som jeg skulle hatt i RAID 5) Her er det jeg har av info om kernel Kernel : VMKernel 4.1.0 Build : SMP Release build-260247 BusyBox v1.9.1-VMware-visor-klnext-2965 (2010-04-19 12:53:48 PDT) multi-call binary Her stopper min kunnskap når det kommer til programmering og kompilering Denne skal vel kompileres til en .o ? http://git.kernel.or...b42f6e834cd39cd Setter pris på all hjelp. Har søkt og søkt og finner masse stoff, men det er tydeligvis folk som kan C som skriver det meste Det stopper fort opp for meg kan du si. På forhånd takk. PS. Vennligst flytt post hvis i feil del av forum Lenke til kommentar
crazyfrog Skrevet 4. mars 2011 Forfatter Del Skrevet 4. mars 2011 Ingen som har noen gode forslag ?? Trenger nå hovedsaklig hjelp til kompileringen av selve ahci.c filen. any takers ?? Lenke til kommentar
Topguy Skrevet 11. mars 2011 Del Skrevet 11. mars 2011 For at en driver skal kunne kompilerer til en lastbar kjerne modul (.ko) så krever det at man har tilgang til kildekoden til den kjernen man skal kompilere for. Man trenger nødvendighvis ikke all kildekoden men man trenger header-filene (.h) som definerer alle grensesnitt og definisjoner. Så de blir første spørsmål, får du tak i kildekode (kernel-source eller kernel-headers) til Vmware sin "VMKernel 4.1.0" ? Lenke til kommentar
kernel Skrevet 4. april 2011 Del Skrevet 4. april 2011 Setter pris på all hjelp. Har søkt og søkt og finner masse stoff, men det er tydeligvis folk som kan C som skriver det meste Det stopper fort opp for meg kan du si. Da er det kanskje feil forum å spørre, for jeg kan også C. Alle Linux drivere er skrevet i C, og alle Windows drivere ditto (sist jeg sjekket). Jeg kjenner ikke til VMware og VMkernel 4.1.0, og akter ikke å titte på linken din, men her følger eksempel på hvordan du kompilerer en Linux driver. Først finner vi kernel versjon på maskinen $ uname -r 2.6.17-12-generic så laster vi ned kernel header filer, som på Ubuntu er en en-linjer $ sudo apt-get install kernel-headers-2.6.17-12 du må nå bli konge på maskinen (dvs. root bruker) $ sudo bash hvis du programmerer driver'n selv, så trengs to filer # emacs Makefile # emacs mod_example.c det slipper du, så da er det bare å skrive 'make': # make make -C /lib/modules/2.6.17-12-generic/build M=/usr/src modules make[1]: Entering directory `/usr/src/linux-headers-2.6.17-12-generic' CC [M] /usr/src/mod_example.o Building modules, stage 2. MODPOST CC /usr/src/mod_example.mod.o LD [M] /usr/src/mod_example.ko make[1]: Leaving directory `/usr/src/linux-headers-2.6.17-12-generic' make filen ser noe ala sånn ut obj-m = mod_example.o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean resultatet av kompilering er mod_example.ko, og du kan bruke modinfo til å sjekke driver'n (fjernet navet mitt på author): # modinfo mod_example.ko filename: mod_example.ko license: GPL author: xxxxxxxxx description: Example driver vermagic: 2.6.17-12-generic SMP mod_unload 586 REGPARM gcc-4.1 depends: srcversion: C1805F0A69B3AC8D81261C1 for å laste denne driver'n manuelt # insmod mod_example.ko for å fjerne driver'n # rmmod mod_example.ko for å installere driver'n slik at den lastes automatisk ved oppstart, så kan du prøve # make install for å se hvilke drivere som er lastet, sjekk lsmod eller kikk i /proc/modules. Meldinger driver'n skriver, kan du se via dmesg eller titt i /var/log/kern.log. ...meeeen hvis du ikke har root bruker på maskinen, så kommer du ingen vei. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå