Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Отладочные платы » SK-MNUC950
Установка Debian + X server
yeso
Добавлено 22.04.2011 14:41
0
Сообщение: 1
yeso
0

Пункты: 320
Регистрация: 22.04.2011
Здравствуйте!

У меня стоит задача установить 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
  • Устанавливаю с диска виртульную машину с Линуксом.

    Подготовка платы для перепрошивки

    В соответствии с топиком NUC950 - Способы загрузки ставлю перемычки:
  • 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).
  • Файл 950kernel (№1, type Execute, execute address 0x8000, start block 0x1)
  • Файл rootfs.gz (№2, type RomFS, execute address 0xa00000, start block 0x17)
  • Жму Make и сохраняю полученный bin файл.
  • Жму 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 на диске. Я их прошил, абсолютно аналогично, как я описал выше.

    В итоге при запуске:
    серенький экран, а в консоли:
    Код
    nand boot ...
    addr 0xA00000, len 3,049,307
    No bad block!!
    addr 0x8000, len 2,334,768
    No bad block!!


    Я также попробовал воткнуть ядро с диска и получил:
    Код
    No filesystem could mount root, tried: ext2 msdos vfat romfs yaffs yaffs2
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)


    Ну ладно, фиг с ним. Обчитав пол форума, решил сразу прийти к цели, поставив debian на флешечку и забутившись с неё.

    Установка Debian



    Как я понял, для того, чтобы запустить систему с флешки, нужно в NAND записать nandBoot.img и ядро, которому в качестве параметра передан путь до флешки. Я прав? не?

  • Скормил 4 Гб флешку Линуксу под ВмВарей (она определилась как /dev/sda1 и подмонтировалась)
  • Сделал ей umount /dev/sda1 && mkfs.ext2 /dev/sda1 && mount /dev/sda1 /mnt
  • Скачал rootfs: wget http://starterkit.ru/pub/rootfs-debian.tar.bz2
  • Развернул на его на флешку: 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:
    Код
    root=/dev/ram0 console=ttyS0,115200n8 mem=32M initrd=0xa00000,0x700000

    Меняю на:
    Код
    root=/dev/sda1 console=ttyS0,115200n8 rw rootdelay=15 mem=32M

    Также я убедился, что в конфиге стоят правильные тип проца, включен USB, LCD, сеть и т.п.

    Через make_kernel компилю всё это дело. Скомпилилось успешно, залил на плату и....

    ОБЛОМ!!! Та же фигня:
    Код
    nand boot ...
    addr 0xA00000, len 3,049,307
    No bad block!!
    addr 0x8000, len 2,334,769
    No bad block!!


    Народ, спасай!
    Мне капец как нужна эта пошаговая инструкция!
  • Спуститься к концу Подняться к началу
    Персональная информация
    Geban
    Добавлено 22.04.2011 15:04 Сообщение: 2
    Geban
    5

    Пункты: 2060
    Регистрация: 03.01.2010
    я обычно пишу rootwait
    Спуститься к концу Подняться к началу
    Персональная информация
    yeso
    Добавлено 22.04.2011 15:21 Сообщение: 3
    yeso
    0

    Пункты: 320
    Регистрация: 22.04.2011
    А проблемы с No bad block у тебя не было?
    Спуститься к концу Подняться к началу
    Персональная информация
    Geban
    Добавлено 22.04.2011 15:28 Сообщение: 4
    Geban
    5

    Пункты: 2060
    Регистрация: 03.01.2010
    У меня плата 9260. там нанд нету. загрузка из датафлэш. Но если у тебя доходит до загрузки ФС разницы нету
    Спуститься к концу Подняться к началу
    Персональная информация
    Jury093
    Добавлено 22.04.2011 15:34 Сообщение: 5
    Jury093
    4.5

    Пункты: 54271
    Регистрация: 25.05.2009
    Пол: Мужчина
    Из: Санкт-Петербург
    очень много букаф, еле осилил :)
    самое плохое вот это:
    Цитата
    Не имеется:
    блок питания на 5В, поэтому питаю от USB-0

    посчитайте сами - проц кушает (если мне память не изменяет) 340мА + наплатная мелочевка, флешечка ЮСБ - 100мА, экран с LED подсветкой не меньше 100мА. Хотя бы на время отладки добудьте, украдите (воровать нехорошо) внешний стаб. БП 1А+ 5В..
    о блоках питания

    чисто по верхам, ибо не знаю вашу поставку (какой софт)
    экран - убедитесь что у вас включена поддержка именно MIO430, иначе цветные полосы и нет изображения - это нормально. Какой LCD выбран в ядре через Menuconfig?
    загрузка - чтобы понять почему нет загрузки приводите с десяток строк перед руганью ядра, там где должны опознаваться накопители и разделы на них..

    Цитата
    я обычно пишу rootwait

    хай! идеологически это правильно, но я иногда сталкивался с "висюном", лечилось через rootdelay..

    Цитата
    Мне капец как нужна эта пошаговая инструкция!

    (наморщив затылок) я как-то исторически в начале прошил Юбут с загрузкой ядра по сети и с тех пор не трогал флеш..
    впрочем, что вспомню - подскажу..

    На любой вопрос есть любой ответ.
    Спуститься к концу Подняться к началу
    Персональная информация
    yeso
    Добавлено 22.04.2011 16:00 Сообщение: 6
    yeso
    0

    Пункты: 320
    Регистрация: 22.04.2011
    Окей, БП добуду!

    В ядре в разделе Graphics support включены:
    Код

    <*> Support for frame buffer devices
    [*] NUC900 LCD framebuffer support
    [*] MIO430FT-3 480x272 LCD support
    <*> Framebuffer Console support
    [*] Bootup logo
    [*] Standart 224-color Linux logo


    Всё остальное выключено.

    Код
    загрузка - чтобы понять почему нет загрузки приводите с десяток строк перед руганью ядра, там где должны опознаваться накопители и разделы на них..

    Ок, приведу попозже. Но всё-таки то было ядро с диска, а мне все равно придется компилить своё - а оно даже не запускается!
    Скажи пожалуйста, я хоть в верном направлении иду? :-)
    Спуститься к концу Подняться к началу
    Персональная информация
    yeso
    Добавлено 22.04.2011 16:22 Сообщение: 7
    yeso
    0

    Пункты: 320
    Регистрация: 22.04.2011
    Вот вывод с ядром с диска и с файловой системой с виртуального линукса:

    Скрытый текст
    Скрытый текст виден только зарегистрированным пользователям.
    Спуститься к концу Подняться к началу
    Персональная информация
    Geban
    Добавлено 22.04.2011 18:43 Редактировалось 22.04.2011 18:44 Сообщение: 8
    Geban
    5

    Пункты: 2060
    Регистрация: 03.01.2010
    может быть дело вот в этом
    Код

    RAMDISK: Compressed image found at block 0
    invalid compressed format (err=2)
    yaffs: dev is 1048576 name is "ram0"
    yaffs: Attempting MTD mount on 1.0, "ram0"
    yaffs: dev is 1048576 name is "ram0"
    yaffs: Attempting MTD mount on 1.0, "ram0"
    No filesystem could mount root, tried: ext2 msdos vfat romfs yaffs yaffs2

    а конкретно наверно вот тут
    Код

    invalid compressed format (err=2)


    Неправильный формат упаковки ФС имхо

    ЗЫ:
    Привет Юр :)
    Спуститься к концу Подняться к началу
    Персональная информация
    yeso
    Добавлено 22.04.2011 20:08 Сообщение: 9
    yeso
    0

    Пункты: 320
    Регистрация: 22.04.2011
    Там же образ делается через genromfs - как тип может быть другим?

    и всё-таки как ядро своё скомпилить и запустить?
    Спуститься к концу Подняться к началу
    Персональная информация
    Jury093
    Добавлено 22.04.2011 20:15 Редактировалось 22.04.2011 21:41 Сообщение: 10
    Jury093
    4.5

    Пункты: 54271
    Регистрация: 25.05.2009
    Пол: Мужчина
    Из: Санкт-Петербург
    Цитата
    и всё-таки как ядро своё скомпилить и запустить?

    свое - это какое?
    если ванильное с кернела, то путем долгого траха с поддержкой не всей периферии..
    если 2.6.17 адаптированное, то все должно работать
    если из треда о новом кернеле 2.6.3х, то там недопилено много чего..
    если нетрудно - выложите фотку что происходит на экране мио430.. из описания не понять - какие полосы..

    ЗЫ: Hi, Женя :)

    На любой вопрос есть любой ответ.
    Спуститься к концу Подняться к началу
    Персональная информация
    Форум » starterkit.ru » Отладочные платы » SK-MNUC950