Build-it

Salut,

[quote]
Obtain the kernel source tree for the platform in use and build it[/quote]

L’obtenir c’est facile, mais que veulent-ils que je construise avec avant de compiler un .ko dont j’ai les sources ?

Salut,
Tu as un lien ?

build “it” : compiler le noyau dans ce court extrait. Il se pourrait toutefois que “it” reprenne un élément cité précédemment comme un module ou un pilote.
Te serait-il possible d’étoffer le contexte en citant davantage de lignes, tout particulièrement les lignes précédentes ?
Provenance de l’extrait ? Un message d’erreur , un morceau de tutoriel , de manuel, de README , un conseil glané sur un forum… ? un lien ?

Qu’est-ce que tu veux faire ? Tu veux patcher le noyau ? Compiler un module externe à la branche principale de linux ? Pourquoi ?..

Il serait peut-être plus économique de s’appuyer sur les dépôts debian fournissant des paquets deb linux-headers* de ton noyau plutôt que de rapatrier les sources complètes.

Re,

Il s’agit d’un convertisseur usb/rj45 de chez 7Links dont voici le mode d’emploi.
readme.txt (5.34 KB)

Salut,
Je me demande si une simple installation des headers n’est pas suffisante.

puis

./configure ./make ./chekinstall dpkg -i le_deb_généré

Re,

Ceci c’est ce que j’ai cru mais je me fais jeter parce que il n’y a pas de configure de fourni !

linux -> /usr/src/linux-headers-3.9-2.slh1-aptosid-amd64
Makefile*
smsc7500usbnet.c
smsclan7500.c
ioctl_7500.h
smsc7500usbnet.h
smsc7500version.h
smsclan7500.h
readme.txt*

Le lien c’est moi qui l’ai créé et voici le Makefile

[code]ifeq ($(EN_DEBUG), 1)
EXTRA_CFLAGS += -DUSE_DEBUG
endif

CURRENT := $(shell uname -r)
KDIR := /lib/modules/$(CURRENT)/build
PWD := $(shell pwd)
RM := rm
PLATFORM=
COMPILER=

obj-m := smsc7500.o

smsc7500-objs := smsclan7500.o smsc7500usbnet.o

modules:
ifeq “$(PLATFORM)” “”
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
else
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) ARCH=$(PLATFORM) CROSS_COMPILE=$(COMPILER) modules
endif

clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
$(RM) -f Module.markers modules.order

.PHONY: modules clean[/code]

medias.pearl.fr/technique/pilote/PX4840.zip

[quote=“readme”]

  1. Platforms and kernel versions supported

- x86 (32 bit PC):  Built & minor tested with 2.6.31 and 2.6.32 [/quote]

Chez toi : linux-headers-3.9-2.slh1-aptosid-amd64, amd64 contre x86, 3.9 contre 2.6.32.
Pour rester dans les clous du readme, il te faudrait quelque chose comme debian Squeeze, 32 bits, noyau de version 2.6.32.
On pourrait penser qu’une version de linux moins récente pourrait mieux convenir. Essaye avec les headers d’un noyau linux-3.2* comme ceux de wheezy.

Re,

Le x86 ne devrait pas gêner puisque j’ai amd64 & i386. Mais dans le Makefile il se réfère au kernel installé et là je me refuse à revenir au 2.6.32 :laughing:
A ton idée, je télécharge les headers de 2.6.32 que je lui donne en pâture ?

Edit : Essai d’installation, il m’installe un 3.8 qui évidemment me donne la même réponse :mrgreen:

À mon idée : explorer la piste des versions linux intermédiaires avant d’être acculé en linux-2.6.32.
Rétrograder de façon plus marquée que le saut de puce entre linux-3.9 et 3.8.
Rétrograde de linux 3.9 à linux-3.2 pour voir : installe linux-image-3.2* et linux-headers-3.2* des dépôts Wheezy , démarre sur linux-3.2 pour tenter le «make».

Re,

Pour une sid repasser en 3.2 c’est dur à avaler, surtout pour faire un essai. Le but final était d’adjoindre cet “accessoire” à un synology pour en faire la zone DMZ.
Juste pour voir si cet engin fonctionne je suis en cours d’installation d’un XP pour qui les drivers sont fournis !

Je marque le post comme résolu et je viendrais en parler quand j’aurais avancé.

Merci

Compilation croisée? (doc.ubuntu-fr.org/tutoriel/compilation_croisee) :unamused:

:006

C’est ca que tu cherche?

| CONFIG_USB_NET_SMSC75XX: │ │ │ │ This option adds support for SMSC LAN95XX based USB 2.0 │ │ Gigabit Ethernet adapters. │ │ │ │ Symbol: USB_NET_SMSC75XX [=n] │ │ Type : tristate │ │ Prompt: SMSC LAN75XX based USB 2.0 gigabit ethernet devices │ │ Defined at drivers/net/usb/Kconfig:230 │ │ Depends on: NETDEVICES [=y] && USB [=y] && NET [=y] && \ │ │ USB_USBNET [=m] │ │ Location: │ │ -> Device Drivers │ │ -> Network device support (NETDEVICES [=y]) │ │ -> USB Network Adapters │ │ -> Multi-purpose USB Networking Framework (USB_USBNET [=m]) │ │ Selects: CRC32 [=y]

[quote=“sebB”]C’est ca que tu cherche?

| CONFIG_USB_NET_SMSC75XX: │ │ │ │ This option adds support for SMSC LAN95XX based USB 2.0 │ │ Gigabit Ethernet adapters. │ │ │ │ Symbol: USB_NET_SMSC75XX [=n] │ │ Type : tristate │ │ Prompt: SMSC LAN75XX based USB 2.0 gigabit ethernet devices │ │ Defined at drivers/net/usb/Kconfig:230 │ │ Depends on: NETDEVICES [=y] && USB [=y] && NET [=y] && \ │ │ USB_USBNET [=m] │ │ Location: │ │ -> Device Drivers │ │ -> Network device support (NETDEVICES [=y]) │ │ -> USB Network Adapters │ │ -> Multi-purpose USB Networking Framework (USB_USBNET [=m]) │ │ Selects: CRC32 [=y][/quote]

Très certainement mais il faut encore que tu me dises où le trouver et comment l’utiliser. Tu découvres que je suis une brèle :laughing:

Où le trouver ? Sous les sabots de menuconfig appliqué sur les headers ou sur les sources du noyau.
“location”, chaque rubrique à sélectionner (touches espace et entrée).
│ Location: │
│ -> Device Drivers │
│ -> Network device support (NETDEVICES [=y]) │
│ -> USB Network Adapters │
│ -> Multi-purpose USB Networking Framework (USB_USBNET

Device drivers ->Network device support -> USB Network Adapters -> Multi-purpose USB Networking Framework

En principe tu n’aurais pas besoin de le compiler. Les config des noyaux de notre chère distribution ont un M comme module face à SMSC75XX.
Regarde les options de ton noyau.

$ grep SMSC75 /boot/config-`uname -r` CONFIG_USB_NET_SMSC75XX=m
D’après ce que j’ai cru comprendre des changelog, le module smsc75xx ferait partie du noyau régulier depuis linux-2.6.34. Le readme nous induit en erreur, il a été rédigé à une époque antérieure ( linux-2.6.32).
Tu ne devrais le compiler que si tu obtenais le retour ø ou “=is not set” à
$ grep SMSC75 /boot/config-uname -r
Je suppose qu’il n’y a rien d’autre à faire que brancher l’usb, constater le chargement automatique du module (lsmod),
puis vérifier qu’une nouvelle interface s’affiche sous la commande
$ /sbin/ifconfig -a
(-a comme all)

Salut et un grand merci,

Comme le ifconfig je l’avais déjà fait, je vais supposer que c’est au boot que les choses se passent dans udev.
Toujours est-il que c’est encore plus facile sous notre Debian que sous Windows où il faut fournir un driver !

:041