всем доброго здоровья!
На этапе инициализации (в цепочке initcalls) диск видится в PIO режиме (identify device читается отлично).
А на завершающей стадии загрузки функция kobj_lookup вызываемая из
mount_root(в конечном счете) не находит устройства соответствующего "/dev/hdd1".
но при инициализации диска никаких kobj_map и не создается вообще!!!
в чем же дело? как всё-таки загрузиться с диска?
PS. У меня sparc32; Linux2.6; образ загружаю своим bios-ом.
и вот такой вот лог.
sil_init_once SIL(3114)
...
ata3 port frozen
ENTER
about to softreset, devmask=1
ata3: bus reset via SRST
found ATA device by sig
EXIT, classes[0]=1 [1]=0
ENTER
<6>ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
EXIT
ata3 port thawed
ENTER
ata3: cmd 0xEC
ata3: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sect data read
ata_data_xfer® len 200
ata3: protocol 2 task_state 3 (dev_stat 0x50)
ata3: dev 0 command complete, drv_stat 0x50
ENTER
flush #1
<6><6>ata3.00: ATA-6: ST940813AM, 5.03, max UDMA/100
<6>ata3.00: 78140160 sectors, multi 0: LBA48
<6>ata3.00: applying bridge limits
set features - xfer mode
ata_exe_int_sg n 0
ata3: cmd 0xEF
ata3: protocol 1 task_state 3 (dev_stat 0x50)
ata3: dev 0 command complete, drv_stat 0x50
ENTER
flush #1
EXIT, err_mask=0
ata_exe_int_sg n 1
ata3: cmd 0xEC
ata_pio_task f035a28c
ata3: protocol 2 task_state 2 (dev_stat 0x58)
ata_pio_sect data read
ata_data_xfer® len 200
ata3: protocol 2 task_state 3 (dev_stat 0x50)
ata3: dev 0 command complete, drv_stat 0x50
ENTER
flush #1
<6><6>ata3.00: ATA-6: ST940813AM, 5.03, max UDMA/100
<6>ata3.00: 78140160 sectors, multi 0: LBA48
xfer_shift=12, xfer_mode=0x45
<6>ata3.00: configured for UDMA/100
EXIT, rc=0
EXIT
DEV: registering device: ID = 'host3'
CLASS: registering class device: ID = 'host3'
class_uevent - name = host3
port EH scheduled
ENTER
ENTER
flush #1
ENTER
ENTER
ata4 port frozen
ENTER
EXIT, classes[0]=5 [1]=0
ENTER
<6>ata4: SATA link down (SStatus 0 SControl 310)
EXIT, no device
ata4 port thawed
ENTER
EXIT, rc=0
EXIT
host probe begin
DEV: registering device: ID = 'target2:0:0'
DEV: registering device: ID = '2:0:0:0'
bus scsi: add device 2:0:0:0
CLASS: registering class device: ID = '2:0:0:0'
class_uevent - name = 2:0:0:0
ata_dev_add OK
/sil_init_once SIL(3114) OK
bound device '0000:00:12.0' to driver 'sata_sil'
pci: Bound Device 0000:00:12.0 to Driver sata_sil
do_initcalls i=80
Calling initcall at 0xf01cab0c
pci_reg_drv modname pcips2 drvname pcips2
bus pci: add driver pcips2
...
вставил еще пару сообщений в лог под конец:
try_name: sys_open failed /sys/block/hdc1/dev
try_name: sys_open failed /sys/block/hdc/dev
(try_name - это в init/do_mounts.c)
а почему это - вообще не понимаю. помогите!!!
Linux при монтировании системы на последнем этапе не обращается к диску.
Модератор: Модераторы разделов
-
- Сообщения: 2
- ОС: winxp
-
- Сообщения: 2
- ОС: winxp
Re: Linux при монтировании системы на последнем этапе не обращается к диску.
также, я должен добавить, что мой контроллер находится на PCI. это важно?
а вот конфигурация (только IDE/ATA), с которой я скомпилял ядро:
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_ATACTRL=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA=y
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL=y
CONFIG_ATA_GENERIC=y
а вот конфигурация (только IDE/ATA), с которой я скомпилял ядро:
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
CONFIG_ATACTRL=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_IDEDMA=y
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_SIL=y
CONFIG_ATA_GENERIC=y