[Debburn-changes] r655 - cdrkit/trunk/doc/plattforms
Eduard Bloch
blade at alioth.debian.org
Fri Dec 29 09:46:32 CET 2006
Author: blade
Date: 2006-12-29 09:46:32 +0100 (Fri, 29 Dec 2006)
New Revision: 655
Modified:
cdrkit/trunk/doc/plattforms/README.linux
Log:
Defudification of doc/plattforms/README.linux
Modified: cdrkit/trunk/doc/plattforms/README.linux
===================================================================
--- cdrkit/trunk/doc/plattforms/README.linux 2006-12-29 01:01:43 UTC (rev 654)
+++ cdrkit/trunk/doc/plattforms/README.linux 2006-12-29 08:46:32 UTC (rev 655)
@@ -1,183 +1,37 @@
-NOTE for all Linux 2.5.x versions and all Linux versions before 2.6.8:
+Requirements of cdrkit on Linux:
- Linux did ship with defective kernel include files starting
- with 2.5.x. These defective kernel include files did prevent
- compilation. If you have problems compiling software and see
- error messages related to include/scsi/scsi.h & include/scsi/sg.h
- either upgrade to Linux-2.6.8 or newer or remove /usr/src/linux
+ - Linux kernel 2.4 or newer
+ - Glibc 2.2 or newer
+ - libcap library package is required, with development files (headers)
+ - kernel headers useable with the combination of glibc and kernel, as approved
+ by the distribution. Do not blindly use random kernel headers, do not
+ symlink them to /usr/include/linux or /usr/include/asm*.
-NOTE for all Linux versions using libc.so.6:
+Notes about support on Linux:
- Libc.so.6 is definitely a big problem in binary compatibility.
- First you should note that Linux is not a OS but only a kernel.
+ - Linux kernel versions between 2.6.8 and 2.6.11 are known to have invasive
+ SCSI command filtering which makes the use of wodim almost inpossible or
+ complicated for non-root users. Avoid those kernel versions, unless they
+ have been patched to disable that filtering.
- Creating a OS from kernel, libraries and applications is done
- by various companies that create "Linux distributions". It seems
- that these companies (e.g. SuSE and Red Hat) are fighting wars
- against each other.
+ - support of generic scsi was limited on 2.4, ie. not available directly with
+ IDE/ATAPI devices. The ide-scsi driver could be used map ATAPI devices to
+ SCSI ids, however this driver had other problems. See README.ATAPI for
+ details. Note that there also the ATAPI:... device access method using an
+ undocumented (?) backdoor, however its usage is NOT RECOMMENDED and the
+ support may be removed in future versions.
- There is no guarantee that a binary that has been compiled
- on one Linux distribution will run correctly on a different
- release of the same vendor or on a distribution from a different
- vendor. You cannot copy binaries between different Linux
- versions, always compile the sources by yourself.
+ - the DMA transfer size is limited with some device controllers and the Linux
+ kernel 2.6.x (2.6.19 currently) provides no method to retrieve it for
+ exactly one device. Wodim scans sysfs to retrieve this information, but it
+ needs to be mounted. Use the ts= option of wodim to limit the transfer size
+ on problems.
- We should consider that the name libc.so.6 is burned out for
- these incompatibility reasons. But stop: Don't be too fast.
- The dynamic linker on Linux does not work correctly. It has
- been derived from the SunOS 4.x linker (which worked correctly)
- but the Linux version does not even warn if it could not
- find a library with the right major version number. Until
- this is fixed it makes no sense to switch to libc.so.7
- See below for more information.
-
-
-NOTES for S.u.S.E distributions: If the "make" run aborts with strange messages,
-then you need to unset an environment variable called PROMPT_COMMAND
-It contains illegal values for a make file system.
-
- I M P O R T A N T
-
- please carefully read all notes:
-
-Newer Linux kernels (from 2.3.51) moved SVSv shared memory into a filesystem.
-If you get messages with error code EINVAL related to shared memory, you
-most likely installed a newer kernel on an old system that does not mount
-the new shared memory filesystem.
-For information on this filesystem please read README.linux-shm
-
-If you have any problems to access a device on the SCSI bus, check your
-/dev/sg devices first. Your system should either only have /dev/sga...
-or /dev/sg0... The newer Linux kernel use /dev/sg0... so the actual
-SCSI transport code checks for /dev/sg0... first. Many Linux installations
-have too few /dev/sg* device nodes. This is because of the funny device
-mapping. It may be possible that one SCSI device eats up 8 /dev/sg* entries.
-I recommend to have at least 20 /dev/sg* device nodes.
-
-In any case: first read the man page for hints how to specify the device.
-If nothing helps, first run e.g. wodim -scanbus. If this does not find
-your device, the problem is in your kernel or system installation.
-If scanning the bus finds the device, you are using the wrong device name.
-If nothing help try to call e.g. strace wodim
-
-Linux ATAPI hints:
-
-Read README.ATAPI to learn how to use ATAPI drives with the SCSI transport
-library.
-
-Linux SCSI hints:
-
-If you want to use the user SCSI library on a target that is connected
-to a SCSI hostadapter which is not the first, you need to apply a patch
-to your Linux kernel code. This patch is located in the file
-
-Linux.scsi-patch
-
-Please chdir to /usr/src, call
-patch < Linux.scsi-patch
-and re-compile and re-install your kernel.
-
-Linux kernels past 2.0.30 will probably already have this patch included.
-
-I recommend to use Linux 2.0.35 or later or Linux 2.1.115 or later.
-These versions of Linux will include ATAPI support in a way needed by wodim.
-Linux 2.1.115 or newer will in addition support the Parallel Port / ATAPI
-adapters found in some CD-R or CD-RW drives.
-
-IMPORTANT:
-
-- Linux driver design oddities ******************************************
- Although wodim supports to use dev=/dev/sgc, it is not recommended
- and it is unsupported.
-
- The /dev/sg* device mapping in Linux is not stable! Using dev=/dev/sgc
- in a shell script may fail after a reboot because the device you want
- to talk to has moved to /dev/sgd. For the proper and OS independent
- dev=<bus>,<tgt>,<lun> syntax read the man page of wodim.
-
-- Linux Kernel bug ******************************************************
- In some architectures (at least on sparc / alpha / ppc) kernels prior
- to 2.0.32 are not usable because the call to mlockall() kills wodim.
-
-- You configured you kernel the wrong way *******************************
- If you get a message like:
-
- wodim: Function not implemented. shmget failed
-
- You need to look for three possible reasons:
-
- - You are using a Linux Kernel 2.3.51 or newer.
- Read README.linux-shm
-
- - You removed SVSv IPC from your kernel. You need to enable it again.
- Run a Linux kernel config and recompile with SYSv IPC.
-
- - The allowed amount of shared memory in the kernel is
- not sufficient. See next main point for a solution:
-
-- Linux kernel oddities *************************************************
- You may need to edit /usr/src/linux/include/asm*/shmparam.h to allow at least
- 4 MB of shared memory for your architecture by modifying SHMMAX
- and re-compile/re-install Linux !
- (note that Linux for Intel by default allows 16 MB)
-
- Do this by e.g. changing the #define for SHMMAX to:
-
- #define SHMMAX 0x1000000 /* max shared seg size (bytes) */
-
- This will allow 16 MB for shared memory.
-
-- Linux kernel memory management ****************************************
- If you get the message: "Cannot allocate memory. Cannot send SCSI cmd via ioctl"
- Your kernel/include files are inconsistent.
-
- This seems to be the case with most actual Linux kernels!!!!!!
-
- Make sure, that the include file /usr/src/linux/include/scsi/sg.h
- reflects the actual kernel. Usually, the files /usr/include/scsi/sg.h
- and /usr/src/linux/include/scsi/sg.h should be identical.
-
- **** Never change the content of /usr/src/linux/include/scsi/sg.h without
- properly recompiling the kernel. wodim depends on the fact that
- the value of the define SG_BIG_BUFF uses the same value as the actual
- kernel. Use wodim -scanbus -debug to get the value of SG_BIG_BUFF
- with wodim has been compiled. An output of:
-
- scsi_getbuf: 32768 bytes
-
- indicates that wodim has been compiled with 32k SG_BIG_BUF
-
- The Linux 'sg' driver is the worst driver design, I've ever seen.
-
-- Linux Binary incompatibility *****************************************
- If any of the options that take a equal sign ('=') in the middle does
- not work correctly (e.g. dev= or if=) you are using a binary that
- does not work correctly on your current OS distribution.
-
- If dev=0,0,0 does not work but -dev=0,0,0 works you found this
- incompatibility. This problem is caused by an incompatibility
- in ctype.h and it seems that there are other compatibility problems
- e.g. with reading /etc/wodim.conf.
-
- You cannot copy binaries between different Linux versions,
- always compile the sources by yourself.
-
- If a hint from a user is correct then even a RPM binary built for
- RH-6.2 did not work on RH-6.2 because of these binary incompatibilities.
-
-
-Joerg
-
-Edited for cdrkit by Eduard Bloch <blade at debian.org>
-
-
Additional comments moved from the wodim.1 manpage (originaly cdrecord.1):
-When using wodim with the broken "Linux SCSI generic driver." You should note
-that wodim uses a hack, that tries to emulate the functionality of the scg
-driver. Unfortunately, the sg driver on Linux has several severe bugs:
+The sg driver on Linux has several severe bugs:
- It cannot see if a SCSI command could not be sent at all.
- It cannot get the SCSI status byte.
@@ -190,4 +44,4 @@
- It fetches too few data in auto request sense (CCS/SCSI-2/SCSI-3 needs
>= 18).
- -- Reviewed by Eduard Bloch -- Sat, 09 Sep 2006 11:49:08 +0200
+ -- Reviewed by Eduard Bloch -- 12/2006
More information about the Debburn-changes
mailing list