ALIX 2D13, ошибка ядра Linux «повторная проверка серийного номера» с использованием Compact Flash и жесткого диска - PullRequest
1 голос
/ 02 марта 2011

Я строю Firmare на основе Linux для alix 2d13, используя crosstools-ng, для toolchain, buildroot, для корневой файловой системы и vanilla kernel ... для ядра.

Мне нужноиспользовать компактную флэш-память и жесткий диск, но, когда я подключаю их к alix, я получаю действительно странную ошибку:

[    1.072380] ata1.00: CFA: CF Card, Ver2.34, max UDMA/100
[    1.077738] ata1.00: 7880544 sectors, multi 0: LBA
[    1.082670] ata1.00: limited to UDMA/33 due to 40-wire cable
[    1.096260] ata1.00: serial number mismatch '6EB10703040700582043' != '6EB1p703040700582043'
[    1.104738] ata1.00: revalidation failed (errno=-19)
[    1.109740] ata1.00: limiting speed to UDMA/33:PIO3
.
.
.
[    6.209775] ata1.00: serial number mismatch '6EB10703040700582043' != '6EB1p703040700582043'
[    6.218324] ata1.00: revalidation failed (errno=-19)
[    6.222235] ata1.00: disabled

Все работает нормально, если я отсоединяю жесткий диск от alix.Выход hdparm:

Model=CF Card                                 , FwRev=Ver2.34 , SerialNo=6EB10703040700582043
Config={ HardSect NotMFM Fixed DTR>10Mbs }
RawCHS=7818/16/63, TrkSize=32256, SectSize=512, ECCbytes=4
BuffType=(2) DualPort, BuffSize=1kB, MaxMultSect=1, MultSect=?1?
CurCHS=7818/16/63, CurSects=7880544, LBA=yes, LBAsects=7880544
IORDY=yes, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes:  pio0 pio1 pio2 pio3 pio4
DMA modes:  mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 *udma2
AdvancedPM=no

И конфигурация alix: (C) Режим CHS L Режим LBA W Ожидание жесткого диска V Подчиненный жесткий диск U UDMA enable

Я пытался использовать pata_amd и pata_cs5536, но результат тот же.

Полный вывод ядра здесь http://pastebin.com/7wcvEdRG

1 Ответ

2 голосов
/ 02 марта 2011

У вас аппаратная проблема или серьезная неправильная конфигурация, когда биты между устройством и хостом скремблируются.

Когда ядро ​​пытается прочитать серийный номер с накопителя (с помощью команды устройства идентификации ATA),один из байтов немного переворачивается.Обратите внимание, что плохой символ 'p' (0x70) только на один бит отличается от '0' (0x30).

Вероятно, шифрование идентифицирующих данных является наименьшей из ваших проблем - чтение / запись данных, вероятно, также ненадежна.

Если это происходит только в том случае, если к одному ленточному кабелю подключены два устройства, выполняется одно из двух:

  1. Два устройства вызывают проблемы с целостностью сигнала при совместном использовании шины.Проверьте все настройки перемычек.Если все остальное правильно, либо найдите другое устройство, более качественный кабель, либо сдавайтесь и не подключайте их к одному и тому же кабелю.
  2. Ваше ядро ​​неправильно конфигурирует контроллер ATA, когда присутствуют оба устройства.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...