Bashing my head on Kernel Build FC1 2.4.26-1
Ken Smith <kens <at> kensnet.org>
2004-11-01 16:41:07 GMT
That's how it feels anyway! I'm not really a Kernel builder BUT I have a
system with an ASUS P4P800 MB that has a 'normal' IDE controller with 2
channels and a VIA 6410 one, that's supposed to support RAID, with another 2
channels. There's also a SATA controller that I'm not currently using, nor
am I bothering with RAID on the 6410. I've since discovered that Linux is a
very low (read that as 'tending to zero') priority to VIA and their driver
support is only a binary driver and some bit of C code that you can compile
to make a module. That works, but the performance is 9 x slower than the VIA
windows driver accessing the same data on the same disk. Copying the same 1G
file takes 42 secs on windows and 6 mins 15 secs on Linux with the VIA
driver. The performance hit is a problem because I want to do multi-track
music work on the system. So I have been testing a Kernel patch I found that
is supposed to make the normal IDE driver in the Kernel able to work the VIA
IDE device. I have been in touch with some folks who have successfully got
it working - so the patch works but not on this system - now I'm stumped.
Here is the problem. Having applied the patch, I can see the changes in the
three source files it is supposed to alter. The kernel seems to build fine
and it boots fine. But no access to the VIA IDE controller. Obviously the
basic IDE driver is working or it would never boot up.
LSPCI shows the device but dmesg does not show the kernel finding it at
bootup. It shows Ide0 and ide1 but not 2 or 3.
dmesg (full thing attached) has this line just after the IDE initialization
that might be a clue
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
whereas booting an otherwise unhacked kernel has this line
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
Not surprisingly, hdparm denies all knowledge of the device. Is there
something that I can do to prod about in the kernel to see why it can't see
the device? Various flavours of Windoze on that system can drive it just
fine. (but the software I want to use is open source!) So the hardware/BIOS
is OK.
I have commented out the line in rc.local that loads the VIA proprietary
module. But the only thing I can think of is that because I have previously
installed/used the VIA proprietary driver that the VIA install process has
somehow knackered that systems ability to find the device. Is there
somewhere in the init process where I can look for that? Or would I be
better to wipe that partition and start again? But that's a Windoze approach
and I'd rather find the problem and fix it without resorting trashing the
whole system and re-installing. Is there some way to turn on more detailed
logging of the init process or to check in the built kernel that the patched
code made it all the way to the binary file. dmesg shows the right kernel
build date and there are no obvious errors in the build process. Many moons
ago (1980's) I did hardware/driver development for some real time systems -
this feels like that. I want to put a trap in the code somewhere and prod
about in the tables/stack to see if the right things are happening - trace
the code step by step. But I haven't time to undertake that level of kernel
development/debugging these days.
Ideas on kernel driver loading/debugging most welcome
Ken
Linux version 2.4.26-1.ll.rhfc1.ccrmacustom.test (root <at> Linux-DAW.kensnet.org) (gcc version 3.2.3
20030422 (Red Hat Linux 3.2.3-6)) #2 SMP Mon Nov 1 16:06:08 GMT 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000001ff30000 (usable)
BIOS-e820: 000000001ff30000 - 000000001ff40000 (ACPI data)
BIOS-e820: 000000001ff40000 - 000000001fff0000 (ACPI NVS)
BIOS-e820: 000000001fff0000 - 0000000020000000 (reserved)
BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
511MB LOWMEM available.
found SMP MP-table at 000ff780
hm, page 000ff000 reserved twice.
hm, page 00100000 reserved twice.
hm, page 000f1000 reserved twice.
hm, page 000f2000 reserved twice.
On node 0 totalpages: 130864
zone(0): 4096 pages.
zone(1): 126768 pages.
zone(2): 0 pages.
ACPI: RSDP (v002 ACPIAM ) <at> 0x000f9e30
ACPI: XSDT (v001 A M I OEMXSDT 0x02000423 MSFT 0x00000097) <at> 0x1ff30100
ACPI: FADT (v003 A M I OEMFACP 0x02000423 MSFT 0x00000097) <at> 0x1ff30290
ACPI: MADT (v001 A M I OEMAPIC 0x02000423 MSFT 0x00000097) <at> 0x1ff30390
ACPI: OEMB (v001 A M I OEMBIOS 0x02000423 MSFT 0x00000097) <at> 0x1ff40040
ACPI: DSDT (v001 P4P81 P4P81097 0x00000097 INTL 0x02002026) <at> 0x00000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 Pentium 4(tm) XEON(tm) APIC version 20
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
Processor #1 Pentium 4(tm) XEON(tm) APIC version 20
Using ACPI for processor (LAPIC) configuration information
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
OEM ID: ASUSTek Product ID: APIC at: 0xFEE00000
I/O APIC #2 Version 32 at 0xFEC00000.
Enabling APIC mode: Flat. Using 1 I/O APICs
Processors: 2
Kernel command line: ro root=/dev/hda9 hdc=ide-scsi rhgb
ide_setup: hdc=ide-scsi
Initializing CPU#0
Detected 3006.865 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 5947.39 BogoMIPS
Memory: 514392k/523456k available (1799k kernel code, 8676k reserved, 646k data, 136k init, 0k highmem)
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode cache hash table entries: 32768 (order: 6, 262144 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 32768 (order: 5, 131072 bytes)
Page-cache hash table entries: 131072 (order: 7, 524288 bytes)
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 0
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: bfebfbff 00000000 00000000 00000000
CPU: Common caps: bfebfbff 00000000 00000000 00000000
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 0
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: bfebfbff 00000000 00000000 00000000
CPU: Common caps: bfebfbff 00000000 00000000 00000000
CPU0: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 09
per-CPU timeslice cutoff: 1463.08 usecs.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Booting processor 1/1 eip 2000
Initializing CPU#1
masked ExtINT on CPU#1
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 5996.54 BogoMIPS
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
CPU: Physical Processor ID: 0
Intel machine check reporting enabled on CPU#1.
CPU: After generic, caps: bfebfbff 00000000 00000000 00000000
CPU: Common caps: bfebfbff 00000000 00000000 00000000
CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 09
Total of 2 processors activated (11943.93 BogoMIPS).
cpu_sibling_map[0] = 1
cpu_sibling_map[1] = 0
ENABLING IO-APIC IRQs
Setting 2 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 2 ... ok.
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-5, 2-10, 2-11 not connected.
..TIMER: vector=0x31 pin1=2 pin2=0
number of MP IRQ sources: 26.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
....... : Delivery Type: 0
....... : LTS : 0
.... register #01: 00178020
....... : max redirection entries: 0017
....... : PRQ implemented: 1
....... : IO APIC version: 0020
.... IRQ redirection table:
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
00 000 00 1 0 0 0 0 0 0 00
01 003 03 0 0 0 0 0 1 1 39
02 003 03 0 0 0 0 0 1 1 31
03 003 03 0 0 0 0 0 1 1 41
04 003 03 0 0 0 0 0 1 1 49
05 000 00 1 0 0 0 0 0 0 00
06 003 03 0 0 0 0 0 1 1 51
07 003 03 0 0 0 0 0 1 1 59
08 003 03 0 0 0 0 0 1 1 61
09 003 03 0 0 0 0 0 1 1 69
0a 000 00 1 0 0 0 0 0 0 00
0b 000 00 1 0 0 0 0 0 0 00
0c 003 03 0 0 0 0 0 1 1 71
0d 003 03 0 0 0 0 0 1 1 79
0e 003 03 0 0 0 0 0 1 1 81
0f 003 03 0 0 0 0 0 1 1 89
10 003 03 1 1 0 1 0 1 1 91
11 003 03 1 1 0 1 0 1 1 99
12 003 03 1 1 0 1 0 1 1 A1
13 003 03 1 1 0 1 0 1 1 A9
14 003 03 1 1 0 1 0 1 1 B1
15 003 03 1 1 0 1 0 1 1 B9
16 003 03 1 1 0 1 0 1 1 C1
17 003 03 1 1 0 1 0 1 1 C9
IRQ to pin mappings:
IRQ0 -> 0:2
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
IRQ16 -> 0:16
IRQ17 -> 0:17
IRQ18 -> 0:18
IRQ19 -> 0:19
IRQ20 -> 0:20
IRQ21 -> 0:21
IRQ22 -> 0:22
IRQ23 -> 0:23
.................................... done.
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 3006.0183 MHz.
..... host bus clock speed is 200.0412 MHz.
cpu: 0, clocks: 200412, slice: 66804
CPU0<T0:200400,T1:133568,D:28,S:66804,C:200412>
cpu: 1, clocks: 200412, slice: 66804
CPU1<T0:200400,T1:66784,D:8,S:66804,C:200412>
checking TSC synchronization across CPUs: passed.
Waiting on wait_init_idle (map = 0x2)
All processors have done init_idle
PCI: PCI BIOS revision 2.10 entry at 0xf0031, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 00:1f.1
Transparent bridge - Intel Corp. 82801BA/CA/DB/EB PCI Bridge
PCI: Using IRQ router PIIX/ICH [8086/24d0] at 00:1f.0
PCI->APIC IRQ transform: (B0,I29,P0) -> 16
PCI->APIC IRQ transform: (B0,I29,P1) -> 19
PCI->APIC IRQ transform: (B0,I29,P2) -> 18
PCI->APIC IRQ transform: (B0,I29,P0) -> 16
PCI->APIC IRQ transform: (B0,I29,P3) -> 23
PCI->APIC IRQ transform: (B0,I31,P0) -> 18
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B0,I31,P1) -> 17
PCI->APIC IRQ transform: (B1,I0,P0) -> 16
PCI->APIC IRQ transform: (B2,I3,P0) -> 20
PCI->APIC IRQ transform: (B2,I4,P0) -> 23
PCI->APIC IRQ transform: (B2,I5,P0) -> 22
PCI->APIC IRQ transform: (B2,I9,P0) -> 21
PCI->APIC IRQ transform: (B2,I10,P0) -> 22
PCI->APIC IRQ transform: (B2,I10,P0) -> 22
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Installing knfsd (copyright (C) 1996 okir <at> monad.swb.de).
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: Detected an Intel(R) 865G, but could not find the secondary device. Assuming a non-integrated
video card.
agpgart: Detected Intel(R) 865G chipset
agpgart: AGP aperture is 64M <at> 0xf8000000
[drm] Initialized tdfx 1.0.0 20010216 on minor 0
[drm] AGP 0.99 Aperture <at> 0xf8000000 64MB
[drm] Initialized radeon 1.7.0 20020828 on minor 1
[drm] AGP 0.99 Aperture <at> 0xf8000000 64MB
[drm] Initialized i810 1.2.1 20020211 on minor 2
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH5: IDE controller at PCI slot 00:1f.1
PCI: Enabling device 00:1f.1 (0005 -> 0007)
ICH5: chipset revision 2
ICH5: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:DMA
hda: Maxtor 5T060H6, ATA DISK drive
blk: queue c03d6d60, I/O limit 4095Mb (mask 0xffffffff)
hdc: _NEC DVD_RW ND-2500A, ATAPI CD/DVD-ROM drive
hdd: ST36531A, ATA DISK drive
blk: queue c03d7320, I/O limit 4095Mb (mask 0xffffffff)
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 117347328 sectors (60082 MB) w/2048KiB Cache, CHS=7304/255/63, UDMA(100)
hdd: attached ide-disk driver.
hdd: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hdd: task_no_data_intr: error=0x04 { DriveStatusError }
hdd: 12706470 sectors (6506 MB) w/128KiB Cache, CHS=13446/15/63, UDMA(33)
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 >
hdd: [PTBL] [790/255/63] hdd1
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
es1371: version v0.32 time 16:07:02 Nov 1 2004
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
usb.c: registered new driver hub
host/uhci.c: USB Universal Host Controller Interface driver v1.1
PCI: Setting latency timer of device 00:1d.0 to 64
host/uhci.c: USB UHCI at I/O 0xef00, IRQ 16
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Setting latency timer of device 00:1d.1 to 64
host/uhci.c: USB UHCI at I/O 0xef20, IRQ 19
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Setting latency timer of device 00:1d.2 to 64
host/uhci.c: USB UHCI at I/O 0xef40, IRQ 18
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Setting latency timer of device 00:1d.3 to 64
host/uhci.c: USB UHCI at I/O 0xef80, IRQ 16
usb.c: new USB bus registered, assigned bus number 4
hub.c: USB hub found
hub.c: 2 ports detected
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
ds: no socket drivers loaded!
EXT2-fs warning (device ide0(3,9)): ext2_read_super: mounting ext3 filesystem as ext2
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 136k freed
Adding Swap: 1542200k swap-space (priority -1)
--
--
Gllug mailing list - Gllug <at> gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug