J'ai installé sur une machine de test dédiée (plus prudent) une distribution Aurox 11 prise dans un magazine. L'installation s'est déroulée facilement. A condition d'adopter le bureau GNOME, la distribution me paraît puissante et agréable. Je vais donc creuser un peu.
Evidemment, je veux l'internet !
Ma Livebox a été mise depuis longtemps en service sous un autre système d'exploitation très connu :-).
Elle est opérationnelle. Je souhaite donc m'y connecter avec la clef USB livrée avec
(la Livebox est une SAGEM et la clef wifi est une SAGEM WL5061S).
1/ Reconnaître le constructeur de la livebox.
Le côté droit de la Livebox est spécifique au constructeur.
De plus si SAGEM est marqué sur le coin supérieur gauche de l'étiquette
sous la base c'est une SAGEM, sinon c'est une INVENTEL.
Pour ceux qui ont un accès internet, tous les détails sur
cette page.
NOTA : pour se mettre à linux, mieux vaut disposer d'un ordinateur capable de se connecter
à l'internet, même sous un autre système d'exploitation.
2/ Si c'est une SAGEM: lien EXCELLENT =
http://www.trustonme.net/didactels/311.html
3/ On essaie d'appliquer
Première difficulté : il y a bien un répertoire
/Windows/Wifi/Utility
dans le CD d'installation de la Livebox mais point de fichier drivers.zip dedans... ni nulle part ailleurs dans le CD !
En cherchant dans les forums, on peut découvrir que, faute de pilote linux pour la clef wifi USB,
il est possible d'utiliser le pilote windows qui peut être chargé ici:
http://lgsagem.free.fr/drivers_fast3202.htm,
mais que pour le faire marcher sous l'adaptateur ndiswrapper, il faut ne pas avoir l'option :
Use 4kb stacks
du noyau linux.
Je vais donc avoir besoin d'ajouter ndiswrapper. Dans le menu GNOME,
Environnement de bureau / Ajouter / Supprimer des applications ne montre que les applications détectées initialement dans les CD d'installation. N'offfre pas le moyen d'aller en chercher de nouveaux.
Sauf que fugitivement, pendant le lancement
de la gestion de paquetages la fenêtre portant ce nom montre un bouton "Mettre à jour" non grisé.
J'insère le DVD, je relance et je clique au vol sur ce bouton.
Une fenêtre "Préparation de la mise à jour du système" s'affiche pour me prévenir qu'il faut vérifier les dépendances et que cela peut durer "plusieurs minutes".
10 minutes sans progrès, je clique sur Annuler, rien ne se passe. Je ferme la fenêtre en cliquant sur la croix.
Je fais donc : Applications / Outils de système / Navigateur de fichiers puis
les double clics sur :
- Poste de travail
- puis lecteur de CD-DVD
- puis Extras
- puis Drivers
- Puis ADSL
qui me conduisent à un ensemble de fichiers aux noms totalement ésotériques, inexploitable.
Un clic droit, et Propriétés, fournit quelques infos, non pertinentes ici.
Je remonte et, au lieu de Extras, j'ouvre cette fois
le dossier SRPMS.
Dans le menu, Affichage / Voir en tant que liste,
les fichiers sont par ordre alphabétique,
On trouve ndiswrapper sous la forme :
ndiswrapper-1.2-11.0.aur.1.src.rpm 151,7 ko
... je devine version 1.2 sous forme de sources à compiler ?
Clic droit dessus, ouvrir avec "Install package" donne un message d'erreur :
Le fichier "/media/cdrom/SRPMS/ndiswrapper-1.2-11.0.aur.1.src.rpm" est un RPM source qui ne
peut pas être installé avec system-config-packages.
Il invite à "Valider" pour referme la boîte de message.
Je le savais !
Bon mais alors faut sans doute le compiler... Comment ???
D'après mes lectures de forums, il faut sans doute décompresser puis installer.
D'abord créer un dossier sur le DD pour l'y mettre.
J'ouvre une nouvelle instance du navigateur du fichiers pour ne pas perdre de vue mon ndiswrapper et dedans,
doubles-clics successifs sur :
- Poste de travail
- usr
- src
- Redhat
- SOURCES
(si ces 2 derniers dossiers n'y étaient pas, il faudrait les créer).
Dans mon cas, ils existent et... SOURCES est vide.
Je retourne dans la 1ère instance de navigateur de fichiers.
Clic droit sur le fichier ndiswraper....src.rpm,
ouvrir avec "gestionnaire d'archives",
une fenêtre s'ouvre et montre le contenu, soit deux fichiers :
Commande (le # ne se tape pas, c'est le prompt!) | Commentaire |
# cd / | pour se retrouver à la racine |
# cd usr/src/redhat/SOURCES | pour aller dans SOURCES (attention aux majuscules et minuscules) |
# ls | pour voir ce qu'il y a dans le dossier, ça facilite le travail |
# cd ndiswrapper-1.2.tar.gz_FILES | pour entrer dans ce dossier |
# cd ndiswrapper-1.2 | pour entrer dans ce dossier |
Bon, nous y sommes. On tape maintenant:
# make
Et cela produit un long discours que voici :
make -C driver
make[1]: Entering directory `/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILE S/ndiswrapper-1.2/driver'
make -C /lib/modules/2.6.12-11.0.aur.2/build SUBDIRS=/usr/src/redhat/SOURCES/ndi swrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver \
NDISWRAPPER_VERSION=1.2 \
EXTRA_VERSION= modules
make[2]: Entering directory `/usr/src/kernels/2.6.12-11.0.aur.2-i686'
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/hal.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/iw_ndis.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/loader.o
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/load er.c: In function 'ndiswrapper_add_pci_device':
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/load er.c:202: attention : ignoring return value of 'pci_set_power_state', declared w ith attribute warn_unused_result
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/load er.c: In function 'register_devices':
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/load er.c:963: attention : assignment from incompatible pointer type
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/misc_funcs.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/ndis.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/ntoskernel.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/pe_linker.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/proc.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/wrapper.o
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c: In function 'miniport_halt':
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c:293: attention : ignoring return value of 'pci_set_power_state', declared with attribute warn_unused_result
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c: In function 'ndiswrapper_suspend_pci':
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c:737: attention : ignoring return value of 'pci_set_power_state', declared with attribute warn_unused_result
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c: In function 'ndiswrapper_resume_pci':
/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/driver/wrap per.c:759: attention : ignoring return value of 'pci_enable_device', declared wi th attribute warn_unused_result
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/usb.o
CC [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/divdi3.o
LD [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/ndiswrapper.o
Building modules, stage 2.
MODPOST
CC /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/ndiswrapper.mod.o
LD [M] /usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES/ndiswrapper-1.2/d river/ndiswrapper.ko
make[2]: Leaving directory `/usr/src/kernels/2.6.12-11.0.aur.2-i686'
*** WARNING: Kernel is compiled with 4K stack size option (CONFIG_4KSTACKS); many Windows drivers will not work with this option enabled. Disable CONFIG_4KSTAC KS option, recompile and install kernel
make[1]: Leaving directory `/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES /ndiswrapper-1.2/driver'
make -C utils
make[1]: Entering directory `/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILE S/ndiswrapper-1.2/utils'
cc -Wall -g -DNDISWRAPPER_VERSION=\"1.2\" -c -o loadndisdriver.o loadndisdriv er.c
gcc -o loadndisdriver loadndisdriver.o
make[1]: Leaving directory `/usr/src/redhat/SOURCES/ndiswrapper-1.2.tar.gz_FILES /ndiswrapper-1.2/utils'
Hum, le WARNING ne me dit rien de bon...
En fait, il confirme ce que j'ai déjà lu sur un forum...
Il vaut peut-être mieux ne pas faire le "make install"
dans ces conditions.
Hmmm...
Grâce à un autre ordinateur connecté à l'internet, sous un autre système d'exploitation bien connu, je trouve sur :
www.linux-france.org/article/kafkafr/node39.html
une explication claire de la compilation du kernel.
Tant que j'y suis, je m'adonne à la lecture de forums où j'apprends
que ndiswrapper version 1.2 (livré avec Aurox 11) est instable avec la livebox et qu'il vaut mieux utiliser la version 1.1rc1...
je fonce donc sur sourceforge.net pour y télécharger cette dernière.
Surprise : là, ils en sont à la 1.7 déclarée stable et la 1.6 a déjà corrigé des erreurs responsables de crash. Je télécharge donc les deux pour le même prix : la 1.1 et la 1.7 qui se présente sous la forme de fichiers nommés
ndiswrapper-1.1.tar.gz et ndiswrapper-1.7.tar.gz.
Je reviens sur ma machine linux, je colle ces deux fichiers dans le répertoire usr/src/redhat/SOURCES pour les avoir sous la main.
Et je vais m'intéresser à la compilation du kernel.
Cela commence mal, le guide téléchargé sur linux-france suppose que le répertoire courant est :
usr/src/linux
qui n'existe pas sur ma machine. Je trouve à la place un
/usr/src/kernels/2.6.12-11.0.aur.2-i686
qui contient un fichier makefile... Hmmmmmmmmmmmmm...
On va tenter là ??
Attention, il y a aussi un :
/usr/src/kernels/2.6.12-11.0.aur.2-i686/kernel
qui me fait hésiter.
Non, je reste dans /usr/src/kernels/2.6.12-11.0.aur.2-i686
J'ouvre un terminal et je fais dedans:
# make config
ce qui fait entrer dans la configuration en mode texte avec une liste de questions dont certaines sont en chinois, heureusement qu'il y a les options par défaut, jeu de patience ... 1h30 pour y répondre.
Vers la fin on arrive à:
*
* Kernel hacking
*
Show timing information on printks (PRINTK_TIME) [N/y/?]
Kernel debugging (DEBUG_KERNEL) [Y/n/?]
Magic SysRq key (MAGIC_SYSRQ) [Y/n/?]
Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG_BUF_SHIFT) [17]
Collect scheduler statistics (SCHEDSTATS) [N/y/?]
Debug memory allocations (DEBUG_SLAB) [N/y/?]
Spinlock debugging (DEBUG_SPINLOCK) [Y/n/?]
Sleep-inside-spinlock checking (DEBUG_SPINLOCK_SLEEP) [Y/n/?]
kobject debugging (DEBUG_KOBJECT) [N/y/?]
Highmem debugging (DEBUG_HIGHMEM) [Y/n/?]
Compile the kernel with debug info (DEBUG_INFO) [Y/n/?]
Debug Filesystem (DEBUG_FS) [Y/n/?]
Compile the kernel with frame pointers (FRAME_POINTER) [N/y/?]
Check for stack overflows (DEBUG_STACKOVERFLOW) [Y/n]
Kprobes (KPROBES) [Y/n/?]
Stack utilization instrumentation (DEBUG_STACK_USAGE) [Y/n/?]
Page alloc debugging (DEBUG_PAGEALLOC) [N/y/?]
Use 4Kb for kernel stacks instead of 8Kb (4KSTACKS) [Y/n/?] n
*
* Security options
*
# make dep ; make clean
et cela renvoie ceci :
*** Warning: make dep is unnecessary now.
fs/hostfs/Makefile:11: arch/um/scripts/Makefile.rules: Aucun fichier ou répertoire de ce type
make[2]: *** Pas de règle pour fabriquer la cible " arch/um/scripts/Makefile.rules ". Arrêt.
make[1]: *** [fs/hostfs] Erreur 2
make: *** [_clean_fs] Erreur 2
On peut se demander ce que veulent dire ces erreurs.. bon, pas moyen de deviner donc je continue.
# make zImage
CHK include/linux/version.h
UPD include/linux/version.h
SPLIT include/linux/autoconf.h -> include/config/*
CHK include/asm-i386/asm_offsets.h
CC scripts/mod/empty.o
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
scripts/mod/sumversion.c: In function 'parse_file':
scripts/mod/sumversion.c:260: attention : pointer targets in passing argument 1 of 'grab_file' differ in signedness
scripts/mod/sumversion.c:277: attention : pointer targets in passing argument 1 of 'parse_string' differ in signedness
scripts/mod/sumversion.c:283: attention : pointer targets in passing argument 1 of 'parse_comment' differ in signedness
scripts/mod/sumversion.c: In function 'parse_source_files':
scripts/mod/sumversion.c:335: attention : pointer targets in initialization differ in signedness
scripts/mod/sumversion.c:344: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:357: attention : pointer targets in passing argument 1 of 'parse_file' differ in signedness
scripts/mod/sumversion.c: In function 'strip_rcs_crap':
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strncmp' differ in signedness
scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:485: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c:486: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/mod/sumversion.c: In function 'maybe_frob_rcs_version':
scripts/mod/sumversion.c:496: attention : pointer targets in passing argument 1 of 'strip_rcs_crap' differ in signedness
HOSTLD scripts/mod/modpost
HOSTCC scripts/bin2c
make[1]: *** Pas de règle pour fabriquer la cible " init/main.o ", nécessaire pour " init/built-in.o ". Arrêt.
make: *** [init] Erreur 2
[root@localhost 2.6.12-11.0.aur.2-i686]# make zImage
CHK include/linux/version.h
CHK include/asm-i386/asm_offsets.h
make[1]: *** Pas de règle pour fabriquer la cible " init/main.o ", nécessaire pour " init/built-in.o ". Arrêt.
make: *** [init] Erreur 2
[root@localhost 2.6.12-11.0.aur.2-i686]# CHK include/linux/version.h
bash: CHK: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# UPD include/linux/version.h
bash: UPD: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# SPLIT include/linux/autoconf.h -> include/config/*
bash: include/config/*: ambiguous redirect
[root@localhost 2.6.12-11.0.aur.2-i686]# CHK include/asm-i386/asm_offsets.h
bash: CHK: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# CC scripts/mod/empty.o
bash: CC: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# MKELF scripts/mod/elfconfig.h
bash: MKELF: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# HOSTCC scripts/mod/file2alias.o
bash: HOSTCC: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# HOSTCC scripts/mod/modpost.o
bash: HOSTCC: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# HOSTCC scripts/mod/sumversion.o
bash: HOSTCC: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c: In function 'parse_file':
bash: scripts/mod/sumversion.c:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:260: attention : pointer targets in passing argument 1 of 'grab_file' differ in signedness
bash: scripts/mod/sumversion.c:260:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:277: attention : pointer targets in passing argument 1 of 'parse_string' differ in signedness
bash: scripts/mod/sumversion.c:277:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:283: attention : pointer targets in passing argument 1 of 'parse_comment' differ in signedness
bash: scripts/mod/sumversion.c:283:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c: In function 'parse_source_files':
bash: scripts/mod/sumversion.c:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:335: attention : pointer targets in initialization differ in signedness
bash: scripts/mod/sumversion.c:335:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:344: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:344:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:357: attention : pointer targets in passing argument 1 of 'parse_file' differ in signedness
bash: scripts/mod/sumversion.c:357:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c: In function 'strip_rcs_crap':
bash: scripts/mod/sumversion.c:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of '__builtin_strcmp' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:465: attention : pointer targets in passing argument 1 of 'strncmp' differ in signedness
bash: scripts/mod/sumversion.c:465:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:469:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:469:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:469: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:469:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:485: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:485:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:486: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
bash: scripts/mod/sumversion.c:486:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c: In function 'maybe_frob_rcs_version':
bash: scripts/mod/sumversion.c:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# scripts/mod/sumversion.c:496: attention : pointer targets in passing argument 1 of 'strip_rcs_crap' differ in signedness
bash: scripts/mod/sumversion.c:496:: Aucun fichier ou répertoire de ce type
[root@localhost 2.6.12-11.0.aur.2-i686]# HOSTLD scripts/mod/modpost
bash: HOSTLD: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# HOSTCC scripts/bin2c
bash: HOSTCC: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# make[1]: *** Pas de règle pour fabriquer la cible " init/main.o ", nécessaire pour " init/built-in.o ". Arrêt.
bash: make[1]:: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# make: *** [init] Erreur 2
bash: make:: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]# [root@localhost 2.6.12-11.0.aur.2-i686]#
bash: [root@localhost: command not found
[root@localhost 2.6.12-11.0.aur.2-i686]#
Visiblement, ce n'est pas ce qu'il faut faire !
J'essaie de recommencer en mode graphique, pour voir :
# make xconfig
*
* Unable to find the QT installation. Please make sure that the
* QT development package is correctly installed and the QTDIR
* environment variable is set to the correct location.
*
make[1]: *** [scripts/kconfig/.tmp_qtcheck] Erreur 1
make: *** [xconfig] Erreur 2
[root@localhost 2.6.12-11.0.aur.2-i686]#
D'accord d'accord, je n'insiste pas... en mode semi-graphique alors ?
# make menuconfig
ouvre une fenêtre en mode texte, où l'on peut paramétrer seulement les options de son choix par menu.
Son examen montre que les options choises en mode texte standard ont bien été enregistrées.
En faisant Exit, le fichier de configuration est sauvé de nouveau
et un commentaire précise de faire "make" pour lancer la compilation.
Toutefois, cette commande produit la même erreur que précédemment :
*** Pas de règle pour fabriquer la cible " init/main.o ", nécessaire pour " init/built-in.o ". Arrêt.
Groumph. Cela suffit pour aujourd'hui.
J'ouvre mon navigateur de fichiers et je vais voir ce qui a changé dans le répertoire :
/usr/src/kernels/2.6.12-11.0.aur.2-i686
et, comme apparemment rien n'a changé, je fais "Affichage / Afficher les fichiers cachés" et là je vois des fichiers cachés nouveaux (d'après leur date) :
.config
.config.cmd
.config.old
(le . initial fait partie de leurs noms).
.config.cmd fait 190 lignes et contient des commandes de compilation qui sont du chinois pour moi.
Je fais un copie nommée .config.old.txt de .config.old dans un répertoire personnel pour l'examiner à loisir.
Il fait 2516 lignes et c'est lui qui contient les paramètres qui sont déterminés lors de la commande make.
Au total, il y a près de 2000 paramètres
répartis en près de 180 catégories qui permettent de définir la prise en charge lors de la compilation de propriétés ou d'équipements divers et variés (avec un choix entre Oui dans le noyau / oui en module externe / non).
2000 ! C'est la liste interminable qu'on est obligé de traiter 1 par 1 quand on fait le make en mode texte standard.
La bonne nouvelle c'est que lors d'une commande make, visiblement le système sauvegarde automatiquement le fichier .config précédent.
La mauvaise nouvelle c'est que comme j'ai fait deux fois la manip hier, le fichier original a été perdu :-/
J'aimerais pourtant bien refaire un make du début en mode menu, en changeant juste l'option 4kb stacks...
Hmmmmmmmm...
Un petit tour des CD d'installation ne me permet pas de l'y retrouver.
Hmmmmmmmmmmm...
OK, changement d'ordinateur, je vais sur www.aurox.org/fr télécharger le fichier
kernel-2.6.12-11.0.aur.2.src.rpm
et je le transfère dans le répertoire
/usr/src/kernels
(pourquoi pas là, hein ?) et tant que je suis dans ce répertoire je fais une copie de sauvegarde
du dossier existant dans le même répertoire.
Bon maintenant, clic droit sur kernel-2.6.12-11.0.aur.2.src.rpm, ouvrir avec le gestionnaire d'archives. Un peu d'exploration...
Pas trace de .config à récupérer.
Là je sèche...
Hmmmmmmmmmmmmmmmmmmmmm....
Au hasard de mes lecture de forums, je glane une info qui me laisse penser qu'un copie du fichier.config se trouve dans le répertoire /boot.
En effet, dans ce dossier se trouve le fichier
config-2.6.12-11.0.aur.2
qui est bien ce que je cherche. Je le copie et le renomme en .config dans le dossier
/usr/src/kernels/2.6.12-11.0.aur.2-i686
et donc illico
je relance :
# make menuconfig
je change seulement l'option "Use 4kb stacks ..."
je sors en sauvegardant
je relance :
# make
et cela conduit à la même erreur qui n'était donc pas due à une erreur de ma part dans la manip #make config antérieure.
Hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm...
Sur le site de Aurox, à l'adresse :
http://aurox.france.free.fr/modules/sections/index.php?op=printpage&artid=10,
je trouve un tuto pour faire la compilation du noyau qui demande de disposer du fichier linux-2.6.11.tar.bz2.
Je vais derechef sur le site de chargement recommandé :
ftp.kernel.org/pub/linux/kernel/v2.6/ et je charge :
linux-2.6.12.tar.bz2 | qui porte le même numéro que le mien et ressemble au modèle |
linux-2.6.12.6.tar.bz2 | qui semble le plus récent de la version 2.6 sur ce site/td> |
linux-2.6.15.tar.bz2 | qui est le dernier posté sur le site./td> |
# cd /usr/src
# tar -xjvf linux-2.6.15.tar.bz2
Ouh là, ça décompresse une ribambelle de fichiers que ça met où ? Dans un dossier nouvellement créé : /usr/src/linux-2.6.15). Comme je n'ai pas de dossier nommé linux dans /usr/src, la commande
# rm linux
du tuto (rm signifie remove) ne fait rien, évidemment !
# ln -s linux-2.6.15 linux
Si je comprend bien la page man de la commande ln, cette commande crée un lien (link en anglais d'où l'abbréviation ln je suppose) dit "symbolique" entre le répertoire linux-2.6.15 créé juste avant et une sorte de raccourci (créé par la commande ln) qui permet d'accéder sous le nom linux au répertoire linux-2.6.15 (à quoi cela sert, c'est une autre histoire...)
# cd linux
Bien, justement, on se met dans ce pseudo-dossier.
# make mrproper
Cette commande fait un nettoyage complet de tout fichier de configuration antérieur qui pourrait parasiter la compilation à venir.
# cp /boot/config-2.6.12-11.0.aur.2 /usr/src/linux/.config
Le fichier config-2.6.12-11.0.aur.2 contient la configuration ACTUELLEMENT en vigueur.
Cette commande le copie dans le fichier .config qui va servir à faire la compilation avec les mêmes options.
Cela dit, come je veux modifier une option, je lance maintenant la commande suivante :
# make menuconfig
Cela déclenche l'affichage de scripts (??) puis ouvre la fenêtre de configuration. Je vais dans la ligne Kernel hacking, ôte l'option "Use 4 kb stacks ...", ressort en sauvant. Mon fichier .config doit maintenant être à jour. Donc toujours dans linux, je fais :
# make
1h50 et quelques milliers de lignes d'écriture plus tard, la compilation s'achève.
Il y a eu quelques messages de compilations (ce qui laisse supposer que quelques modules ou fonctions ont quelques imperfections de programmation) mais pas d'erreur fatale à la compilation.
Bon, il faut maintenant installer les modules par :
# make modules_install
qui doit en principe copier les modules dans le dossier /lib/modules/2.6.15/kernel mais, là, ça s'arrête sur une erreur :
INSTALL sound/usb/usx2y/snd-usb-usx2y.ko
if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map 2.6.15; fi
/bin/sh: line 1: 27353 Processus arrêté /sbin/depmod -ae -F System.map 2.6.15
make: *** [_modinst_post] Erreur 137
Bon alors je recommence en entrant une commande trouvée dans un autre tuto :
# make modules ; make modules_install
qui lance un travail puis, idem, une longue suite de sorties :INSTALL ...
[...]
INSTALL sound/usb/usx2y/snd-usb-usx2y.ko
if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map 2.6.15; fi
/bin/sh: line 1: 318 Processus arrêté /sbin/depmod -ae -F System.map 2.6.15
make: *** [_modinst_post] Erreur 137
Hmmmmmm...
La lecture de forums, grâce à un autre système d'exploitation très connu, me laisse penser que les versions du noyau récentes peuvent ne pas être compatibles avec certains outils de la distribution aurox 11.
Problème de cohérence ???
Je charge donc la dernière version 2.6.15.11, soit :
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.12.tar.bz2
et je la transfère dans /usr/src/ et je fais, un peu comme précédemment dans un terminal root:
# cd /usr/src
# tar -xjvf linux-2.6.11.12.tar.bz2
# rm linux, entrée, confirmer par y, entrée
# ln -s linux-2.6.11.12 linux
# cd linux
# make mrproper
# cp /boot/config-2.6.12-11.0.aur.2 /usr/src/linux/.config
Cela se passe bien. Il est tard... La suite un autre jour.
Par curiosité, clic droit sur le fichier bz2, ouvrir avec le gestionnaire d'archives.
On voit qu'il contient des fichiers qui sont des programmes en langages c et d'autres choses...
Nota : il y a dans :
/usr/src/kernels
un fichier noyau src.rpm : peut-on s'en servir pour changer options et recompiler sans changer de versions ?
Et sans avoir à faire un chargement ? Faut voir cela...
Demain, sans doute.
Je lis sur un excellent site : www.trustonme.net/didactels/273.html que les rpm (= Redhat Package Manager, gestionnaire de paquatage Redhat, de ce côté-ci de l'Atlantique) sont en fait des logiciels, analoques aux exécutables de (*.exe) de Windows. Et qu'on peut les installer avec la commande rpm ou, mieux, pour les distributions Fedora (et Aurox est une Fedora, non?) avec la commande yum qui a l'avantage de vérifier les dépendances et de proposer l'installation de tous les autres paquatages éventuellement nécessaires... Voyons ce que dit ma console Aurox. Un :
# man yum
me ramène effectivement une page :
yum(8)
NAME
yum - Yellowdog Updater Modified
SYNOPSIS
yum [options] [command] [package ...]
DESCRIPTION
yum is an interactive, automated update program which can be used for
maintaining systems using rpm
command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* list [...]
* info [...]
* provides | whatprovides feature1 [feature2] [...]
* clean [ packages | headers | metadata | cache | dbcache | all ]
* makecache
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
* search string1 [string2] [...]
* generate-rss [updates]
Unless the --help or -h option is given, one of the above commands must
be present.
suivie de détails sur chaque option.
Que va faire cette installation? Si cela se trouve, elle va juste me recréer un dossier avec les sources (?).
Or j'ai déjà un dossier de noyau qui contient un .config Hmmmm... Peut-être puis-je faire une compil dedans...
Prudence, dans le navigateur de fichiers, j'en fait une copie que je nomme :
/usr/src/kernels/2.6.12-11.0.aur(ma_compil_060114).2-i686
et, ensuite, je vais dans ce répertoire
# cd /usr/src/kernels/2.6.12-11.0.aur(ma_compil_060114).2-i686
bash: syntax error near unexpected token `('
Ouais, bon c'est pas gagné, qu'est-ce qui ne lui plaît pas ? La parenthèse ?
Je renomme ma copie de dossier :
2.6.12-11.0.aur.moi060114.2-i686
et je recommence ma manip de compilation :
# cd /usr/src/kernels/2.6.12-11.0.aur.moi060114.2-i686
et cette fois, ça marche...
Continuons...
Ha, il faut d'abord retirer linux, on remonte donc de deux crans dans l'arborescence :
# cd ..
# cd ..
puis :
# rm linux
rm: détruire lien symbolique `linux'? y
# ln -s kernels/2.6.12-11.0.aur.moi060114.2-i686 linux
# cd linux
# make mrproper
et là le système me répond :
fs/hostfs/Makefile:11: arch/um/scripts/Makefile.rules: Aucun fichier ou répertoire de ce type
make[2]: *** Pas de règle pour fabriquer la cible " arch/um/scripts/Makefile.rules ". Arrêt.
make[1]: *** [fs/hostfs] Erreur 2
make: *** [_clean_fs] Erreur 2
Dois-je m'inquiéter ??
Continuons, on va bien voir...
# make menuconfig
se passe sans problème et allez, c'est parti, on lance le :
# make
Bang, faux départ, je n'obtiens que :
CHK include/linux/version.h
SPLIT include/linux/autoconf.h -> include/config/*
CHK include/asm-i386/asm_offsets.h
make[1]: *** Pas de règle pour fabriquer la cible " init/main.o ", nécessaire pour " init/built-in.o ". Arrêt.
make: *** [init] Erreur 2
Groumph...
Hmmmmmmmmmmmmmmmmm......
Bon, il manque quelque chose... Mais quoi ?
Bon je supprime le répertoire copié, et je yum ? yum, yum ?
D'abord, supprimer le lien symbolique, sans doute...
# cd ..
# rm linux
rm: détruire lien symbolique `linux'? y
puis effacement du double dans le navigateur de fichiers. et retour à la console :
# yum install kernel-2.6.12-11.0.aur.2.src.rpm
Error: Bad repository file ///etc/yum.repos.d/aurox-devel.repo, no repo stanzas.
Setting up Install Process
Setting up repositories
http://mirror.switch.ch/ftp/mirror/aurox/11.0/packages/base/RPMS/repodata/repomd.xml: [Errno 4] IOError:
Trying other mirror.
Cannot open/read repomd.xml file for repository: base
failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
Certes, yum essaie de se connecter à l'internet, que j'essaie d'installer présentement, et il n'y arrive pas,
cela ne m'étonne guère...
Hmmmmmmmmmmmm..........
Bon...
Bon, bon, bon...
Soit...
Je vais donc réviser sur un site
(http:/thelinuxfr.org/Utilisation-des-commandes-RPM.html) comment utiliser les fichiers .src.rpm Redhat et j'applique ce que je trouve; voci ce que cela donne :
# rpm -ivh kernel-2.6.12-11.0.aur.2.src.rpm
1:kernel attention: utilisateur kkozimor inexistant - utilisation de root
attention: groupe rpmbuilder inexistant - utilisation de root
attention: utilisateur kkozimor inexistant - utilisation de root
[... une longue liste comme ça ...]
attention: utilisateur kkozimor inexistant - utilisation de root
attention: groupe rpmbuilder inexistant - utilisation de root
########################################### [100%]
attention: utilisateur kkozimor inexistant - utilisation de root
attention: groupe rpmbuilder inexistant - utilisation de root
attention: utilisateur kkozimor inexistant - utilisation de root
attention: groupe rpmbuilder inexistant - utilisation de root
# cd /usr/src/redhat
# rpm -ba SPECS/kernel.spec
-ba: option iconnue
Sic.
Groumph !
Pourtant man rpm cite bien l'option -ba....
Hmmmmmmmmmmmmmmmmm...................
C'est c'la, oui....
Bon, dans cette direction là, je suis bloqué. Je vais donc reprendre la suite de ce que je faisais le jeudi 12 janvier.
# cd /usr/src
# rm linux, entrée, confirmer par y, entrée
rm: ne peut évaluer par lstat() `linux': Aucun fichier ou répertoire de ce type
# ln -s linux-2.6.11.12 linux
# cd linux
# make mrproper
CLEAN .config
# cp /boot/config-2.6.12-11.0.aur.2 /usr/src/linux/.config
# make menu config
Le système me renvoie une litanie de messages:
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c: In function 'parse_config_file':
scripts/basic/fixdep.c:245: attention : pointer targets in passing argument 1 of 'use_config' differ in signedness
scripts/basic/fixdep.c: In function 'parse_dep_file':
scripts/basic/fixdep.c:299: attention : pointer targets in passing argument 1 of '__builtin_strchr' differ in signedness
scripts/basic/fixdep.c:299: attention : pointer targets in assignment differ in signedness
HOSTCC scripts/basic/split-include
scripts/basic/split-include.c: In function 'main':
scripts/basic/split-include.c:113: attention : pointer targets in assignment differ in signedness
HOSTCC scripts/basic/docproc
scripts/basic/docproc.c: In function 'find_export_symbols':
scripts/basic/docproc.c:184: attention : pointer targets in assignment differ in signedness
scripts/basic/docproc.c:185: attention : pointer targets in assignment differ in signedness
scripts/basic/docproc.c:202: attention : pointer targets in passing argument 2 of 'add_new_symbol' differ in signedness
scripts/basic/docproc.c: In function 'singfunc':
scripts/basic/docproc.c:274: attention : pointer targets in assignment differ in signedness
scripts/basic/docproc.c: In function 'parse_file':
scripts/basic/docproc.c:296: attention : pointer targets in assignment differ in signedness
SHIPPED scripts/kconfig/zconf.tab.h
HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function 'strip':
scripts/kconfig/conf.c:46: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/kconfig/conf.c: In function 'conf_askvalue':
scripts/kconfig/conf.c:94: attention : pointer targets in passing argument 1 of 'fgets' differ in signedness
scripts/kconfig/conf.c: In function 'conf_string':
scripts/kconfig/conf.c:187: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/kconfig/conf.c:188: attention : pointer targets in assignment differ in signedness
scripts/kconfig/conf.c: In function 'conf_sym':
scripts/kconfig/conf.c:236: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
[...] Une longue suite similaire
scripts/kconfig/mconf.c:1017: attention : pointer targets in passing argument 1 of 'conf_write' differ in signedness
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
HOSTCC scripts/kconfig/zconf.tab.o
In file included from scripts/kconfig/zconf.tab.c:2125:
scripts/kconfig/confdata.c: In function 'conf_expand_value':
scripts/kconfig/confdata.c:39: attention : pointer targets in passing argument 1 of '__builtin_strchr' differ in signedness
scripts/kconfig/confdata.c:39: attention : pointer targets in assignment differ in signedness
scripts/kconfig/confdata.c:40: attention : pointer targets in passing argument 2 of '__builtin_strncat' differ in signedness
scripts/kconfig/confdata.c:51: attention : pointer targets in passing argument 2 of 'strcat' differ in signedness
scripts/kconfig/confdata.c: In function 'conf_get_default_confname':
scripts/kconfig/confdata.c:62: attention : pointer targets in passing argument 1 of 'conf_expand_value' differ in signedness
scripts/kconfig/confdata.c: In function 'conf_read':
scripts/kconfig/confdata.c:88: attention : pointer targets in passing argument 1 of 'conf_expand_value' differ in signedness
HOSTLD scripts/kconfig/mconf
HOSTCC scripts/lxdialog/checklist.o
HOSTCC scripts/lxdialog/inputbox.o
scripts/lxdialog/inputbox.c: In function 'dialog_inputbox':
scripts/lxdialog/inputbox.c:107: attention : pointer targets in passing argument 1 of 'strcpy' differ in signedness
scripts/lxdialog/inputbox.c:109: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
scripts/lxdialog/inputbox.c:117: attention : pointer targets in passing argument 2 of 'waddnstr' differ in signedness
scripts/lxdialog/inputbox.c:147: attention : pointer targets in passing argument 1 of 'strlen' differ in signedness
[...]
#
# using defaults found in .config
#
.config:18: trying to assign nonexistent symbol INIT_ENV_ARG_LIMIT
.config:39: trying to assign nonexistent symbol PRINTK
.config:40: trying to assign nonexistent symbol BUG
.config:41: trying to assign nonexistent symbol BASE_FULL
.config:51: trying to assign nonexistent symbol BASE_SMALL
.config:94: trying to assign nonexistent symbol MGEODEGX1
[...] Une longue suite similaire
.config:2841: trying to assign nonexistent symbol CRYPTO_LZF
puis ouvre la fenêtre du menu de configuration.
Accueil:
Arrow keys navigate the menu.
Pressing
Help, > for Search. Legend: [*] built-in [ ] excluded
Code maturity level options --->
General setup --->
Loadable module support --->
Processor type and features --->
Power management options (ACPI, APM) --->
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
Executable file formats --->
Device Drivers --->
File systems --->
Profiling support --->
Kernel hacking --->
Security options --->
Cryptographic options --->
Library routines --->
---
Load an Alternate Configuration File
Save Configuration to an Alternate file
On navigue dedans avec les flèches et la touche entrée. La sélection de "kernel hacking" permet d'arriver à la page suivante :
Kernel hacking
[*] Kernel debugging
[*] Magic SysRq key
[ ] Collect scheduler statistics
[ ] Debug memory allocations
[*] Spinlock debugging
[*] Sleep-inside-spinlock checking
[ ] kobject debugging
[*] Highmem debugging
[*] Compile the kernel with debug info
[*] Debug Filesystem
[ ] Compile the kernel with frame pointers
[*] Check for stack overflows
[*] Stack utilization instrumentation
[ ] Page alloc debugging
[ ] Use 4Kb for kernel stacks instead of 8Kb
On descend sur la dernière option "Use 4kb..." et on tape N pour enlever le *, afin d'obtenir l'état ci-dessus. Puis Exit. On confirme la sauvegarde des options.
*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.
Bon, il n'a pas l'air troublé par tous les messages... Donc on continue.
# make
30 minutes plus tard, la compilation stoppe sur le message :
CC [M] drivers/I2C/algos/I2C-algo-bit.o
In file included from drivers/I2C/algos/I2C-algo-bit.c:31:
include/linux/I2C.h:58: erreur: les éléments du tableau sont de type incomplet
include/linux/I2C.h:197: erreur: les éléments du tableau sont de type incomplet
make[3]: *** [drivers/I2C/algos/I2C-algo-bit.o] Erreur 1
make[2]: *** [drivers/I2C/algos] Erreur 2
make[1]: *** [drivers/I2C] Erreur 2
make: *** [drivers] Erreur 2
[root@localhost linux]# make
Cela semble dire que je n'aurai pas les pilotes algos (?) mais me propose de refaire un make (?) ...
Hmmmmmmmmmm.... Bon, j'appuie sur Entrée
Cette fois, cela ne produit que quelques lignes :
CHK include/linux/version.h
make[1]: " arch/i386/kernel/asm-offsets.s " est à jour.
CHK include/linux/compile.h
CHK usr/initramfs_list
CC [M] drivers/I2C/algos/I2C-algo-bit.o
In file included from drivers/I2C/algos/I2C-algo-bit.c:31:
include/linux/I2C.h:58: erreur: les éléments du tableau sont de type incomplet
include/linux/I2C.h:197: erreur: les éléments du tableau sont de type incomplet
make[3]: *** [drivers/I2C/algos/I2C-algo-bit.o] Erreur 1
make[2]: *** [drivers/I2C/algos] Erreur 2
make[1]: *** [drivers/I2C] Erreur 2
make: *** [drivers] Erreur 2
Hmmmmmmmmmm...
Comme, algos ne me dit rien, je ne dois pas avoir besoin de ces pilotes...
Et si je les supprimais du .config, hein ?
Par prudence, la consultation de Wikipedia m'apprend que :
From Wikipedia, the free encyclopedia.
(Redirected from I2C)
I2C is a serial computer bus invented by Philips that is used to attach low-speed peripherals to a motherboard, embedded system, or cellphone. The name is an acronym for Inter-Integrated Circuit that is pronounced I-squared-C.
Design
I2C uses only two bi-directional lines, clock and data, both running at +5 V and pulled high with resistors.
The I2C reference design has a 7-bit address space with 16 reserved addresses, so a maximum of 112 nodes can communicate on the same bus. The most common I2C bus modes are the 100 kbit/s standard mode and the 10 kbit/s low-speed mode, but clock frequencies near to zero range are also allowed. Recent revisions of I2C can host more nodes and run faster (400 kbit/s Fast mode and 3,4 Mbit/s High Speed mode).
Revisions
The original I2C system was created in the early 1980s as a simple internal bus system for building control electronics with various Philips chips.
In 1992 the first standardized version was released, which added a new fast mode at 400 kbit/s and a 10-bit addressing mode to increase capacity to 1008 nodes. Version 2.0 from 1998 added high-speed mode at 3.4 Mbit/s with reduced voltage and current requirements that saved power. Version 2.1 from 2001 is a minor cleanup of version 2.0 and is the latest standard.
Applications
I2C is appropriate for peripherals where simplicity and low manufacturing cost are more important than speed. Common applications of the I2C bus are:
* Accessing NVRAM chips that keep user settings.
* Accessing low speed DACs.
* Accessing low speed ADCs.
* Changing contrast, hue, and color balance settings in monitors.
* Changing sound volume in intelligent speakers.
* Controlling LED displays, like in a cellphone.
* Reading hardware monitors and diagnostic sensors, like a CPU thermostat.
* Reading real time clocks.
* Turning on and turning off the power supply of system components.
A particular strength of I2C is that a microcontroller can control a network of device chips with just two general-purpose I/O pins and software.
Peripherals can also be added to or removed from the I2Cbus while the system is running, which makes it ideal for applications that require hot swappable components.
Buses like I2C became popular when computer engineers realized that much of the manufacturing cost of an integrated circuit design results from its package size and pin count. A smaller package also usually weighs less and consumes less power, which is especially important in cellphones and portable computing.
Operating System Support
In Linux, I2C is handled with a specific kernel module for the specific device. Details on how to write I2C client can be found in the kernel-related documentation and in the /usr/include/linux/I2C.h header file.
In Sinclair QDOS and Miner
va (QDOS reimplementation) QL operating systems I2C is supported via a set of extensions provided by TF Services.
Comment savoir si ce protocole est utile à ma machine ??!
S'il faut savoir ce type de choses pour utiliser linux... Hmmmmmmmmmm....
Ce n'est pas encore un système d'exploitation grand public... Hmmmmmmmmmmmmmm...
Là, tout de suite, je me dis que la distribution AUROX ne vaut pas le coup...
Je vais tester SUSE...
Et c'est une autre histoire...