главная->Тион-Про-270->Прошивание |
||||||||||
Прошивание Тиона-Про-270Клонирование прошивок через копирование mtd-разделовПроцесс прошивания сводится к обновлению трёх областей флешь-памяти: области U-Boot-a, области образа ядра Linux и области образа КФС - естественно, не обязательно каждый раз обновлять все три, если что-то не менялось, то это и не трогаем. В поставляемом с завода компьютере есть 3 mtd раздела: /dev/mtdblock0, /dev/mtdblock1 и /dev/mtdblock2.Отвечают они соответственно за U-Boot, Linux kernel и образ файловой системы. Очень простой способ сохранения существующего образа U-Boot-a следующий: Подключаемся по COM-порту к Тиону, весь дальнейший ввод рассмотрен относительно этой консоли. Вид не соответствует в точности тому, что должен быть, т.к. это я пишу по памяти.
первой командой (mount) мы подмонтировали флешь-карту (она должна быть куплена отдельно, в комплект поставки не входит). второй командой мы скопировали файл, соответствующий образу U-Boot-a на флешь-карту. Для того, чтоб этот образ прошить на другую плату, нужно сделать следующее:
Все то же самое, только имена файлов поменялись местами. Аналогичным образом можно копировать образ ядра (он находится в /dev/mtdblock1) Категорически не рекомендуется копировать так образ КФС, если она у вас не RAMFS!(однако же, т.к. по умолчанию с завода идут компьютеры с RAMFS, то такой способ тиражирования JFFS2 тоже подходит). Загрузка прошивок через U-BootЗдесь я (покамест) опишу только тот способ, которым загружал прошивки сам. В реальности же, у U-Boot-а очень много возможностей, которые я не использовал и даже не знаю о них.Для продолжения работы нам потребуется tftp сервер. Проще всего установить его на PC-шном Linux-е. Установка tftp:1)Запускаем менеджер пакетов Synaptic.2)Выбираем Поиск. 3)Ищем в названии пакета подстроку "tftp" 4)Выбираем для установки пакеты tftpd-hpa и tftp-hpa 5)Из под суперпользователя редактируем файл inetd.conf:
в строчке tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpbootто, что после -s заменяем на свой путь, где у нас zImage и uImage, у меня эта строка после редактирования целиком выглядит так: tftp dgram udp wait root /usr/sbin/in.tftpd -s /home/timur-tion/Proj/release/tion_pro_270_images/теперь нужно (пере)запустить inetd.
Теперь на стороне компьютер мы готовы к тому, чтоб отдавать прошивки U-Boot-у. Работа с U-Boot-омВозвращаемся к терминалу, через который работаем с Тионом, перезагружаем Тион, нажимаем любую клавишу в начале загрузки, чтоб зайти в командную строку U-Boot-а.
Настройка переменных окружения u-boot:
Прошивание ядра:
Прошивание КФС
Смена U-boot-a
Выключил и включил питание. ПОЛУЧИЛОСЬ. Прошивание через JTAGВ случае затирания U-Boot-a или прошивания неработающей версии придется его перепрошивать с помощью JTAGa.Для этого вам понадобится машина, с установленной Windows. В моем случае это была ЛИЦЕНЗИОННАЯ Windows XP, проапдейченная до самых последних обновлений. Вот пошаговое описание процедуры: 1) Купил в "мегаэлектронике" такой вот JTAG-адаптер Обращаю внимание на то, что нужно покупать именно JTAG-ARM. Есть большое количество других похожих адаптеров, похожих даже по схеме, но не совсем таких, и с ними может не заработать. Подробнее смотрите http://www.olimex.com/dev/arm-jtag.html 2) Спаял переходник согласно схеме: http://www.zao-zeo.ru/media/files/adapters/jtag-adapter_circuit.pdf 3) Скачал OpenOCD отсюда: http://www.freddiechopin.info/index.php/en/download/category/4-openocd?download=8%3Aopenocd-010 4) Установил из zip-архива скачанного OpenOCD .msi файл (установился он сам, без подсказок в C:\Program Files\OpenOCD\0.1.0\ ) 5) Скачал файл http://www.zao-zeo.ru/media/files/openocd/win/parport и сохранил его под именем C:\Program Files\OpenOCD\0.1.0\interface\parport.cfg 6) Скачал файл http://www.zao-zeo.ru/media/files/openocd/win/tion-pro270 и сохранил его под именем C:\Program Files\OpenOCD\0.1.0\target\tion-pro270.cfg 7) Скачал файл http://www.zao-zeo.ru/media/files/openocd/xscale/debug_handler.bin и сохранил его в каталог C:\Program Files\OpenOCD\0.1.0\xscale (для этого каталог xscale пришлось создать вручную). 8) Выключил машину с Windows-ом и стенд с Тионом-Про270 и подключил программатор (возможно это не обязательно, но 2 раза я уже сжигал LPT-порт, теперь на воду дую). 9) Включил Windows-машину и Тион-Про270. 10) На Windows-машине запустил: C:\Program Files\OpenOCD\0.1.0\drivers\giveio\remove_giveio.bat 11) Затем запустил: C:\Program Files\OpenOCD\0.1.0\drivers\giveio\install_giveio.bat 12) Затем запустил: openocd.exe -f "C:\ProgramFiles\OpenOCD\0.1.0\interface\parport.cfg" -f "C:\Program Files\OpenOCD\0.1.0\target\tion-pro270.cfg" 13) При этом (насколько я понимаю) запустился этот отладчик, который представляет из себя (в одной из ипостасей) телнет-сервер, слушающий порт 4444. (зачем так было сделано - не знаю, но наверно должно быть удобно - можно отладчик запускать на одной машине, а командовать им с другой, хотя в нашем случае это и избыточно). 14) из под другой консоли (меню пуск-> выполнить -> cmd) запустил ipconfig, узнал, что мой IP адрес 192.168.1.145 15) затем запустил telnet 192.168.1.145 16) на диск С в корневой каталог положил скомпилированный на Linux-машине образ u-boot-a под именем u-boot.bin 17) в сеансе телнета набрал
18) Выключил Тион-Про270. Отсоединил от него JTAG. u-boot работает! |