LINUX.ORG.RU

Пересборка ядра под virtualbox + PATA + libata


0

1

Доброго времени суток.
Имею debian lenny под virtualbox.

cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options>    <dump> <pass>
proc         /proc       proc   defaults      0    0
/dev/hda5    /          ext2   errors=remount-ro 0    1
/dev/hda1    /boot       ext2   defaults      0    2

lspci -k
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
   Kernel driver in use: PIIX_IDE
   Kernel modules: piix
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 40)
   Kernel driver in use: pcnet32
   Kernel modules: pcnet32
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:06.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
   Kernel driver in use: ohci_hcd
   Kernel modules: ohci-hcd
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
   Kernel modules: i2c-piix4
00:0b.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
   Kernel driver in use: ehci_hcd
   Kernel modules: ehci-hcd

cat /boot/grub/menu.lst
title      Debian GNU/Linux, kernel 2.6.26-2-686
root      (hd0,0)
kernel      /vmlinuz-2.6.26-2-686 root=/dev/hda5 ro vga=791 quiet
initrd      /initrd.img-2.6.26-2-686

title      Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root      (hd0,0)
kernel      /vmlinuz-2.6.26-2-686 root=/dev/hda5 ro vga=791 single
initrd      /initrd.img-2.6.26-2-686

Пересобираю ядро 2.6.26 из Дебиановских исходников с переходом на libata. Сборку веду на другой машине с аналогичной архитектурой, но debian squeeze, на всякий случай использую gcc-4.3.

cat .config | grep -iE 'config_ata|config_ide|ext2'
CONFIG_ATALK=m
CONFIG_ATA_OVER_ETH=m
# CONFIG_IDE is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_ATA_SFF=y
CONFIG_ATA_PIIX=y
CONFIG_ATA_GENERIC=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_ATARI_PARTITION=y
Собранный деб-пакет переношу в Дебиан на Виртуалбоксе, ставлю, правлю fstab & menu.lst

cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options>    <dump> <pass>
proc         /proc       proc   defaults      0    0
/dev/sda5    /          ext2   errors=remount-ro 0    1
/dev/sda1    /boot       ext2   defaults      0    2

cat /boot/grub/menu.lst
title      Debian GNU/Linux, kernel 2.6.26-2-686
root      (hd0,0)
kernel      /vmlinuz-2.6.26-2-686 root=/dev/hda5 ro vga=791 quiet
initrd      /initrd.img-2.6.26-2-686

title      Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root      (hd0,0)
kernel      /vmlinuz-2.6.26-2-686 root=/dev/hda5 ro vga=791 single
initrd      /initrd.img-2.6.26-2-686

title      Debian GNU/Linux, kernel 2.6.26-4smgate
root      (hd0,0)
kernel      /vmlinuz-2.6.26-4smgate root=/dev/sda5 ro

title      Debian GNU/Linux, kernel 2.6.26-4smgate (single-user mode)
root      (hd0,0)
kernel      /vmlinuz-2.6.26-4smgate root=/dev/sda5 ro vga=791 single

При запуске «Debian GNU/Linux, kernel 2.6.26-4smgate» получаю:
Gave up waitng for root device...
... /dev/sda5 does not exist.

Драйвер IDE-контроллера и ext2 вшит в ядро, пробовал собирать и с initrd и без, результат один... Не понимаю чего не так, подскажите, у кого какие мысли...


Выводится ли при загрзуке сообщение об обнаружении PATA контроллера? Попробуйте убрать CONFIG_ATA_GENERIC и добавить CONFIG_BLK_DEV_SD.

mky ★★★★★
()

и еще зачем параметр ro после рута? (ридонли) а ему наверное и врайт нужно чото делать?

ipwww ★★
()
Ответ на: комментарий от ipwww

Для нормальной работы fsck при загрузке, после чего оно перемонтируется c rw.

anon_666
()
Ответ на: комментарий от mky

Контроллера не вижу, как вариант, иногда получаю кернел паник на тему: can't open root device «sda5» or unknown-block (0,0) | unable to mount root fs
сейчас:
grep CONFIG_ATA_GENERIC /usr/src/linux-source-2.6.26/.config
CONFIG_ATA_GENERIC=y
grep CONFIG_BLK_DEV_SD /usr/src/linux-source-2.6.26/.config
CONFIG_BLK_DEV_SD=y
Пересоберу - отпишусь


2 ipwww
Вверху поста я привожу рабочий конфиг(из коробки)...

sman
() автор топика
Ответ на: комментарий от mky

Пересобрал ядро, результат тотже... в dmesg ничего об обнаружении контроллера нет, только лишь: libata version 3.00 loaded. Видимо, это косяк виртуалбокса. Никак не хочет его эмуляция ide контроллера intel PIIX4 (другие тоже пробовал) работать с libata.

Впрочем, если у кого-то получилось запустить Линукс на IDE контроллере под libata в VirtualBox, буду очень признателен за конфиг ядра или хотябы информацию о том, что сделать это практически возможно.

sman
() автор топика
Ответ на: комментарий от anon_666

За ссылочку спасибо, моё ядро соответствует приведенной конфигурации.
Если в ВиртуалБоксе выбрать sata контроллер, то система загружается на ура, а с любым pata контроллером - нет. Причем на реальной машине с pata контроллером и этим ядом система загружается без проблем!!!
Я всё же склоняюсь к тому, что pata контроллеры ВиртуалБокса не могут работать под libata.

sman
() автор топика
Ответ на: комментарий от anon_666

Так по умолчанию в virtualbox установлен sata контроллер... Это вообще мало кому в голову приходит менять его на pata... а если поменять, то видимо только /dev/hd[a-z].

sman
() автор топика
Ответ на: комментарий от sman

может попробовать собрать ванильное ядро?... я же собираю из стабильного репозитория, может это влияние дебиановских патчей?

sman
() автор топика
Ответ на: комментарий от sman

В моей версии (VirtualBox 3.2.12 r68302) для всех Линуксов по умолчанию создается sata контроллер для жеского диска. Попробую переставить на pata и проверить на лайве.

sman
() автор топика
Ответ на: комментарий от anon_666

Убунта завелась, дисковые у-ва sd*! ядро 35.
Скачал из backports 2.6.32, собрал со старым конфигом, и о чудо... Всё заработало!!! и дисковые устройства видны как sd*!!!
В чем была проблема с ядром 26 я не понял, но 32ое ядро всё решило. Всем спасибо за конструктивные ответы.

sman
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.