Как собрать специализированный Linux?

509
user3486308

Мне нравится создавать робота, на котором есть компьютер на базе ARM (например, raspberry pi) и ОС Linux. Мне нравится, когда пользователь включает робота, робот запускает его специальную программу (которую я написал на языке C), а не запускает Linux общего назначения для настольных компьютеров!

Например, когда робот включается, он показывает «Привет!» на дисплее показывает привет пользователю, двигает руками и т. д. (я имею в виду, что для него запускается только указанная мной программа)

Как я могу это сделать?

0
Проверьте режим киоска: http://www.omgubuntu.co.uk/2014/07/create-ubuntu-kiosk fixer1234 7 лет назад 0

2 ответа на вопрос

1
karel

ROS (Robot Operating System) - это набор программных библиотек и инструментов, которые помогают разработчикам создавать приложения для роботов из другой операционной системы, такой как Ubuntu. ROS предоставляет аппаратную абстракцию, драйверы устройств, библиотеки, визуализаторы, передачу сообщений, управление пакетами и многое другое.

В мае каждый год выходит релиз ROS. Каждый выпуск ROS будет поддерживаться только на одном Ubuntu LTS. В выпусках ROS прекращается поддержка дистрибутивов EOL (End Of Life) Ubuntu, даже если выпуск ROS все еще поддерживается. Релиз ROS Kinetic в настоящее время поддерживается только в Ubuntu 16.04.

Вам необходимо установить полный рабочий стол Ubuntu на компьютер, на котором вы разрабатываете, а на компьютере на базе ARM (Raspberry Pi) вы должны установить гораздо меньшую операционную систему, такую ​​как Ubuntu Core. Существуют официальные сборки Ubuntu Core, доступные для Raspberry Pi 2 и Raspberry Pi 3.


Кинетическая установка ROS в Ubuntu 16.04

  1. Сконфигурируйте свои репозитории Ubuntu, чтобы разрешить «ограниченный», «вселенная» и «мультивселенная».

  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://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116  sudo apt update  
  3. Выберите одну из четырех конфигураций ROS по умолчанию.

    sudo apt install ros-kinetic-desktop-full # full desktop sudo apt install ros-kinetic-desktop # desktop install sudo apt install ros-kinetic-ros-base # no GUI sudo apt install ros-kinetic-PACKAGE # individual package installation 

    Для того, чтобы найти доступные пакеты, используйте: apt-cache search ros-kineticа затем заменить PACKAGEв ros-kinetic-PACKAGEодной из доступных пакетов найденныхapt-cache search ros-kinetic

  4. Инициализировать rosdep. rosdepпозволяет легко устанавливать системные зависимости для источника, который вы хотите скомпилировать, и необходим для запуска некоторых основных компонентов в ROS.

    sudo rosdep init rosdep update  
  5. Настройка среды

    echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc  source ~/.bashrc  
  6. Получить rosinstall. rosinstallпозволяет легко загружать множество исходных деревьев для пакетов ROS с помощью одной команды.

    sudo apt install python-rosinstall 
  7. Чтобы проверить вашу установку, посетите официальные учебники ROS .


ROS Мелодическая установка в Ubuntu 18.04

  1. Сконфигурируйте свои репозитории Ubuntu, чтобы разрешить «ограниченный», «вселенная» и «мультивселенная».

  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://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 sudo apt update  
  3. Выберите одну из четырех конфигураций ROS по умолчанию.

    sudo apt install ros-melodic-desktop-full # full desktop sudo apt install ros-melodic-desktop # desktop install sudo apt install ros-melodic-ros-base # no GUI sudo apt install ros-melodic-PACKAGE # individual package installation 

    Для того, чтобы найти доступные пакеты, используйте: apt-cache search ros-melodicа затем заменить PACKAGEв ros-melodic-PACKAGEодной из доступных пакетов найденныхapt-cache search ros-melodic

  4. Инициализировать rosdep. rosdepпозволяет легко устанавливать системные зависимости для источника, который вы хотите скомпилировать, и необходим для запуска некоторых основных компонентов в ROS.

    sudo rosdep init rosdep update  
  5. Настройка среды

    echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc  source ~/.bashrc  
  6. Получить rosinstall. rosinstallпозволяет легко загружать множество исходных деревьев для пакетов ROS с помощью одной команды.

    sudo apt install python-rosinstall-generator python-wstool build-essential 
  7. Чтобы проверить вашу установку, посетите официальные учебники ROS .

Источник: Ubuntu установка ROS Kinetic, Ubuntu установка ROS Melodic

0
Alex

Если вам просто нужна легкая операционная система на Raspberry Pi (без окружения рабочего стола), просто используйте «Raspbian Jessie Lite» вместо полной.

Если вы достаточно уверены в своих навыках программирования и вам ничего не нужно из операционной системы и вы можете покрыть все свои потребности в одной написанной вами программе, то вы можете заменить первую программу, которая запускается ядром Linux, изменив строку инициализации GRUB init=/path/to/init_program(убедитесь, что Вы читаете Системную инициализацию )

Если вы просто хотите (я думаю, это именно то, что вы хотите), просто скажите операционной системе, чтобы она автоматически запускала вашу программу на Raspberry Pi, затем создайте или отредактируйте свой rc.local

 sudo nano /etc/rc.local 

и добавьте свою программу туда. (убедитесь, что вы прочитали все в официальной документации, как это сделать правильно https://www.raspberrypi.org/documentation/linux/usage/rc-local.md )

Привет, Алекс, и спасибо за помощь. На самом деле, моя доска - это не Raspberry Pi и не Nanopi-M1. но поддерживает Debian Jessie, Ubuntu Mate, Ubuntu Core, Armbian. Я использую Armbian в это время. Я проверю файл, который вы сказали (cc.local), и я думаю, что мое решение в вашем третьем варианте, как вы сказали. Но это первая часть. Я хочу, чтобы моя программа запускалась при включении компьютера, но я люблю удалять другие программы, такие как веб-браузер, liber office и т. Д., И не хочу, чтобы они запускались или занимали мою SD-карту. Как насчет второй части? Как я могу удалить дополнительные приложения и деактивировать дополнительные части ОС, такие как среда рабочего стола? user3486308 7 лет назад 0
Очистка операционной системы от рабочего стола - задача не из легких, вы, вероятно, ослабите зависимость от библиотеки и потеряете много времени. Я предлагаю вам скачать серверную версию armbian, если вы хотите иметь облегченную систему, так как серверная версия обычно не имеет настольных систем. Alex 7 лет назад 0

Похожие вопросы