Vpnclient de Cisco dans le périphérique intégré Linux provoque des oops de noyau

1

J'ai essayé d'installer cisco vpnclient sur mon périphérique intégré Linux exécutant vmlinux et compilé à partir de linux-2.6.39. Je pourrais réussir à insérer le pilote 'cisco_ipsec.ko'. cependant, lors de son insertion, le journal

cipsec0: Features changed: 0x00004800 -> 0x00004000

Cisco Systems VPN Client Version 4.8.02 (0030) kernel module loaded

que j'ai ignoré. Mais alors en faisant "vpnclient verify", j'ai eu le noyau oops. Journaux ci-dessous:

Cisco Systems VPN Client Version 4.8.02 (0030) kernel module loaded
logrotate due, not forced
BUG: unable to handle kernel paging request at fc61ae98
IP: [<c1026cf7>] task_rq_lock+0x27/0x70
*pdpt = 00000000017a3001 *pde = 0000000000000000
Thread overran stack, or stack corrupted
Oops: 0000 [#1] PREEMPT SMP
last sysfs file: /sys/devices/virtual/net/cipsec0/uevent
Modules linked in: cisco_ipsec(P) fusion hardwareinfo gp500 intelce3100_io intelce3100_spi pd_hdmi SiI9XXX vidcap_ce4X00 sec_kernel ismdavcap_shim zvbi_intelce ismdvidenc ismdmux ismdviddec_v3 ismddemux_v3 ismdces_viddec_mux ismdces_vidparse_videnc ismdces_router ismdvidrend ismdvidpproc ismdremux ismdbufmon ismdaudio ismdclock_recovery pvrsrvkm pd_inttvenc_comp pd_inttvenc_cvbs gdl_server gen_timer ismdclock ismdcore ioctl_module mspod_drv intel_pic_uart intel_ce_pm iosf clock_control edl_thermal pace_spi_drv_linux intel_ce_flash sven_linux avcap_core system_utils_linux idl_smartcard idl_gpio idl_i2c idl_spi platform_config pal_linux osal_linux cosai_soc_utils cosai_irqproxy [last unloaded: cisco_ipsec]

Pid: -845642624, comm:  Tainted: P            2.6.39 #1
EIP: 0060:[<c1026cf7>] EFLAGS: 00010082 CPU: 0
EIP is at task_rq_lock+0x27/0x70
EAX: cebbac96 EBX: c179be40 ECX: 00000000 EDX: cd979730
ESI: cec02db0 EDI: cd989ef0 EBP: cd979730 ESP: cd979704
 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process  (pid: -845642624, ti=cd978000 task=cd988370 task.ti=ce92e6b8)

Stack:
 cd989ef0 cec02db0 cec02d80 0000000f c102d2a1 cd99df60 cec02db8 00000002
 00000000 c1246a25 cd99df60 00000082 cd99df60 cec02db0 cec02d80 c104dbd0
 c104dbe5 c104dd58 00000000 cec02d84 0000002c 7aa7e623 00000083 c104e565
Call Trace:

 [<c102d2a1>] ? try_to_wake_up+0x31/0x2f0
 [<c1246a25>] ? timerqueue_del+0x25/0x70
 [<c104dbd0>] ? update_rmtp+0x80/0x80
 [<c104dbe5>] ? hrtimer_wakeup+0x15/0x20
 [<c104dd58>] ? __run_hrtimer.clone.31+0x48/0xd0
 [<c104e565>] ? hrtimer_interrupt+0x185/0x270
 [<c1019ffe>] ? smp_apic_timer_interrupt+0x4e/0x90
 [<c1561d4e>] ? apic_timer_interrupt+0x2a/0x30
 [<c10a196f>] ? __kmalloc+0x6f/0x160
 [<e79125eb>] ? kernel_alloc+0x1b/0x50 [cisco_ipsec]
 [<e79125eb>] ? kernel_alloc+0x1b/0x50 [cisco_ipsec]
 [<e7912748>] ? INTER_CNI_Allocate_Buffer+0x48/0xf0 [cisco_ipsec]
 [<e7912397>] ? do_cni_send+0xc7/0x240 [cisco_ipsec]

 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]

 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
Code: 00 00 00 00 83 ec 10 89 7c 24 08 89 c7 89 6c 24 0c 89 d5 89 74 24 04 89 1c 24 bb 40 be 79 c1 9c 58 fa 89 45 00 8b 47 04 8b 40 10 <8b> 34 85 40 fc 72 c1 01 de 89 f0 e8 89 a6 53 00 8b 47 04 8b 40
EIP: [<c1026cf7>] task_rq_lock+0x27/0x70 SS:ESP 0068:cd979704
CR2: 00000000fc61ae98
---[ end trace 2f149dab3380c9f4 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Pid: -845642624, comm:  Tainted: P      D     2.6.39 #1
Call Trace:
 [<c155ef03>] ? panic+0x61/0x13f
 [<c1005b76>] ? oops_end+0x86/0x90
 [<c1021b20>] ? no_context+0xc0/0x190
 [<c1021f20>] ? vmalloc_sync_all+0x10/0x10
 [<c1021d3f>] ? bad_area_nosemaphore+0xf/0x20
 [<c1022176>] ? do_page_fault+0x256/0x3f0
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e791279e>] ? INTER_CNI_Allocate_Buffer+0x9e/0xf0 [cisco_ipsec]
 [<c1021f20>] ? vmalloc_sync_all+0x10/0x10
 [<c1561f6e>] ? error_code+0x5a/0x60
 [<c1021f20>] ? vmalloc_sync_all+0x10/0x10
 [<c1026cf7>] ? task_rq_lock+0x27/0x70
 [<c102d2a1>] ? try_to_wake_up+0x31/0x2f0
 [<c1246a25>] ? timerqueue_del+0x25/0x70
 [<c104dbd0>] ? update_rmtp+0x80/0x80
 [<c104dbe5>] ? hrtimer_wakeup+0x15/0x20
 [<c104dd58>] ? __run_hrtimer.clone.31+0x48/0xd0
 [<c104e565>] ? hrtimer_interrupt+0x185/0x270
 [<c1019ffe>] ? smp_apic_timer_interrupt+0x4e/0x90
 [<c1561d4e>] ? apic_timer_interrupt+0x2a/0x30
 [<c10a196f>] ? __kmalloc+0x6f/0x160
 [<e79125eb>] ? kernel_alloc+0x1b/0x50 [cisco_ipsec]
 [<e79125eb>] ? kernel_alloc+0x1b/0x50 [cisco_ipsec]
 [<e7912748>] ? INTER_CNI_Allocate_Buffer+0x48/0xf0 [cisco_ipsec]
 [<e7912397>] ? do_cni_send+0xc7/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
 [<e79124e3>] ? do_cni_send+0x213/0x240 [cisco_ipsec]
 [<e7912766>] ? INTER_CNI_Allocate_Buffer+0x66/0xf0 [cisco_ipsec]
deeps8us
la source
De quel "appareil embarqué" parlons-nous ici? Le fabricant a-t-il mis à disposition sa version de Linux au téléchargement (comme le prévoit la GPL)? Ils ont peut-être / probablement corrigé le noyau de différentes manières, ce qui vous oblige à compiler votre module avec leur source corrigée.
Colin 't Hart

Réponses:

0

Avez-vous essayé d'utiliser vpnc au lieu? vpnc est open source; Le client VPN de Cisco est à source fermée. Les modules de noyau à source fermée ont une mauvaise réputation qui consiste à utiliser des noyaux plus récents. Étant donné que la version 2.6.39 n’est pas particulièrement nouvelle, elle le reste suffisamment pour que la version de vpnclient de Cisco ne prenne pas correctement en charge ce noyau. vpnc fournit des fonctionnalités similaires mais ne dépend d'aucun composant source fermé, vous permettant ainsi de le recompiler pour prendre en charge votre propre environnement. Mieux encore, vpnc utilise le tun pilote intégré au noyau Linux principal, il n’a donc pas besoin de son propre module de noyau personnalisé.

En outre, le commentaire de Colin 't Hart peut être correct, à savoir que le fournisseur de votre "périphérique intégré" peut avoir des personnalisations du noyau incompatibles avec ce module de noyau. J'espère que de telles incompatibilités se manifesteront au moment de la compilation et vous empêcheront de construire le module en premier lieu, mais cela ne doit pas nécessairement être le cas.

allquixotic
la source
Merci pour les commentaires. Cet appareil est une boîte à décors fonctionnant sous linux intégré et sur lesquels des correctifs ont été appliqués. Mais vous avez raison, ces dépendances sont arrivées au moment de la compilation et au moment proprement dit. Je vais donc essayer avec vpnc.
deeps8us
désolé .. je ne comprends pas cette déclaration .. "utilise le pilote tun qui est intégré au noyau Linux principal, il n'a donc pas besoin de son propre module de noyau personnalisé" - Je dois décharger ce code source tun et construire un fichier .ko à l'aide mon noyau Linux personnalisé en tant que source non?.
deeps8us
De plus, je n'ai pu trouver ce code source nulle part. Est-ce que quelque chose me manque ici? N’est-il pas censé être compilé par nous?
deeps8us
le tun Le module de noyau (pilote) fait partie du noyau Linux principal. S'il n'est pas disponible sur votre système avec par exemple modprobe tun alors la construction de votre noyau ne l’a pas fourni, ce qui pue ... mais je pense que vous pouvez recompiler votre noyau et l’activer.
allquixotic