kernel /dev en /proc -> Hoe zit het nu??

Pagina: 1
Acties:

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Topicstarter
Ik heb een paar brandende kwesties, waar ik al een tijdje mee zit. De antwoorden ben ik echter nog niet tegengekomen. (na zoeken)

Ik heb nu inmiddels al een aantal devices handmatig aan de praat gekergen waaronder een (highpoint 370) raid 0 array waarvan ik nu ook kan booten. De blockdevices heten /dev/ataraid/disc0/partX .
* Hoe bepaal / weet ik in het algemeen hoe de devices (gaan) heten in de /dev directory?
* Waarom heten deze partities niet gewoon /dev/sdaX ?
* In hoeverre is de /dev directory een echte directory? Wat blijft bestaan na een reboot en is kernel onafhankelijk en wat wordt gemaakt bij het booten / laden van modules?
* Hoe kom ik er eenvoudigweg achter of een bepaald apparaat wordt ondersteund in bijvoorbeeld kernelversie 2.4.x? Hoe bepaal ik in successie:
//* wat ik moet aanvinken in het kernel configuratiemenu
//* hoe de betreffende module gaat heten (blabla.o?)
//* waar ik het device kan vinden in de /dev directory
of andersom:
//*een of andere howto vertelt me dat ik (bijvoorbeeld) videodev.o nodig heb-> Wat moet ik nu in godsnaam aanzetten in de kernelconfig? :?

Natuurlijk kan ik alles vinden in howto's en documentatie, maar daar ligt het probleem: ik verzuip in de hoeveelheid beschikbare info en weet niet waar ik moet beginnen met deze vragen.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


  • _nethack
  • Registratie: September 2000
  • Laatst online: 10-05 20:47

_nethack

We're all MAD here

Hoe je /dev werkt hangt er van af of je devfs gebruikt of niet.
Als je dat niet gebruikt dan is /dev gewoon een directory in je root fs, met daarin device nodes die je zelf kunt aanmaken en verwijderen (man mknod)
Gebruik je echter devfs, dan is /dev een virtueel filesystem (net zoals proc) waarin device nodes verschijnen of verdwijnen afhankelijk van de hardware support in je kernel en de geladen modules.

Sometimes you just have to sit back, relax, and let the train wreck itself


  • Wilke
  • Registratie: December 2000
  • Laatst online: 10-05 22:17
Het korte antwoord: LEZEN.

Dat is de enige manier om er achter te komen in het algemeen. Vermoedelijk zul je het toch met die HOWTO's en dergelijke moeten doen..

Als je teveel informatie hebt, dan moet je leren selecteren, scan gewoon snel door wat je nodig denkt te hebben, negeer de rest, kom je er dan nog niet uit, dan moet je wellicht toch iets beter lezen.

Natuurlijk kost dat allemaal tijd, maar ja, zoals iemand al eens zei: Linux is alleen gratis wanner je tijd gratis is - of, natuurlijk, wanneer je niet te veel van de gebaande wegen afwijkt en dingen doet die 'standaard' in distro's zitten/waar ze voor gemaakt zijn, en geen half-ondersteunde hardware hebt (ik neem aan dat je die RAID-controller handmatig hebt moeten installeren omdat je distro hem niet zelf herkende?)

Verwijderd

* Hoe bepaal / weet ik in het algemeen hoe de devices (gaan) heten in de /dev directory?
Eehhh, kernel docs, uitproberen, logisch nadenken ?
* Waarom heten deze partities niet gewoon /dev/sdaX ?
Omdat sdXY bedoeld is voor scsi disken, en niet voor een ide raid array.
* In hoeverre is de /dev directory een echte directory? Wat blijft bestaan na een reboot en is kernel onafhankelijk en wat wordt gemaakt bij het booten / laden van modules?
code:
1
2
misato [r3boot]$ ls -lad /dev 
drwxr-xr-x    1 root     root            0 Jan  1  1970 /dev

't is een gewone directory, nix bijzonders mee aan de hand. :P Wat er blijft staan is afhankelijk of je van devfs of MAKEDEV gebruikt maakt:
- devfs: Automatisch, niet-persistent, word on-the-fly ge-update
- MAKEDEV: Handmatig, persistent.
In feite is alles in /dev een file-based interface waarmee userland (alle applicaties) kan praten met de kernel. Kernel onafhankelijk zal het dus nooit zijn...
* Hoe kom ik er eenvoudigweg achter of een bepaald apparaat wordt ondersteund in bijvoorbeeld kernelversie 2.4.x? Hoe bepaal ik in successie:
//* wat ik moet aanvinken in het kernel configuratiemenu
//* hoe de betreffende module gaat heten (blabla.o?)
//* waar ik het device kan vinden in de /dev directory
of andersom:
//*een of andere howto vertelt me dat ik (bijvoorbeeld) videodev.o nodig heb-> Wat moet ik nu in godsnaam aanzetten in de kernelconfig? :?
Kort antwoord: De juiste driver includen.
Lang antwoord: Dit is iets wat zeker niet makkelijk is, maar wat met behulp van ervaring makkelijker word. Wat leuk is voor de oefening is de output nemen van "dmesg" en daarmee de juiste drivers terugvinden in make menuconfig. Hierbij is het ook van belang dat je de help van de verschillende drivers doorleest. Daarin staat vaak hele nuttige informatie. (onder andere hoe de .o module genoemd word...)

  • Wilke
  • Registratie: December 2000
  • Laatst online: 10-05 22:17
Nu nog een antwoord op de meeste vragen:

[nohtml]
irondog schreef op 03 februari 2003 @ 18:08:
Hoe bepaal / weet ik in het algemeen hoe de devices (gaan) heten in de /dev directory?
Niet, denk ik. Ja, uit de HOWTO's e.d. dus :)
Waarom heten deze partities niet gewoon /dev/sdaX ?
Omdat het geen SCSI-harddisks zijn, maar schijven in een IDE raid, en 'sda' staat voor 'de eerste SCSI-harddisk'.
Verder zit je met een 'overgangsfase' naar betere/langere/veelzeggender devicenamen. Daardoor bestaan zowel de 'oude', vaak cryptische omschrijvingen, als de nieuwe, intuitievere en in een hierarchie (directories) opgedeelde structuur.
In hoeverre is de /dev directory een echte directory? Wat blijft bestaan na een reboot en is kernel onafhankelijk en wat wordt gemaakt bij het booten / laden van modules?
Deze is dus lastig, als je devfs hebt (het nieuwe systeem) is /dev puur virtueel, en bepaal je via /etc/devfsd.conf wat (ook na rebooten) steeds de instellingen moeten zijn. Dit is o.a. gedaan om ruimte (m.n. belangrijk bij embedded devices) te besparen. Je hebt namelijk geen waslijst van overbodig devices (die elk een stukje HD-ruimte nemen) meer nodig.
Bij het oude systeem 'bestaat' /dev dus wel echt op de HD, en neemt ook elk device een beetje ruimte (zelfs de niet-bestaande...).
Hoe kom ik er eenvoudigweg achter of een bepaald apparaat wordt ondersteund in bijvoorbeeld kernelversie 2.4.x? Hoe bepaal ik in successie:
Zoeken met google op '<naam van device> Linux' :?
//* wat ik moet aanvinken in het kernel configuratiemenu
//* hoe de betreffende module gaat heten (blabla.o?)
Niet, helaas. Da's een beetje vervelend soms, maar meestal is het of heel simpel te raden, of uit de HOWTO duidelijk, of is uit de menustructuur onmiddelijk duidelijk waar je moet zoeken. Heb dit nog nooit als een 'probleem' ervaren, om eerlijk te zijn.
//* waar ik het device kan vinden in de /dev directory
Is dus bij het 'nieuwe' systeem vrijwel altijd heel simpel, check alle directories in /dev, daar staan alleen alle apparaten/categorieen bij die in jouw computer voorkomen, als je het dan niet binnen 30 seconden hebt, ben je niet al te slim volgens mij ;)

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Topicstarter
Wilke schreef op 03 februari 2003 @ 18:30:

Omdat het geen SCSI-harddisks zijn, maar schijven in een IDE raid, en 'sda' staat voor 'de eerste SCSI-harddisk'.
Verder zit je met een 'overgangsfase' naar betere/langere/veelzeggender devicenamen. Daardoor bestaan zowel de 'oude', vaak cryptische omschrijvingen, als de nieuwe, intuitievere en in een hierarchie (directories) opgedeelde structuur.
Mooi, duidelijk antwoord.
Deze is dus lastig, als je devfs hebt (het nieuwe systeem) is /dev puur virtueel,

...

Bij het oude systeem 'bestaat' /dev dus wel echt op de HD, en neemt ook elk device een beetje ruimte (zelfs de niet-bestaande...).
Mooi, ik gebruik devfs :).
Zelf aangevinkt maar niet wetend waarom (Gelezen dat dat moest :))
Ik neem aan dat je die RAID-controller handmatig hebt moeten installeren omdat je distro hem niet zelf herkende?)
Natuurlijk is het mounten van slices op een door de kernel ondersteunde Raid controller niet zo moeilijk. (ik bedoel als je bijvoorbeeld boot van een andere schijf en daar je rootdir op hebt)
Het installeren van een bepaalde distributie op een Raid systeem en er van booten is een ander verhaal. Je bent dan gewoon afhankelijk van de installatie-methode's die aangeboden worden door de distributie.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]

Pagina: 1