Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
orange_pi_one [2017/08/09 15:24] reug [Сборка ядра] |
orange_pi_one [2017/09/03 22:17] (текущий) reug [Установка ARM Toolchain и настройка окружения] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
+ | * sunxi: video: Add video driver for H3 SoC (https://patchwork.ozlabs.org/patch/705339/) | ||
+ | * Видео в U-Boot (https://forum.armbian.com/index.php?/topic/2864-h2h3h5a64-disp2-u-boot-video-driver/&page=4) | ||
* http://orangepi.pp.ua/index.php/topic,406.15.html?PHPSESSID=32008a926e97c20dd94bbaa03a46789d | * http://orangepi.pp.ua/index.php/topic,406.15.html?PHPSESSID=32008a926e97c20dd94bbaa03a46789d | ||
* https://wiki.alpinelinux.org/wiki/DIY_Fully_working_Alpine_Linux_for_Allwinner_and_Other_ARM_SOCs | * https://wiki.alpinelinux.org/wiki/DIY_Fully_working_Alpine_Linux_for_Allwinner_and_Other_ARM_SOCs | ||
Строка 41: | Строка 43: | ||
<code bash> | <code bash> | ||
ln -s gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf /opt/gcc-linaro | ln -s gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf /opt/gcc-linaro | ||
+ | </code> | ||
+ | |||
+ | Примечание: данная сборка имеет множество повторяющихся файлов. Данный скрипт освободит 137 Мбайт. | ||
+ | Запускать из каталога gcc-linaro. | ||
+ | <code> | ||
+ | cd bin | ||
+ | |||
+ | rm arm-linux-gnueabihf-c++ | ||
+ | ln -s arm-linux-gnueabihf-g++ arm-linux-gnueabihf-c++ | ||
+ | rm arm-linux-gnueabihf-gcc | ||
+ | ln -s arm-linux-gnueabihf-gcc-6.3.1 arm-linux-gnueabihf-gcc | ||
+ | rm arm-linux-gnueabihf-ld | ||
+ | ln -s arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-ld | ||
+ | |||
+ | cd .. | ||
+ | |||
+ | cd arm-linux-gnueabihf | ||
+ | |||
+ | rm -r lib | ||
+ | ln -s libc/lib lib | ||
+ | |||
+ | rm bin/* | ||
+ | for t in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib readelf strip | ||
+ | do | ||
+ | ln -s ../../bin/arm-linux-gnueabihf-$t bin/$t | ||
+ | done | ||
+ | |||
+ | rm libc/usr/libexec/getconf/* | ||
+ | for t in POSIX_V6_ILP32_OFF32 POSIX_V6_ILP32_OFFBIG POSIX_V7_ILP32_OFF32 POSIX_V7_ILP32_OFFBIG XBS5_ILP32_OFF32 XBS5_ILP32_OFFBIG | ||
+ | do | ||
+ | ln -s ../../bin/getconf libc/usr/libexec/getconf/$t | ||
+ | done | ||
+ | |||
+ | cd .. | ||
+ | |||
+ | cd share/man/man1 | ||
+ | rm arm-linux-gnueabihf-g++.1 | ||
+ | ln -s arm-linux-gnueabihf-gcc.1 arm-linux-gnueabihf-g++.1 | ||
</code> | </code> | ||
Строка 127: | Строка 167: | ||
Имеется еще один патч https://patchwork.kernel.org/patch/9390817/, который может будет полезен для других плат на базе Allwinner H3. | Имеется еще один патч https://patchwork.kernel.org/patch/9390817/, который может будет полезен для других плат на базе Allwinner H3. | ||
+ | |||
+ | Включаем встроенные в SoC UART1 и UART2 при необходимости (аналогично с UART3). Для этого в файле | ||
+ | ''arch/arm/boot/dts/sun8i-h3-orangepi-one.dts'' в секциях настройки ''&uart1'' и ''&uart2'' исправляем ''status'' с ''disabled'' на ''okay'': | ||
+ | <code> | ||
+ | &uart1 { | ||
+ | pinctrl-names = "default"; | ||
+ | pinctrl-0 = <&uart1_pins>; | ||
+ | status = "okay"; | ||
+ | }; | ||
+ | |||
+ | &uart2 { | ||
+ | pinctrl-names = "default"; | ||
+ | pinctrl-0 = <&uart2_pins>; | ||
+ | status = "okay"; | ||
+ | }; | ||
+ | </code> | ||
+ | После загрузки системы данные порты будут видны как ''/dev/ttyS1'' и ''/dev/ttyS2'' соответственно. | ||
+ | Порт UART0 ''/dev/ttyS0'' - консоль управления, выводы которой (GND,TX,RX) выведены на плате отдельно около разъема RJ-45. Расположение выводов UART1 и UART2 см. на схеме ниже. | ||
+ | Описание конкретных выводов для портов указано в файле ''arch/arm/boot/dts/sunxi-h3-h5.dtsi'', который должен помочь на случай необходимости использования RTS/CTS. | ||
Выбираем базовый конфигурационный файл для сборки ядра: | Выбираем базовый конфигурационный файл для сборки ядра: | ||
Строка 138: | Строка 197: | ||
make menuconfig | make menuconfig | ||
</code> | </code> | ||
+ | |||
+ | Отключаем поддержку initramfs: | ||
+ | - ''General setup'' ---> ''Initial RAM filesystem and RAM disk (initramfs/initrd) support'' убираем. | ||
Выбираем поддержку framebuffer: | Выбираем поддержку framebuffer: | ||
Строка 151: | Строка 213: | ||
<code> | <code> | ||
[*] OTG support | [*] OTG support | ||
+ | <M> USB Modem (CDC ACM) support | ||
<*> USB Mass Storage support | <*> USB Mass Storage support | ||
<*> USB Serial Converter support ---> | <*> USB Serial Converter support ---> | ||
Строка 187: | Строка 250: | ||
#Copying | #Copying | ||
cp -R linux/arch/arm/boot/zImage ArchARM/boot/ | cp -R linux/arch/arm/boot/zImage ArchARM/boot/ | ||
- | cp -R linux/arch/arm/boot/dts/* ArchARM/boot/dtbs/ | + | cp -R linux/arch/arm/boot/dts/sun8i-h3*.dtb ArchARM/boot/dtbs/ |
cp -R linux/output/lib/ ArchARM/usr/ | cp -R linux/output/lib/ ArchARM/usr/ | ||
cp -R linux/output/usr/ ArchARM/ | cp -R linux/output/usr/ ArchARM/ | ||
Строка 363: | Строка 426: | ||
localepurge | localepurge | ||
</code> | </code> | ||
+ | |||
+ | ====== Настройка параметров и работа с GPIO ====== | ||
+ | |||
+ | ===== Управление светодиодами ===== | ||
+ | |||
+ | Установить пакет ''sunxi-tools''. | ||
+ | |||
+ | Включение и выключение светодиода "Status" (от рута): | ||
+ | <code bash> | ||
+ | sunxi-pio -m PA15=1 | ||
+ | sunxi-pio -m PA15=0 | ||
+ | </code> | ||
+ | |||
+ | ===== Расположение выводов GPIO ===== | ||
+ | |||
+ | {{orangepi-h3_gpio_pinout.png}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||