|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
[shell] comando awk, creazione device
allora ho un problema con questo comando:
Codice:
major=$(awk "\\$2==\"$module\" {print \\$1}" /proc/devices)
e anche su questo:
mknod /dev/${device} c $major 0
Codice:
#!/bin/sh
module="module"
device="scull"
mode="664"
/sbin/insmod ./$module.ko $* || exit 1
rm -f /dev/${device}
major=$(awk "\\$2==\"$module\" {print \\$1}" /proc/devices)
mknod /dev/${device} c $major 0
ma questo la sapete già vero???? Questo è l'errore che mi restituisce: Codice:
awk: 0: unexpected character '\' awk: line 1: syntax error at or near == mknod: numero di argomenti errato Usare 'mknod --help' per ulteriori informazioni Dove sbaglio? eppure è esattamente l'esempio del professore. Se avete tanta gentilezza non è che mi date anche una spiegazione veloce veloce di quel comando per avere il major number? Help. Grazie.
__________________
Coltivate Linux. Windows si pianta da solo: Why Linux is better! -"Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe...?" -"Il cestino" |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Fermo restando che questo è un modo scorretto per creare i device node, fatti una stampa di $major prima del mknod -- conterrà sicuramente un array di un numero diverso da 1 elementi (0 elementi o più di 1).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
scusa se rispondo solo adesso ma per dovevo essere a scuola per provare, non avendo portato ancora il progetto a casa.
1. immaginavo non fosse un metodo scorretto, ma dobbiamo usare questo da direttive del professore e visto che anche nel libro di Rubini c'è spiegato in questo modo 2 ho provato come hai detto ed effettivamente dentro major non trovo nessun valore. come diavolo faccio allora a farmi dare un major number corretto? Grazie
__________________
Coltivate Linux. Windows si pianta da solo: Why Linux is better! -"Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe...?" -"Il cestino" |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Guarda in /proc/devices...tu cerchi la stringa "module", controlla che esista effettivamente.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Guarda ad es. misc_register in drivers/char/misc.c Comunque se il tuo professore vuole così...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#6 | |
|
Member
Iscritto dal: Oct 2007
Città: Terlago --> Trento
Messaggi: 88
|
Quote:
In ogni caso ora è perfetto, mi funziona tutto, creo ed elimino il device senza problemi, grazie mille. Ci sentiamo più avanti se ho altri problemi ma non credo visto che adesso devo solo fare gestione di memoria condivisa tra lettori e scrittori. Ciao e grazie ancora.
__________________
Coltivate Linux. Windows si pianta da solo: Why Linux is better! -"Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe...?" -"Il cestino" |
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 70
|
prova cosi'
major=$(awk "/\/\$2==/\"$module/\" {print /\/\$1}" /proc/devices)
__________________
Ceddu |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:39.










ma questo la sapete già vero???? 









