Плата поставляется с предустановленными в NANDFLASH загрузчиком 1-го уровня, U-Boot, ядром Linux и rootfs. Естественно, толком не почитав документацию с прилагаемого к плате CD, я сразу же в ходе своих экспериментов затер NAND. Вобщем-то это не страшно, в юзер мануале имеются инструкции по восстановлению, однако, тут кроется один маленький нюанс. Для восстановления содержимого NAND используется SD карта, которую нужно предварительно отформатировать в FAT32 утилитой, указанной в мануале, так вот, версия утилиты должна быть строго та самая, которая указана в документе, иначе (не знаю почему), загрузчик не может стартовать с SD карты. Если что, утилитка у меня есть, могу поделиться.
У меня оказался свободный ноут, который решено было использовать как Host. На ноут поставил Ubuntu 14.04 LTS и по инструкциям из мануала установил toolchain. На этом шаге никаких проблем не возникло.
Далее, перед тем как скомпилить свой первый хело-ворлд, я озадачился связью между host-PC(мой ноут) и демоплатой.
Желательно, чтобы скомпилированный с помощью кросс-платформенного компилятора на host-PC файл (например helloworld), сразу же оказывался доступным для запуска на демоплате. Знающие люди посоветовали использовать NFS. Делал так:
0. Подключаем host-PC и демоплату к локальной сети (я для надежности воткнул их в один свич)
1. Запускаем на host-PC NFS-сервер. Для этого его надо скачать и установить:
Код
sudo apt-get install nfs-kernel-server nfs-common
2. В файл /etc/exports добавляем строчку
Код
/MyDir 192.168.88.230/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
это значит открыть доступ к папке MyDir (заменить на Ваш путь) клиенту, расположенному по адресу 192.168.88.230 Назначил этот адрес демоплате вручную (как показано ниже). Выбрал именно этот, т.к. команда ifconfig на host-PC сказала, что его адрес 192.168.88.235, ну я решил демоплату поселить поблизости. Заранее в MyDir накидайте несколько файлов в тестовых целях.
3. Подсоединяем демоплату по RS-232 к какому-нибудь компу где запущено консольное приложение, включаем ее и дожидаемся пока загрузится ядро. Чтобы смонтировать удаленную папку выполняем такие действия:
4.
Код
mkdir /target
(например /target, а можете куда Вам больше нравится)
5.
Код
sudo chmod 777 /target
не уверен, что эта команда необходима, но пока все настроил, много раз сталкивался с тем, что не работает именно из-за отсутствия прав.
6.
Код
ifconfig eth0 192.168.88.230
В результате должно появиться сообщение, что link up т.д. Кстати, в ходе загрузки ядра появляется сообщение link down и сети, соответственно сразу после загрузки нет, как это исправить пока не разобрался, может кто подскажет.
7.
Код
mount -o port=2049,nolock,proto=tcp -t nfs 192.168.88.235:/MyDir
адрес Вашего host-PC и полный путь к экспортируемой папке, кстати, без "-o port=2049,nolock,proto=tcp" не работает, может кто-нибудь знает почему?
Теперь проверяем:
9.
Код
ls -la /target
должны стать видимыми файлы, к-рые были накиданы на host-PC в папку MyDir
Для удобства написал маленький скрипт mounthost (опять таки, проверьте права у этого файла) с командами ifconfig и mount и добавил его в /etc/init.d с соответствующими ссылками на него: /etc/rc5.d/S19mounthost и /etc/rc5.d/K19mounthost (ссылки создавать ln -s, без ключа -s скрипт не запустится)
Пока не разобрался как с помощью nfs смонтировать rootfs, вероятно, плохо искал, кто знает где, ткните носом.