Rockchip · AI & Linux Hub

Linux и загрузка

Rockchip Repo: развёртывание зеркального сервера

Rockchip Repo: развёртывание зеркального сервера — V1.0.0

· ArmSoM Editorial · Rockchip source documentation · 3 мин чтения

Справка по процессу разработки ArmSoM: RK-YH-YF-A00 V1.0.0, китайский/английский оригиналы 6/7 страниц. Описывает Gitolite и зеркала SDK. В исходной таблице чип и ядро — ALL; это управление на хосте, не заявление об аппаратной поддержке всех плат. Требуются разрешённый доступ к SDK, Git/Repo/SSH и права администратора сервера. Статья не предоставляет доступ к серверам Rockchip. Учётные записи, права и репозитории не изменялись; команды не выполнялись.

Оригиналы соответствуют друг другу; сохранены пять глав и FAQ. Технических рисунков нет. RW+, RW и R = @all — примеры прав, область доступа нужно проверить перед эксплуатацией. credential.helper store хранит учётные данные на диске открытым текстом. Совет оригинала сохранён для прослеживаемости, а не как рекомендация для общих или недоверенных машин.

1. Сервер Gitolite

Создайте учётную запись Gitolite:

sudo adduser git
sudo usermod -G sudo -a git

Загрузите и установите Gitolite:

su git
git clone https://github.com/sitaramc/gitolite
mkdir $HOME/bin
./gitolite/install -to $HOME/bin

Добавьте права администратора. В ~/.ssh пользователя git нужны два ключа:

  • Ключ RK для синхронизации кода с сервером RK.
  • Ключ Gitolite для управления доступом к коду.

Для удобства управления рекомендуется имя публичного ключа $username.pub.

./bin/gitolite setup -pk ~/.ssh/$username.pub

2. Синхронизация репозиториев RK

2.1 Синхронизация сервера RK Gitolite

Пример синхронизации rk3326_linux5.10_release.xml:

# Code sync should work under repositories
cd repositories

# Sync rk3326_linux5.10_release.xml SDK
repo init --mirror --repo-url ssh://git@www.rockchip.com.cn/repo/rk/tools/repo \
-u ssh://git@www.rockchip.com.cn/linux/rockchip/platform/manifests \
-b linux -m rk3326_linux5.10_release.xml
# Sync the code
.repo/repo/repo sync -c

# Generate a list of SDK projects
.repo/repo/repo list -n > project.list

2.2 Синхронизация сервера RK Gerrit

Пример синхронизации rk3562_linux_release.xml:

# Code sync should work under repositories
cd repositories

# Sync rk3562_linux_release.xml SDK
repo init --mirror --repo-url https://gerrit.rock-chips.com:8443/repo-release/tools/repo \
-u https://gerrit.rock-chips.com:8443/linux/rockchip/platform/manifests \
-b rk3562 -m rk3562_linux_release.xml
# Sync the code
.repo/repo/repo sync -c

# Generate a list of SDK projects
.repo/repo/repo list -n > project.list

3. Права доступа Gitolite

Gitolite управляет репозиториями через gitolite-admin. Администратор загружает его по ssh://git@$HostIP/gitolite-admin, где $HostIP — IP сервера Gitolite. Структура репозитория:

.
├── conf
│   └── gitolite.conf     # A profile that records the repository and user permissions
└── keydir                # The public key that needs to open the authority needs to be added to this path
    ├──  git.pub          # public key of git
    └──  test.pub         # public key of test

Добавьте список репозиториев RK, группы group1 и group2 и пользователей git и test:

# Preprocess the contents of project.list and add to gitolite.conf
sed -i 's/^/@linux\ =\ &/' project.list
echo "" >> ./conf/gitolite.conf
cat project.list >> ./conf/gitolite.conf
echo "" >> ./conf/gitolite.conf

# Adds the following at the end of gitolite.conf
@group1 = git
@group2 = test

repo @linux
        RW+ = @group1
        RW  = @group2
        R   = @all

4. Загрузка с зеркального сервера

После этих шагов SDK можно загружать с Gitolite. Адреса необходимо адаптировать к своему серверу; каталог repositories обычно является корнем всех репозиториев. Например, SDK rk3326_linux5.10_release.xml загружается так:

repo init --repo-url ssh://git@$HostIP/repo \
-u ssh://git@$HostIP/rockchip/platform/manifests \
-b linux -m rk3326_linux5.10_release.xml

5. Частые вопросы

5.1 repo sync постоянно запрашивает пароль

Оригинал относит это к синхронизации с Gerrit и предлагает git config –global credential.helper store для автоматического предоставления пароля.

Gitolite source

ArmSoM Docs

Другие статьи по теме → · Учебные маршруты →