mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-28 14:09:33 +00:00
Remove conflict files
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
theme: jekyll-theme-cayman
|
||||
tagline: Конструктор программируемого квадрокоптера
|
||||
@@ -1,6 +0,0 @@
|
||||
[Unit]
|
||||
Description=Butterfly Terminal Server
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/local/bin/butterfly.server.py --host="0.0.0.0" --unsecure
|
||||
User=pi
|
||||
@@ -1,5 +0,0 @@
|
||||
[Socket]
|
||||
ListenStream=57575
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
@@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Clever ROS package
|
||||
Requires=roscore.service
|
||||
After=roscore.service
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/home/pi/catkin_ws/src/clever/deploy/roscore.env
|
||||
ExecStart=/opt/ros/kinetic/bin/roslaunch clever clever.launch --wait
|
||||
Restart=on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script generates ros_lib library for Arduino for using with rosseial_arduino:
|
||||
# http://wiki.ros.org/rosserial_arduino/Tutorials
|
||||
# https://copterexpress.gitbooks.io/clever/content/docs/arduino.html
|
||||
|
||||
rm -rf ros_lib
|
||||
rosrun rosserial_arduino make_libraries.py .
|
||||
tar czf clever_arudino.tar.gz ros_lib
|
||||
@@ -1,57 +0,0 @@
|
||||
# Default Host - Configuration
|
||||
# ============================
|
||||
# Here the variable principals of the program are defined in respect
|
||||
# to the configuration of the different types of directives.
|
||||
|
||||
[HOST]
|
||||
# ServerName:
|
||||
# -----------
|
||||
# Allow you to set a host and domain name (e.g monkey.linuxchile.cl). If
|
||||
# you are working in a local network just set your IP address or if you
|
||||
# are working like localhost set your loopback address (127.0.0.1).
|
||||
|
||||
ServerName 0.0.0.0
|
||||
|
||||
# DocumentRoot:
|
||||
# -------------
|
||||
# This variable corresponds to the location of the main server directory
|
||||
# of the web pages, where the files of your site are located.
|
||||
#
|
||||
# Example:
|
||||
# DocumentRoot /home/krypton/htdocs
|
||||
|
||||
DocumentRoot /home/pi/catkin_ws/src/clever/clever/static
|
||||
|
||||
# Redirect:
|
||||
# ---------
|
||||
# Under specific conditions, you may want the server performs a HTTP
|
||||
# redirect when this Virtual Host is reach. If that is the case, append
|
||||
# to the Redirect key the value of the address where to redirect the
|
||||
# HTTP client.
|
||||
#
|
||||
# Redirect http://monkey-project.com
|
||||
|
||||
[LOGGER]
|
||||
# AccessLog:
|
||||
# ----------
|
||||
# Registration file of correct request.
|
||||
|
||||
AccessLog /home/pi/monkey/build/log/access.log
|
||||
|
||||
# ErrorLog:
|
||||
# ---------
|
||||
# Registration file of incorrect request.
|
||||
|
||||
ErrorLog /home/pi/monkey/build/log/error.log
|
||||
|
||||
[ERROR_PAGES]
|
||||
404 404.html
|
||||
|
||||
[HANDLERS]
|
||||
# FastCGI
|
||||
# =======
|
||||
# Match /.*\.php fastcgi
|
||||
|
||||
# CGI
|
||||
# ===
|
||||
# Match /cgi-bin/.*\.cgi cgi
|
||||
@@ -1,10 +0,0 @@
|
||||
ROS_ROOT=/opt/ros/kinetic/share/ros
|
||||
ROS_DISTRO=kinetic
|
||||
ROS_PACKAGE_PATH=/home/pi/catkin_ws/src:/opt/ros/kinetic/share
|
||||
ROS_PORT=11311
|
||||
ROS_MASTER_URI=http://localhost:11311
|
||||
CMAKE_PREFIX_PATH=/home/pi/catkin_ws/devel:/opt/ros/kinetic
|
||||
PATH=/opt/ros/kinetic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
|
||||
LD_LIBRARY_PATH=/opt/ros/kinetic/lib
|
||||
PYTHONPATH=/home/pi/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages
|
||||
ROS_IP=192.168.11.1
|
||||
@@ -1,11 +0,0 @@
|
||||
[Unit]
|
||||
Description=Launcher for the ROS master, parameter server and rosout logging node
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/home/pi/catkin_ws/src/clever/deploy/roscore.env
|
||||
ExecStart=/opt/ros/kinetic/bin/roscore
|
||||
Restart=on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
35
image_builder/Jenkinsfile
vendored
35
image_builder/Jenkinsfile
vendored
@@ -1,35 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
parameters {
|
||||
string(name: 'GWBT_REF', defaultValue: "master")
|
||||
string(name: 'GWBT_URL', defaultValue: "https://github.com/CopterExpress/clever.git")
|
||||
string(name: 'GWBT_FILE', defaultValue: "")
|
||||
string(name: 'IMAGE_NAME', defaultValue: "\$(cat ${GWBT_FILE} | jq '.repository.name' -r)-${params.GWBT_REF}.img")
|
||||
string(name: 'GWBT_EVENT', defaultValue: 'release')
|
||||
booleanParam(name: 'ONLY_PUBLISH', defaultValue: false, description: 'ONLY PUBLISH')
|
||||
string(name: 'BUILD_DIR', defaultValue: '/mnt/hdd_builder/workspace', description: 'Build workspace')
|
||||
}
|
||||
environment {
|
||||
DEBIAN_FRONTEND = 'noninteractive'
|
||||
LANG = 'C.UTF-8'
|
||||
LC_ALL = 'C.UTF-8'
|
||||
}
|
||||
stages {
|
||||
stage('Build image') {
|
||||
when { not { expression { return params.ONLY_PUBLISH } } }
|
||||
steps {
|
||||
build job: 'CopterExpress-clever-build', parameters: [[$class: 'StringParameterValue', name: 'IMAGE_NAME', value: "${params.IMAGE_NAME}"], [$class: 'StringParameterValue', name: 'IMAGE_VERSION', value: "${params.GWBT_REF}"], [$class: 'StringParameterValue', name: 'GWBT_REF', value: "${params.GWBT_REF}"], [$class: 'StringParameterValue', name: 'GWBT_URL', value: "${params.GWBT_URL}"]]
|
||||
}
|
||||
}
|
||||
stage('Publish image') {
|
||||
when { environment name: 'GWBT_EVENT', value: 'release' }
|
||||
environment {
|
||||
CONFIG_FILE = "${params.BUILD_DIR}/coex-ci.json"
|
||||
YA_SCRIPT = "$WORKSPACE/image_builder/yadisk.py"
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh publish_image ${params.BUILD_DIR} ${params.IMAGE_NAME} ${YA_SCRIPT} ${CONFIG_FILE} \$(cat ${params.GWBT_FILE} | jq '.release.id' -r) \"\$(cat ${params.GWBT_FILE} | jq '.release.body' | sed 's/\"//' | rev | sed 's/\"//' | rev)\""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
## Setup your builder
|
||||
|
||||
1. Install requirements
|
||||
```(bash)
|
||||
sudo apt-get install unzip zip git python-pip jq curl
|
||||
sudo pip install YaDiskClient
|
||||
```
|
||||
2. Mount HDD
|
||||
```bash
|
||||
nano /etc/fstab
|
||||
```
|
||||
```
|
||||
proc /proc proc defaults 0 0
|
||||
PARTUUID=37665771-01 /boot vfat defaults 0 2
|
||||
PARTUUID=37665771-02 / ext4 defaults,noatime 0 1
|
||||
# a swapfile is not a swap partition, no line here
|
||||
# use dphys-swapfile swap[on|off] for that
|
||||
/dev/sdb1 none swap sw 0 0
|
||||
/dev/sdb2 /mnt/hdd_system ext4 defaults,acl 0 0
|
||||
/dev/sdb3 /mnt/hdd_builder ext4 defaults,acl 0 0
|
||||
```
|
||||
|
||||
3. Enable swap on HDD
|
||||
> TODO:
|
||||
|
||||
And disable `dphys-swapfile`
|
||||
```(bash)
|
||||
sudo systemctl stop dphys-swapfile
|
||||
sudo systemctl disable dphys-swapfile
|
||||
```
|
||||
|
||||
3. Create /mnt/hdd_builder/workspace/coex-ci.json
|
||||
```(json)
|
||||
{
|
||||
"yadisk":
|
||||
{
|
||||
"login":"LOGIN",
|
||||
"password":"PASS",
|
||||
"server_dir":"/clever_images"
|
||||
},
|
||||
"github":
|
||||
{
|
||||
"login":"LOGIN",
|
||||
"password":"PASS",
|
||||
"url":"https://api.github.com/repos/CopterExpress/clever/releases/"
|
||||
}
|
||||
}
|
||||
```
|
||||
6. Add webhook to release on your github project
|
||||
> TODO
|
||||
|
||||
9. Install Jenkins
|
||||
> Manual https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-16-04
|
||||
|
||||
10. Change user & group invoked Jenkins
|
||||
```(bash)
|
||||
sudo sed -i 's/JENKINS_USER=$NAME/JENKINS_USER=root/' /etc/default/jenkins
|
||||
sudo sed -i 's/JENKINS_GROUP=$NAME/JENKINS_GROUP=root/' /etc/default/jenkins
|
||||
```
|
||||
11. Install Jenikins plugins
|
||||
> Pipeline, Git SCM
|
||||
|
||||
12. Create Jenkins pipeline job
|
||||
> TODO
|
||||
|
||||
13. Configure Jenkins
|
||||
> TODO: Matrix autorization, GIT Token
|
||||
|
||||
13. Add Jenkins service to autostart
|
||||
```(bash)
|
||||
sudo systemctl enable jenkins
|
||||
```
|
||||
|
||||
14. Start service
|
||||
```(bash)
|
||||
sudo systemctl start jenkins
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
* Jenkins (BlueOcean plugin, optional)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If JDK not installed:
|
||||
|
||||
```bash
|
||||
sudo apt-get install default-jdk
|
||||
```
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ $(whoami) != "root" ]; then
|
||||
echo \
|
||||
&& echo "********************************************************************" \
|
||||
&& echo "******************** This should be run as root ********************" \
|
||||
&& echo "********************************************************************" \
|
||||
&& echo \
|
||||
&& exit 1
|
||||
fi
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "================================================================================"
|
||||
echo -e "\033[0;31m\033[1mAutomatic Image file resizer\033[0m\033[0m"
|
||||
echo -e "\033[0;31m\033[1mDescription:\033[0m\033[0m This script shrink your image to 10MiB free space"
|
||||
echo -e "if you didn't set FREE_SPACE in MiB (see usage below)."
|
||||
echo -e "\033[0;31m\033[1mAuthors:\033[0m\033[0m Artem Smirnov @urpylka, SirLagz"
|
||||
echo
|
||||
echo -e "\033[0;31m\033[1mUsage:\033[0m\033[0m ./autosizer.sh PATH_TO_IMAGE FREE_SPACE"
|
||||
echo
|
||||
echo -e "\033[0;31m\033[1mRequirements:\033[0m\033[0m parted, losetup, e2fsck, resize2fs, bc, truncate"
|
||||
echo "================================================================================"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "================================================================================"
|
||||
strImgFile=$1
|
||||
echo -e "\033[0;31m\033[1mPath to image: $strImgFile\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
if [[ ! -e $strImgFile ]]; then
|
||||
echo -e "\033[0;31m\033[1mError: File doesn't exist\033[0m\033[0m"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "================================================================================"
|
||||
partinfo=`parted -m $strImgFile unit B print`
|
||||
echo -e "\033[0;31m\033[1mPartition information:\033[0m\033[0m\n$partinfo"
|
||||
echo "================================================================================"
|
||||
|
||||
partnumber=`echo "$partinfo" | grep ext4 | awk -F: '{ print $1 }'`
|
||||
echo -e "\033[0;31m\033[1mPartition number: $partnumber\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
partstart=`echo "$partinfo" | grep ext4 | awk -F: '{ print substr($2,0,length($2)-1) }'`
|
||||
echo -e "\033[0;31m\033[1mPartition start: $partstart (bytes)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
loopback=`losetup -f --show -o $partstart $strImgFile`
|
||||
echo -e "\033[0;31m\033[1mLoopback device: $loopback\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
set +e
|
||||
e2fsck -fvy $loopback
|
||||
set -e
|
||||
|
||||
echo "================================================================================"
|
||||
minsize=`resize2fs -P $loopback | awk -F': ' '{ print $2 }'`
|
||||
#minsize=`resize2fs -P $loopback 2> /dev/null | awk -F': ' '{ print $2 }'`
|
||||
echo -e "\033[0;31m\033[1mMinsize: $minsize (4KiB)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
# Default add 10MiB free space to image, if $2 doesn't set
|
||||
FREE_SPACE=${2:-10}
|
||||
|
||||
FREE_SPACE=$(($FREE_SPACE*1024*1024/4096))
|
||||
|
||||
minsize=`echo "$minsize+$FREE_SPACE" | bc`
|
||||
echo -e "\033[0;31m\033[1mMinsize + $FREE_SPACE (4KiB): $minsize (4KiB)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
resize2fs -p $loopback $minsize
|
||||
sleep 1
|
||||
losetup -d $loopback
|
||||
|
||||
echo "================================================================================"
|
||||
partnewsize=`echo "$minsize * 4096" | bc`
|
||||
echo -e "\033[0;31m\033[1mNew size of part: $minsize (4KiB) = $partnewsize (bytes)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
newpartend=`echo "$partstart + $partnewsize" | bc`
|
||||
echo -e "\033[0;31m\033[1mNew end of part (Part start + part new size):\033[0m\033[0m"
|
||||
echo -e "\033[0;31m\033[1m$partstart (bytes) + $partnewsize (bytes) = $newpartend (bytes)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
part1=`parted $strImgFile rm 2`
|
||||
echo "================================================================================"
|
||||
part2=`parted $strImgFile unit B mkpart primary $partstart $newpartend`
|
||||
|
||||
echo "================================================================================"
|
||||
endresult=`parted -m $strImgFile unit B print free | tail -1 | awk -F: '{ print substr($2,0,length($2)-1) }'`
|
||||
echo -e "\033[0;31m\033[1mSize of result image: $endresult (bytes)\033[0m\033[0m"
|
||||
echo "================================================================================"
|
||||
|
||||
truncate -s $endresult $strImgFile
|
||||
|
||||
echo "================================================================================"
|
||||
partinfo=`parted -m $strImgFile unit B print`
|
||||
echo -e "\033[0;31m\033[1mPartition information:\033[0m\033[0m\n$partinfo"
|
||||
echo "================================================================================"
|
||||
@@ -1,94 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
parameters {
|
||||
string(name: 'IMAGE_NAME', defaultValue: 'clever_noname.img', description: 'Output image file name')
|
||||
string(name: 'GWBT_REF', defaultValue: 'master', description: 'Checkout ref-param')
|
||||
string(name: 'IMAGE_VERSION', defaultValue: 'no_version', description: 'Image version')
|
||||
|
||||
string(name: 'BUILD_DIR', defaultValue: '/mnt/hdd_builder/workspace', description: 'Build workspace')
|
||||
|
||||
string(name: 'RPI_DONWLOAD_URL', defaultValue: 'http://director.downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2018-06-29/2018-06-27-raspbian-stretch-lite.zip')
|
||||
// TODO: Add mirrorparameters
|
||||
|
||||
string(name: 'GWBT_URL', defaultValue: 'https://github.com/CopterExpress/clever.git')
|
||||
|
||||
// Experimental function
|
||||
booleanParam(name: 'SHRINK', defaultValue: true, description: 'SHRINK IMAGE')
|
||||
booleanParam(name: 'DISCOVER_ROS_PACKAGES', defaultValue: false, description: 'DISCOVER ROS PACKAGES')
|
||||
}
|
||||
environment {
|
||||
DEBIAN_FRONTEND = 'noninteractive'
|
||||
LANG = 'C.UTF-8'
|
||||
LC_ALL = 'C.UTF-8'
|
||||
}
|
||||
stages {
|
||||
stage('Get image') {
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh get_image ${params.BUILD_DIR} ${params.RPI_DONWLOAD_URL} ${params.IMAGE_NAME}"
|
||||
}
|
||||
}
|
||||
stage('Resize FS') {
|
||||
environment {
|
||||
SIZE = '7G'
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh resize_fs ${params.BUILD_DIR}/${params.IMAGE_NAME} $SIZE"
|
||||
}
|
||||
}
|
||||
stage('Initialize image') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/init_image.sh'
|
||||
}
|
||||
// TODO: Transfer apps.sh initialisation code here
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE ${params.IMAGE_VERSION} \$(basename ${params.RPI_DONWLOAD_URL})"
|
||||
}
|
||||
}
|
||||
stage('Hardware setup') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/hardware_setup.sh'
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE"
|
||||
}
|
||||
}
|
||||
stage('Software install') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/software_install.sh'
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE"
|
||||
}
|
||||
}
|
||||
stage('Network setup') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/network_setup.sh'
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE"
|
||||
}
|
||||
}
|
||||
stage('Install ROS') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/ros_install.sh'
|
||||
MOVE_FILE = 'image_builder/kinetic-ros-coex.rosinstall'
|
||||
MOVE_TO = '/home/pi/ros_catkin_ws'
|
||||
}
|
||||
steps {
|
||||
sh "if ! ${params.DISCOVER_ROS_PACKAGES}; then $WORKSPACE/image_builder/image_config.sh copy_to_chroot ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$MOVE_FILE $MOVE_TO; fi"
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE ${params.GWBT_URL} ${params.GWBT_REF} ${params.DISCOVER_ROS_PACKAGES}"
|
||||
}
|
||||
}
|
||||
// TODO: Add finalising step, transfer mirror removal from ros.sh
|
||||
stage('Shrink image') {
|
||||
environment {
|
||||
EXECUTE_FILE = 'image_builder/scripts/change_boot_part.sh'
|
||||
}
|
||||
when { expression { return params.SHRINK } }
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/autosizer.sh ${params.BUILD_DIR}/${params.IMAGE_NAME}"
|
||||
sh "$WORKSPACE/image_builder/image_config.sh execute ${params.BUILD_DIR}/${params.IMAGE_NAME} $WORKSPACE/$EXECUTE_FILE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,385 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit immidiately on non-zero result
|
||||
set -e
|
||||
|
||||
#
|
||||
# Script for image configure
|
||||
# @urpylka Artem Smirnov
|
||||
# @dvornikov-aa Andrey Dvornikov
|
||||
#
|
||||
|
||||
get_image() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: get_image $BUILD_DIR $RPI_DONWLOAD_URL $IMAGE_NAME
|
||||
|
||||
local RPI_ZIP_NAME=$(basename $2)
|
||||
if [ ! -e "$1/${RPI_ZIP_NAME}" ];
|
||||
then
|
||||
echo "$(date) | 1. Downloading original Linux distribution"
|
||||
wget -nv -O $1/${RPI_ZIP_NAME} $2
|
||||
echo "$(date) | Downloading complete"
|
||||
else
|
||||
echo "$(date) | 1. Linux distribution already donwloaded"
|
||||
fi
|
||||
echo "$(date) | 2. Unzipping Linux distribution image"
|
||||
local RPI_IMAGE_NAME=$(echo ${RPI_ZIP_NAME} | sed 's/zip/img/')
|
||||
unzip -p $1/${RPI_ZIP_NAME} ${RPI_IMAGE_NAME} > $1/$3
|
||||
echo "$(date) | Unzipping complete"
|
||||
}
|
||||
|
||||
resize_fs() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: resize_fs $IMAGE_PATH $SIZE
|
||||
|
||||
# Partitions numbers
|
||||
local BOOT_PARTITION=1
|
||||
local ROOT_PARTITION=2
|
||||
|
||||
set +e
|
||||
|
||||
# https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D1%80%D0%B5%D0%B6%D1%91%D0%BD%D0%BD%D1%8B%D0%B9_%D1%84%D0%B0%D0%B9%D0%BB
|
||||
|
||||
# https://raspberrypi.stackexchange.com/questions/13137/how-can-i-mount-a-raspberry-pi-linux-distro-image
|
||||
# fdisk -l 2017-11-29-raspbian-stretch-lite.img
|
||||
# https://www.stableit.ru/2011/05/losetup.html
|
||||
# -f : losetup сам выбрал loop (минуя занятые)
|
||||
# -P : losetup монтирует разделы в образе как отдельные подразделы,
|
||||
# например /dev/loop0p1 и /dev/loop0p2
|
||||
# --show : печатает имя устройства, например /dev/loop4
|
||||
|
||||
# http://karelzak.blogspot.ru/2015/05/resize-by-sfdisk.html
|
||||
# ", +" : expand partition for volume size
|
||||
# -N 2 : select second partition for work
|
||||
|
||||
# There is a risk that sfdisk will ask for a disk remount to update partition table
|
||||
# TODO: Check sfdisk exit code
|
||||
|
||||
echo -e "\033[0;31m\033[1mTruncate image\033[0m\033[0m" \
|
||||
&& truncate -s$2 $1 \
|
||||
&& echo "Mount loop-image: $1" \
|
||||
&& local DEV_IMAGE=$(losetup -Pf $1 --show) \
|
||||
&& sleep 0.5 \
|
||||
&& echo -e "\033[0;31m\033[1mMount loop-image: $1\033[0m\033[0m" \
|
||||
&& echo ", +" | sfdisk -N ${ROOT_PARTITION} ${DEV_IMAGE} \
|
||||
&& sleep 0.5 \
|
||||
&& losetup -d ${DEV_IMAGE} \
|
||||
&& sleep 0.5 \
|
||||
&& local DEV_IMAGE=$(losetup -Pf $1 --show) \
|
||||
&& sleep 0.5 \
|
||||
&& echo -e "\033[0;31m\033[1mCheck & repair filesystem after expand partition\033[0m\033[0m" \
|
||||
&& e2fsck -fvy "${DEV_IMAGE}p${ROOT_PARTITION}" \
|
||||
&& echo -e "\033[0;31m\033[1mExpand filesystem\033[0m\033[0m" \
|
||||
&& resize2fs "${DEV_IMAGE}p${ROOT_PARTITION}" \
|
||||
&& echo -e "\033[0;31m\033[1mUmount loop-image\033[0m\033[0m" \
|
||||
&& losetup -d ${DEV_IMAGE}
|
||||
|
||||
set -e
|
||||
}
|
||||
|
||||
mount_system() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: mount_system $IMAGE
|
||||
|
||||
# Partitions numbers
|
||||
local BOOT_PARTITION=1
|
||||
local ROOT_PARTITION=2
|
||||
|
||||
# https://www.stableit.ru/2011/05/losetup.html
|
||||
# -f : losetup выбирает незанятое имя устройства, например /dev/loop2
|
||||
# -P : losetup монтирует разделы в образе как отдельные подразделы,
|
||||
# например /dev/loop0p1 и /dev/loop0p2
|
||||
# --show : печатает имя устройства, например /dev/loop4
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount loop-image: $1\033[0m\033[0m"
|
||||
local DEV_IMAGE=$(losetup -Pf $1 --show)
|
||||
sleep 0.5
|
||||
|
||||
# Get temp directory to mount image
|
||||
local MOUNT_POINT=$(mktemp -d)
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount dirs ${MOUNT_POINT} & ${MOUNT_POINT}/boot\033[0m\033[0m"
|
||||
mount "${DEV_IMAGE}p${ROOT_PARTITION}" ${MOUNT_POINT}
|
||||
mount "${DEV_IMAGE}p${BOOT_PARTITION}" ${MOUNT_POINT}/boot
|
||||
|
||||
echo -e "\033[0;31m\033[1mBind system dirs\033[0m\033[0m"
|
||||
# https://github.com/debian-pi/raspbian-ua-netinst/issues/314
|
||||
echo "Mounting /proc in chroot... "
|
||||
if [ ! -d ${MOUNT_POINT}/proc ] ; then
|
||||
mkdir -p ${MOUNT_POINT}/proc \
|
||||
&& echo "Created ${MOUNT_POINT}/proc"
|
||||
fi
|
||||
mount -t proc -o nosuid,noexec,nodev proc ${MOUNT_POINT}/proc \
|
||||
&& echo "OK"
|
||||
|
||||
echo "Mounting /sys in chroot... "
|
||||
if [ ! -d ${MOUNT_POINT}/sys ] ; then
|
||||
mkdir -p ${MOUNT_POINT}/sys \
|
||||
&& echo "Created ${MOUNT_POINT}/sys"
|
||||
fi
|
||||
mount -t sysfs -o nosuid,noexec,nodev sysfs ${MOUNT_POINT}/sys \
|
||||
&& echo "OK"
|
||||
|
||||
echo "Mounting /dev/ and /dev/pts in chroot... " \
|
||||
&& mkdir -p -m 755 ${MOUNT_POINT}/dev/pts \
|
||||
&& mount -t devtmpfs -o mode=0755,nosuid devtmpfs ${MOUNT_POINT}/dev \
|
||||
&& mount -t devpts -o gid=5,mode=620 devpts ${MOUNT_POINT}/dev/pts \
|
||||
&& echo "OK"
|
||||
# mount -t devpts none "${MOUNT_POINT}/dev/pts" -o ptmxmode=0666,newinstance
|
||||
# ln -fs "pts/ptmx" "${MOUNT_POINT}/dev/ptmx"
|
||||
|
||||
# mount -o bind /dev ${MOUNT_POINT}/dev
|
||||
# mount -t proc proc ${MOUNT_POINT}/proc
|
||||
# mount -t devpts devpts ${MOUNT_POINT}/dev/pts
|
||||
|
||||
# mount -t proc proc ${MOUNT_POINT}/proc
|
||||
# mount -t sysfs sys ${MOUNT_POINT}/sys
|
||||
# mount --bind /dev ${MOUNT_POINT}/dev
|
||||
|
||||
echo -e "\033[0;31m\033[1mCopy DNS records\033[0m\033[0m" \
|
||||
&& cp -L /etc/resolv.conf ${MOUNT_POINT}/etc/resolv.conf
|
||||
|
||||
# https://wiki.archlinux.org/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
|
||||
# http://www.unix-lab.org/posts/chroot/
|
||||
# https://habrahabr.ru/post/141012/
|
||||
# https://losst.ru/vosstanovlenie-grub2
|
||||
# http://unixteam.ru/content/virtualizaciya-ili-zapuskaem-prilozhenie-v-chroot-okruzhenii-razmyshleniya
|
||||
# http://help.ubuntu.ru/wiki/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_grub
|
||||
echo -e "\033[0;31m\033[1mEnter chroot\033[0m\033[0m" \
|
||||
&& chroot ${MOUNT_POINT} /bin/bash
|
||||
|
||||
umount_system ${MOUNT_POINT} ${DEV_IMAGE}
|
||||
}
|
||||
|
||||
execute() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: execute $IMAGE $EXECUTE_FILE ...
|
||||
|
||||
# Partitions numbers
|
||||
local BOOT_PARTITION=1
|
||||
local ROOT_PARTITION=2
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount loop-image: $1\033[0m\033[0m"
|
||||
local DEV_IMAGE=$(losetup -Pf $1 --show)
|
||||
sleep 0.5
|
||||
|
||||
# Get temp directory to mount image
|
||||
local MOUNT_POINT=$(mktemp -d)
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount dirs ${MOUNT_POINT} & ${MOUNT_POINT}/boot\033[0m\033[0m"
|
||||
mount "${DEV_IMAGE}p${ROOT_PARTITION}" ${MOUNT_POINT}
|
||||
mount "${DEV_IMAGE}p${BOOT_PARTITION}" ${MOUNT_POINT}/boot
|
||||
|
||||
echo -e "\033[0;31m\033[1mBind system dirs\033[0m\033[0m"
|
||||
echo "Mounting /proc in chroot... "
|
||||
if [ ! -d ${MOUNT_POINT}/proc ] ; then
|
||||
mkdir -p ${MOUNT_POINT}/proc
|
||||
echo "Created ${MOUNT_POINT}/proc"
|
||||
fi
|
||||
mount -t proc -o nosuid,noexec,nodev proc ${MOUNT_POINT}/proc \
|
||||
&& echo "OK"
|
||||
|
||||
echo "Mounting /sys in chroot... "
|
||||
if [ ! -d ${MOUNT_POINT}/sys ] ; then
|
||||
mkdir -p ${MOUNT_POINT}/sys
|
||||
echo "Created ${MOUNT_POINT}/sys"
|
||||
fi
|
||||
mount -t sysfs -o nosuid,noexec,nodev sysfs ${MOUNT_POINT}/sys \
|
||||
&& echo "OK"
|
||||
|
||||
echo "Mounting /dev/ and /dev/pts in chroot... " \
|
||||
&& mkdir -p -m 755 ${MOUNT_POINT}/dev/pts \
|
||||
&& mount -t devtmpfs -o mode=0755,nosuid devtmpfs ${MOUNT_POINT}/dev \
|
||||
&& mount -t devpts -o gid=5,mode=620 devpts ${MOUNT_POINT}/dev/pts \
|
||||
&& echo "OK"
|
||||
|
||||
echo -e "\033[0;31m\033[1mCopy DNS records\033[0m\033[0m" \
|
||||
&& cp -L /etc/resolv.conf ${MOUNT_POINT}/etc/resolv.conf
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Enter chroot\033[0m\033[0m"
|
||||
local script_name=$(basename $2)
|
||||
local script_path_root="${MOUNT_POINT}/root/${script_name}"
|
||||
# Copy script into chroot fs
|
||||
# TODO: Find more suitable location for temporary script storage
|
||||
cp "$2" "${script_path_root}"
|
||||
# Its important to save arguments (direct ${@:4} causes problems)
|
||||
script_args="${@:3}"
|
||||
# Run script in chroot with additional arguments
|
||||
chroot ${MOUNT_POINT} /bin/sh -c "/root/${script_name} ${script_args}"
|
||||
# Removing script from chroot fs
|
||||
rm "${script_path_root}"
|
||||
|
||||
umount_system ${MOUNT_POINT} ${DEV_IMAGE}
|
||||
}
|
||||
|
||||
copy_to_chroot() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: copy_to_chroot $IMAGE $MOVE_FILE $MOVE_TO
|
||||
|
||||
# Partitions numbers
|
||||
local BOOT_PARTITION=1
|
||||
local ROOT_PARTITION=2
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount loop-image: $1\033[0m\033[0m"
|
||||
local DEV_IMAGE=$(losetup -Pf $1 --show)
|
||||
sleep 0.5
|
||||
|
||||
# Get temp directory to mount image
|
||||
local MOUNT_POINT=$(mktemp -d)
|
||||
|
||||
echo -e "\033[0;31m\033[1mMount dirs ${MOUNT_POINT} & ${MOUNT_POINT}/boot\033[0m\033[0m"
|
||||
mount "${DEV_IMAGE}p${ROOT_PARTITION}" ${MOUNT_POINT}
|
||||
mount "${DEV_IMAGE}p${BOOT_PARTITION}" ${MOUNT_POINT}/boot
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Enter chroot\033[0m\033[0m"
|
||||
file_name=$(basename $2)
|
||||
file_path_root="${MOUNT_POINT}$3/${file_name}"
|
||||
# Copy script into chroot fs
|
||||
# TODO: Find more suitable location for temporary script storage
|
||||
if [ ! -d ${file_path_root} ] ; then
|
||||
mkdir -p ${file_path_root} \
|
||||
&& echo "Created ${file_path_root}"
|
||||
fi
|
||||
cp "$2" "${file_path_root}"
|
||||
|
||||
umount_system ${MOUNT_POINT} ${DEV_IMAGE}
|
||||
}
|
||||
|
||||
umount_system() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: umount_system $MOUNT_POINT $DEV_IMAGE
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Umount recursive dirs: $1\033[0m\033[0m"
|
||||
# There is a risk that umount will fail
|
||||
set +e
|
||||
# Successfull unmount flag (false at thismoment)
|
||||
umount_ok=false
|
||||
# Repeat 5 times
|
||||
for i in {1..5}
|
||||
do
|
||||
# Unmount chroot rootfs and boot partition
|
||||
umount -fR $1
|
||||
# If no problems detected
|
||||
if [[ $? == 0 ]]
|
||||
then
|
||||
echo -e "\033[0;31m\033[1m$(date) | Successfull unmount\033[0m\033[0m"
|
||||
# Set flag
|
||||
umount_ok=true
|
||||
# Exit loop
|
||||
break
|
||||
fi
|
||||
# Unmount has failed
|
||||
echo -e "\033[0;31m\033[1m$(date) | Unmount failed\033[0m\033[0m"
|
||||
# Wait for some time
|
||||
sleep 2
|
||||
done
|
||||
set -e
|
||||
# Jenkins job will fail if this condition is not true
|
||||
[[ "$umount_ok" == true ]]
|
||||
echo -e "\033[0;31m\033[1m$(date) | Umount loop-image\033[0m\033[0m"
|
||||
#losetup -d $DEV_IMAGE
|
||||
losetup -d $2
|
||||
}
|
||||
|
||||
publish_image() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: publish_image_bash $BUILD_DIR $IMAGE_NAME $YA_SCRIPT $CONFIG_FILE $RELEASE_ID $RELEASE_BODY
|
||||
|
||||
# https://developer.github.com/v3/repos/releases/
|
||||
#RELEASE_BODY="### Changelog\n* Add /boot/cmdline.txt net.ifnames=0 https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/\n* Updated cophelper\n* Installed copstat"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zip image\033[0m\033[0m"
|
||||
if [ ! -e "$1/$2.zip" ];
|
||||
then
|
||||
cd $1 && zip $2.zip $2
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zipping complete!\033[0m\033[0m"
|
||||
else
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zip-archive already created\033[0m\033[0m"
|
||||
cd $1 && rm $2.zip && zip $2.zip $2
|
||||
echo -e "\033[0;31m\033[1m$(date) | Old archive was deleted & create new\033[0m\033[0m"
|
||||
fi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Upload image\033[0m\033[0m"
|
||||
local IMAGE_LINK=$($3 $4 $1/$2.zip)
|
||||
echo -e "\033[0;31m\033[1m$(date) | Upload copmlete!\033[0m\033[0m"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashure size of zip-image\033[0m\033[0m"
|
||||
local IMAGE_SIZE=$(du -sh $1/$2.zip | awk '{ print $1 }')
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashuring copmlete!\033[0m\033[0m"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashure hash-sum of zip-image\033[0m\033[0m"
|
||||
local IMAGE_HASH=$(sha256sum $1/$2.zip | awk '{ print $1 }')
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashuring copmlete!\033[0m\033[0m"
|
||||
|
||||
echo ""
|
||||
echo "\$6: $6"
|
||||
echo ""
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Post message to GH\033[0m\033[0m"
|
||||
local NEW_RELEASE_BODY="### Download\n* [$2.zip]($IMAGE_LINK) ($IMAGE_SIZE)\nsha256: $IMAGE_HASH\n\n$6"
|
||||
local DATA="{ \"body\":\"$NEW_RELEASE_BODY\" }"
|
||||
|
||||
echo ""
|
||||
echo "\$DATA: $DATA"
|
||||
echo ""
|
||||
|
||||
local GH_LOGIN=$(cat $4 | jq '.github.login' -r)
|
||||
local GH_PASS=$(cat $4 | jq '.github.password' -r)
|
||||
local GH_URL=$(cat $4 | jq '.github.url' -r)
|
||||
curl -d "$DATA" -u "$GH_LOGIN:$GH_PASS" --request PATCH $GH_URL$5
|
||||
echo -e "\033[0;31m\033[1m$(date) | Post message to GH copmlete!\033[0m\033[0m"
|
||||
}
|
||||
|
||||
if [ $(whoami) != "root" ];
|
||||
then echo "" \
|
||||
&& echo "********************************************************************" \
|
||||
&& echo "******************** This should be run as root ********************" \
|
||||
&& echo "********************************************************************" \
|
||||
&& echo "" \
|
||||
&& exit 1
|
||||
fi
|
||||
|
||||
echo "\$#: $#"
|
||||
echo "\$1: $1"
|
||||
echo "\$2: $2"
|
||||
echo "\$3: $3"
|
||||
echo "\$4: $4"
|
||||
echo "\$5: $5"
|
||||
echo "\$6: $6"
|
||||
echo "\$7: $7"
|
||||
|
||||
case "$1" in
|
||||
mount_system)
|
||||
# mount_system $IMAGE
|
||||
mount_system $2;;
|
||||
|
||||
get_image)
|
||||
# get_image $BUILD_DIR $RPI_DONWLOAD_URL $IMAGE_NAME
|
||||
get_image $2 $3 $4;;
|
||||
|
||||
resize_fs)
|
||||
# resize_fs $IMAGE_PATH $SIZE
|
||||
resize_fs $2 $3;;
|
||||
|
||||
publish_image)
|
||||
# publish_image $BUILD_DIR $IMAGE_NAME $YA_SCRIPT $CONFIG_FILE $RELEASE_ID $RELEASE_BODY
|
||||
publish_image $2 $3 $4 $5 $6 "$7";;
|
||||
|
||||
execute)
|
||||
# execute $IMAGE $EXECUTE_FILE ...
|
||||
execute $2 $3 ${@:4};;
|
||||
|
||||
copy_to_chroot)
|
||||
# copy_to_chroot $IMAGE $MOVE_FILE $MOVE_TO
|
||||
copy_to_chroot $2 $3 $4;;
|
||||
|
||||
*)
|
||||
echo "Enter one of: mount_system, get_image, resize_fs, publish_image, execute";;
|
||||
esac
|
||||
@@ -1,680 +0,0 @@
|
||||
- tar:
|
||||
local-name: catkin
|
||||
uri: https://github.com/ros-gbp/catkin-release/archive/release/kinetic/catkin/0.7.11-0.tar.gz
|
||||
version: catkin-release-release-kinetic-catkin-0.7.11-0
|
||||
- tar:
|
||||
local-name: cmake_modules
|
||||
uri: https://github.com/ros-gbp/cmake_modules-release/archive/release/kinetic/cmake_modules/0.4.1-0.tar.gz
|
||||
version: cmake_modules-release-release-kinetic-cmake_modules-0.4.1-0
|
||||
- tar:
|
||||
local-name: gencpp
|
||||
uri: https://github.com/ros-gbp/gencpp-release/archive/release/kinetic/gencpp/0.6.0-0.tar.gz
|
||||
version: gencpp-release-release-kinetic-gencpp-0.6.0-0
|
||||
- tar:
|
||||
local-name: geneus
|
||||
uri: https://github.com/tork-a/geneus-release/archive/release/kinetic/geneus/2.2.6-0.tar.gz
|
||||
version: geneus-release-release-kinetic-geneus-2.2.6-0
|
||||
- tar:
|
||||
local-name: genlisp
|
||||
uri: https://github.com/ros-gbp/genlisp-release/archive/release/kinetic/genlisp/0.4.16-0.tar.gz
|
||||
version: genlisp-release-release-kinetic-genlisp-0.4.16-0
|
||||
- tar:
|
||||
local-name: genmsg
|
||||
uri: https://github.com/ros-gbp/genmsg-release/archive/release/kinetic/genmsg/0.5.10-0.tar.gz
|
||||
version: genmsg-release-release-kinetic-genmsg-0.5.10-0
|
||||
- tar:
|
||||
local-name: gennodejs
|
||||
uri: https://github.com/RethinkRobotics-release/gennodejs-release/archive/release/kinetic/gennodejs/2.0.1-0.tar.gz
|
||||
version: gennodejs-release-release-kinetic-gennodejs-2.0.1-0
|
||||
- tar:
|
||||
local-name: genpy
|
||||
uri: https://github.com/ros-gbp/genpy-release/archive/release/kinetic/genpy/0.6.7-0.tar.gz
|
||||
version: genpy-release-release-kinetic-genpy-0.6.7-0
|
||||
- tar:
|
||||
local-name: message_generation
|
||||
uri: https://github.com/ros-gbp/message_generation-release/archive/release/kinetic/message_generation/0.4.0-0.tar.gz
|
||||
version: message_generation-release-release-kinetic-message_generation-0.4.0-0
|
||||
- tar:
|
||||
local-name: message_runtime
|
||||
uri: https://github.com/ros-gbp/message_runtime-release/archive/release/kinetic/message_runtime/0.4.12-0.tar.gz
|
||||
version: message_runtime-release-release-kinetic-message_runtime-0.4.12-0
|
||||
- tar:
|
||||
local-name: ros/mk
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/mk/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-mk-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/ros
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/ros/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-ros-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosbash
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosbash/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosbash-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosboost_cfg
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosboost_cfg/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosboost_cfg-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosbuild
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosbuild/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosbuild-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosclean
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosclean/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosclean-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roscreate
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roscreate/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roscreate-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roslang
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslang/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roslang-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roslib
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslib/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roslib-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosmake
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosmake/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosmake-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosunit
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosunit/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosunit-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros_comm/message_filters
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/message_filters/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-message_filters-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/ros_comm
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/ros_comm/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-ros_comm-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosbag
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosbag-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosbag_storage
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag_storage/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosbag_storage-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosconsole
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosconsole/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosconsole-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roscpp
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roscpp/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roscpp-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosgraph
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosgraph/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosgraph-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roslaunch
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslaunch/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roslaunch-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roslz4
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslz4/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roslz4-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosmaster
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosmaster/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosmaster-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosmsg
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosmsg/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosmsg-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosnode
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosnode/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosnode-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosout
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosout/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosout-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosparam
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosparam/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosparam-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rospy
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rospy/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rospy-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosservice
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosservice/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosservice-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rostest
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostest/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rostest-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rostopic
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostopic/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rostopic-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roswtf
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roswtf/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roswtf-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/topic_tools
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/topic_tools/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-topic_tools-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/xmlrpcpp
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/xmlrpcpp/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-xmlrpcpp-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm_msgs/rosgraph_msgs
|
||||
uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/rosgraph_msgs/1.11.2-0.tar.gz
|
||||
version: ros_comm_msgs-release-release-kinetic-rosgraph_msgs-1.11.2-0
|
||||
- tar:
|
||||
local-name: ros_comm_msgs/std_srvs
|
||||
uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/std_srvs/1.11.2-0.tar.gz
|
||||
version: ros_comm_msgs-release-release-kinetic-std_srvs-1.11.2-0
|
||||
- tar:
|
||||
local-name: ros_environment
|
||||
uri: https://github.com/ros-gbp/ros_environment-release/archive/release/kinetic/ros_environment/1.0.0-0.tar.gz
|
||||
version: ros_environment-release-release-kinetic-ros_environment-1.0.0-0
|
||||
- tar:
|
||||
local-name: roscpp_core/cpp_common
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/cpp_common/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-cpp_common-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/roscpp_serialization
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_serialization/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-roscpp_serialization-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/roscpp_traits
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_traits/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-roscpp_traits-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/rostime
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/rostime/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-rostime-0.6.9-0
|
||||
- tar:
|
||||
local-name: roslisp
|
||||
uri: https://github.com/ros-gbp/roslisp-release/archive/release/kinetic/roslisp/1.9.21-0.tar.gz
|
||||
version: roslisp-release-release-kinetic-roslisp-1.9.21-0
|
||||
- tar:
|
||||
local-name: rospack
|
||||
uri: https://github.com/ros-gbp/rospack-release/archive/release/kinetic/rospack/2.4.4-0.tar.gz
|
||||
version: rospack-release-release-kinetic-rospack-2.4.4-0
|
||||
- tar:
|
||||
local-name: std_msgs
|
||||
uri: https://github.com/ros-gbp/std_msgs-release/archive/release/kinetic/std_msgs/0.5.11-0.tar.gz
|
||||
version: std_msgs-release-release-kinetic-std_msgs-0.5.11-0
|
||||
- tar:
|
||||
local-name: actionlib
|
||||
uri: https://github.com/ros-gbp/actionlib-release/archive/release/kinetic/actionlib/1.11.13-0.tar.gz
|
||||
version: actionlib-release-release-kinetic-actionlib-1.11.13-0
|
||||
- tar:
|
||||
local-name: angles
|
||||
uri: https://github.com/ros-gbp/geometry_angles_utils-release/archive/release/kinetic/angles/1.9.11-0.tar.gz
|
||||
version: geometry_angles_utils-release-release-kinetic-angles-1.9.11-0
|
||||
- tar:
|
||||
local-name: async_web_server_cpp
|
||||
uri: https://github.com/gt-rail-release/async_web_server_cpp-release/archive/release/kinetic/async_web_server_cpp/0.0.3-0.tar.gz
|
||||
version: async_web_server_cpp-release-release-kinetic-async_web_server_cpp-0.0.3-0
|
||||
- tar:
|
||||
local-name: bond_core/bond
|
||||
uri: https://github.com/ros-gbp/bond_core-release/archive/release/kinetic/bond/1.8.1-0.tar.gz
|
||||
version: bond_core-release-release-kinetic-bond-1.8.1-0
|
||||
- tar:
|
||||
local-name: bond_core/bond_core
|
||||
uri: https://github.com/ros-gbp/bond_core-release/archive/release/kinetic/bond_core/1.8.1-0.tar.gz
|
||||
version: bond_core-release-release-kinetic-bond_core-1.8.1-0
|
||||
- tar:
|
||||
local-name: bond_core/bondcpp
|
||||
uri: https://github.com/ros-gbp/bond_core-release/archive/release/kinetic/bondcpp/1.8.1-0.tar.gz
|
||||
version: bond_core-release-release-kinetic-bondcpp-1.8.1-0
|
||||
- tar:
|
||||
local-name: bond_core/bondpy
|
||||
uri: https://github.com/ros-gbp/bond_core-release/archive/release/kinetic/bondpy/1.8.1-0.tar.gz
|
||||
version: bond_core-release-release-kinetic-bondpy-1.8.1-0
|
||||
- tar:
|
||||
local-name: bond_core/smclib
|
||||
uri: https://github.com/ros-gbp/bond_core-release/archive/release/kinetic/smclib/1.8.1-0.tar.gz
|
||||
version: bond_core-release-release-kinetic-smclib-1.8.1-0
|
||||
- tar:
|
||||
local-name: catkin
|
||||
uri: https://github.com/ros-gbp/catkin-release/archive/release/kinetic/catkin/0.7.11-0.tar.gz
|
||||
version: catkin-release-release-kinetic-catkin-0.7.11-0
|
||||
- tar:
|
||||
local-name: class_loader
|
||||
uri: https://github.com/ros-gbp/class_loader-release/archive/release/kinetic/class_loader/0.3.9-0.tar.gz
|
||||
version: class_loader-release-release-kinetic-class_loader-0.3.9-0
|
||||
- tar:
|
||||
local-name: cmake_modules
|
||||
uri: https://github.com/ros-gbp/cmake_modules-release/archive/release/kinetic/cmake_modules/0.4.1-0.tar.gz
|
||||
version: cmake_modules-release-release-kinetic-cmake_modules-0.4.1-0
|
||||
- tar:
|
||||
local-name: common_msgs/actionlib_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/actionlib_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-actionlib_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/diagnostic_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/diagnostic_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-diagnostic_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/geometry_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/geometry_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-geometry_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/nav_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/nav_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-nav_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/sensor_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/sensor_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-sensor_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/stereo_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/stereo_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-stereo_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/trajectory_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/trajectory_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-trajectory_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: common_msgs/visualization_msgs
|
||||
uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/visualization_msgs/1.12.6-0.tar.gz
|
||||
version: common_msgs-release-release-kinetic-visualization_msgs-1.12.6-0
|
||||
- tar:
|
||||
local-name: cv_camera
|
||||
uri: https://github.com/OTL/cv_camera-release/archive/release/kinetic/cv_camera/0.3.0-0.tar.gz
|
||||
version: cv_camera-release-release-kinetic-cv_camera-0.3.0-0
|
||||
- tar:
|
||||
local-name: diagnostics/diagnostic_updater
|
||||
uri: https://github.com/ros-gbp/diagnostics-release/archive/release/kinetic/diagnostic_updater/1.9.3-0.tar.gz
|
||||
version: diagnostics-release-release-kinetic-diagnostic_updater-1.9.3-0
|
||||
- tar:
|
||||
local-name: dynamic_reconfigure
|
||||
uri: https://github.com/ros-gbp/dynamic_reconfigure-release/archive/release/kinetic/dynamic_reconfigure/1.5.49-0.tar.gz
|
||||
version: dynamic_reconfigure-release-release-kinetic-dynamic_reconfigure-1.5.49-0
|
||||
- tar:
|
||||
local-name: gencpp
|
||||
uri: https://github.com/ros-gbp/gencpp-release/archive/release/kinetic/gencpp/0.6.0-0.tar.gz
|
||||
version: gencpp-release-release-kinetic-gencpp-0.6.0-0
|
||||
- tar:
|
||||
local-name: geneus
|
||||
uri: https://github.com/tork-a/geneus-release/archive/release/kinetic/geneus/2.2.6-0.tar.gz
|
||||
version: geneus-release-release-kinetic-geneus-2.2.6-0
|
||||
- tar:
|
||||
local-name: genlisp
|
||||
uri: https://github.com/ros-gbp/genlisp-release/archive/release/kinetic/genlisp/0.4.16-0.tar.gz
|
||||
version: genlisp-release-release-kinetic-genlisp-0.4.16-0
|
||||
- tar:
|
||||
local-name: genmsg
|
||||
uri: https://github.com/ros-gbp/genmsg-release/archive/release/kinetic/genmsg/0.5.10-0.tar.gz
|
||||
version: genmsg-release-release-kinetic-genmsg-0.5.10-0
|
||||
- tar:
|
||||
local-name: gennodejs
|
||||
uri: https://github.com/RethinkRobotics-release/gennodejs-release/archive/release/kinetic/gennodejs/2.0.1-0.tar.gz
|
||||
version: gennodejs-release-release-kinetic-gennodejs-2.0.1-0
|
||||
- tar:
|
||||
local-name: genpy
|
||||
uri: https://github.com/ros-gbp/genpy-release/archive/release/kinetic/genpy/0.6.7-0.tar.gz
|
||||
version: genpy-release-release-kinetic-genpy-0.6.7-0
|
||||
- tar:
|
||||
local-name: geographic_info/geographic_msgs
|
||||
uri: https://github.com/ros-geographic-info/geographic_info-release/archive/release/kinetic/geographic_msgs/0.5.2-0.tar.gz
|
||||
version: geographic_info-release-release-kinetic-geographic_msgs-0.5.2-0
|
||||
- tar:
|
||||
local-name: geometry/eigen_conversions
|
||||
uri: https://github.com/ros-gbp/geometry-release/archive/release/kinetic/eigen_conversions/1.11.9-0.tar.gz
|
||||
version: geometry-release-release-kinetic-eigen_conversions-1.11.9-0
|
||||
- tar:
|
||||
local-name: geometry/tf
|
||||
uri: https://github.com/ros-gbp/geometry-release/archive/release/kinetic/tf/1.11.9-0.tar.gz
|
||||
version: geometry-release-release-kinetic-tf-1.11.9-0
|
||||
- tar:
|
||||
local-name: geometry2/geometry2
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/geometry2/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-geometry2-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_bullet
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_bullet/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_bullet-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_eigen
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_eigen/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_eigen-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_geometry_msgs
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_geometry_msgs/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_geometry_msgs-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_kdl
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_kdl/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_kdl-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_msgs
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_msgs/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_msgs-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_py
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_py/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_py-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_ros
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_ros/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_ros-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_sensor_msgs
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_sensor_msgs/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_sensor_msgs-0.5.17-0
|
||||
- tar:
|
||||
local-name: geometry2/tf2_tools
|
||||
uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_tools/0.5.17-0.tar.gz
|
||||
version: geometry2-release-release-kinetic-tf2_tools-0.5.17-0
|
||||
- tar:
|
||||
local-name: image_common/camera_calibration_parsers
|
||||
uri: https://github.com/ros-gbp/image_common-release/archive/release/kinetic/camera_calibration_parsers/1.11.13-0.tar.gz
|
||||
version: image_common-release-release-kinetic-camera_calibration_parsers-1.11.13-0
|
||||
- tar:
|
||||
local-name: image_common/camera_info_manager
|
||||
uri: https://github.com/ros-gbp/image_common-release/archive/release/kinetic/camera_info_manager/1.11.13-0.tar.gz
|
||||
version: image_common-release-release-kinetic-camera_info_manager-1.11.13-0
|
||||
- tar:
|
||||
local-name: image_common/image_transport
|
||||
uri: https://github.com/ros-gbp/image_common-release/archive/release/kinetic/image_transport/1.11.13-0.tar.gz
|
||||
version: image_common-release-release-kinetic-image_transport-1.11.13-0
|
||||
- tar:
|
||||
local-name: mavlink
|
||||
uri: https://github.com/mavlink/mavlink-gbp-release/archive/release/kinetic/mavlink/2018.6.6-0.tar.gz
|
||||
version: mavlink-gbp-release-release-kinetic-mavlink-2018.6.6-0
|
||||
- tar:
|
||||
local-name: mavros/libmavconn
|
||||
uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/libmavconn/0.26.0-0.tar.gz
|
||||
version: mavros-release-release-kinetic-libmavconn-0.26.0-0
|
||||
- tar:
|
||||
local-name: mavros/mavros
|
||||
uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/mavros/0.26.0-0.tar.gz
|
||||
version: mavros-release-release-kinetic-mavros-0.26.0-0
|
||||
- tar:
|
||||
local-name: mavros/mavros_extras
|
||||
uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/mavros_extras/0.26.0-0.tar.gz
|
||||
version: mavros-release-release-kinetic-mavros_extras-0.26.0-0
|
||||
- tar:
|
||||
local-name: mavros/mavros_msgs
|
||||
uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/mavros_msgs/0.26.0-0.tar.gz
|
||||
version: mavros-release-release-kinetic-mavros_msgs-0.26.0-0
|
||||
- tar:
|
||||
local-name: message_generation
|
||||
uri: https://github.com/ros-gbp/message_generation-release/archive/release/kinetic/message_generation/0.4.0-0.tar.gz
|
||||
version: message_generation-release-release-kinetic-message_generation-0.4.0-0
|
||||
- tar:
|
||||
local-name: message_runtime
|
||||
uri: https://github.com/ros-gbp/message_runtime-release/archive/release/kinetic/message_runtime/0.4.12-0.tar.gz
|
||||
version: message_runtime-release-release-kinetic-message_runtime-0.4.12-0
|
||||
- tar:
|
||||
local-name: nodelet_core/nodelet
|
||||
uri: https://github.com/ros-gbp/nodelet_core-release/archive/release/kinetic/nodelet/1.9.14-0.tar.gz
|
||||
version: nodelet_core-release-release-kinetic-nodelet-1.9.14-0
|
||||
- tar:
|
||||
local-name: opencv3
|
||||
uri: https://github.com/ros-gbp/opencv3-release/archive/release/kinetic/opencv3/3.3.1-5.tar.gz
|
||||
version: opencv3-release-release-kinetic-opencv3-3.3.1-5
|
||||
- tar:
|
||||
local-name: orocos_kinematics_dynamics/orocos_kdl
|
||||
uri: https://github.com/smits/orocos-kdl-release/archive/release/kinetic/orocos_kdl/1.3.1-0.tar.gz
|
||||
version: orocos-kdl-release-release-kinetic-orocos_kdl-1.3.1-0
|
||||
- tar:
|
||||
local-name: orocos_kinematics_dynamics/python_orocos_kdl
|
||||
uri: https://github.com/smits/orocos-kdl-release/archive/release/kinetic/python_orocos_kdl/1.3.1-0.tar.gz
|
||||
version: orocos-kdl-release-release-kinetic-python_orocos_kdl-1.3.1-0
|
||||
- tar:
|
||||
local-name: pluginlib
|
||||
uri: https://github.com/ros-gbp/pluginlib-release/archive/release/kinetic/pluginlib/1.11.3-0.tar.gz
|
||||
version: pluginlib-release-release-kinetic-pluginlib-1.11.3-0
|
||||
- tar:
|
||||
local-name: ros/mk
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/mk/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-mk-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/ros
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/ros/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-ros-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosbash
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosbash/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosbash-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosboost_cfg
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosboost_cfg/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosboost_cfg-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosbuild
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosbuild/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosbuild-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosclean
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosclean/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosclean-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roscreate
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roscreate/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roscreate-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roslang
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslang/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roslang-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/roslib
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslib/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-roslib-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosmake
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosmake/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosmake-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros/rosunit
|
||||
uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosunit/1.14.3-0.tar.gz
|
||||
version: ros-release-release-kinetic-rosunit-1.14.3-0
|
||||
- tar:
|
||||
local-name: ros_comm/message_filters
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/message_filters/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-message_filters-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/ros_comm
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/ros_comm/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-ros_comm-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosbag
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosbag-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosbag_storage
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag_storage/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosbag_storage-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosconsole
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosconsole/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosconsole-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roscpp
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roscpp/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roscpp-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosgraph
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosgraph/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosgraph-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roslaunch
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslaunch/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roslaunch-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roslz4
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslz4/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roslz4-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosmaster
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosmaster/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosmaster-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosmsg
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosmsg/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosmsg-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosnode
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosnode/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosnode-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosout
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosout/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosout-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosparam
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosparam/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosparam-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rospy
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rospy/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rospy-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rosservice
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosservice/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rosservice-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rostest
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostest/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rostest-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/rostopic
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostopic/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-rostopic-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/roswtf
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roswtf/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-roswtf-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/topic_tools
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/topic_tools/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-topic_tools-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm/xmlrpcpp
|
||||
uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/xmlrpcpp/1.12.13-0.tar.gz
|
||||
version: ros_comm-release-release-kinetic-xmlrpcpp-1.12.13-0
|
||||
- tar:
|
||||
local-name: ros_comm_msgs/rosgraph_msgs
|
||||
uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/rosgraph_msgs/1.11.2-0.tar.gz
|
||||
version: ros_comm_msgs-release-release-kinetic-rosgraph_msgs-1.11.2-0
|
||||
- tar:
|
||||
local-name: ros_comm_msgs/std_srvs
|
||||
uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/std_srvs/1.11.2-0.tar.gz
|
||||
version: ros_comm_msgs-release-release-kinetic-std_srvs-1.11.2-0
|
||||
- tar:
|
||||
local-name: ros_environment
|
||||
uri: https://github.com/ros-gbp/ros_environment-release/archive/release/kinetic/ros_environment/1.0.0-0.tar.gz
|
||||
version: ros_environment-release-release-kinetic-ros_environment-1.0.0-0
|
||||
- tar:
|
||||
local-name: ros_tutorials/rospy_tutorials
|
||||
uri: https://github.com/ros-gbp/ros_tutorials-release/archive/release/kinetic/rospy_tutorials/0.7.1-0.tar.gz
|
||||
version: ros_tutorials-release-release-kinetic-rospy_tutorials-0.7.1-0
|
||||
- tar:
|
||||
local-name: rosauth
|
||||
uri: https://github.com/gt-rail-release/rosauth-release/archive/release/kinetic/rosauth/0.1.7-0.tar.gz
|
||||
version: rosauth-release-release-kinetic-rosauth-0.1.7-0
|
||||
- tar:
|
||||
local-name: rosbag_migration_rule
|
||||
uri: https://github.com/ros-gbp/rosbag_migration_rule-release/archive/release/kinetic/rosbag_migration_rule/1.0.0-0.tar.gz
|
||||
version: rosbag_migration_rule-release-release-kinetic-rosbag_migration_rule-1.0.0-0
|
||||
- tar:
|
||||
local-name: rosbridge_suite/rosapi
|
||||
uri: https://github.com/RobotWebTools-release/rosbridge_suite-release/archive/release/kinetic/rosapi/0.9.0-0.tar.gz
|
||||
version: rosbridge_suite-release-release-kinetic-rosapi-0.9.0-0
|
||||
- tar:
|
||||
local-name: rosbridge_suite/rosbridge_library
|
||||
uri: https://github.com/RobotWebTools-release/rosbridge_suite-release/archive/release/kinetic/rosbridge_library/0.9.0-0.tar.gz
|
||||
version: rosbridge_suite-release-release-kinetic-rosbridge_library-0.9.0-0
|
||||
- tar:
|
||||
local-name: rosbridge_suite/rosbridge_server
|
||||
uri: https://github.com/RobotWebTools-release/rosbridge_suite-release/archive/release/kinetic/rosbridge_server/0.9.0-0.tar.gz
|
||||
version: rosbridge_suite-release-release-kinetic-rosbridge_server-0.9.0-0
|
||||
- tar:
|
||||
local-name: rosbridge_suite/rosbridge_suite
|
||||
uri: https://github.com/RobotWebTools-release/rosbridge_suite-release/archive/release/kinetic/rosbridge_suite/0.9.0-0.tar.gz
|
||||
version: rosbridge_suite-release-release-kinetic-rosbridge_suite-0.9.0-0
|
||||
- tar:
|
||||
local-name: rosconsole_bridge
|
||||
uri: https://github.com/ros-gbp/rosconsole_bridge-release/archive/release/kinetic/rosconsole_bridge/0.5.1-0.tar.gz
|
||||
version: rosconsole_bridge-release-release-kinetic-rosconsole_bridge-0.5.1-0
|
||||
- tar:
|
||||
local-name: roscpp_core/cpp_common
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/cpp_common/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-cpp_common-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/roscpp_serialization
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_serialization/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-roscpp_serialization-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/roscpp_traits
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_traits/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-roscpp_traits-0.6.9-0
|
||||
- tar:
|
||||
local-name: roscpp_core/rostime
|
||||
uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/rostime/0.6.9-0.tar.gz
|
||||
version: roscpp_core-release-release-kinetic-rostime-0.6.9-0
|
||||
- tar:
|
||||
local-name: roslint
|
||||
uri: https://github.com/ros-gbp/roslint-release/archive/release/kinetic/roslint/0.11.0-0.tar.gz
|
||||
version: roslint-release-release-kinetic-roslint-0.11.0-0
|
||||
- tar:
|
||||
local-name: roslisp
|
||||
uri: https://github.com/ros-gbp/roslisp-release/archive/release/kinetic/roslisp/1.9.21-0.tar.gz
|
||||
version: roslisp-release-release-kinetic-roslisp-1.9.21-0
|
||||
- tar:
|
||||
local-name: rospack
|
||||
uri: https://github.com/ros-gbp/rospack-release/archive/release/kinetic/rospack/2.4.4-0.tar.gz
|
||||
version: rospack-release-release-kinetic-rospack-2.4.4-0
|
||||
- tar:
|
||||
local-name: rosserial/rosserial
|
||||
uri: https://github.com/ros-gbp/rosserial-release/archive/release/kinetic/rosserial/0.7.7-0.tar.gz
|
||||
version: rosserial-release-release-kinetic-rosserial-0.7.7-0
|
||||
- tar:
|
||||
local-name: rosserial/rosserial_client
|
||||
uri: https://github.com/ros-gbp/rosserial-release/archive/release/kinetic/rosserial_client/0.7.7-0.tar.gz
|
||||
version: rosserial-release-release-kinetic-rosserial_client-0.7.7-0
|
||||
- tar:
|
||||
local-name: rosserial/rosserial_msgs
|
||||
uri: https://github.com/ros-gbp/rosserial-release/archive/release/kinetic/rosserial_msgs/0.7.7-0.tar.gz
|
||||
version: rosserial-release-release-kinetic-rosserial_msgs-0.7.7-0
|
||||
- tar:
|
||||
local-name: rosserial/rosserial_python
|
||||
uri: https://github.com/ros-gbp/rosserial-release/archive/release/kinetic/rosserial_python/0.7.7-0.tar.gz
|
||||
version: rosserial-release-release-kinetic-rosserial_python-0.7.7-0
|
||||
- tar:
|
||||
local-name: std_msgs
|
||||
uri: https://github.com/ros-gbp/std_msgs-release/archive/release/kinetic/std_msgs/0.5.11-0.tar.gz
|
||||
version: std_msgs-release-release-kinetic-std_msgs-0.5.11-0
|
||||
- tar:
|
||||
local-name: unique_identifier/uuid_msgs
|
||||
uri: https://github.com/ros-geographic-info/unique_identifier-release/archive/release/kinetic/uuid_msgs/1.0.5-0.tar.gz
|
||||
version: unique_identifier-release-release-kinetic-uuid_msgs-1.0.5-0
|
||||
- tar:
|
||||
local-name: urdf/urdf
|
||||
uri: https://github.com/ros-gbp/urdf-release/archive/release/kinetic/urdf/1.12.12-0.tar.gz
|
||||
version: urdf-release-release-kinetic-urdf-1.12.12-0
|
||||
- tar:
|
||||
local-name: urdf/urdf_parser_plugin
|
||||
uri: https://github.com/ros-gbp/urdf-release/archive/release/kinetic/urdf_parser_plugin/1.12.12-0.tar.gz
|
||||
version: urdf-release-release-kinetic-urdf_parser_plugin-1.12.12-0
|
||||
- tar:
|
||||
local-name: usb_cam
|
||||
uri: https://github.com/ros-gbp/usb_cam-release/archive/release/kinetic/usb_cam/0.3.5-0.tar.gz
|
||||
version: usb_cam-release-release-kinetic-usb_cam-0.3.5-0
|
||||
- tar:
|
||||
local-name: vision_opencv/cv_bridge
|
||||
uri: https://github.com/ros-gbp/vision_opencv-release/archive/release/kinetic/cv_bridge/1.12.8-0.tar.gz
|
||||
version: vision_opencv-release-release-kinetic-cv_bridge-1.12.8-0
|
||||
- tar:
|
||||
local-name: web_video_server
|
||||
uri: https://github.com/RobotWebTools-release/web_video_server-release/archive/release/kinetic/web_video_server/0.1.0-0.tar.gz
|
||||
version: web_video_server-release-release-kinetic-web_video_server-0.1.0-0
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 Change boot partition\033[0m\033[0m"
|
||||
|
||||
sed -i 's/root=[^ ]*/root=\/dev\/mmcblk0p2/' /boot/cmdline.txt
|
||||
sed -i 's/.* \/boot vfat defaults 0 2$/\/dev\/mmcblk0p1 \/boot vfat defaults 0 2/' /etc/fstab
|
||||
sed -i 's/.* \/ ext4 defaults,noatime 0 1$/\/dev\/mmcblk0p2 \/ ext4 defaults,noatime 0 1/' /etc/fstab
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | End of change boot partition\033[0m\033[0m"
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit immidiately on non-zero result
|
||||
set -e
|
||||
|
||||
#
|
||||
# Script for image configure
|
||||
# @urpylka Artem Smirnov
|
||||
#
|
||||
|
||||
##################################################
|
||||
# Configure hardware interfaces
|
||||
##################################################
|
||||
|
||||
# 1. Enable sshd
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 Turn on sshd\033[0m\033[0m"
|
||||
touch /boot/ssh
|
||||
# /usr/bin/raspi-config nonint do_ssh 0
|
||||
|
||||
# 2. Enable GPIO
|
||||
echo -e "\033[0;31m\033[1m$(date) | #2 GPIO enabled by default\033[0m\033[0m"
|
||||
|
||||
# 3. Enable I2C
|
||||
echo -e "\033[0;31m\033[1m$(date) | #3 Turn on I2C\033[0m\033[0m"
|
||||
/usr/bin/raspi-config nonint do_i2c 0
|
||||
|
||||
# 4. Enable SPI
|
||||
echo -e "\033[0;31m\033[1m$(date) | #4 Turn on SPI\033[0m\033[0m"
|
||||
/usr/bin/raspi-config nonint do_spi 0
|
||||
|
||||
# 5. Enable raspicam
|
||||
echo -e "\033[0;31m\033[1m$(date) | #5 Turn on raspicam\033[0m\033[0m"
|
||||
/usr/bin/raspi-config nonint do_camera 0
|
||||
|
||||
# 6. Enable hardware UART
|
||||
echo -e "\033[0;31m\033[1m$(date) | #6 Turn on UART\033[0m\033[0m"
|
||||
# Temporary solution
|
||||
# https://github.com/RPi-Distro/raspi-config/pull/75
|
||||
/usr/bin/raspi-config nonint do_serial 1
|
||||
/usr/bin/raspi-config nonint set_config_var enable_uart 1 /boot/config.txt
|
||||
/usr/bin/raspi-config nonint set_config_var dtoverlay pi3-disable-bt /boot/config.txt
|
||||
systemctl disable hciuart.service
|
||||
|
||||
# After adding to Raspbian OS
|
||||
# https://github.com/RPi-Distro/raspi-config/commit/d6d9ecc0d9cbe4aaa9744ae733b9cb239e79c116
|
||||
#/usr/bin/raspi-config nonint do_serial 2
|
||||
|
||||
# 7. Enable V4L driver http://robocraft.ru/blog/electronics/3158.html
|
||||
#echo "bcm2835-v4l2" >> /etc/modules
|
||||
echo -e "\033[0;31m\033[1m$(date) | #7 Turn on v4l2 driver\033[0m\033[0m"
|
||||
if ! grep -q "^bcm2835-v4l2" /etc/modules;
|
||||
then printf "bcm2835-v4l2\n" >> /etc/modules
|
||||
fi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | End of configure hardware interfaces\033[0m\033[0m"
|
||||
@@ -1,38 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
##################################################################################################################################
|
||||
# Image initialisation
|
||||
##################################################################################################################################
|
||||
|
||||
# Add apt key to allow local mirror usage during image build
|
||||
#wget -O - ftp://192.168.0.10/coex-mirror.gpg | apt-key add -
|
||||
# Generate a backup of the original source.list
|
||||
#cp /etc/apt/sources.list /var/sources.list.bak
|
||||
# Add the local mirror as the first priority repository
|
||||
#wget -O - ftp://192.168.0.10/coex-mirror.list 2>/dev/null | cat - /etc/apt/sources.list > /var/sources.list && mv /var/sources.list /etc/apt/sources.list
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 apt cache update\033[0m\033[0m"
|
||||
|
||||
# Clean repostory cache
|
||||
apt-get clean
|
||||
# Update repository cache
|
||||
apt-get update
|
||||
# && apt upgrade -y
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #2 Write clever information\033[0m\033[0m"
|
||||
|
||||
# Clever image version
|
||||
echo "$1" >> /etc/clever_version
|
||||
# Origin image file name
|
||||
echo "${2%.*}" >> /etc/clever_origin
|
||||
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #3 Set max space for syslogs\033[0m\033[0m"
|
||||
|
||||
# https://unix.stackexchange.com/questions/139513/how-to-clear-journalctl
|
||||
sed -i 's/#SystemMaxUse=/SystemMaxUse=200M/' /etc/systemd/journald.conf
|
||||
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #4 End initialisation of image\033[0m\033[0m"
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 Write to /etc/wpa_supplicant/wpa_supplicant.conf\033[0m\033[0m"
|
||||
|
||||
# TODO: Use wpa_cli insted direct file edit
|
||||
echo "
|
||||
network={
|
||||
ssid=\"CLEVER\"
|
||||
psk=\"cleverwifi\"
|
||||
mode=2
|
||||
proto=RSN
|
||||
key_mgmt=WPA-PSK
|
||||
pairwise=CCMP
|
||||
group=CCMP
|
||||
auth_alg=OPEN
|
||||
}" >> /etc/wpa_supplicant/wpa_supplicant.conf
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #2 Write STATIC to /etc/dhcpcd.conf\033[0m\033[0m"
|
||||
|
||||
echo "
|
||||
interface wlan0
|
||||
static ip_address=192.168.11.1/24" >> /etc/dhcpcd.conf
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #3 Write dhcp-config to /etc/dnsmasq.conf\033[0m\033[0m"
|
||||
|
||||
echo "
|
||||
interface=wlan0
|
||||
address=/clever/coex/192.168.11.1
|
||||
dhcp-range=192.168.11.100,192.168.11.200,12h
|
||||
no-hosts
|
||||
filterwin2k
|
||||
bogus-priv
|
||||
domain-needed
|
||||
quiet-dhcp6
|
||||
" >> /etc/dnsmasq.conf
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #4 Write magic script for rename SSID to /etc/rc.local\033[0m\033[0m"
|
||||
|
||||
RENAME_SSID="sudo sed -i.OLD \"s/CLEVER/CLEVER-\$(head -c 100 /dev/urandom | xxd -ps -c 100 | sed -e 's/[^0-9]//g' | cut -c 1-4)/g\" /etc/wpa_supplicant/wpa_supplicant.conf && sudo sed -i '/sudo sed/d' /etc/rc.local && sudo reboot"
|
||||
|
||||
sed -i "19a$RENAME_SSID" /etc/rc.local
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #5 End of network installation\033[0m\033[0m"
|
||||
@@ -1,178 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
##################################################################################################################################
|
||||
# ROS for user pi
|
||||
##################################################################################################################################
|
||||
|
||||
# ros http://wiki.ros.org/action/fullsearch/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Installing ROS\033[0m\033[0m"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 Installing dirmngr & add key to apt-key\033[0m\033[0m"
|
||||
|
||||
# Install a tool that apt-key uses to add ROS repository key
|
||||
# http://wpblogger.su/tags/apt/
|
||||
apt-get install --no-install-recommends -y dirmngr=2.1.18-8~deb9u2
|
||||
# setup keys
|
||||
apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
|
||||
|
||||
# setup sources.list
|
||||
echo "deb http://packages.ros.org/ros/ubuntu stretch main" > /etc/apt/sources.list.d/ros-latest.list
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #2 apt update && apt upgrade\033[0m\033[0m"
|
||||
|
||||
# install bootstrap tools
|
||||
apt-get update
|
||||
# && apt upgrade -y
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #3 Installing wget, unzip, python-rosdep, python-rosinstall-generator, python-wstool, python-rosinstall, build-essential, cmake\033[0m\033[0m"
|
||||
|
||||
apt-get install --no-install-recommends -y \
|
||||
python-rosdep=0.12.2-1 \
|
||||
python-rosinstall-generator=0.1.14-1 \
|
||||
python-wstool=0.1.17-1 \
|
||||
python-rosinstall=0.7.8-1 \
|
||||
build-essential=12.3
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #4 rosdep init && rosdep update\033[0m\033[0m"
|
||||
|
||||
# bootstrap rosdep
|
||||
rosdep init && rosdep update
|
||||
|
||||
# If $3 = false, then discover packages
|
||||
if [ "$3" = "false" ];
|
||||
then
|
||||
echo -e "\033[0;31m\033[1m$(date) | #5 Preparing ros_comm packages to kinetic-ros_comm-wet.rosinstall\033[0m\033[0m"
|
||||
|
||||
# create ros catkin workspace
|
||||
mkdir -p /home/pi/ros_catkin_ws && cd /home/pi/ros_catkin_ws \
|
||||
&& rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall \
|
||||
&& wstool init src kinetic-ros_comm-wet.rosinstall
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #6 Preparing other ROS-packages to kinetic-custom_ros.rosinstall\033[0m\033[0m"
|
||||
|
||||
cd /home/pi/ros_catkin_ws \
|
||||
&& rosinstall_generator \
|
||||
actionlib actionlib_msgs angles async_web_server_cpp bond bond_core bondcpp bondpy camera_calibration_parsers camera_info_manager catkin class_loader cmake_modules cpp_common cv_bridge cv_camera diagnostic_msgs diagnostic_updater dynamic_reconfigure eigen_conversions gencpp geneus genlisp genmsg gennodejs genpy geographic_msgs geometry_msgs geometry2 image_transport compressed_image_transport libmavconn mavlink mavros_msgs message_filters message_generation message_runtime mk nav_msgs nodelet orocos_kdl pluginlib python_orocos_kdl ros ros_comm rosapi rosauth rosbag rosbag_migration_rule rosbag_storage rosbash rosboost_cfg rosbridge_library rosbridge_server rosbridge_suite rosbuild rosclean rosconsole rosconsole_bridge roscpp roscpp_serialization roscpp_traits roscreate rosgraph rosgraph_msgs roslang roslaunch roslib roslint roslisp roslz4 rosmake rosmaster rosmsg rosnode rosout rospack rosparam rospy rospy_tutorials rosserial rosserial_client rosserial_msgs rosserial_python rosservice rostest rostime rostopic rosunit roswtf sensor_msgs smclib std_msgs std_srvs stereo_msgs tf tf2 tf2_bullet tf2_eigen tf2_geometry_msgs tf2_kdl tf2_msgs tf2_py tf2_ros tf2_sensor_msgs tf2_tools topic_tools trajectory_msgs urdf urdf_parser_plugin usb_cam uuid_msgs visualization_msgs web_video_server xmlrpcpp mavros opencv3 mavros_extras interactive_markers tf2_web_republisher interactive_marker_proxy \
|
||||
--rosdistro kinetic --deps --wet-only --tar > kinetic-custom_ros.rosinstall \
|
||||
&& wstool merge -t src kinetic-custom_ros.rosinstall \
|
||||
&& wstool update -t src
|
||||
else
|
||||
echo -e "\033[0;31m\033[1m$(date) | #5 Creating manual ros_catkin_ws\033[0m\033[0m"
|
||||
|
||||
mkdir -p /home/pi/ros_catkin_ws && cd /home/pi/ros_catkin_ws \
|
||||
&& wstool init src kinetic-ros-coex.rosinstall
|
||||
fi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #7 Installing dependencies apps with rosdep\033[0m\033[0m"
|
||||
cd /home/pi/ros_catkin_ws
|
||||
# There is a risk that umount will fail
|
||||
set +e
|
||||
# Successfull unmount flag (false at thismoment)
|
||||
install_ok=false
|
||||
# Repeat 5 times
|
||||
for i in {1..5}
|
||||
do
|
||||
# Resolving Dependencies with rosdep
|
||||
rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch
|
||||
# If no problems detected
|
||||
if [[ $? == 0 ]]
|
||||
then
|
||||
echo -e "\033[0;31m\033[1m$(date) | Successfull rosdep install\033[0m\033[0m"
|
||||
# Set flag
|
||||
install_ok=true
|
||||
# Exit loop
|
||||
break
|
||||
fi
|
||||
# Unmount has failed
|
||||
echo -e "\033[0;31m\033[1m$(date) | Rosdep installation failed\033[0m\033[0m"
|
||||
# Wait for some time
|
||||
sleep 2
|
||||
done
|
||||
set -e
|
||||
# Jenkins job will fail if this condition is not true
|
||||
[[ "$install_ok" == true ]]
|
||||
echo -e "\033[0;31m\033[1m$(date) | End of rosdep install\033[0m\033[0m"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #8 Refactoring usb_cam in SRC\033[0m\033[0m"
|
||||
|
||||
sed -i '/#define __STDC_CONSTANT_MACROS/a\#define PIX_FMT_RGB24 AV_PIX_FMT_RGB24\n#define PIX_FMT_YUV422P AV_PIX_FMT_YUV422P' /home/pi/ros_catkin_ws/src/usb_cam/src/usb_cam.cpp
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #9 Installing GeographicLib datasets\033[0m\033[0m"
|
||||
|
||||
/home/pi/ros_catkin_ws/src/mavros/mavros/scripts/install_geographiclib_datasets.sh
|
||||
|
||||
#echo -e "\033[0;31m\033[1m$(date) | #11 Building light packages on 2 threads\033[0m\033[0m"
|
||||
|
||||
# Build the catkin Workspace
|
||||
#cd /home/pi/ros_catkin_ws && ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -j2 --install-space /opt/ros/kinetic --pkg actionlib actionlib_msgs angles async_web_server_cpp bond bond_core bondcpp bondpy camera_calibration_parsers camera_info_manager catkin class_loader cmake_modules cpp_common diagnostic_msgs diagnostic_updater dynamic_reconfigure eigen_conversions gencpp geneus genlisp genmsg gennodejs genpy geographic_msgs geometry_msgs geometry2 image_transport libmavconn mavlink mavros_msgs message_filters message_generation message_runtime mk nav_msgs nodelet orocos_kdl pluginlib python_orocos_kdl ros ros_comm rosapi rosauth rosbag rosbag_migration_rule rosbag_storage rosbash rosboost_cfg rosbridge_library rosbridge_server rosbridge_suite rosbuild rosclean rosconsole rosconsole_bridge roscpp roscpp_serialization roscpp_traits roscreate rosgraph rosgraph_msgs roslang roslaunch roslib roslint roslisp roslz4 rosmake rosmaster rosmsg rosnode rosout rospack rosparam rospy rospy_tutorials rosserial rosserial_client rosserial_msgs rosserial_python rosservice rostest rostime rostopic rosunit roswtf sensor_msgs smclib std_msgs std_srvs stereo_msgs tf tf2 tf2_bullet tf2_eigen tf2_geometry_msgs tf2_kdl tf2_msgs tf2_py tf2_ros tf2_sensor_msgs tf2_tools topic_tools trajectory_msgs urdf urdf_parser_plugin usb_cam uuid_msgs visualization_msgs xmlrpcpp
|
||||
|
||||
#echo -e "\033[0;31m\033[1m$(date) | #12 Building heavy packages\033[0m\033[0m"
|
||||
|
||||
# This command uses less threads to avoid Raspberry Pi freeze
|
||||
# Build the catkin Workspace
|
||||
#cd /home/pi/ros_catkin_ws && ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -j1 --install-space /opt/ros/kinetic --pkg mavros opencv3 cv_bridge cv_camera mavros_extras web_video_server
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #10 Building packages on 1 thread\033[0m\033[0m"
|
||||
|
||||
# Install builded packages
|
||||
# WARNING: A major bug was found when using --pkg option (catkin_make_isolated doesn't install environment files)
|
||||
# TODO: Can we increase threads number with HDD swap?
|
||||
cd /home/pi/ros_catkin_ws && ./src/catkin/bin/catkin_make_isolated --install -j1 -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #11 Remove build_isolated & devel_isolated from ros_catkin_ws\033[0m\033[0m"
|
||||
|
||||
rm -rf /home/pi/ros_catkin_ws/build_isolated /home/pi/ros_catkin_ws/devel_isolated
|
||||
chown -Rf pi:pi /home/pi/ros_catkin_ws
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #12 Creating catkin_ws & Installing CLEVER-BUNDLE\033[0m\033[0m"
|
||||
|
||||
git clone $1 /home/pi/catkin_ws/src/clever \
|
||||
&& cd /home/pi/catkin_ws/src/clever \
|
||||
&& git checkout $2 \
|
||||
&& pip install wheel \
|
||||
&& pip install -r /home/pi/catkin_ws/src/clever/clever/requirements.txt \
|
||||
&& cd /home/pi/catkin_ws \
|
||||
&& . /opt/ros/kinetic/setup.sh \
|
||||
&& catkin_make -j1 -DCMAKE_BUILD_TYPE=Release \
|
||||
&& ln -s /home/pi/catkin_ws/src/clever/deploy/roscore.service /lib/systemd/system/roscore.service \
|
||||
&& ln -s /home/pi/catkin_ws/src/clever/deploy/clever.service /lib/systemd/system/clever.service \
|
||||
&& systemctl enable roscore \
|
||||
&& systemctl enable clever
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #13 Change permissions for catkin_ws\033[0m\033[0m"
|
||||
|
||||
chown -Rf pi:pi /home/pi/catkin_ws
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #14 Setup ROS environment\033[0m\033[0m"
|
||||
|
||||
cat <<EOF | tee -a /home/pi/.bashrc > /dev/null
|
||||
LANG=C.UTF-8
|
||||
LC_ALL=C.UTF-8
|
||||
ROS_DISTRO=kinetic
|
||||
export ROS_IP=192.168.11.1
|
||||
source /opt/ros/kinetic/setup.bash
|
||||
source /home/pi/catkin_ws/devel/setup.bash
|
||||
EOF
|
||||
|
||||
#echo -e "\033[0;31m\033[1m$(date) | #14 Removing local apt mirror\033[0m\033[0m"
|
||||
# Restore original sources.list
|
||||
#mv /var/sources.list.bak /etc/apt/sources.list
|
||||
# Clean apt cache
|
||||
apt-get clean
|
||||
# Remove local mirror repository key
|
||||
#apt-key del COEX-MIRROR
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #14 Install Butterfly\033[0m\033[0m"
|
||||
# install and enable Butterfly (web terminal)
|
||||
# TODO: move it back to software_install
|
||||
# Had to move it here, as we don't have `clever` directory in software_install
|
||||
pip3 install butterfly
|
||||
pip3 install butterfly[systemd]
|
||||
ln -s /home/pi/catkin_ws/src/clever/deploy/butterfly.service /lib/systemd/system/
|
||||
ln -s /home/pi/catkin_ws/src/clever/deploy/butterfly.socket /lib/systemd/system/
|
||||
systemctl enable butterfly.socket
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | END of ROS INSTALLATION\033[0m\033[0m"
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
##################################################################################################################################
|
||||
# Image software installation
|
||||
##################################################################################################################################
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #1 Software installing\033[0m\033[0m"
|
||||
|
||||
# TODO: Use dnsmasq instead of isc-dhcp-server
|
||||
apt-get install --no-install-recommends -y \
|
||||
unzip=6.0-21 \
|
||||
zip=3.0-11 \
|
||||
ipython=5.1.0-3 \
|
||||
ipython3=5.1.0-3 \
|
||||
screen=4.5.0-6 \
|
||||
byobu=5.112-1 \
|
||||
nmap=7.40-1 \
|
||||
lsof=4.89+dfsg-0.1 \
|
||||
git=1:2.11.0-3+deb9u3 \
|
||||
dnsmasq=2.76-5+rpt1+deb9u1 \
|
||||
tmux=2.3-4 \
|
||||
vim=2:8.0.0197-4+deb9u1 \
|
||||
cmake=3.7.2-1 \
|
||||
python-pip=9.0.1-2+rpt2 \
|
||||
python3-pip=9.0.1-2+rpt2 \
|
||||
libjpeg8-dev=8d1-2 \
|
||||
tcpdump \
|
||||
ltrace \
|
||||
libpoco-dev=1.7.6+dfsg1-5+deb9u1 \
|
||||
libffi-dev # for butterfly
|
||||
|
||||
# Deny byobu to check available updates
|
||||
sed -i "s/updates_available//" /usr/share/byobu/status/status
|
||||
# sed -i "s/updates_available//" /home/pi/.byobu/status
|
||||
|
||||
# install Monkey web-server
|
||||
cd /home/pi
|
||||
git clone https://github.com/monkey/monkey.git
|
||||
cd monkey
|
||||
git checkout v1.6.9
|
||||
./configure --malloc-libc --local
|
||||
make
|
||||
setcap 'cap_net_bind_service=+ep' ./build/monkey # allow using 80 port
|
||||
rm build/conf/sites/default
|
||||
ln -s /home/pi/catkin_ws/src/clever/deploy/monkey ./build/conf/sites/default
|
||||
cd /home/pi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | #2 Adding mjpg-streamer at /home/pi\033[0m\033[0m"
|
||||
# https://github.com/jacksonliam/mjpg-streamer
|
||||
|
||||
git clone https://github.com/jacksonliam/mjpg-streamer.git /home/pi/mjpg-streamer \
|
||||
&& cd /home/pi/mjpg-streamer/mjpg-streamer-experimental \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& chown -Rf pi:pi /home/pi/mjpg-streamer
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Miscellaneous\033[0m\033[0m"
|
||||
|
||||
# vim settings
|
||||
echo "set mouse-=a
|
||||
syntax on
|
||||
autocmd BufNewFile,BufRead *.launch set syntax=xml
|
||||
" > /home/pi/.vimrc
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | End of network installation\033[0m\033[0m"
|
||||
@@ -1,51 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#
|
||||
# Simple python uploader to YaDisk
|
||||
# Smirnov Artem @urpylka
|
||||
#
|
||||
# Use:
|
||||
# python yadisk.py login password file server_dir
|
||||
#
|
||||
|
||||
from YaDiskClient.YaDiskClient import YaDisk
|
||||
import os.path, sys, json
|
||||
|
||||
def upload(_login, _password, _server_dir, _file):
|
||||
if os.path.isfile(_file):
|
||||
disk = YaDisk(_login, _password)
|
||||
disk.upload(_file, _server_dir + '/' + os.path.basename(_file))
|
||||
link = disk.publish_doc(_server_dir + '/' + os.path.basename(_file))
|
||||
print link
|
||||
else:
|
||||
print "Error: file-path is bad"
|
||||
return 1
|
||||
|
||||
def main():
|
||||
if (len(sys.argv) == 5):
|
||||
print "login: " + sys.argv[1]
|
||||
print "password: " + sys.argv[2]
|
||||
print "server_dir: " + sys.argv[3]
|
||||
print "file: " + sys.argv[4]
|
||||
|
||||
upload(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
|
||||
|
||||
elif (len(sys.argv) == 3):
|
||||
# print "config: " + sys.argv[1]
|
||||
# print "file: " + sys.argv[2]
|
||||
|
||||
if os.path.isfile(sys.argv[1]) and os.path.isfile(sys.argv[2]):
|
||||
|
||||
with open(sys.argv[1]) as json_data:
|
||||
d = json.load(json_data)
|
||||
upload(d['yadisk']['login'], d['yadisk']['password'], d['yadisk']['server_dir'], sys.argv[2])
|
||||
|
||||
else:
|
||||
print "Error: file-path or config-path is bad"
|
||||
return 1
|
||||
else:
|
||||
print "Error: amount of args is incorrect"
|
||||
return 1
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user