roboforum.ru

Технический форум по робототехнике.

mini2440 подготовка рабочего места к связи с устройством

mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 12 июл 2010, 21:52

Я буду рассказывать как подготовить linux систему с которой будет производиться кросс компиляция и управление
контроллером mini2440


это руководство заточено под дистрибутив Calculate Linux Roboforum Build
нижеуказанные рецепты будут потихоньку вноситься в следующие релизы
На данный момент я пишу статью когда активным является релиз clrf-crossdev-10.4-4-i686.iso


Создаем виртуальную машину с диском расширяемым HDD на 15GB , 1024 MB RAM , 2 ядра (по возможности)
конфигурируем один сетевой адаптер по схеме подключения «общая сеть»
профиль Gentoo Linux , Ubuntu или Linux 2.6


загружаемся с образа clrf-crossdev-10.4-4-i686.iso

выбираем русский язык загрузки и грузимся по умолчанию «Calculate Linux Scratch 10.4 LiveCD»

после загрузки нам первым делом нужно зайти на виртуалку по протоколу ssh по сети
это делается потому что виртуалка в текстовом режиме у нас изолирована от хостовой машины и не работает буффер обмена
а набирать команды ручками не по джедайски :)

настроим сеть
# net-setup eth0
выбираем сеть тип «wired» и параметры чтобы подключиться к вашей домашней сети (фиксированый ip или dhcp)

проверяем полученный ip
# ifconfig

проверяем хождение пинга до хостовой машины
# ping {ip хостовой машины}

если всё в порядке то устанавливаем пароль (обязательно, иначе не пустит)
# passwd

и запускаем sshd
# /etc/init.d/sshd restart

заходим на машину по ssh (используя терминал putty, кодировка utf8 )
root / password
(при первом заходе будет предложено сохранить идентификатор машины, нужно согласиться)

создадим таблицу разделов:
# fdisk /dev/sda
o
n
p
1
enter
enter
w


устанавливаем линукс на диск
# calculate -d /dev/sda1 -s CLS --set-hostname=RF-dev --set-lang=ru_RU --set-video_resolution="1024x768" --set-user_comment="Roboforum Build"


выключаем виртуалку правильно
# poweroff

убираем загрузку с iso образа

и загружаемся (пароль у нас тот что ставили при загрузке ещё до установки)


повторно настроим сеть (теперь эта настройка сохранится)
# net-setup eth0
выбираем сеть тип «wired» и параметры чтобы подключиться к вашей домашней сети (фиксированый ip или dhcp)

проверяем полученный ip
# ifconfig


и обновим дерево портов
# eix-sync

------ обновления характерные для версии clrf-crossdev-10.4-4-i686.iso ------

установим терминальную программу
# emerge -v minicom

програмка аплоада кода в u-boot по USB
# echo "app-mobilephone/dfu-util ~x86" > /etc/portage/package.keywords/dfu-util
# emerge -v app-mobilephone/dfu-util

теперь соберём proftpd
только сначала уберём флаг необходимости антивируса (-clamav)
# ufed
в открывшемся меню начинаем набирать слово clamav и когда оно попадет под выделение - пробелом меняем на "-"
выходим с сохранением ( ESC , Enter )
собираем proftpd
# emerge -v proftpd

для proftpd сделаем конфиг, для чего откроем любимым редактором (я использую mcedit) файл /etc/proftpd/proftpd.conf
# mcedit /etc/proftpd/proftpd.conf
приводимый ниже конфиг открывает доступ на чтение запись по анонимному соединению в папку /home/ftp
и полный доступ к домашнему каталогу (а при наличии пользователя в группе wheel ещё и на чтение от корня системы)
это не совсем правильно для обычных машин, но для наших задач это наиболее удобно и приемлимо.
Код: Выделить всёРазвернуть
###############################################################################                                                                    
# Global                                                                                                                                           
###############################################################################                                                                   
ServerName                      "Roboforum Linux FTP"                                                                                             
ServerType                      standalone                                                                                                         
DefaultServer                   on                                                                                                                 
RequireValidShell               off                                                                                                               
ServerIdent                     off                                                                                                               
IdentLookups                    off                                                                                                               
Port                            21                                                                                                                 
Umask                           022                                                                                                               
MaxInstances                    30                                                                                                                 
User                            ftp                                                                                                               
Group                           ftp                                                                                                               
#RootLogin                      on                                                                                                                 
ShowSymlinks                    on                                                                                                                 
                                                                                                                                                   
                                                                                                                                                   
###############################################################################                                                                   
# Logs                                                                                                                                             
###############################################################################                                                                   
# debug 0-9                                                                                                                                       
DebugLevel                      1                                                                                                                 
#SyslogLevel                    notice                                                                                                             
SyslogLevel                     debug                                                                                                             
UseReverseDNS                   off                                                                                                               
TransferLog                     /var/log/proftpd/transfer.log                                                                                     
SystemLog                       /var/log/proftpd/proftpd.log                                                                                       
ExtendedLog                     /var/log/proftpd/extended.log ALL default                                                                         
                                                                                                                                                   
                                                                                                                                                   
                                                                                                                                                   
###############################################################################                                                                   
# Auth                                                                                                                                             
###############################################################################                                                                   
                                                                                                                                                   
AuthPAM                         off                                                                                                               
                                                                                                                                                   
#AuthUserFile                   /etc/proftpd/.passwd
###############################################################################                                                                   
# Limits                                                                                                                                           
###############################################################################                                                                   
MaxClients                      15 "Слишком много соединений с сервером"                                                                           
MaxClientsPerHost               4 "%m клиента уже подключены с Вашего хоста, больше не разрешено"                                                 
MaxLoginAttempts                10 "Слишком много попыток войти"                                                                                   
                                                                                                                                                   
# Ограничение трафика. В данном случае мы ограничиваем закачку и скачивание всем пользователям на 150k кроме рута                                 
#TransferRate                   RETR,STOR,APPE 150 user !root                                                                                     
                                                                                                                                                   
#Возможно определить с каких ip соединения допустимы или запрещены                                                                                 
#UseHostsAllowFile              /etc/proftpd.allow                                                                                                 
#UseHostsDenyFile               /etc/proftpd.deny                                                                                                 
                                                                                                                                                   
# Установим ограничения по времени                                                                                                                 
TimeoutIdle                     180                                                                                                               
TimeoutLogin                    120                                                                                                               
#TimeoutNoTransfer              360                                                                                                               
#TimeoutStalled                 640                                                                                                               
                                                                                                                                                   
# Normally, we want files to be overwriteable.                                                                                                     
AllowOverwrite          on                                                                                                                         
                                                                                                                                                   
                                                                                                                                                   
###############################################################################                                                                   
# Messages                                                                                                                                         
###############################################################################                                                                   
#DisplayConnect                 /etc/ftp_connect.msg                                                                                               
#DisplayLogin                   /etc/ftp_login.msg                                                                                                 
AccessDenyMsg                   "Login Failed."                                                                                                   
AccessGrantMsg                  "Welcome."                                                                                                         
DisplayGoAway                   "Go Away"                                                                                                         
                                                                                                                                                   
                                                                                                                                                   
###############################################################################                                                                   
# Chroot                                                                                                                                           
###############################################################################                                                                   
DefaultRoot                     / wheel                                                                                                           
DefaultRoot                     ~

###############################################################################                                                                   
# Directory                                                                                                                                       
###############################################################################                                                                   
                                                                                                                                                   
<Anonymous ~ftp>                                                                                                                                   
  User                          ftp                                                                                                               
  Group                         ftp                                                                                                               
  UserAlias                     anonymous ftp                                                                                                     
  MaxClients                    10 "Sorry, max %m users -- try again later"                                                                       
  DisplayLogin                  welcome.msg                                                                                                       
  DisplayChdir                  .message                                                                                                           
  <Limit WRITE STOR MKD XMKD RMD XRMD DELE RNFR RNTO>                                                                                             
   Allow All
#    DenyAll                                                                                                                                       
  </Limit>                                                                                                                                         
  <Directory * >                                                                                                                                   
      <Limit READ DIRS LIST RETR MKD XMKD RMD XRMD DELE RNFR RNTO>                                                                                 
        Allow All                                                                                                                                 
#        DenyAll                                                                                                                                   
      </Limit>                                                                                                                                     
      <Limit STOR CWD>                                                                                                                             
        Order Allow,Deny                                                                                                                           
#       Allow 192.168.0.0/16                                                                                                                       
        Allow All                                                                                                                                 
#       Deny ALL                                                                                                                                   
      </Limit>                                                                                                                                     
  </Directory>                                                                                                                                     
</Anonymous>

###############################################################################                                                                   
# Директория для пользователей со своими учетками                                                                                                 
<Directory ~>                                                                                                                                     
    AllowOverwrite                      on                                                                                                         
    <Limit ALL>                                                                                                                                   
        AllowAll                                                                                                                                   
        IgnoreHidden                    on                                                                                                         
    </Limit>                                                                                                                                       
    <Limit LOGIN READ DIRS LIST CWD RETR>                                                                                                         
        AllowAll                                                                                                                                   
        IgnoreHidden                    on                                                                                                         
    </Limit>                                                                                                                                       
    <Limit WRITE STOR MKD XMKD RMD XRMD DELE RNFR RNTO>                                                                                           
        Order                           allow, deny                                                                                               
#       Allow                           from 192.168.0.0/24                                                                                       
        Allow                           from all                                                                                                   
#       Deny                            from all                                                                                                   
    </Limit>                                                                                                                                       
</Directory>

для правильной вставки в mcedit (убираем эффект лесенки) :
mcedit
F9
Настройки / Общая
убираем галки :
Автоотступ "Вводом"
Отображать пробелы
Отображать табуляции


Если имеются сложности со вставкой файла , то просто качаем его отсюда :
# wget http://3nity.ru/files/roboforum/proftpd.conf.gz -O /etc/proftpd/proftpd.conf.gz
# cd /etc/proftpd ; gzip -d ./proftpd.conf.gz
proftpd.conf.gz
(1.38 КиБ) Скачиваний: 0


создадим каталог для логов
# mkdir /var/log/proftpd
запустим сервер ftp
# /etc/init.d/proftpd start
и добавим его в автозагрузку
# rc-update add proftpd default
дадим права на запись для анонима
# chmod 777 /home/ftp/

ещё нам потребуется tftp сервер (это такой протокол файлового доступа без всяких сложностей типа пароля)
# emerge -v atftp

подготовим его каталог
# mkdir /tftproot ; chmod 777 /tftproot
запустим
# /etc/init.d/atftp start
и поставим в автозапуск
# rc-update add atftp default


соберем утилиты для работы с NAND , в частности jffs2 файловой системой
# emerge -v sys-fs/mtd-utils

цветная утилита сравнения файлов
# emerge -v colordiff


Работа с btrfs
# emerge -av btrfs-progs

+ нужно собрать btrfs в ядре или модулем:
# cd /usr/src/linux
# make menuconfig
включить модули btrfs в разделе filesystems
# make modules
# make modules_install

-- дописываю, расширяю ---
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение Andrey37 » 05 сен 2010, 13:23

Решил поставить gentoo. выдает вот эту ошибку:

Распакуем систему
Отформатируем новый раздел... готово.
Подмонтируем новый раздел... готово.
Распакуем образ системы в новый раздел...
ovr: 0:00:00 100% [=========================================================]
готово.
Обновим конфигурацию
Наложим шаблон "install/1default"... готово.
Наложим шаблон "install/2locale"... готово.
Наложим шаблон "install/3patch"... готово.
Наложим шаблон "install/4deprecated"... готово.
Наложим шаблон "install/5compatible"... готово.
Наложим шаблон "install/desktop"... готово.
rm: невозможно удалить «/var/calculate/tmp/.tmp.3070203»: Каталог не пуст
Настроим систему
Обновление /etc/inittab... готово.
Создадим новый initrd файл... готово.
Удалим неиспользуемые локализации... готово.
Подготовим систему к перезагрузке
Изменим загрузочную запись...sh: cannot create temp file for here-document: На устройстве кончилось место
ошибка.
Отмонтируем раздел с установленной системой...ошибка записи /etc/mtab.tmp: На устройстве кончилось место
ошибка.
calculate ~ #

что может быть не так?
Andrey37
 
Сообщения: 89
Зарегистрирован: 13 апр 2009, 09:29
Откуда: Иваново
Skype: b_andrey_37

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 05 сен 2010, 20:55

именно то самое - на устройстве закончилось место
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение Andrey37 » 06 сен 2010, 09:52

и я так думал сначала. сделал HDD 20G - на устройстве закончилось место :), 30G - и снова закончилось :)

Добавлено спустя 1 час 55 минут 11 секунд:
все сделал. RAM вместо 1024 1700 поставил.
Andrey37
 
Сообщения: 89
Зарегистрирован: 13 апр 2009, 09:29
Откуда: Иваново
Skype: b_andrey_37

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 06 сен 2010, 10:24

место заканчивается вероятно не там, а на tempfs
посмотрите карту монтирования перед сборкой и в её процессе с другой консоли
есть смысл заменить tempfs (диск в памяти) на реальное устройство (предварительно всё на него скопировав с сохранением прав)
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение boratinka » 10 сен 2010, 16:30

товарищ Setar огласите весь список нужных пакетов пожалуйста (интересует для ubuntu) , а то в генту мне работать неудобно , а ставить virtualbox на полудохлом ноуте нехочеться , хочеться как то в ubuntu чтобы всё работало и без бубнов

Добавлено спустя 43 минуты 37 секунд:
да и чуть не забыл , не сочтите за наглость , но нельзя ли куда нить скинуть образ диска , ну тот что с бордой идёт в комплекте , а то пока не доехал до меня комплект ооочень хочеться посмотреть что там есть
себя винить не надо Канада виновата !
Аватара пользователя
boratinka
 
Сообщения: 13
Зарегистрирован: 15 фев 2010, 14:35
Откуда: Костанай

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 12 сен 2010, 11:31

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

для работы потребуется:

minicom
screen
ssh (server+client)
tftp сервер
ftp сервер
nfs сервер
кросс компилятор armv4tl-softfloat-linux-gnueabi
dfu-utils
набор утил для работы с btrfs , jffs2 , yaffs , reiserfs

ну и набор любимых редакторов :)
дальше по собственному желанию
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 17 сен 2010, 13:51

Диск комплекта тут : projects/mini2440/CD/
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение Tsi329 » 20 сен 2010, 13:29

Выполняю по шагам как и написано.
Уже столкнулся с двумя проблемами.

1. При задании пароля
Код: Выделить всёРазвернуть
# passwd
система пишет:
Authentication Token Manipulation Error

Решение
Открываем /etc/pam.d/system-auth и в строке password
добавляем: remember=5

2. Не хочет запускаться proftpd.
Код: Выделить всёРазвернуть
/etc/init.d/proftpd start


Ругается на девятую строчку IdentLookups off
Проверка
Код: Выделить всёРазвернуть
#/usr/sbin proftpd -t

Временное решение - закомментировать.

Причина ругани мне не известна.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение rotax » 23 сен 2010, 08:05

Подскажите каким образом в виртуалке работать с SD картами?
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение Andrey37 » 23 сен 2010, 08:13

Через картридер. :) или вопрос поточнее
Andrey37
 
Сообщения: 89
Зарегистрирован: 13 апр 2009, 09:29
Откуда: Иваново
Skype: b_andrey_37

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение rotax » 23 сен 2010, 08:19

:) для того чтобы увидеть картридер в виртуальной системе его нужно каким-то образом прописать в настройках виртуалбокса, вот только как это сделать? нигде не нашел эмуляцию картридера
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение Resident » 23 сен 2010, 10:54

Юзаю Vmware - никаких проблем с ридером пока не было. (Fedora 12)
Любой прибор, защищённый плавким предохранителем, сможет защитить этот предохранитель, сгорев первым.
Resident
 
Сообщения: 167
Зарегистрирован: 14 июн 2010, 17:19
прог. языки: Qt/C/C++

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение setar » 23 сен 2010, 18:10

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

в любой виртуальной машине есть управление подключенными к ней USB устройствами
нужно найти среди них подключенный кардридер и сделать его проброс в виртуалку (подключить к ней)
затем ставим карту в кардридер и анализируя хвост вывода команды
# dmesg
определяем как в системе видна карта (обычно /dev/sd{буква})
Аватара пользователя
setar
Site Admin
 
Сообщения: 10984
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: mini2440 подготовка рабочего места к связи с устройством

Сообщение rotax » 27 сен 2010, 22:07

Картридер не удается примонтировать т.к. он у меня не USB а PCI-E? поэтому пришлось устанавливать linux на хост.
При работе столкнулся с рядом проблем, прошу помочь.
1. как сделать так чтобы при загрузке поднимался автоматически wlan интерфейс и как сделать так чтобы сетевые настройки сохранялись после перезагрузки?
2. как сделать чтобы xfce запускался автоматически?
3. после загрузки linux-a системное время переводится на 4 часа назад, как решить эту проблемму?
4. панель задач в xfce выглядит как окошко с полосой заголовка и 4-я кнопками (свер. расп. мин. закр.) как привести ее в нормальный вид?
5. не удается прикрутить bluetooth мышь, система ее обнаруживает однако для подключения необходим пакет bluez, когда устанавливаю его emerge -v bluez, установка проходит как бы нормально без ошибок однако потом появляется сообщение что данного пакета в моей системе не обнаружено, так же при начале установки выводится размер данного пакета 0В. это глюк репозитария или я чего то не так делаю?
Аватара пользователя
rotax
 
Сообщения: 43
Зарегистрирован: 10 июн 2010, 23:31
Откуда: Краснодар
Skype: rotaxb
прог. языки: C
ФИО: Александр

След.

Вернуться в mini2440

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3