• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

in make menuconfig etwas geändert - wie aktivieren?

ich habe unter /usr/src/linux mit make menuconfig einige Settings geändert, anschließend die Config gespeichert.
Wie bekomme ich denn jetzt den Kernekl neu gebaut und aktiviert?
Reicht da ein:
Code:
cd /usr/src/linux
make mrproper
make cloneconfig
make prepare-all
 
OP
F

fritzbee21

Hacker
ok, ich hab folgendes gemacht:

Code:
make clean
make menuconfig
Settings geändert bei -> serial drivers
Kernelconfig abgespeichert
Code:
make modules
make modules-install

reboot

es schaut so aus als ob meine Einstellungen übernommen wurden,
Anzahl der seriellen Schnittstellen von 4 auf 12 erhöht, leider habe ich aber immer noch "nur" 4

dann den seriellen Treiber von Build In auf Module gesetzt, prozedur wiederholt - keine Änderung.

von meiner seriellen Karte (6 serielle Ports) wird nur 1er erkannt (IRQ 217), der Rest nicht.
Irgendwie ist in der Config "extended serial driver options" ausgeschaltet und damit auch "support for sharing serial interrupts". Die Karte hat aber alle 6 Ports auf IRQ 217

der erste Port schaut so aus:

Code:
setserial -a /dev/ttyS1
/dev/ttyS1, Line 1, UART: 16550A, Port: 0xcc00, IRQ: 217
        Baud_base: 115200, close_delay: 50, divisor: 20
        closing_wait: 3000
        Flags: spd_cust skip_test

wenn ich ne Anwendung zünde bekomme ich folgendes:

Code:
ttyS1: LSR safety check engaged!
irq 217: nobody cared (try booting with the "irqpoll" option)

Call Trace:
 <IRQ> [<ffffffff802a9170>] __report_bad_irq+0x30/0x7d
 [<ffffffff802a93a0>] note_interrupt+0x1e3/0x224
 [<ffffffff802a889b>] __do_IRQ+0xc7/0x105
 [<ffffffff8020fef1>] __do_softirq+0x5e/0xd5
 [<ffffffff80265d28>] do_IRQ+0x65/0x73
 [<ffffffff802645d3>] default_idle+0x0/0x50
 [<ffffffff802584c9>] ret_from_intr+0x0/0xa
 <EOI> [<ffffffff802645fc>] default_idle+0x29/0x50
 [<ffffffff802451ba>] cpu_idle+0x95/0xb8
 [<ffffffff805da7a3>] start_kernel+0x21b/0x220
 [<ffffffff805da28a>] _sinittext+0x28a/0x28e

handlers:
[<ffffffff8036c5e6>] (serial8250_interrupt+0x0/0xfa)
Disabling IRQ #217
pgm sets custom speed on ttyS1. This is deprecated.
irq 217: nobody cared (try booting with the "irqpoll" option)

Call Trace:
 <IRQ> [<ffffffff802a9170>] __report_bad_irq+0x30/0x7d
 [<ffffffff802a93a0>] note_interrupt+0x1e3/0x224
 [<ffffffff802a889b>] __do_IRQ+0xc7/0x105
 [<ffffffff8020fef1>] __do_softirq+0x5e/0xd5
 [<ffffffff80265d28>] do_IRQ+0x65/0x73
 [<ffffffff802645d3>] default_idle+0x0/0x50
 [<ffffffff802584c9>] ret_from_intr+0x0/0xa
 <EOI> [<ffffffff802645fc>] default_idle+0x29/0x50
 [<ffffffff802451ba>] cpu_idle+0x95/0xb8
 [<ffffffff805da7a3>] start_kernel+0x21b/0x220
 [<ffffffff805da28a>] _sinittext+0x28a/0x28e

handlers:
[<ffffffff8036c5e6>] (serial8250_interrupt+0x0/0xfa)
Disabling IRQ #217

egal ob die den seriellen Treiber bei Module oder Build In ausgewählt habe
 
A

Anonymous

Gast
Keine Ahnung was du da veranstaltest und was du im Kernel zusammenkonfiguriert hast. (unter dieser Überschrift findet das hier jedenfalls sowieso niemand) Bei mir werden per default Kernel und default Konfiguration 8 Serielle problemlos erkannt auch ohne das ich da was rumgedeht habe. Habe mal spaßenshalber 2 Serielle Quad-Karten reingesteckt und ganz normal gebootet
Code:
dhcppc0:/ # for i in 0 1 2 3 4 5 6 7; do setserial -a /dev/ttyS$i; done
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS1, Line 1, UART: 16550A, Port: 0x02f8, IRQ: 3
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS2, Line 2, UART: 16654, Port: 0xa800, IRQ: 22
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS3, Line 3, UART: 16654, Port: 0xa808, IRQ: 22
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS4, Line 4, UART: 16654, Port: 0xd000, IRQ: 19
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS5, Line 5, UART: 16654, Port: 0xd008, IRQ: 19
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS6, Line 6, UART: 16654, Port: 0xd010, IRQ: 19
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

/dev/ttyS7, Line 7, UART: 16654, Port: 0xd018, IRQ: 19
        Baud_base: 460800, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test
Die letzten beiden werden erwartungsgemäß nicht mehr registriert, da wohl im Kernel eine Beschränkung auf 8 aktiv ist. Die Ports haben Kontrollerweise die selben IRQ aber andere IO-Ports. Und mit allen kann ich ganz normal arbeiten.
Und was willst du jetzt genau? jeden Port auf eine eigene IRQ ?
Schau mal in die Datei /etc/init.d/setserial da ist was zum auskommentieren. Habe ich aber noch nicht gebraucht, also auch keine rechte Ahnung davon. Aber eventuell findest du irgendwas in den Manpages.

robi
 
Der x86_64-Kernel von SUSE hat nur 4 konfiguriert, während der i386er 8 hat. 2.6.29.6-jen81 hat 12 für sowohl i386 als auch x86_64 konfiguriert, denn im embedded-näherenden Bereich ist es noch ziemlich gängig mehr als 4 von den platform-basierten (also keine USB-Teile z.B.) seriellen Schnittstellen zu haben.

setserial bringt dir nichts — ich spreche da aus Erfahrung. Wenn die COM-Ports mittels BIOS/ACPI nicht erkannt werden kannst du auch nichts mit manuellem Setzen der I/O-Adressen durch setserial bewirken.

Und das Phänomen erstreckt sich auch über Linux herausgreifend, OpenBSD verhält sich ähnlich.

edit: nun mit 12 UARTs konfiguriert.
 
Oben