Справочная информация:
У меня есть встроенная система (я не могу сменить оборудование) с собственной системой Linux (у меня есть полный контроль над программным обеспечением).
В этой системе несколько (3-провода, 3,3 В) последовательных линий, и я не имею никакого контроля над тем, что и где подключено (я могу узнать после загрузки).
Проблема:
Если некоторые внешниеУстройство подключено к последовательной линии, «метка» на линии (и) RX (что я вообще не могу предотвратить), непосредственно подключенная к микроконтроллеру (MT7628AN, если это имеет значение), достаточна для подачи питания в систему.
Единственное место, где это имеет значение, это SD-карта (опять же, подключенная напрямую к микроконтроллеру), которая никогда не отключается полностью.
В этом состоянии я часто вижу при загрузке:
[ 4.679850] mmc0: card never left busy state
[ 4.684203] mmc0: error -145 whilst initialising SD card
Это повторяется четыре раза в последовательности загрузки, и более поздние устройства SD (/dev/mmcblk0*
) недоступны.
Аналогичная ситуация, если я компилирую драйверы mmc (mtk_mmc.ko
, если это имеет значение) и modprobe mtk_mmc
позже.
Вопрос:
Есть ли какая-либо последовательность команд, которую я могу отправить в MMC с помощью программного обеспечения , до / во время / после последовательности инициализации, чтобы полностью сбросить ее, как если бы питание было отключено?
Примечание:
Это особенно плохо, потому что (часть) моя корневая файловая система находится на этой карте MMC, и поэтому любые изменения должны выполняться в ядре / initrd.
Если это имеет значение: все карты MMC: "Transcend 8GB C10 MicroSD HC ".