Инструменты пользователя

Инструменты сайта


orange_pi_one

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
orange_pi_one [2017/08/08 17:41]
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:​
Строка 147: Строка 209:
   - ''​System type''​ ---> ''​Allwinner SoCs''​ ---> оставить только ''​Allwinner sun8i Family SoCs support''​.   - ''​System type''​ ---> ''​Allwinner SoCs''​ ---> оставить только ''​Allwinner sun8i Family SoCs support''​.
   - ''​Device Drivers''​ ---> ''​Graphics support''​ ---> убрать ''​DRM Support for Allwinner A10 Display Engine''​.   - ''​Device Drivers''​ ---> ''​Graphics support''​ ---> убрать ''​DRM Support for Allwinner A10 Display Engine''​.
 +
 +Включаем поддержку USB-периферии в меню ''​Device Drivers''​ ---> ''​USB support'':​
 +<​code>​
 +[*] OTG support
 +<M> USB Modem (CDC ACM) support
 +<*> USB Mass Storage support
 +<*> USB Serial Converter support --->
 +  [*] USB Serial Console device support
 +  [*] USB Generic Serial Driver
 +  <M> USB Serial Simple Driver
 +  <M> USB Belkin and Peracom Single Port Serial Driver
 +  <M> USB Winchiphead CH341 Single Port Serial Driver
 +  <M> USB CP210x family of UART Bridge Controllers
 +  <M> USB FTDI Single Port Serial Driver
 +  <M> USB Prolific 2303 Single Port Serial Driver
 +  <M> USB driver for GSM and CDMA modems
 +</​code>​
  
 Далее для включения драйвера framebuffer в аргументах ядра (см. файл ''​boot.cmd''​) нужно будет указать ''​console=tty1''​. Далее для включения драйвера framebuffer в аргументах ядра (см. файл ''​boot.cmd''​) нужно будет указать ''​console=tty1''​.
Строка 171: Строка 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/
Строка 215: Строка 294:
 <​code>​ <​code>​
 part uuid ${devtype} ${devnum}:​${bootpart} uuid part uuid ${devtype} ${devnum}:​${bootpart} uuid
-setenv bootargs console=${console} console=tty1 disp.screen0_output_mode=vga root=PARTUUID=${uuid} rw rootwait+setenv bootargs console=${console} console=tty1 ​hdmi.audio=EDID:​0 ​disp.screen0_output_mode=1280x1024p60 ​root=PARTUUID=${uuid} ​consoleblank=0 ​rw rootwait 
 + 
 +setenv stdout serial,​video 
 +setenv stderr serial,​video
  
 if load ${devtype} ${devnum}:​${bootpart} ${kernel_addr_r} /​boot/​zImage;​ then if load ${devtype} ${devnum}:​${bootpart} ${kernel_addr_r} /​boot/​zImage;​ then
Строка 226: Строка 308:
   fi;   fi;
 fi fi
 +
 </​code>​ </​code>​
  
Строка 322: Строка 405:
  
 Thanks to tekdoc. Thanks to tekdoc.
 +
 +===== Удаление неиспользуемых файлов ArchLinux =====
 +
 +Удаление ядра ArchLinux и прошивок. После удаления нужно заново скопировать на SD-карту ядро zImage и файлы /​boot/​dtbs/​*.
 +<code bash>
 +pacman -R linux-armv7 linux-firmware mkinitcpio mkinitcpio-busybox
 +</​code>​
 +
 +Удаление оставшихся файлов:​
 +<code bash>
 +rm -R /​usr/​lib/​firmware/​
 +</​code>​
 +
 +Удаление ненужных локалей:​
 +<code bash>
 +pacman -S localepurge
 +</​code>​
 +Закомментировать в /​etc/​locale.nopurge NEEDSCONFIGFIRST,​ затем:
 +<code bash>
 +localepurge
 +</​code>​
 +
 +====== Настройка параметров и работа с GPIO ======
 +
 +===== Управление светодиодами =====
 +
 +Установить пакет ''​sunxi-tools''​.
 +
 +Включение и выключение светодиода "​Status"​ (от рута):
 +<code bash>
 +sunxi-pio -m PA15=1
 +sunxi-pio -m PA15=0
 +</​code>​
 +
 +===== Расположение выводов GPIO =====
 +
 +{{orangepi-h3_gpio_pinout.png}}
 +
 +
 +
 +
 +
 +
 +
  
orange_pi_one.1502203273.txt.gz · Последние изменения: 2017/08/08 17:41 — reug