# [kernel] sembrerebbe un bug [RISOLTO]

## Gitanovic

Oggi provando a dare pppoe-start... il pc non si connetteva...

e in var log messages c'è questo... replicato per ogni volta che do pppoe-start

```

Kernel BUG at net/core/skbuff.c:111

Feb 14 23:10:17 Vampire invalid opcode: 0000 [32] 

Feb 14 23:10:17 Vampire CPU 0 

Feb 14 23:10:17 Vampire Modules linked in: ipt_MASQUERADE xt_pkttype ipt_TCPMSS xt_tcpudp xt_length xt_state iptable_nat ip_nat ip_conntrack nfnetlink iptable_mangle iptable_filter ip_tables x_tables ppp_synctty ppp_async crc_ccitt ppp_generic slhc af_packet ohci_hcd parport_pc parport snd_via82xx snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd ehci_hcd usblp uhci_hcd radeon drm

Feb 14 23:10:17 Vampire Pid: 13743, comm: pppoe Not tainted 2.6.18-gentoo-r6 #2

Feb 14 23:10:17 Vampire RIP: 0010:[<ffffffff81301f3c>]  [<ffffffff81301f3c>] skb_under_panic+0x5c/0x70

Feb 14 23:10:17 Vampire RSP: 0018:ffff8100176dbbe8  EFLAGS: 00010292

Feb 14 23:10:17 Vampire RAX: 000000000000009a RBX: ffff810037ae9680 RCX: ffffffff8154ebc8

Feb 14 23:10:17 Vampire RDX: ffff81003d78dd18 RSI: ffffffff8154e478 RDI: ffff81003ec3c1c0

Feb 14 23:10:17 Vampire RBP: ffff810037aa7df2 R08: 0000000000000000 R09: 0000000000000004

Feb 14 23:10:17 Vampire R10: 0000000000000000 R11: 00000000ffffffff R12: 0000000000000000

Feb 14 23:10:17 Vampire R13: ffff81003f519000 R14: 0000000000008863 R15: 0000000000000020

Feb 14 23:10:17 Vampire FS:  00002b1f0f3a06d0(0000) GS:ffffffff8158b000(0000) knlGS:0000000000000000

Feb 14 23:10:17 Vampire CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b

Feb 14 23:10:17 Vampire CR2: 000000000050d4c8 CR3: 000000001b2f0000 CR4: 00000000000006e0

Feb 14 23:10:17 Vampire Process pppoe (pid: 13743, threadinfo ffff8100176da000, task ffff8100186e4140)

Feb 14 23:10:17 Vampire Stack:  ffff810037aa7e10 ffff810037aa7e50 ffffffff813b8e35 ffffffff8105c855

Feb 14 23:10:17 Vampire 0000000000000000 ffff81003f519000 ffff810037ae9680 ffff8100176dbee8

Feb 14 23:10:17 Vampire ffff81002bb90d40 0000000000000020 ffff810035d6a400 ffffffff880c2ca2

Feb 14 23:10:17 Vampire Call Trace:

Feb 14 23:10:17 Vampire [<ffffffff8105c855>] eth_header+0x65/0x120

Feb 14 23:10:17 Vampire [<ffffffff880c2ca2>] :af_packet:packet_sendmsg+0x172/0x2c0

Feb 14 23:10:17 Vampire [<ffffffff81055aad>] sock_sendmsg+0x10d/0x150

Feb 14 23:10:17 Vampire [<ffffffff812fd772>] sys_sendto+0x142/0x1a0

Feb 14 23:10:17 Vampire [<ffffffff8105f612>] system_call+0x7e/0x83

Feb 14 23:10:17 Vampire [<00002b1f0f231275>]

Feb 14 23:10:17 Vampire 

Feb 14 23:10:17 Vampire Code: 0f 0b 68 df 73 3e 81 c2 6f 00 48 83 c4 18 c3 00 00 00 00 00 

Feb 14 23:10:17 Vampire RIP  [<ffffffff81301f3c>] skb_under_panic+0x5c/0x70

Feb 14 23:10:17 Vampire RSP <ffff8100176dbbe8>

Feb 14 23:10:17 Vampire pppd[13739]: Modem hangup

Feb 14 23:10:17 Vampire pppd[13739]: Connection terminated.

Feb 14 23:10:17 Vampire pppd[13739]: Child process /usr/sbin/pppoe -p /var/run/-pppoe.pid.pppoe -I eth0 -T 80 -U  -m 1412    (pid 13743) terminated with signal 11

Feb 14 23:10:17 Vampire pppd[13739]: Exit.

Feb 14 23:10:17 Vampire pppoe-connect: PPPoE connection lost; attempting re-connection.

```

E' per caso colpa mia che l'ultima volta ho smanettato con iptables (mi sembra proprio strano però)... oppure è proprio un bug?

----------

## ^Stefano^

Si potrebbe essere che ti sei chiuso la connessione da solo ma iptables usa uno script che deve essere avviato perchè il firewall entri in funzione.

come hai compilato nel kernel il supporto ppp?

quando dai pppoe-start, cosa succede oltre a quello che ci hai postato? hai installato il pacchetto rp-ppoe giusto? potrebbe essere che usi anche ppp facendo startare il  servizio all'avvio? prova ad effettuare la connessione senza startare /etc/init.d/iptables e postaci un rc-update show. in dmesg la scheda di rete è vista bene? che hardware usi per la connessione? in /var/log non ci sono log di pppoe o di rp-pppoe?la connessione andava prima di smanettare con iptables? /etc/conf.d/net cosa contiene? 

purtroppo hai dato poche info e io devo farti tante domande per avere un quadro.

----------

## Gitanovic

Si, hai ragione... faccio ammenda e mea culpa  :Smile: 

Allora: iptables non è in startup, ma faccio partire tutto a mano. 

Quindi no, non funziona neanche senza che iptables sia partito.

Se non ricordo male, nel kernel tutto ciò che riguarda ppp l'ho messo come modulo. (Ma questo non credo c'entri molto, visto che ho messo anche il supporto all'autoload)

Ma anche in questo caso credo che si tratti di un bug.

L'unica cosa che mi rimane da testare è provare ad attaccare il modem sull'altra scheda di rete, solo per vedere se è il driver nel kernel, visto che sotto Win funzionano bene entrambe le schede.

Ora riavvio e ti fornisco anche gli altri dati  :Wink: 

----------

## .:chrome:.

 *Gitanovic wrote:*   

> Allora: iptables non è in startup, ma faccio partire tutto a mano. 
> 
> Quindi no, non funziona neanche senza che iptables sia partito.
> 
> Se non ricordo male, nel kernel tutto ciò che riguarda ppp l'ho messo come modulo. (Ma questo non credo c'entri molto, visto che ho messo anche il supporto all'autoload)
> ...

 

tutti questi problemi si risolvono non usando script casarecci, ma il file delle regole di iptables, come ho consigliato diverse volte e come è consigliato in diversi posti.

usando il file delle regole si ha una migliore integrazione con il sistema, con il sistema di caricamento/scaricamento dei moduli, ecc...

dubito che passare dallo script al file delle regole possa risolvere il tuo problema, ma senz'altro può migliorare la situazione

----------

## Gitanovic

@ .:chrome:. 

sono d'accordo, ma non credo che il problema sia iptables, visto che: 

1) Non facendolo partire non funziona lo stesso la connessione.

2) Lo "script casereccio" lo avevo scritto io per darlo ad un mio amico, e quindi so abbastanza bene cosa facesse.

3) Lo script suddetto non è mai stato fatto partire in maniera automatica.

lspci (che mi sembra normale) :

```

00:00.0 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:00.1 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:00.2 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:00.3 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:00.4 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:00.7 Host bridge: VIA Technologies, Inc. K8M800 Host Bridge

00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800/K8T890 South]

00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

00:0f.0 IDE interface: VIA Technologies, Inc. VT8251 AHCI/SATA 4-Port Controller

00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 07)

00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)

00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)

00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)

00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90)

00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 90)

00:11.0 ISA bridge: VIA Technologies, Inc. VT8251 PCI to ISA Bridge

00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 70)

00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller

00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 7c)

00:13.0 PCI bridge: VIA Technologies, Inc. VT8251 Host Bridge

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)

01:00.1 Display controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (Secondary) (rev 01)

02:00.0 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port

02:00.1 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port

```

rc-update show (anche qui tutto normale):

```
 

          alsasound |      default                  

            bootmisc | boot                          

             checkfs | boot                          

           checkroot | boot                          

               clock | boot                          

            coldplug |      default                  

         consolefont | boot                          

               cupsd |      default                  

                 gpm |      default                  

            hostname | boot                          

             hotplug |      default                  

               hplip | boot                          

             keymaps | boot                          

               local |      default nonetwork        

          localmount | boot                          

             modules | boot                          

            net.eth0 |      default                  

            net.eth1 |      default                  

              net.lo | boot                          

            netmount |      default                  

             numlock |      default                  

           rmnologin | boot                          

           syslog-ng |      default                  

             urandom | boot                          

          vixie-cron |      default                  

                 xdm |      default       

```

Per onor della cronaca: 

1) ho fatto ripartire il kernel 2.6.17 e sono su internet con quello, solo che non vorrei tenerlo perchè per far funzionare la rete con questo devo disabilitare da bios il supporto ad APIC.

2) Con il kernel 2.6.18 prima della ricompilazione fatale, funzionava anche col supporto ad APIC attivato. 

3) Prima avevo installato e rimosso firestarter, kmyfirewall e shorewall (per vedere quale consigliare a 'sto mio amico)

4) Poi ho ricompilato il kernel per avere un supporto ai firewall, ed ho testato i suddetti programmi.

5) Ho rimosso i programmi ed usato il mio script... visto che per questo mio amico erano troppo complicati e fin qui tutto funzionava bene.

6) Ho riavviato e... non funzionava + niente.

----------

## ^Stefano^

non hai nessun log in /var/log di pppoe o qualcosa di simile? come ti colleghi ad internet? usi dei driver per il modem? in questo caso li hai ricompilati dopo aver ricompilato il kernel?

```
Feb 14 23:10:17 Vampire Modules linked in: ipt_MASQUERADE xt_pkttype ipt_TCPMSS xt_tcpudp xt_length xt_state iptable_nat ip_nat ip_conntrack nfnetlink iptable_mangle iptable_filter ip_tables x_tables ppp_synctty ppp_async crc_ccitt ppp_generic slhc af_packet ohci_hcd parport_pc parport snd_via82xx snd_ac97_codec snd_ac97_bus snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd ehci_hcd usblp uhci_hcd radeon drm

Feb 14 23:10:17 Vampire Pid: 13743
```

Non riesci a scaricare i moduli inerenti ad iptables? secondo me potrebbero essere questi.

----------

## Gitanovic

Scusate   :Embarassed:   :Embarassed: 

Il problema si presentava solo facendo partire il kernel 2.6.18-r6 prima della ricompilazione con i moduli relativi a iptables.

Voglio dire: ho due kernel della stessa versione installati, uno senza i moduli per iptables: "2.6.18-r6" , ed uno con: "test".

Ora facendo partire "2.6.18-r6"... si presentava il problema suddetto, mentre facendo partire "test" ninguno problema.

Il problema a 'sto punto, almeno credo, è che entrambi i kernel occupano lo stesso slot, giusto  :Question: 

E quindi condividono i moduli, sarà per questo che il kernel "2.6.18-r6" magari cercava qualche modulo che avrò tolto nella versione successiva, e di qui il problema.

Scusate di nuovo  :Embarassed: 

----------

## cloc3

 *Gitanovic wrote:*   

> 
> 
> Il problema a 'sto punto, almeno credo, è che entrambi i kernel occupano lo stesso slot, giusto 
> 
> E quindi condividono i moduli, 

 

tutto è bene quel che finisce bene.

per evitare le sovrapposizioni tra compilazioni indipendenti dello stesso kernel, esiste l'opzione localversion in menuconfig, che permette di separare fisicamente i moduli in cartelle separata di /lib/modules.

la cosa migliore, inoltre, sarebbe creare più directory con nomi appropriati in /usr/src  e montarle con unionfs sulla versione originale del kernel.

perfetta indipendenza e fine dei pasticci.

----------

