У меня стоит задача установить Debian с X сервером на SK-NUC950-SIMXXX +дисплей SK-MI0430FT-Plug. Попытки это сделать самому с помощью топиков раз и два не увенчались успехом :-( Поэтому решил описать свои действия и спросить ЧЯДНТ.
Извините меня за многобуков и монументальность описания - просто после меня по этим же граблям будут ещё ходить другие люди.
Имеется:
плата SK-NUC950-SIMXXX и дисплей SK-MI0430FT-Plug
диск из комплекта (бинарники, даташиты, проги, виртуалка)
кабель USB-A-USB-A
нуль-модемный кабель с переходником COM-USB
ноутбук с Windows 7 64-bit
USB флешка 4 Gb
Не имеется:
блок питания на 5В, поэтому питаю от USB-0
Последовательность действий
Подготовка ноутбука для перепрошивки
Т.к. драйвер для платы 32-битный не пашет под 64-битной семёркой, пришлось поизвращаться.
Ставлю на Windows 7 виртуалку Windows XP Mode
Под Windows XP ставлю VCOM драйвер c диска из папки NUC900 Series MCU Linux BSP\Tools\Driver
Копирую на виртуалку NUC900 Series MCU Linux BSP\Tools\Turbo Writer
Устанавливаю на Windows 7 Putty (я его использую для работы с COM портом)
Устанавливаю на Windows 7 последний VmWare Player 3.1
Устанавливаю с диска виртульную машину с Линуксом.
J3 в положение 2-3 (над надписью USB DEV, с учётом что на обратной стороне пин №1 квадратный)
J13 замыкаю!!! Несмотря на то, что в топике написано "Отключить питание подаваемое с платы, когда USB-0 порт находится в режиме хоста, для этого разомкнуть J13. !!!ОЧЕНЬ ВАЖНО!!!" - я делаю не правильно? Просто ну нету у меня внешнего БП!
J11 в положение 1-2, J12 в положение 2-3.
J9 в положение 1-2.
Затем подключаю COM порт через USB переходник и USB-A-USB-A кабель к USB-0. Семёрка ругается, что подрублен неопознанный девайс, экранчик загорается сереньким цветом.
Запускаю Putty с параметрами (взяты из даташита):
Speed: 115200 baud
Data bits: 8
Stop bits: 1
Parity: None
Flow control: None
Для того, чтобы Windows XP Mode увидел девайс, проделываю действия:
Приаттачиваю к виртуалке Unidentified Device (он так называется потому что семёрка его не определила)
Запускаю Turbo Writer. Он тут же его опознаёт и подключается.
Сразу выхожу из Turbo Writer. Почему? Потому что XP Mode переименовала на этом этапе Unidentified Device в Nuvoton ARM 926-Based MCU, который приходится заново переаттачивать. Такие вот особенности XP Mode.
Снова запускаю Turbo Writer - он долго инициализируется, но работает.
Прошивка платы с ядром и rootfs из комплекта
Для проверки работоспособности девайса прошиваю по инструкции
из NUC950 - Способы загрузки ядром и rootfs с диска.
В запущенном Turbo Writer:
Сверху Choose type: NAND(Raw Data)
Кнопку Make Rom
В открывшемся окне удаляется всё, что есть.
Block size: 16k
Добавляю:
Файл nandBoot.img из папки Boot диска (№0, type System Image).
Жму Burn и выхожу из Turbo Writer'а, отцепляю от виртуалки девайс и выключаю питание.
Проверяю работоспособность прошивки:
Меняю перемычки J12 на 1-2 и J11 на 2-3.
Включаю питание, смотрю на Putty
На дисплее много разноцветных вертикальных и горизонтальных полосок! Это нормально?
Вывод консоли:
Можно залогиниться root'ом и покапаться в busybox'е. Всё работает, кроме дисплея (в логах nuc900 LCD driver has been installed successfully, а команда echo Test > /dev/fb0 ничего не делает. Так и должно быть?)
Прошивка платы с ядром и rootfs, вынутого из Линукса с диска
На линуксовом образе в папке /tftpboot лежат по дефолту 950kernel и rootfs.gz, отличные от тех, что есть в папке Boot на диске. Я их прошил, абсолютно аналогично, как я описал выше.
В итоге при запуске:
серенький экран, а в консоли:
Я также попробовал воткнуть ядро с диска и получил:
Ну ладно, фиг с ним. Обчитав пол форума, решил сразу прийти к цели, поставив debian на флешечку и забутившись с неё.
Установка Debian
Как я понял, для того, чтобы запустить систему с флешки, нужно в NAND записать nandBoot.img и ядро, которому в качестве параметра передан путь до флешки. Я прав? не?
Скормил 4 Гб флешку Линуксу под ВмВарей (она определилась как /dev/sda1 и подмонтировалась)
Сделал ей umount /dev/sda1 && mkfs.ext2 /dev/sda1 && mount /dev/sda1 /mnt
Развернул на его на флешку: tar -C /mnt -jxvpf rootfs-debian.tar.bz2
umount /dev/sda1
Флешка готова, вставляю в USB платы. Но для того, чтобы забутиться с неё, нужно ядро со специальным cmdline.
На линуксе есть в папке /home/user/src/nuc900/nuc900bsp/linux-2.6.17.14 два скриптика:
make_menuconfig - настройка ядра
make_kernel - компилирование ядра
Сначала запускаю make_menuconfig, в разделе Boot Options можно найти Default kernel command string:
Меняю на:
Также я убедился, что в конфиге стоят правильные тип проца, включен USB, LCD, сеть и т.п.
Через make_kernel компилю всё это дело. Скомпилилось успешно, залил на плату и....
ОБЛОМ!!! Та же фигня:
Народ, спасай!
Мне капец как нужна эта пошаговая инструкция!
очень много букаф, еле осилил :)
самое плохое вот это:
посчитайте сами - проц кушает (если мне память не изменяет) 340мА + наплатная мелочевка, флешечка ЮСБ - 100мА, экран с LED подсветкой не меньше 100мА. Хотя бы на время отладки добудьте, украдите (воровать нехорошо) внешний стаб. БП 1А+ 5В.. о блоках питания
чисто по верхам, ибо не знаю вашу поставку (какой софт) экран - убедитесь что у вас включена поддержка именно MIO430, иначе цветные полосы и нет изображения - это нормально. Какой LCD выбран в ядре через Menuconfig? загрузка - чтобы понять почему нет загрузки приводите с десяток строк перед руганью ядра, там где должны опознаваться накопители и разделы на них..
хай! идеологически это правильно, но я иногда сталкивался с "висюном", лечилось через rootdelay..
(наморщив затылок) я как-то исторически в начале прошил Юбут с загрузкой ядра по сети и с тех пор не трогал флеш..
впрочем, что вспомню - подскажу..
Ок, приведу попозже. Но всё-таки то было ядро с диска, а мне все равно придется компилить своё - а оно даже не запускается!
Скажи пожалуйста, я хоть в верном направлении иду? :-)
свое - это какое?
если ванильное с кернела, то путем долгого траха с поддержкой не всей периферии..
если 2.6.17 адаптированное, то все должно работать
если из треда о новом кернеле 2.6.3х, то там недопилено много чего..
если нетрудно - выложите фотку что происходит на экране мио430.. из описания не понять - какие полосы..