Подготовка для замеров
Задача
Основная цель замеров клоков на alc5632 - разобраться, что происходит с картой, и почему, при вроде бы правильных настройках, в ядре 2.6.38 не работает звук. Чтобы разобраться нужно померить параметры работы звукового модуля из-под рабочей ОС - android или linux с ядром 2.6.32; и из-под проблемной ОС - в нашем случае linux с ядром 2.6.38. Почитать о том, как работает звук можно на странице Звук.
Что понадобится
- usb кабель (mini-usb to usb) - SD карта (можно USB флешка) - утилита nvflash - осциллограф - любой аудио файл
План действий
- сделать бэкап
- поставить линукс на SD карту
- разобрать AC100
- загрузить android (linux с работающим звуком)
- померить параметры alc5632
- прошить ядро 2.6.38
- померить параметры alc5632
- вернуть android
Описывать шаги буду не по порядку.
Измерение параметров alc5632
Нас интересуют сигналы (наличие, частота), на ногах звукового модуля alc5632 (основной интерес представляют MCLK, SDAC, BCLK, SDALRCK и HP_OUT_L/R ) в разных режимах.
Режимы:
- до включения звука
- во время воспроизведения звука через наушники
- опционально - во время воспроизведения звука через колонки
- после воспроизведения звука
Бэкап
Для возможности отката к начальному стостоянию настоятельно рекомендуется сделать бекап всех партиций! Как сделать бэкап рассказано тут: Бэкап Как минимум нужно сделать бэкап 6-й партиции (но лучше иметь бекап всех партиций и partitiontable):
nvflash.exe -w --bl ./harmony/fastboot.bin --read 6 part06.img
Создание загрузочной карты
Качаем rootfs, ядро и модули для этого ядра.
wget http://ac100.gudinna.com/tegra-rootfs.tgz wget http://avolver.ru/ac100/kernels/38.ca20bea-7Jul11/boot-marvin24s-2.6.38-ca20bea.SD.img wget http://avolver.ru/ac100/kernels/38.ca20bea-7Jul11/modules-marvin24s-2.6.38-ca20bea.tar.gz
Берем SD карту с одной партицией и форматируем в ext3:
mkfs.ext3 /dev/mmcblk0p1
Монтируем партицию:
mount -t ext3 /dev/mmcblk0p1 /mnt/sd
Распаковываем rootfs и модули на карту
sudo tar xzfv tegra-rootfs.tgz --numeric-owner -C /mnt/sd sudo tar xzfv modules-marvin24s-2.6.38-ca20bea.tar.gz -C /mnt/sd/lib/modules
Желательно скопировать на карту звуковой файл, чтобы потом не копаться :) Отмонтируем карту - на нее больше ничего писать не будем.
sudo umount /mnt/sd
Прошивка загрузчика Linux
Ядро прошивается утилитой nvflash в 6-й раздел. Обычно вот такой командой (есть разные версии nvflash и файлы загрузчика, если нет уверенности, можно задать вопрос на irc канале #ac100-ru сервера freenode):
./nvflash -w --bl ./harmony/fastboot.bin --download 6 boot-marvin24s-2.6.38-ca20bea.SD.img
Аналогичным образом возвращается на место 6-я партиция из бэкапа.
Разбираем AC100
Описание с фотографиями (анг.): http://wiki.gudinna.com/ac100 Вкратце: <kottt> на нижней стороне три винтика видны невооруженным глазом и два под задними резиновыми ножками <kottt> И еще два за аккумулятором <kottt> после этого снимается клавиатура и дальше все довольно очевидно Модуль находится на нижней стороне платы