2002-09-04 18:13:58

by Phil Stracchino

[permalink] [raw]
Subject: PROBLEM: Kernel 2.4.19 does not export _mmx_memcpy when compiled with gcc-3.2 and Athlon optimizations

PROBLEM SUMMARY:
Kernel 2.4.19 apparently fails to export _mmx_memcpy when compiled with
gcc-3.2 and Athlon optimizations


While trying to isolate an apparent progressive hardware failure, I had
cause to swap the disks and SCSI controller from a K6-III/450 machine
running kernel 2.4.19 into an Athlon/1200 machine. Having done so, I
rebuilt the kernel with Athlon optimizations instead of K6-III.

Despite making no other change in the kernel configuration, this yielded
an unusable kernel. The machine would boot, but almost all modules
failed to load and the system as a whole was not usable running on that
kernel. All failures appeared to come down to a single error, reporting
_mmx_memcpy as an unresolved symbol. It appears that for some reason
_mmx_memcpy is not exported from the kernel if Athlon optimization is
used.

The system was sufficiently non-functional that I was unable to capture
a log of the error messages.


Being of a suspicious nature, I generated .config files for K6 and
Athlon optimizations, and discovered the following:


--- .config.k6 Wed Sep 4 01:22:11 2002
+++ .config Wed Sep 4 13:59:39 2002
@@ -29,8 +29,8 @@
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
-CONFIG_MK6=y
-# CONFIG_MK7 is not set
+# CONFIG_MK6 is not set
+CONFIG_MK7=y
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
@@ -45,9 +45,11 @@
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_X86_L1_CACHE_SHIFT=5
-CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
+CONFIG_X86_GOOD_APIC=y
+CONFIG_X86_USE_3DNOW=y
+CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_MCE=y
# CONFIG_TOSHIBA is not set


The significant thing here seems to be that CONFIG_X86_USE_3DNOW is not
enabled when compiling for K6, because K6, K6-II and K6-III are treated
as the same processor, even though the K6-III does in fact support
3DNow. I was baffled as to why 3DNow code would work with K6
optimizations but not with Athlon, but now I see that the explanation
of that particular puzzle is that it wasn't being usedd on K6. I'm
minded to try building a K6-optimized kernel with CONFIG_X86_USE_3DNOW
turned on, but I don't have the results of that experiment yet and will
report on it when I do.



ver_linux output:


/*
* scripts/ver_linux doesn't report the binutils
* version, an omission that should be remedied.
* the following simple change would accomplish
* this, as well as improving readability of the
* output:

--- scripts/ver_linux.orig Sun Sep 2 10:27:18 2001
+++ scripts/ver_linux Wed Sep 4 13:51:32 2002
@@ -12,7 +12,8 @@
uname -a
echo ' '

-echo "Gnu C " `gcc --version`
+echo "Gnu C " `gcc --version | head -1`
+echo "Binutils (from ld) " `ld --version | head -1`

make --version 2>&1 | awk -F, '{print $1}' | awk \
'/GNU Make/{print "Gnu make ",$NF}'

* The following output is as patched:
*/


Linux babylon5 2.4.19 #7 Wed Sep 4 00:32:43 EDT 2002 i686 unknown

Gnu C gcc (GCC) 3.2
Binutils (from ld) GNU ld version 2.12
Gnu make 3.79.1
util-linux 2.11f
mount 2.11f
modutils 2.4.6
e2fsprogs 1.25
reiserfsprogs 3.x.0b
PPP 2.4.0b4
Linux C Library 2.1.3
Dynamic linker (ldd) 2.1.3
Linux C++ Library 5.0.0
Procps 2.0.2
Net-tools 1.60
Kbd 0.99
Sh-utils 1.16
Modules Loaded ppp_deflate bsd_comp ppp_async ppp_generic slhc
audiopci pnp soundbase sndshield serial nfs lockd sunrpc iptable_filter
ipt_MASQUERADE ip_nat_irc ip_conntrack_irc iptable_nat ip_tables
mousedev hid input usb-uhci usbcore st sg lp parport_pc parport isofs
inflate_fs sr_mod cdrom

binutils 2.12
/*
* scripts/ver_linux doesn't report the binutils
* version, an omission that should be remedied.
* the following one-line patch would accomplish
* this, as well as improving readability:

*** scripts/ver_linux.orig Sun Sep 2 10:27:18 2001
--- scripts/ver_linux Wed Sep 4 13:51:32 2002
***************
*** 12,18 ****
uname -a
echo ' '

! echo "Gnu C " `gcc --version`

make --version 2>&1 | awk -F, '{print $1}' | awk \
'/GNU Make/{print "Gnu make ",$NF}'
--- 12,19 ----
uname -a
echo ' '

! echo "Gnu C " `gcc --version | head -1`
! echo "Binutils (from ld) " `ld --version | head -1`

make --version 2>&1 | awk -F, '{print $1}' | awk \
'/GNU Make/{print "Gnu make ",$NF}'

*/

/proc/cpuinfo:

processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 4
model name : AMD Athlon(tm) Processor
stepping : 4
cpu MHz : 1200.097
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips : 2392.06


/proc/ioports:

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
02f8-02ff : serial(auto)
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
4000-40ff : VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
5000-500f : VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
6000-607f : VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
c000-cfff : PCI Bus #01
c000-c0ff : 3Dfx Interactive, Inc. Voodoo 3
d000-d00f : VIA Technologies, Inc. Bus Master IDE
d400-d41f : VIA Technologies, Inc. UHCI USB
d400-d41f : usb-uhci
d800-d81f : VIA Technologies, Inc. UHCI USB (#2)
d800-d81f : usb-uhci
dc00-dc3f : Ensoniq ES1370 [AudioPCI]
dc00-dc3f : AudioPCI
e000-e07f : 3Com Corporation 3c905B 100BaseTX [Cyclone]
e000-e07f : 00:09.0
e400-e403 : BusLogic BT-946C (BA80C30) [MultiMaster 10]
e400-e403 : BusLogic BT-958


/proc/iomem:

00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000cc000-000cffff : Extension ROM
000f0000-000fffff : System ROM
00100000-0ffeffff : System RAM
00100000-002098c6 : Kernel code
002098c7-0027953f : Kernel data
0fff0000-0fff2fff : ACPI Non-volatile Storage
0fff3000-0fffffff : ACPI Tables
d0000000-d3ffffff : VIA Technologies, Inc. VT8363/8365 [KT133/KM133]
d4000000-d7ffffff : PCI Bus #01
d4000000-d5ffffff : 3Dfx Interactive, Inc. Voodoo 3
d8000000-d9ffffff : PCI Bus #01
d8000000-d9ffffff : 3Dfx Interactive, Inc. Voodoo 3
db000000-db00007f : 3Com Corporation 3c905B 100BaseTX [Cyclone]
db001000-db001fff : BusLogic BT-946C (BA80C30) [MultiMaster 10]
ffff0000-ffffffff : reserved


/proc/modules:

ppp_deflate 39584 0 (autoclean)
bsd_comp 4288 0 (autoclean)
ppp_async 7504 1 (autoclean)
ppp_generic 15520 3 (autoclean) [ppp_deflate bsd_comp
ppp_async]
slhc 4960 1 (autoclean) [ppp_generic]
audiopci 16768 0
pnp 49904 0 [audiopci]
soundbase 846480 0 [audiopci pnp]
sndshield 11488 0 [audiopci pnp soundbase]
serial 45920 2 (autoclean)
nfs 66608 7 (autoclean)
lockd 46640 1 (autoclean) [nfs]
sunrpc 59552 1 (autoclean) [nfs lockd]
iptable_filter 1680 0 (autoclean) (unused)
ipt_MASQUERADE 1824 2 (autoclean)
ip_nat_irc 2976 0 (unused)
ip_conntrack_irc 2704 0 [ip_nat_irc]
iptable_nat 20096 9 [ipt_MASQUERADE ip_nat_irc]
ip_tables 14048 5 [iptable_filter ipt_MASQUERADE
iptable_nat]
mousedev 4128 1
hid 18640 0 (unused)
input 3456 0 [mousedev hid]
usb-uhci 21808 0 (unused)
usbcore 63872 1 [hid usb-uhci]
st 26544 0 (unused)
sg 31344 0 (unused)
lp 6432 0 (unused)
parport_pc 21952 1
parport 25024 1 [lp parport_pc]
isofs 25280 1 (autoclean)
inflate_fs 17760 0 (autoclean) [isofs]
sr_mod 13280 0 (autoclean) (unused)
cdrom 26592 0 (autoclean) [sr_mod]


lspci:

00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev
02)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
Latency: 0 set
Region 0: Memory at d0000000 (32-bit, prefetchable)
Capabilities: <available only to root>

00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device 8305
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
Latency: 0 set
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000c000-0000cfff
Memory behind bridge: d4000000-d7ffffff
Prefetchable memory behind bridge: d8000000-d9ffffff
BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-

00:07.0 ISA bridge: VIA Technologies, Inc.: Unknown device 0686 (rev 22)
Subsystem: Unknown device 1106:0000
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping+ SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 set

00:07.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev
10) (prog-if 8a)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 set
Region 4: I/O ports at d000
Capabilities: <available only to root>

00:07.2 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
Subsystem: Unknown device 0925:1234
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 set, cache line size 08
Interrupt: pin D routed to IRQ 9
Region 4: I/O ports at d400
Capabilities: <available only to root>

00:07.3 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
Subsystem: Unknown device 0925:1234
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 set, cache line size 08
Interrupt: pin D routed to IRQ 9
Region 4: I/O ports at d800
Capabilities: <available only to root>

00:07.4 Host bridge: VIA Technologies, Inc.: Unknown device 3057 (rev
30)
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin ? routed to IRQ 9
Capabilities: <available only to root>

00:08.0 Multimedia audio controller: Ensoniq ES1370 [AudioPCI] (rev 01)
Subsystem: Unknown device 4942:4c4c
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort-
<TAbort- <MAbort+ >SERR- <PERR-
Latency: 12 min, 128 max, 32 set
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at dc00

00:09.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone]
(rev 30)
Subsystem: Unknown device 10b7:9055
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 10 min, 10 max, 32 set, cache line size 08
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at e000
Region 1: Memory at db000000 (32-bit, non-prefetchable)
Capabilities: <available only to root>

00:0c.0 SCSI storage controller: BusLogic BT-946C (BA80C30) [MultiMaster
10] (rev 08)
Subsystem: Unknown device 104b:1040
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 8 min, 8 max, 32 set, cache line size 08
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at e400
Region 1: Memory at db001000 (32-bit, non-prefetchable)

01:00.0 VGA compatible controller: 3Dfx Interactive, Inc.: Unknown
device 0005 (rev 01)
Subsystem: Unknown device 121a:0030
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR+
Interrupt: pin A routed to IRQ 14
Region 0: Memory at d4000000 (32-bit, non-prefetchable)
Region 1: Memory at d8000000 (32-bit, prefetchable)
Region 2: I/O ports at c000
Capabilities: <available only to root>


/proc/scsi/scsi:

Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: IBM Model: DDYS-T18350N Rev: S96H
Type: Direct-Access ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: IBM Model: DNES-318350W Rev: SA30
Type: Direct-Access ANSI SCSI revision: 03


--
********* Fight Back! It may not be just YOUR life at risk. *********
phil stracchino :: [email protected] :: [email protected]
unix ronin :::: renaissance man :::: mystic zen biker geek
2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold)
Linux Now! ...because friends don't let friends use Microsoft.


2002-09-04 18:42:53

by Phil Stracchino

[permalink] [raw]
Subject: FOLLOWUP: Kernel 2.4.19 does not export _mmx_memcpy when compiled with gcc-3.2 and Athlon optimizations

FOLLOWUP:
I built a K6-optimized kernel and manually turned on CONFIG_X86_USE_3DNOW
before beginning compilation, installed the kernel, and ran depmod -a.
The result:

babylon5:root:/usr/src/linux-2.4.19:65 # depmod -a
depmod: *** Unresolved symbols in /lib/modules/2.4.19/kernel/drivers/block/rd.o
depmod: *** Unresolved symbols in /lib/modules/2.4.19/kernel/drivers/cdrom/cdrom.o
depmod: *** Unresolved symbols in /lib/modules/2.4.19/kernel/drivers/char/serial.o
depmod: *** Unresolved symbols in /lib/modules/2.4.19/kernel/drivers/ide/ide-cd.o
...
...
... well, you get the idea. A total of 40 modules fail, all with the
same error. The following is the list of failed modules:

drivers/block/rd.o
drivers/cdrom/cdrom.o
drivers/char/serial.o
drivers/ide/ide-cd.o
drivers/md/lvm-mod.o
drivers/md/raid5.o
drivers/net/ppp_async.o
drivers/net/ppp_deflate.o
drivers/net/ppp_generic.o
drivers/net/slhc.o
drivers/net/slip.o
drivers/parport/parport.o
drivers/parport/parport_pc.o
drivers/pcmcia/pcmcia_core.o
drivers/scsi/aic7xxx/aic7xxx.o
drivers/scsi/ide-scsi.o
drivers/scsi/sg.o
drivers/scsi/sr_mod.o
drivers/scsi/st.o
drivers/usb/hid.o
drivers/usb/storage/usb-storage.o
drivers/usb/usb-uhci.o
drivers/usb/usbcore.o
fs/fat/fat.o
fs/inflate_fs/inflate_fs.o
fs/intermezzo/intermezzo.o
fs/isofs/isofs.o
fs/lockd/lockd.o
fs/minix/minix.o
fs/nfs/nfs.o
fs/nfsd/nfsd.o
fs/reiserfs/reiserfs.o
fs/smbfs/smbfs.o
fs/udf/udf.o
fs/ufs/ufs.o
fs/vfat/vfat.o
net/ipv4/netfilter/ip_tables.o
net/ipv4/netfilter/ipt_REJECT.o
net/ipv4/netfilter/iptable_nat.o
net/sunrpc/sunrpc.o


So it definitely looks like something is unhappy with CONFIG_X86_USE_3DNOW,
possibly only when compiled with gcc-3.2, possibly not. Why it's not
being exported, I have no idea; as far as I can tell, it should be.

I haven't tried building an Athlon-optimized kernel *without* using
CONFIG_X86_USE_3DNOW.



--
********* Fight Back! It may not be just YOUR life at risk. *********
phil stracchino :: [email protected] :: [email protected]
unix ronin :::: renaissance man :::: mystic zen biker geek
2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold)
Linux Now! ...because friends don't let friends use Microsoft.

2002-09-04 23:29:57

by Alan

[permalink] [raw]
Subject: Re: PROBLEM: Kernel 2.4.19 does not export _mmx_memcpy when compiled with gcc-3.2 and Athlon optimizations

On Wed, 2002-09-04 at 19:19, Phil Stracchino wrote:
> PROBLEM SUMMARY:
> Kernel 2.4.19 apparently fails to export _mmx_memcpy when compiled with
> gcc-3.2 and Athlon optimizations

You need to save your .config make distclean, restore it make oldconfig
dep and build the kernel. Its a known limitation in the CML1 config
tools

2002-09-05 01:10:22

by Phil Stracchino

[permalink] [raw]
Subject: Re: PROBLEM: Kernel 2.4.19 does not export _mmx_memcpy when compiled with gcc-3.2 and Athlon optimizations

On Thu, Sep 05, 2002 at 12:35:12AM +0100, Alan Cox wrote:
> On Wed, 2002-09-04 at 19:19, Phil Stracchino wrote:
> > PROBLEM SUMMARY:
> > Kernel 2.4.19 apparently fails to export _mmx_memcpy when compiled with
> > gcc-3.2 and Athlon optimizations
>
> You need to save your .config make distclean, restore it make oldconfig
> dep and build the kernel. Its a known limitation in the CML1 config
> tools


Aha, so it's a known config problem, not bizarre psychic terrorism on
the part of the source code. Thank you for saving my sanity. :) I'll
give that procedure a shot.


--
********* Fight Back! It may not be just YOUR life at risk. *********
phil stracchino :: [email protected] :: [email protected]
unix ronin :::: renaissance man :::: mystic zen biker geek
2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold)
Linux Now! ...because friends don't let friends use Microsoft.

2002-09-11 21:15:15

by Phil Stracchino

[permalink] [raw]
Subject: CDROM driver does not support Linux partition tables


A deficiency in the Linux CDROM driver was just brought to my attention.
Even on a kernel configured with support for UFS and Sun partition
tables, it doesn't appear to be possible to mount any but the first
slice of a Sun CDROM containing multiple slices. Essentially, it seems
that Solaris partition table support doesn't trickle down to the CDROM
driver.

Is this something that's supposed to happen, and is there a reason why
it's not supported, or is it simply that no-one has asked for it to be
supported and/or no-one has gotten around to implementing it because of
lack of demand?

(The particular case in which this came up is someone who has a Sun box
without a CDROM drive in it, and wants to use a Linux box as a jumpstart
server, but can't because the Linux box can't read beyond the first
slice on the CD.)



--
********* Fight Back! It may not be just YOUR life at risk. *********
:phil stracchino : unix ronin : renaissance man : mystic zen biker geek:
: [email protected] ::: [email protected] ::: [email protected] :
: 2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold) :
: Linux Now! ...because friends don't let friends use Microsoft. :

2002-09-11 21:23:30

by Alan

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

On Wed, 2002-09-11 at 22:19, Phil Stracchino wrote:
>
> A deficiency in the Linux CDROM driver was just brought to my attention.
> Even on a kernel configured with support for UFS and Sun partition
> tables, it doesn't appear to be possible to mount any but the first
> slice of a Sun CDROM containing multiple slices. Essentially, it seems
> that Solaris partition table support doesn't trickle down to the CDROM
> driver.
>
> Is this something that's supposed to happen, and is there a reason why
> it's not supported, or is it simply that no-one has asked for it to be
> supported and/or no-one has gotten around to implementing it because of
> lack of demand?

It ought to be supportable on scsi cd or with ide-scsi. ide-cd has no
minor space for partitioning, ide-scsi/sr do support partitions.

2002-09-11 21:26:12

by MånsRullgård

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

Phil Stracchino <[email protected]> writes:

>
> A deficiency in the Linux CDROM driver was just brought to my attention.
> Even on a kernel configured with support for UFS and Sun partition
> tables, it doesn't appear to be possible to mount any but the first
> slice of a Sun CDROM containing multiple slices. Essentially, it seems
> that Solaris partition table support doesn't trickle down to the CDROM
> driver.
>
> Is this something that's supposed to happen, and is there a reason why
> it's not supported, or is it simply that no-one has asked for it to be
> supported and/or no-one has gotten around to implementing it because of
> lack of demand?
>
> (The particular case in which this came up is someone who has a Sun box
> without a CDROM drive in it, and wants to use a Linux box as a jumpstart
> server, but can't because the Linux box can't read beyond the first
> slice on the CD.)

Can the disk be copied to a file or hard disk and mounted there?

--
M?ns Rullg?rd
[email protected]

2002-09-11 21:32:24

by Thunder from the hill

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

Hi,

On Wed, 11 Sep 2002, Phil Stracchino wrote:
> A deficiency in the Linux CDROM driver was just brought to my attention.
> Even on a kernel configured with support for UFS and Sun partition
> tables, it doesn't appear to be possible to mount any but the first
> slice of a Sun CDROM containing multiple slices. Essentially, it seems
> that Solaris partition table support doesn't trickle down to the CDROM
> driver.

I remember someone tangling around with the partitioning code. Care to
comment?

Thunder
--
--./../...-/. -.--/---/..-/.-./..././.-../..-. .---/..-/.../- .-
--/../-./..-/-/./--..-- ../.----./.-../.-.. --./../...-/. -.--/---/..-
.- -/---/--/---/.-./.-./---/.--/.-.-.-
--./.-/-.../.-./.././.-../.-.-.-

2002-09-11 21:35:05

by Phil Stracchino

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

On Wed, Sep 11, 2002 at 11:30:49PM +0200, M?ns Rullg?rd wrote:
> Phil Stracchino <[email protected]> writes:
> > Even on a kernel configured with support for UFS and Sun partition
> > tables, it doesn't appear to be possible to mount any but the first
> > slice of a Sun CDROM containing multiple slices. Essentially, it seems
> > that Solaris partition table support doesn't trickle down to the CDROM
> > driver.
>
> Can the disk be copied to a file or hard disk and mounted there?

Copied with dd? I don't know, but it's a thought. I suspect the
ide-scsi route Alan suggested is more promising.



--
********* Fight Back! It may not be just YOUR life at risk. *********
:phil stracchino : unix ronin : renaissance man : mystic zen biker geek:
: [email protected] ::: [email protected] ::: [email protected] :
: 2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold) :
: Linux Now! ...because friends don't let friends use Microsoft. :

2002-09-12 05:05:08

by Jens Axboe

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

On Wed, Sep 11 2002, Alan Cox wrote:
> On Wed, 2002-09-11 at 22:19, Phil Stracchino wrote:
> >
> > A deficiency in the Linux CDROM driver was just brought to my attention.
> > Even on a kernel configured with support for UFS and Sun partition
> > tables, it doesn't appear to be possible to mount any but the first
> > slice of a Sun CDROM containing multiple slices. Essentially, it seems
> > that Solaris partition table support doesn't trickle down to the CDROM
> > driver.
> >
> > Is this something that's supposed to happen, and is there a reason why
> > it's not supported, or is it simply that no-one has asked for it to be
> > supported and/or no-one has gotten around to implementing it because of
> > lack of demand?
>
> It ought to be supportable on scsi cd or with ide-scsi. ide-cd has no
> minor space for partitioning, ide-scsi/sr do support partitions.

The opposite, surely? sr uses one minor per cd-rom, ide-cd has 64.

--
Jens Axboe

2002-09-12 07:55:38

by Alan

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

On Thu, 2002-09-12 at 06:06, Jens Axboe wrote:
> > It ought to be supportable on scsi cd or with ide-scsi. ide-cd has no
> > minor space for partitioning, ide-scsi/sr do support partitions.
>
> The opposite, surely? sr uses one minor per cd-rom, ide-cd has 64.

Brain on stun. Yes ide-scsi is a problem ide-cd gets it right. This is
something that really ought to get fixe durin 2.5

2002-09-12 19:54:01

by Phil Stracchino

[permalink] [raw]
Subject: Re: CDROM driver does not support Linux partition tables

On Thu, Sep 12, 2002 at 08:59:57AM +0100, Alan Cox wrote:
> On Thu, 2002-09-12 at 06:06, Jens Axboe wrote:
> > > It ought to be supportable on scsi cd or with ide-scsi. ide-cd has no
> > > minor space for partitioning, ide-scsi/sr do support partitions.
> >
> > The opposite, surely? sr uses one minor per cd-rom, ide-cd has 64.
>
> Brain on stun. Yes ide-scsi is a problem ide-cd gets it right. This is
> something that really ought to get fixe durin 2.5


Hrm. Then how does one access the other minors? I tried creating the
presumed-appropriate device nodes directly via mknod (cdrom0 was 22,0; I
created 22,1 22,2 22,3) without success. I didn't have ide-scsi loaded
at the time.


--
********* Fight Back! It may not be just YOUR life at risk. *********
:phil stracchino : unix ronin : renaissance man : mystic zen biker geek:
: [email protected] ::: [email protected] ::: [email protected] :
: 2000 CBR929RR, 1991 VFR750F3 (foully murdered), 1986 VF500F (sold) :
: Linux Now! ...because friends don't let friends use Microsoft. :