Инсталирање РОС-а у Убунту ИМГ слику за једну плочу

Увод

Пре неки дан, док сам радио на својој тези, суочио сам се са потребом да креирам Убунту слику за платформу са једном плочом са већ инсталираним РОС-ом (Робот Оператинг Систем - оперативни систем робота). Укратко, диплома је посвећена управљању групом робота. Роботи су опремљени са два точка и три даљиномера. Цела ствар се контролише из РОС-а, који ради на ОДРОИД-Ц2 плочи.

Инсталирање РОС-а у Убунту ИМГ слику за једну плочу
Робот Ладибуг. Извините због лошег квалитета фотографије

Није било ни времена ни жеље да се РОС инсталира на сваког робота појединачно, па је стога постојала потреба за имиџом система са већ инсталираним РОС-ом. Након што сам прегледао Интернет, пронашао сам неколико приступа како се то може урадити.
Генерално, сва пронађена решења могу се поделити у следеће групе.

  1. Програми који креирају слику из готовог и конфигурисаног система (Дистросхаре Убунту Имагер, линук ливе кит, линук респин, систем назад, итд.)
  2. Пројекти који вам омогућавају да креирате сопствену слику (иоцто, линук од нуле)
  3. Сами саставите слику (прилагођавање ЦД-а уживо и руски еквивалент, плус чланак о Хабреу)

Коришћење решења из прве групе је изгледало као најједноставнија и најатрактивнија опција, али никада нисам успео да направим слику система уживо за ОДРОИД. Решења друге групе такође ми нису одговарала због прилично високог улазног прага. Ручно склапање према доступним туторијалима такође није било прикладно, јер... Моја слика није имала компримовани систем датотека.
Као резултат тога, наишао сам на видео о цхроот-у (цхроот - промени корен, линк до видеа на крају поста) и његове могућности, одлучено је да се користи. Затим ћу описати свој конкретан случај прилагођавања Убунтуа за програмере роботике.

Почетни подаци:

  • Цео процес модификације слике (осим уписивања на СД картицу помоћу баленаЕтцхер-а) обављен је на Убунту 18.04 оперативном систему.
  • Оперативни систем чији сам склоп изменио је Убунту 18.04.3 мате десктоп верзија.
  • Машина на којој би склопљени систем требало да ради је ОДРОИД-Ц2.

Припрема слике

  1. Преузмите Убунту слику за ОДРОИД са званични сајт

  2. Распакивање архиве

    unxz –kv <файл архива с образом>

  3. Направите директоријум у који ћемо монтирати слику

    mkdir mnt

  4. Одредите партицију на којој се налази систем датотека

    file <файл образа>

    Тражимо партицију са системом датотека у формату ект2, ект3 или ект4. Потребна нам је адреса почетка одељка (означена црвеном бојом на екрану):

    Инсталирање РОС-а у Убунту ИМГ слику за једну плочу

    Напомена. Локација система датотека се такође може видети помоћу услужног програма подељен.

  5. Монтирање слике

    sudo mount -o loop,offset=$((264192*512)) <файл с образом> mnt/

    Одељак који нам је потребан почиње блоком 264192 (ваши бројеви се могу разликовати), величина једног блока је 512 бајтова, помножите их да бисте добили увлачење у бајтовима.

  6. Идите у фасциклу са монтираним системом и дружите се у њему

    cd mnt/
    sudo chroot ~/livecd/mnt/ bin/sh

    ~/ливецд/мнт — пуна путања до директоријума са монтираним системом
    бин/сх - шкољка (може се заменити и са бин/басх)
    Сада можете почети да инсталирате потребне пакете и апликације.

Инсталирање РОС-а

Инсталирао сам најновију верзију РОС-а (РОС Мелодиц) према званични водич.

  1. Ажурирајте листу пакета

    sudo apt-get update

    Овде сам добио грешку:

    Err:6 http://deb.odroid.in/c2 bionic InRelease
    The following signatures were invalid: EXPKEYSIG 5360FB9DAB19BAC9 Mauro Ribeiro (mdrjr) <[email protected]>

    То је због чињенице да је кључ за потписивање пакета истекао. Да бисте ажурирали кључеве, откуцајте:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB19BAC9

  2. Припрема система за уградњу РОС-а

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

    sudo apt update

  3. Инсталирање РОС-а
    Нажалост, нисам могао да инсталирам десктоп верзију РОС-а, па сам инсталирао само основне пакете:

    sudo apt install ros-melodic-ros-base
    apt search ros-melodic

    Напомена 1. Током процеса инсталације понекад је дошло до грешке:

    dpkg: error: failed to write status database record about 'iputils-ping' to '/var/lib/dpkg/status': No space left on device

    Поправљено је брисањем кеша помоћу услужног програма апт:

    sudo apt-get clean; sudo apt-get autoclean

    Напомена 2. Након инсталације, извор користећи команду:

    source /opt/ros/melodic/setup.bash

    неће радити, јер Нисмо покренули басх, тако да НИЈЕ потребно да се укуца у терминал.

  4. Инсталирање потребних зависности

    sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

    sudo apt install python-rosdep

    sudo rosdep init
    rosdep update

  5. Подешавање права приступа
    Пошто смо пријављени и, у ствари, обављамо све радње у име корена система који се склапа, РОС ће бити покренут само са правима суперкорисника.
    Када покушате да покренете росцоре без судо, појављује се грешка:

    Traceback (most recent call last): File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 230, in main write_pid_file(options.pid_fn, options.core, options.port) File "/opt/ros/melodic/lib/python2.7/dist-packages/roslaunch/__init__.py", line 106, in write_pid_file with open(pid_fn, "w") as f: IOError: [Errno 13] Permission denied: '/home/user/.ros/roscore-11311.pid'

    Да бисмо спречили да дође до грешке, хајде да рекурзивно променимо права приступа кућном директоријуму РОС корисника. Да бисмо то урадили, куцамо:

    sudo rosdep fix-permissions

  6. Додатна инсталација пакета рвиз и ркт

    sudo apt-get install ros-melodic-rqt ros-melodic-rviz

Финал тоуцхс

  1. Изађи из цхроот-а:
    exit
  2. Демонтирајте слику
    cd ..
    sudo umount mnt/
  3. Спакујмо слику система у архиву
    xz –ckv1 <файл образа>

Све! Сада уз помоћ баленаЕтцхер можете да снимите слику система на СД картицу, убаците је у ОДРОИД-Ц2 и имаћете инсталиран Убунту са РОС-ом!

Референце:

  • Овај видео је много помогао у томе како варати у Линуку и зашто вам је потребан:



Извор: ввв.хабр.цом

Додај коментар