Запись CD дисков на ядрах версии выше 2.6.8

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск

Возможно многие из вас заметили, что после обновления ядра до версии 2.6.8 и далее перестала работать запись на CD диски. cdrtools и xcdroast ругаются, что "cdrecord: Cannot allocate memory. Cannot get SCSI I/O buffer." Причиной этого являются изменения в системе безопасности ядра (не буду вдаваться в подробности какие именно) которым не нравится SUID флаг на файлах /usr/bin/cdrecord и /usr/bin/cdrdao. Чтобы восстановить работаспособность cdrecord и K3B нужно снять этот бит коммандой:

Code: Снимаем SUID бит
su
chmod -s /usr/bin/cdrecord
chmod -s /usr/bin/cdrdao

Если же вы используете XCDRoast ситуация несколко сложнее, т.к. он использует дополнительную обертку и проверяет наличие SUID флага, как один из тестов на Non-Root-Mode. Вам придется, во-первых, снять бит для xcdwrap обретки:

Code: Снимаем SUID бит для XCDRoast
chmod -s /usr/lib/xcdroast-0.98/bin/xcdrwrap

Во-вторых придется пересобрать xcdroast наложив этот крошечный патч:

Файл: xcdroast-kernel-2.6.8.patch
 --- src/init.c.orig	2005-02-06 13:52:34.414655744 +0200
 +++ src/init.c	2005-02-06 13:53:43.525149352 +0200
 @@ -682,13 +682,14 @@
 	 }
 
 	 /* check file mode of wrapper */
 -	if (stat(tmp,&buf) == 0) {
 +	//This is not required for kernels >= 2.6.8
 +/*	if (stat(tmp,&buf) == 0) {
 		 if (buf.st_mode != 0104755) {
 			 dodebug(3,"Note: %s wrong modes set (0%o)\n", tmp, buf.st_mode);
 			 nofail = 0;
 		 }
 	 }
 -
 +*/
  #if 0 
 	 /* we dont care in new nonroot mode about the status of the cdrtools */
 
Личные инструменты