Збираємо систему для Orange Pi PC, Дещо Про Слонів
Дистрибутив Debian для Orange PI PC поставляється з досить обмеженою кількістю підтримуваних пристроїв "з коробки", тому має сенс дозбирати потрібні модулі самому.
Тому завдання вирішуватимемо комплексно.
Нам знадобиться або живий комп'ютер з Ubuntu, або віртуальна машина. Я тестував на 14.04 LTS 64bit, все пройшло досить гладко.
Для початку поставимо git штатними засобами
sudo apt-get install git
Швидше за все, потрібно буде доставити ще й ці пакети:
sudo apt-get install uboot-mkimage sudo apt-get install u-boot-tools sudo apt-get install libusb-1.0-0-dev sudo apt-get install debootstart sudo apt-get install debootstrap sudo apt-get install qemu-user -static sudo apt-get install ia32-libs sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 sudo apt-get install lib32stdc++6 sudo apt-get install mkimage sudo apt-get install -tools zlib1g-dev libncurses5-dev
Після цього схиляємо репозитарій ядра.
git clone https://github.com/loboris/OrangePI-Kernel
На диску у вашій робочій директорії з'явиться ще одна:
В принципі, там немає нічого складного, скрипти для збирання та конфігурації в комплекті, тому можна ознайомитись з readme та й запускати їх так, як там описано.
У своєму варіанті перед збиранням я запустив
і ввімкнув усі можливі wifi-usb драйвера.
Після збирання НЕ ЗАБУВАЄМО зібрати всі варіанти script.bin. Вони нам знадобляться. Для цього є спеціальний скрипт -
Втім, readme досить вичерпне, головне - пам'ятати, який девайс ми використовуємо.
Після успішного складання потрібно зібрати образ системи. Для цього потрібно схилювати ще одинрепозиторій.
==Увага, не виконуйте цю команду в директорії, де збирали ядро. Тут і далі мається на увазі, що папки з ядром і з образом системи лежать "поруч".
git clone https://github.com/loboris/OrangePi-BuildLinux
Якщо все добре, у вас тепер дві директорії – одна з ядром, інша з запчастинами для збирання образу.
Перейдемо до папки OrangePi-BuildLinux і зробимо так, щоб для складання використовувалися наше ядро, яке ми зібрали на попередньому кроці, а не те, що приїхало з GIT.
cd OrangePi-BuildLinux rm -rf orange ln -s ../OrangePI-Kernel/build orange
На цьому етапі ми заміняємо папку orange з репозиторію на те, що ми збирали до цього.
Тут ми вказуємо, що хочемо Jessie, це ніфіга не Raspbian і репозитарій використовуватимемо хорватську. До речі це можна змінити на бажаний.
Далі – збираємо згідно README. sudo ./create_image
Процес довгий. І будьте уважні - фінальний образ розміщується у файлі з розширенням .img.xz. Не треба використовувати просто .img.
Образ потрібно розпакувати та записати на microSD (як зазвичай). Після чого, підкласти правильний script.bin - тобто перейменувати файл виду script.bin.platform.video просто на script.bin. Не помиліться – це важливо для роботи всього. Він знаходиться на партиції FAT32, тому операцію можна виконати навіть у Windows. Не забувайте витягти флешку "правильно".
Це була прелюдія =).
Навіщо це все ? Лише для забезпечення можливості встановлення сторонніх модулів шляхом збирання їх із вихідних текстів. Збирати ми їх будемо на тій же машині з Ubuntu. Отже, припустимо ми видобули вихідник “дрів” для диво-вайфая за ціною 3 рублі за пучок у Китаї.
Розпакуємо вміст і перейдемо вдиректорію.
tar -xzvf super_wifi_src_driver_for_linux.tar.gz cd super_wifi_src_driver_for_linux
Ну а далі нам допоможуть 2 команди або одна, або інша.
make LINUX_SRC=/home/user/OrangePI-Kernel/linux-3.4/ ARCH=arm CROSS_COMPILE=/home/user/OrangePI-Kernel/brandy/gcc-linaro/bin/arm-linux-gnueabi-
Або команда два:
make KSRC=/home/user/OrangePI-Kernel/linux-3.4/ ARCH=arm CROSS_COMPILE=/home/user/OrangePI-Kernel/brandy/gcc-linaro/bin/arm-linux-gnueabi-
Як видно, вони відрізняються лише ім'ям змінної, що описує місцезнаходження ядра.
Щоб зрозуміти, яку саме, потрібно заглянути в Makefile.
grep KSRC Makefile
Інша справа техніки - якщо у вас "вилупилося" один або кілька .ko файлів, то можна переносити їх на цільову систему, класти у відповідну папку (уже місцезнаходження повинні знати) і запускати depmod -a.
За допомогою цього “прийому” було зібрано такі модулі:
- Оновлений модуль Realtek 8188 – протестований
- Стабільний модуль для mt7601 – протестований. Він, до речі, "заточений" на ядра менше 3.10 (наш випадок)
- Модуль для mt7601 для роботи в режимі точки доступу – зібраний, не протестований
Загалом все не так погано. Залишається дочекатися працюючого ядра 4.x і життя заграє зовсім іншими фарбами:).