Драйвер e1000e
- это тот драйвер, который может запускать контроллеры Ethernet I2xx
Intel. А последний драйвер e1000e (на момент написания) может работать с микросхемой I219
.
Сообщение Неправильная контрольная сумма NVM
во время загрузки препятствовало загрузке старых драйверов. В других ОС (особенно в окнах MS) эта ошибка игнорируется. Но Linux кажется более строгим.
NVM - это ПЗУ (постоянное запоминающее устройство) в микросхеме, которое проверяет контрольную сумму, и более старая версия драйвера e1000
не знала о содержимом NVM новых микросхем. Поскольку карта работает в других операционных системах, которые игнорируют ошибку, другой возможностью было заставить драйвер игнорировать ошибку.
Контрольная сумма выполняется внутри nvm.c
, хотя некоторые другие модели представляют свои собственные функции fix_checksum
, которые выполняются до e1000e_validate_nvm_checksum_generic
.
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
s32 ret_val;
u16 checksum = 0;
u16 i, nvm_data;
for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) {
ret_val = e1000_read_nvm(hw, i, 1, &nvm_data);
if (ret_val) {
e_dbg("NVM Read Error\n");
return ret_val;
}
checksum += nvm_data;
}
if (checksum != (u16)NVM_SUM) {
e_dbg("NVM Checksum Invalid\n");
return -E1000_ERR_NVM;
}
return 0;
}
NVM_SUM
определяется внутри define.h
#define NVM_SUM 0xBABA
Если вы уверены, что карта работает (и дает сбой только из-за контрольной суммы NVM), вы можете попробовать изменить функцию контрольной суммы на:
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
return 0;
}
И это заставит контрольную сумму всегда быть успешной.
Дополнительные (более или менее) заслуживающие доверия ссылки:
Чтобы звук заработал, согласно аналогичному сообщению на форумах FreeBSD, вы должны выполнить:
sudo sysctl dev.hdac.0.polling=1
После этого изменения звук начал работать при использовании разъема для наушников (Right Analog ).
Для вывода звука на внутренние динамики (Внутренний аналоговый ), пришлось сделать:
sudo sysctl hw.snd.default_unit=1
Чтобы иметь эти конфигурации во время загрузки, добавьте их в/etc/sysctl.conf
:
dev.hdac.0.polling=1
hw.snd.default_unit=1
См. также: