Orange Pi

Операционные системы - Pi OS => Другие => Тема начата: Olej от Июнь 29, 2018, 01:55:00 pm

Название: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 01:55:00 pm
Имеется в виду сборка минимальной Linux системы для встраиваемых (embedded) применений, с помощью такого инструментария сборки как BuildRoot.
Про BuildRoot (где взять, как собирать образ, ...) уже писалось вскользь: Xenomai & realtime (http://orangepi.pp.ua/index.php/topic,863.msg6325.html#msg6325) - не буду повторяться.
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 02:08:30 pm
BuildRoot (в свежих версиях 2018г., а проект давно и активно развивается - 4 стабильных релиза каждый год на протяжении лет 10-ти) "знает" практически все модели Orange Pi - т.е. имеет для них дефаултные конфигурации с деревом устройств и т.д.
[olej@xenix buildroot-master]$ make list-defconfigs | grep orangepi
  orangepi_lite_defconfig             - Build for orangepi_lite
  orangepi_one_defconfig              - Build for orangepi_one
  orangepi_pc2_defconfig              - Build for orangepi_pc2
  orangepi_pc_defconfig               - Build for orangepi_pc
  orangepi_pc_plus_defconfig          - Build for orangepi_pc_plus
  orangepi_plus_defconfig             - Build for orangepi_plus
  orangepi_prime_defconfig            - Build for orangepi_prime
  orangepi_win_defconfig              - Build for orangepi_win
  orangepi_zero_defconfig             - Build for orangepi_zero
  orangepi_zero_plus2_defconfig       - Build for orangepi_zero_plus2
Что оно позволяет собрать для Orange Pi? :
- загружаемый образ .img для переноса на SD-карточку ...
- с любым на выбор ядром (версия) ...
- с любыми дополнительными патчами от сборщика...
- с комплектом на выбор устанавливаемых программ ...
- с широкими возможностями выбора конфигурации (BuzyBox | Bash | zsh ... systemd | systemV ... и т.д.)
Все исходники необходимые (заказанные) для сборки оно подтягивает само с помощью wget из сети.

Чем отличается, например, от сборки Armbian (это самое приличное, как мне кажется, из того что я видел):
- собирается не какой-то дистрибутив (Debian, Ubuntu, ...) а custom Linux в требуемом составе (для встраивания под конкретные цели)
- сборка получается минимального размера
- для сборки не требуется жёстко заданное окружение сборки (как Ubuntu 18.04 под Armbian), собирается под чем угодно ... поэтому сборка не в виртуальной машине, а в любой имеющейся нативно
- для сборки выбирается любое ядро Linux на выбор, а не только последнее текущее (утверждается, что без проблем загружается 4.17)

Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 02:22:30 pm
Что оно позволяет собрать для Orange Pi? :
Но есть некоторые вопросы, непонятки ... если бы не было - я бы сюда не писал, и вас не беспокоил :D

Собираю дефаултный (их) образ для Orange Pi One - создаём начальную дефаултную конфигурацию:
[olej@xenix buildroot-master]$ make orangepi_one_defconfig
mkdir -p /home/olej/buildroot-master/output/build/buildroot-config/lxdialog
PKG_CONFIG_PATH="" make CC="/usr/bin/gcc" HOSTCC="/usr/bin/gcc" \
    obj=/home/olej/buildroot-master/output/build/buildroot-config -C support/kconfig -f Makefile.br conf
/usr/bin/gcc -D_GNU_SOURCE -D_DEFAULT_SOURCE  -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE  -I/home/olej/buildroot-master/output/build/buildroot-config -DCONFIG_=\"\"   /home/olej/buildroot-master/output/build/buildroot-config/conf.o /home/olej/buildroot-master/output/build/buildroot-config/zconf.tab.o  -o /home/olej/buildroot-master/output/build/buildroot-config/conf
#
# configuration written to /home/olej/buildroot-master/.config
#
Конфигуратор:
[olej@xenix buildroot-master]$ make nconfig
...
 
Или так:
[olej@xenix buildroot-master]$ make menuconfig
...
В конфигураторе я пока (!!!) ничего не меняю, кроме выбора конкретной версии ядра: 4.9.51 (мне так надо ;)).
Дальше можно сделать (а можно и не делать ;)):
[olej@xenix buildroot-master]$ time make source
...
Это чтобы подтянуть все исходники заранее, а не грузить их по ходу сборки (можно дальше сборку без сети делать).
Всё... Сборка ... например, так:
[olej@xenix buildroot-master]$ time make | tee -a make.hist
...
>>>   Executing post-image script support/scripts/genimage.sh
vfat(boot.vfat): adding file 'zImage' as 'zImage' ...
vfat(boot.vfat): adding file 'sun8i-h3-orangepi-one.dtb' as 'sun8i-h3-orangepi-one.dtb' ...
vfat(boot.vfat): adding file 'boot.scr' as 'boot.scr' ...
hdimage(sdcard.img): adding partition 'u-boot' from 'u-boot-sunxi-with-spl.bin' ...
hdimage(sdcard.img): adding partition 'boot' (in MBR) from 'boot.vfat' ...
hdimage(sdcard.img): adding partition 'rootfs' (in MBR) from 'rootfs.ext4' ...
hdimage(sdcard.img): writing MBR

real    38m16,006s
user    74m49,294s
sys     16m18,638s
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 02:34:03 pm
Всё... Сборка ... например, так:
После этого в каталоге output/images имеем результат:
[olej@xenix images]$ pwd
/home/olej/buildroot-master/output/images

[olej@xenix images]$ ls -l
итого 82388
-rw-r--r-- 1 olej olej      301 июн 29 13:10 boot.scr
-rw-r--r-- 1 olej olej 10485760 июн 29 13:16 boot.vfat
-rw-r--r-- 1 olej olej 62914560 июн 29 13:16 rootfs.ext2
lrwxrwxrwx 1 olej olej       11 июн 29 13:16 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 olej olej 74448896 июн 29 13:16 sdcard.img
-rw-r--r-- 1 olej olej    13008 июн 29 13:16 sun8i-h3-orangepi-one.dtb
-rw-r--r-- 1 olej olej   343118 июн 29 13:10 u-boot.bin
-rw-r--r-- 1 olej olej   548864 июн 29 13:10 u-boot-sunxi-with-spl.bin
-rw-r--r-- 1 olej olej  3562208 июн 29 13:16 zImage
Остаётся накатить sdcard.img на SD-карту и грузить...
Обратите внимание, что образ, хотя пока и самый минимальный - 75Mb! (не 7.5Gb ;D)
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 02:42:38 pm
Остаётся накатить sdcard.img на SD-карту и грузить...
[olej@xenix images]$ ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sdb  /dev/sdb1  /dev/sdb2  /dev/sdc  /dev/sdc1  /dev/sdc2
SD-карта вставлена в переходник SD/USB.
[olej@xenix images]$ sudo dd if=sdcard.img of=/dev/sdc bs=8M conv=sync
8+1 записей получено
9+0 записей отправлено
75497472 байт (75 MB, 72 MiB) скопирован, 0,10895 s, 693 MB/s

[olej@xenix images]$ sync
Последнее действие (sync), при использовании dd (не знаю как других программ записи?) - обязательно (сбросить дисковые кеши на носитель - без этого носитель, временами, оказывается битый ... проверено).

Извлекаю носитель и снова подключаю - перемонтируется:
[olej@xenix images]$ sudo parted /dev/sdc print free
Модель: Generic Mass-Storage (scsi)
Диск /dev/sdc: 1978MB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Флаги диска:

Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
       16,4kB  1049kB  1032kB           Свободное место
 1     1049kB  11,5MB  10,5MB  primary  fat16             загрузочный, lba
 2     11,5MB  548MB   537MB   primary  ext4
       548MB   1978MB  1429MB           Свободное место
[olej@xenix images]$ mount | grep /dev/sdc
/dev/sdc1 on /run/media/olej/A4B6-EE50 type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
/dev/sdc2 on /run/media/olej/5aa26454-b1c7-42bb-9d2d-0e60044c81f1 type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)
[olej@xenix images]$ ls -l /run/media/olej/A4B6-EE50
итого 3496
-rw-r--r-- 1 olej olej     301 июн 29  2018 boot.scr
-rw-r--r-- 1 olej olej   13008 июн 29  2018 sun8i-h3-orangepi-one.dtb
-rw-r--r-- 1 olej olej 3562208 июн 29  2018 zImage
[olej@xenix images]$ ls -l /run/media/olej/5aa26454-b1c7-42bb-9d2d-0e60044c81f1
итого 28
drwxr-xr-x 2 root root  2048 июн 29 13:16 bin
drwxr-xr-x 4 root root  1024 июн 25 00:54 dev
drwxr-xr-x 5 root root  1024 июн 29 13:16 etc
drwxr-xr-x 3 root root  1024 июн 29 13:16 lib
lrwxrwxrwx 1 root root     3 июн 29 12:49 lib32 -> lib
lrwxrwxrwx 1 root root    11 июн 29 13:00 linuxrc -> bin/busybox
drwx------ 2 root root 12288 июн 29 13:16 lost+found
drwxr-xr-x 2 root root  1024 июн 25 00:54 media
drwxr-xr-x 2 root root  1024 июн 25 00:54 mnt
drwxr-xr-x 2 root root  1024 июн 25 00:54 opt
drwxr-xr-x 2 root root  1024 июн 25 00:54 proc
drwx------ 2 root root  1024 июн 25 00:54 root
drwxr-xr-x 2 root root  1024 июн 25 00:54 run
drwxr-xr-x 2 root root  1024 июн 29 13:16 sbin
drwxr-xr-x 2 root root  1024 июн 25 00:54 sys
drwxrwxrwt 2 root root  1024 июн 25 00:54 tmp
drwxr-xr-x 6 root root  1024 июн 29 13:16 usr
drwxr-xr-x 4 root root  1024 июн 29 13:16 var
Всё ... можно вставлять в Orange Pi и грузить...
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 02:44:50 pm
Всё ... можно вставлять в Orange Pi и грузить...
Но гружу, для убедительности, с дебажной UART консолью...
И что мы видим:
- это U-boot:
U-Boot SPL 2018.01 (Jun 29 2018 - 13:10:34)
DRAM: 512 MiB
Trying to boot from MMC1


U-Boot 2018.01 (Jun 29 2018 - 13:10:34 +0300) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi One
DRAM:  512 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
301 bytes read in 16 ms (17.6 KiB/s)
## Executing script at 43100000
reading zImage
3562208 bytes read in 324 ms (10.5 MiB/s)
reading sun8i-h3-orangepi-one.dtb
13008 bytes read in 27 ms (469.7 KiB/s)
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 43000000, end 430062cf
Cannot setup simplefb: node not found

Starting kernel ...
Дальше пошло ядро грузиться (покажу только самые характерные места):
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.51 (olej@xenix.localdomain) (gcc version 7.3.0 (Buildroot 2018.08-git) ) #1 SMP Fri Jun 29 13:15:56 EEST 2018
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
...
[    0.034028] Brought up 4 CPUs
[    0.034049] SMP: Total of 4 processors activated (192.00 BogoMIPS).
...
[    0.039186] NET: Registered protocol family 16
...
[    0.051236] usbcore: registered new interface driver usbfs
[    0.051292] usbcore: registered new interface driver hub
[    0.051344] usbcore: registered new device driver usb
...
[    0.060843] NET: Registered protocol family 2
[    0.061299] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.061348] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.061410] TCP: Hash tables configured (established 4096 bind 4096)
[    0.061454] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.061485] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.061644] NET: Registered protocol family 1
[    0.061955] RPC: Registered named UNIX socket transport module.
[    0.061966] RPC: Registered udp transport module.
[    0.061971] RPC: Registered tcp transport module.
[    0.061976] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.063673] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[    0.071779] NFS: Registering the id_resolver key type
...
[    0.133286] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    0.135970] console [ttyS0] disabled
[    0.156116] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 30, base_baud = 1500000) is a U6_16550A
[    0.756200] console [ttyS0] enabled
...
[    0.772353] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.778898] ehci-platform: EHCI generic platform driver
[    0.784315] ehci-platform 1c1b000.usb: EHCI Host Controller
[    0.789902] ehci-platform 1c1b000.usb: new USB bus registered, assigned bus number 1
[    0.797783] ehci-platform 1c1b000.usb: irq 24, io mem 0x01c1b000
[    0.832557] ehci-platform 1c1b000.usb: USB 2.0 started, EHCI 1.00
[    0.839356] hub 1-0:1.0: USB hub found
[    0.843149] hub 1-0:1.0: 1 port detected
[    0.847429] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.853648] ohci-platform: OHCI generic platform driver
[    0.859014] ohci-platform 1c1b400.usb: Generic Platform OHCI controller
[    0.865653] ohci-platform 1c1b400.usb: new USB bus registered, assigned bus number 2
[    0.873490] ohci-platform 1c1b400.usb: irq 25, io mem 0x01c1b400
[    0.947173] hub 2-0:1.0: USB hub found
[    0.950946] hub 2-0:1.0: 1 port detected
[    0.955876] sun6i-rtc 1f00000.rtc: rtc core: registered rtc-sun6i as rtc0
[    0.962676] sun6i-rtc 1f00000.rtc: RTC enabled
[    0.967216] i2c /dev entries driver
...
[    1.014357] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
...
[    1.033596] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    1.092557] sunxi-mmc 1c0f000.mmc: base:0xe0875000 irq:23
[    1.098987] usbcore: registered new interface driver usbhid
[    1.104590] usbhid: USB HID core driver
[    1.109222] NET: Registered protocol family 17
[    1.113713] can: controller area network core (rev 20120528 abi 9)
[    1.120101] NET: Registered protocol family 29
...
[    1.178079] Waiting for root device /dev/mmcblk0p2...
[    1.220672] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.228769] mmc0: new SD card at address 8da8
[    1.233660] mmcblk0: mmc0:8da8 SU02G 1.84 GiB
[    1.240174]  mmcblk0: p1 p2
[    1.303363] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[    1.312150] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[    1.328136] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.336281] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.343711] devtmpfs: mounted
[    1.347744] Freeing unused kernel memory: 1024K
[    1.468031] random: fast init done
[    1.471494] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Starting logging: OK
Starting network: Waiting for interface eth0 to appear
[    1.612563] usb 2-1: new full-speed USB device number 2 using ohci-platform
[    1.881647] hub 2-1:1.0: USB hub found
[    1.886494] hub 2-1:1.0: 4 ports detected
[    2.212547] usb 2-1.2: new low-speed USB device number 3 using ohci-platform
[    2.386853] input: Logitech USB Keyboard as /devices/platform/soc/1c1b400.usb/usb2/2-1/2-1.2/2-1.2:1.0/0003:046D:C31C.0001/input/input0
[    2.463192] hid-generic 0003:046D:C31C.0001: input: USB HID v1.10 Keyboard [Logitech USB Keyboard] on usb-1c1b400.usb-1.2/input0
[    2.488730] input: Logitech USB Keyboard as /devices/platform/soc/1c1b400.usb/usb2/2-1/2-1.2/2-1.2:1.1/0003:046D:C31C.0002/input/input1
[    2.562716] hid-generic 0003:046D:C31C.0002: input: USB HID v1.10 Device [Logitech USB Keyboard] on usb-1c1b400.usb-1.2/input1
............... timeout!
run-parts: /etc/network/if-pre-up.d/wait_iface: exit status 1
FAIL
Вот здесь в 1-й раз возникает что-то похожее на ошибку, с сетевым интерфейсом...
И дальше:
Welcome to Buildroot for the Orange Pi One
OrangePi_One login: root
# uname -a
Linux OrangePi_One 4.9.51 #1 SMP Fri Jun 29 13:15:56 EEST 2018 armv7l GNU/Linux
# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
# ifconfig -a
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Всё ... login и т.д.

Вопросы (может кому кинется в глаза):
- почему не поднялся eth0 интерфейс по DHCP?
- почему инициализировался UART терминал, но не произошло создание консолей на локальном мониторе HDMI? что нужно добавить ... как-то я туплю :(
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 29, 2018, 03:05:18 pm
Всё ... login и т.д.
# uname -a
Linux OrangePi_One 4.9.51 #1 SMP Fri Jun 29 13:15:56 EEST 2018 armv7l GNU/Linux

# ls /bin
arch           dumpkmap       ln             pidof          sleep
ash            echo           login          ping           stty
busybox        egrep          ls             pipe_progress  su
cat            false          lsattr         printenv       sync
chattr         fdflush        mkdir          ps             tar
chgrp          fgrep          mknod          pwd            touch
chmod          getopt         mktemp         resume         true
chown          grep           more           rm             umount
cp             gunzip         mount          rmdir          uname
cpio           gzip           mountpoint     run-parts      usleep
date           hostname       mt             sed            vi
dd             kill           mv             setarch        watch
df             link           netstat        setpriv        zcat
dmesg          linux32        nice           setserial
dnsdomainname  linux64        nuke           sh

# ls /usr/bin
[            eject        last         nslookup     shred        unxz
[[           env          ldd          od           sort         unzip
ar           expr         less         openvt       strings      uptime
awk          factor       logger       passwd       svc          uudecode
basename     fallocate    logname      paste        tail         uuencode
bunzip2      find         lsof         patch        tee          vlock
bzcat        flock        lspci        printf       telnet       w
chrt         fold         lsscsi       readlink     test         wc
chvt         free         lsusb        realpath     tftp         wget
cksum        fuser        lzcat        renice       time         which
clear        getconf      lzma         reset        top          who
cmp          head         lzopcat      resize       tr           whoami
crontab      hexdump      md5sum       seq          traceroute   xargs
cut          hexedit      mesg         setfattr     truncate     xxd
dc           hostid       microcom     setkeycodes  tty          xz
deallocvt    id           mkfifo       setsid       uniq         xzcat
diff         install      mkpasswd     sha1sum      unix2dos     yes
dirname      ipcrm        nl           sha256sum    unlink
dos2unix     ipcs         nohup        sha3sum      unlzma
du           killall      nproc        sha512sum    unlzop

# ls /sbin
arp                init               makedevs           setconsole
blkid              insmod             mdev               start-stop-daemon
devmem             ip                 mkdosfs            sulogin
fdisk              ipaddr             mke2fs             swapoff
freeramdisk        iplink             mkswap             swapon
fsck               ipneigh            modprobe           switch_root
fstrim             iproute            nameif             sysctl
getty              iprule             pivot_root         syslogd
halt               iptunnel           poweroff           udhcpc
hdparm             klogd              reboot             uevent
hwclock            ldconfig           rmmod              vconfig
ifconfig           loadkmap           route              watchdog
ifdown             losetup            run-init
ifup               lsmod              runlevel

# ls /usr/sbin
addgroup     crond        ether-wake   i2cdetect    inetd        rdate
adduser      delgroup     fbset        i2cdump      killall5     readprofile
arping       deluser      fdformat     i2cget       loadfont     setlogcons
chroot       dnsd         fsfreeze     i2cset       partprobe    ubirename
и т.д.
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                55397      2642     48455   5% /
devtmpfs                255348         0    255348   0% /dev
tmpfs                   255860         0    255860   0% /dev/shm
tmpfs                   255860        24    255836   0% /tmp
tmpfs                   255860        16    255844   0% /run
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июнь 30, 2018, 04:00:36 pm
- почему инициализировался UART терминал, но не произошло создание консолей на локальном мониторе HDMI? что нужно добавить ... как-то я туплю :(
Пересобрал систему с инициализацией systemd (мне такое поведение привычнее и понятней).
# ls -w120 /dev/tty*
/dev/tty    /dev/tty38  /dev/ttyS1  /dev/ttyba  /dev/ttydb  /dev/ttypc  /dev/ttyrd  /dev/ttyte  /dev/ttyvf  /dev/ttyy0
/dev/tty0   /dev/tty39  /dev/ttyS2  /dev/ttybb  /dev/ttydc  /dev/ttypd  /dev/ttyre  /dev/ttytf  /dev/ttyw0  /dev/ttyy1
/dev/tty1   /dev/tty4   /dev/ttyS3  /dev/ttybc  /dev/ttydd  /dev/ttype  /dev/ttyrf  /dev/ttyu0  /dev/ttyw1  /dev/ttyy2
# stty < /dev/tty3
speed 38400 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -imaxbel iutf8

# systemctl status getty@tty3.service
● getty@tty3.service - Getty on tty3
   Loaded: loaded (/usr/lib/systemd/system/getty@.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html

# systemctl start getty@tty3.service

# stty < /dev/tty3
speed 38400 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -icrnl -imaxbel
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

# systemctl status getty@tty3.service
● getty@tty3.service - Getty on tty3
   Loaded: loaded (/usr/lib/systemd/system/getty@.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-01-28 16:16:22 UTC; 1h 26min ago
     Docs: man:agetty(8)
           man:systemd-getty-generator(8)
           http://0pointer.de/blog/projects/serial-console.html
 Main PID: 188 (getty)
   CGroup: /system.slice/system-getty.slice/getty@tty3.service
           └─188 /sbin/getty -L tty3 115200 vt100

Jan 28 16:16:22 OrangePi_One systemd[1]: Started Getty on tty3.
Такое впечатление, что терминальная система инициализирована...
И локальная клавиатура (терминала!) воспринимается - по крайней мере Ctrl+Alt+Del приводит к перезагрузке, что я и вижу на UART отладочной консоли.
Но просто такое впечатление, что HDMI видео каким-то образом не инициализируется ... такое его состояние как "нет сигнала".
Но тот же монитор, на том же HDMI, с тем же переходником HDMI-VGA отображает после загрузки Armbian сборки текстовую консоль с login...
Куда копать?

Название: Re: сборка системы BuildRoot
Отправлено: AlDemin от Июнь 30, 2018, 07:26:53 pm
Цитата: Olej
Куда копать?
В сторону драйвера дисплея, в mainline ядре поддержки Н3 до сих пор нет.
Сейчас пока всё делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде, не помню как эта технология называется.
Ядро работает только с /dev/fb*. посмотри есть они у тебя?
И кстати u-boot на дисплей что ни будь выводит?
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 12:44:58 pm
Сейчас пока всё делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде, не помню как эта технология называется.
Не означает ли это, что если U-boot подменить, например, от Armbian, то он сделает инициализацию и загрузит собранный образ?
Ядро работает только с /dev/fb*. посмотри есть они у тебя?
# ls -l /dev/fb*
ls: /dev/fb*: No such file or directory
И кстати u-boot на дисплей что ни будь выводит?
Имеется в виду локальный дисплей, монитор? Нет, на него ничего не выводится, ни с U-boot, ни дальше системой - монитор показывает заставку от DELL так же, как он это делает при полном отсутствии сигнала.
Весь вывод, начиная от U-boot идет на /dev/ttyS0 (которая и есть единственная инициализированная консоль) и дальше через UART на внешний отладочный компьютер:
# ls -w120 /dev/ttyS*
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3  /dev/ttyS4  /dev/ttyS5  /dev/ttyS6  /dev/ttyS7
 
# stty < /dev/ttyS0
speed 115200 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol =
; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint ixoff -imaxbel
-iexten

# stty < /dev/ttyS1
stty: standard input: Input/output error
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 01:01:06 pm
Весь вывод, начиная от U-boot идет на /dev/ttyS0 (которая и есть единственная инициализированная консоль) и дальше через UART на внешний отладочный компьютер:
С одной стороны ... уже сейчас (и это не предел совершенства ;)) в результате получается полновесная Linux система для специального embedded использования, размером файловой системы в 73 Mb "за всё про всё":
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root              1858934     72341   1705259   4% /
devtmpfs                255348         0    255348   0% /dev
tmpfs                   255860         0    255860   0% /dev/shm
tmpfs                   255860      1188    254672   0% /run
tmpfs                   255860         0    255860   0% /sys/fs/cgroup
tmpfs                   255860         0    255860   0% /tmp
С привычным набором CLI команд Linux ... например, только /bin - больше 1000 утилит:
# ls -w120 /bin | wc -l
350
И этого могло бы вполне хватать для именно embedded применения, более чем ... дальше нужно копать как-раз в сторону realtime характеристик.
Сюда легко сборкой BuildRoot добавить ALSA утилиты для звука и т.п.

Но, с другой стороны, хотелось бы (привычнее) иметь не 1 консоль на UART, а 7 штук /dev/tty0 - /dev/tty6.

И чего никак не могу взять в толк - не проходит инициализация сетевого интерфейса eth0 ... он, может, тоже не очень нужен для ряда embedded использований, но через него очень удобно иметь сколько угодно SSH отладочных сессий.

Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 03:39:48 pm
Цитата: Olej
Куда копать?
В сторону драйвера дисплея, в mainline ядре поддержки Н3 до сих пор нет.
Сейчас пока всё делается через U-Boot, он сам настраивает HDMI, создает под это фреймбуфер и передает его ядру в готовом виде, не помню как эта технология называется.
Ядро работает только с /dev/fb*. посмотри есть они у тебя?
И кстати u-boot на дисплей что ни будь выводит?
Похоже, что то, о чём вы пишете, на форуме Armbian (а они в своих сборках эту проблему решают) обсуждается здесь (2 темы) ... если это не то, то вы меня поправьте ;):
H2+/H3/H5/A64 Disp2 U-Boot video driver (https://forum.armbian.com/topic/2864-h2h3h5a64-disp2-u-boot-video-driver/?page=1)
Цитировать
Posted November 10, 2016
I managed to write H3 HDMI driver for mainline U-Boot. Source can be found here:
H3/H5/A64 DRM display driver (https://forum.armbian.com/topic/5086-h3h5a64-drm-display-driver/?page=1)
Цитировать
I think Icenowy's linux git is only A64 oriented. For example, she added non-optional regulator to HDMI driver, which doesn't exist on OrangePi PC2. There may be more hidden issues...
P.S. Пока я только зафиксирую ссылки, а со смыслом буду разбираться потом...
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 04:33:57 pm
Имеется в виду сборка минимальной Linux системы для встраиваемых (embedded) применений, с помощью такого инструментария сборки как BuildRoot.
Интересно BuilRoot собирает :-\
Это из загруженной системы:
# ls
bin         lib         media       root        sys
dev         lib32       mnt         run         tmp
etc         linuxrc     opt         sbin        usr
home        lost+found  proc        srv         var

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root              1858934     96925   1680675   5% /
devtmpfs                255348         0    255348   0% /dev
tmpfs                   255860         0    255860   0% /dev/shm
tmpfs                   255860      1196    254664   0% /run
tmpfs                   255860         0    255860   0% /sys/fs/cgroup
tmpfs                   255860         0    255860   0% /tmp

# mount
/dev/mmcblk0p2 on / type ext4 (rw,relatime,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=255348k,nr_inodes=63837,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
Т.е. он загрузочный раздел №1 (FAT32) даже не монтирует как /boot:
# ls /dev/mm*
/dev/mmcblk0    /dev/mmcblk0p1  /dev/mmcblk0p2

# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 1.9 GiB, 1977614336 bytes, 3862528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x414fe4b2

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1 *     2048   22527   20480   10M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      22528 3862527 3840000  1.9G 83 Linux
Образ он создаёт ... по классике (в отличие от Armbian): FAT32 раздел загрузочный + Linux / раздел EXT2
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 04:42:41 pm
Т.е. он загрузочный раздел №1 (FAT32) даже не монтирует как /boot:
но ничего мне не мешает примонтировать его прямо "по-ходу" чтобы рассмотреть ... и вам показать ;):
# mkdir /mnt/boot

# mount -tvfat /dev/mmcblk0p1 /mnt/boot
 
# ls -la /mnt/boot
total 3523
drwxr-xr-x    2 root     root         16384 Jan  1  1970 .
drwxr-xr-x    3 root     root          1024 Jan 28 16:35 ..
-rwxr-xr-x    1 root     root           301 Jun 29  2018 boot.scr
-rwxr-xr-x    1 root     root         13008 Jun 29  2018 sun8i-h3-orangepi-one.dtb
-rwxr-xr-x    1 root     root       3572480 Jun 29  2018 zImage
И нет там больше ничего ... ни скрытого, ни явного...
Вот этот sun8i-h3-orangepi-one.dtb он взял, точнее скомпилировал из sun8i-h3-orangepi-one.dts, который находится в дереве исходников используемого ядра, у меня это 4.9.51:
# uname -a
Linux OrangePi_One 4.9.51 #1 SMP Fri Jun 29 19:27:00 EEST 2018 armv7l GNU/Linux
По идее, этот .dts - из mainline ядра, и он может не соответствовать каким-то не включённым девайсам Opramge Pi...
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 01, 2018, 09:20:20 pm
Вопросы (может кому кинется в глаза):
- почему не поднялся eth0 интерфейс по DHCP?
По поводу сети...
Вот начальный старт U-boot на собранном BuildRoot минимальном образе: 
U-Boot SPL 2018.01 (Jun 29 2018 - 19:21:08)
DRAM: 512 MiB
Trying to boot from MMC1

U-Boot 2018.01 (Jun 29 2018 - 19:21:08 +0300) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi One
DRAM:  512 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 4 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
301 bytes read in 16 ms (17.6 KiB/s)
## Executing script at 43100000
reading zImage
3572480 bytes read in 324 ms (10.5 MiB/s)
reading sun8i-h3-orangepi-one.dtb
13008 bytes read in 27 ms (469.7 KiB/s)
...
При инициализации U-boot он пишет (ещё раз повторю эти строки):
Net:   phy interface0
eth0: ethernet@1c30000
Т.е., по идее Ethernet-чип прописан в том дереве устройств sun8i-h3-orangepi-one.dtb, которое он взял из дерева mainline ядра?
Тогда интерфейсу eth0 не хватает какой-то инициализации средствами Linux ... типа /etc/if-up ?

Название: Re: сборка системы BuildRoot
Отправлено: AlDemin от Июль 01, 2018, 10:46:38 pm
Цитировать
При инициализации U-boot он пишет (ещё раз повторю эти строки):
Net:   phy interface0
eth0: ethernet@1c3000
0
Т.е., по идее Ethernet-чип прописан в том дереве устройств sun8i-h3-orangepi-one.dtb, которое он взял из дерева mainline ядра?
Это пишет u-boot, у него есть этот дравер и ему это нужно для сетевой загрузки, а у ядра должен быть свой драйвер.
Во всех системах, что я видел, этот драйвер собран в самом ядре, не модулем, и наверное не зависит ни от каких .dtb
Название: Re: сборка системы BuildRoot
Отправлено: AlDemin от Июль 01, 2018, 11:11:16 pm
И кстати u-boot на дисплей что ни будь выводит?
Имеется в виду локальный дисплей, монитор? Нет, на него ничего не выводится
То то и оно и в u-boot драйвер hdmi не работает, соответственно и ядро осталось без фреймбуфера.
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 02, 2018, 12:48:49 am
# ls -la /mnt/boot
total 3523
drwxr-xr-x    2 root     root         16384 Jan  1  1970 .
drwxr-xr-x    3 root     root          1024 Jan 28 16:35 ..
-rwxr-xr-x    1 root     root           301 Jun 29  2018 boot.scr
-rwxr-xr-x    1 root     root         13008 Jun 29  2018 sun8i-h3-orangepi-one.dtb
-rwxr-xr-x    1 root     root       3572480 Jun 29  2018 zImage
И нет там больше ничего ... ни скрытого, ни явного...
Вот этот sun8i-h3-orangepi-one.dtb он взял, точнее скомпилировал из sun8i-h3-orangepi-one.dts, который находится в дереве исходников используемого ядра, у меня это 4.9.51:
Обнаружились интересные вещи (относительно BuildRoot, естественно)...
Содержимое /boot собранного BuildRoot показано выше.
Сравнил его с /boot образа Armbian:
[olej@dell Armbian]$ ls -l
итого 10004
-rw-rw-r-- 1 root root    3708 янв 27 19:11 boot.scr
lrwxrwxrwx 1 root root       2 июл  2 00:21 dtb -> ./
-rw-r--r-- 1 root root 5099078 июн  8 11:58 initrd.img-4.14.48-sunxi
-rw-r--r-- 1 root root   32002 июн  6 20:02 sun8i-h3-orangepi-one.dtb
lrwxrwxrwx 1 root root      21 июл  2 00:21 uInitrd -> uInitrd-4.14.48-sunxi
-rw-r--r-- 1 root root 5099142 июн  8 11:58 uInitrd-4.14.48-sunxi
Предполагая (возможно сдуру), что, может, собранному миниобразу что-то не хватает из инициализируемых устройств из .dtb ... - перенёс (тупо скопировал) sun8i-h3-orangepi-one.dtb + boot.scr из Armbian в собранный образ (испортив его, естественно)...
И о чудеса: загрузка начинается с отображением и на UART и на монитор ... значит тот свежий U-boot, который BuildRoot подставляет для сборки Orange Pi делает всю необходимою инициализацию HDMI...
А boot.scr - это скрипт, детализирующий работу U-boot ... так же как конфиг-файл в GRUB.
Посмотрел в Armbian boot.scr:
setenv console "both"
...
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "${consoleargs} console=ttyS0,115200"; fi
...
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} hdmi.audio=EDID:0 disp.screen0_output_mode=${disp_mode} panic=10 consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
...

А в собранном BuildRoot образе boot.scr:
setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 
rootwait
Вот она и вся разница, определяющая использовать или не использовать tty1.

P.S. Завтра соберу custom-образ, работающий с текстовыми консолями.

P.P.S. Собственно, это и описано u-boot for Allwinner sunxi series of SoCs (A10, A13, A10s, and A20) (https://github.com/linux-sunxi/u-boot-sunxi/wiki)
Цитировать
Remember to leave sufficient space for all u-boot files when partitioning the card. Recommended to have first partition start at sector 2048 (1MB), or much higher if using Falcon boot mode.
Цитировать
boot.scr support
This version of u-boot supports boot.scr, and will look for it in the first partition FAT /boot.scr or extX /boot.scr or extX /boot/boot.scr. boot.scr contains your needed uboot commands for loading script.bin, kernel. initrd (optional), setting kernel parameters and booting.
...
... ну и там далее ...
Название: Re: сборка системы BuildRoot
Отправлено: igzero от Июль 02, 2018, 11:31:45 am
Прикольная вешица для embeded, то что надо. Поздно увидел, а то бы помог с дровами. Так скоро домой, а дома времени "свободного для себя любимого" гораздо меньше, чем на работе  :)
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 02, 2018, 11:45:41 am
То то и оно и в u-boot драйвер hdmi не работает, соответственно и ядро осталось без фреймбуфера.
P.S. Завтра соберу custom-образ, работающий с текстовыми консолями.
U-boot уже работает (пишет) с HDMI (tty1). ;)
Сделал это так (как почти, собственно, и предполагал вчера):
1. в BuildRoot нашёл board/orangepi/orangepi-one/boot.cmd из которого генерится boot.scr:
setenv fdt_high ffffffff

setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait

fatload mmc 0 $kernel_addr_r zImage
fatload mmc 0 $fdt_addr_r sun8i-h3-orangepi-one.dtb

bootz $kernel_addr_r - $fdt_addr_r

2. дописал туда в 1 строчку (подсмотрел в Armbian boot.scr):
setenv bootargs console=tty1 console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
3. сгенерировал новый boot.scr (в /boot смонтированного образа SD):
[olej@xenix F809-A3B8]$ mkimage -C none -A arm -T script -d boot1.cmd boot2.scr
Image Name:
Created:      Mon Jul  2 11:24:58 2018
Image Type:   ARM Linux Script (uncompressed)
Data Size:    250 Bytes = 0.24 KiB = 0.00 MiB
Load Address: 00000000
Entry Point:  00000000
Contents:
   Image 0: 242 Bytes = 0.24 KiB = 0.00 MiB
4. mkimage на этом компьютере пришлось найти и доустановить:
[olej@xenix F809-A3B8]$ sudo dnf install uboot-tool
...

Вот после этого всего U-boot пишет на терминал (HDMI монитор):
U-Boot SPL 2018.01 (Jun 29 2018 - 19:21:08)
DRAM: 512 MiB
Trying to boot from MMC1


U-Boot 2018.01 (Jun 29 2018 - 19:21:08 +0300) Allwinner Technology

CPU:   Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi One
DRAM:  512 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   phy interface0
eth0: ethernet@1c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 1 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
314 bytes read in 16 ms (18.6 KiB/s)
## Executing script at 43100000
reading zImage
3572480 bytes read in 325 ms (10.5 MiB/s)
reading sun8i-h3-orangepi-one.dtb
13008 bytes read in 29 ms (437.5 KiB/s)
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 43000000, end 430062cf
Cannot setup simplefb: node not found

Starting kernel ...
До слов "Starting kernel"...
Дальше tty отключается ... и системная загрузка дальше контролируется только через UART:
Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.51 (olej@xenix.localdomain) (gcc version 7.3.0 (Buildroot 2018.08-git) ) #1 SMP Fri Jun 29 19:27:00 EEST 2018
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
...
Т.е. да, U-boot для системы не создаёт фреймбуфер(а) ...
Но в BuildRoot масса тонких настроек параметров и поведения (кроме самого построителя образа BuildRoot) и ядра (CONFIG_*) и U-boot.
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 14, 2018, 02:17:18 pm
То то и оно и в u-boot драйвер hdmi не работает, соответственно и ядро осталось без фреймбуфера.
По поводу фреймбуфера ... хотя бы чтобы понимать  эту технику, см. Linux Graphics Drivers: an Introduction (https://drive.google.com/file/d/0B2ZvWXG-omrAZGMzVkRtRk0ycDQ/view)
Цитировать
Version 3
Stéphane Marchesin
<stephane.marchesin@gmail.com>
March 15, 2012
стр.31-34:
Цитировать
Chapter 4
Framebuffer Drivers

Framebuffer drivers are the simplest form of graphics drivers under Linux. A framebuffer driver is a kernel graphics driver exposing its interface through /dev/fb*. This interface implements limited functionality (basically it allows setting a video mode and drawing to a linear framebuffer), and the framebuffer drivers are therefore extremely easy to create. Despite their simplicity, framebuffer drivers are still a relevant option if the only thing you are after is a basic two-dimensional display. It is also useful to know how framebuffer drivers work when implementing framebuffer acceleration for a kernel modesetting DRM driver, as the acceleration callbacks are the same. In short, framebuffer drivers are especially interesting for embedded systems, where memory footprint is essential, or when the intended applications do not require advanced graphics acceleration.
...
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 14, 2018, 02:25:21 pm
А теперь прямо в десктопе рабочем ... чтобы не откладывать - тупо спрашиваю:
[olej@xenix RTLinux]$ cat /boot/config-4.16.13-200.fc27.x86_64 | grep FRAME
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_FRAME_VECTOR=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAME_WARN=2048
# CONFIG_UNWINDER_FRAME_POINTER is not set
И:
[olej@xenix RTLinux]$ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 июл 13 15:05 /dev/fb0
P.S.
[olej@xenix RTLinux]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 27 (Twenty Seven)
Release: 27
Codename: TwentySeven
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 14, 2018, 03:23:30 pm
А теперь прямо в десктопе тупо спрашиваю:
И специально перепроверил в совершенно другом дистрибутиве:
olej@nvidia ~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18.3 Sylvia
Release: 18.3
Codename: sylvia

olej@nvidia ~ $ uname -a
Linux nvidia 4.15.0-24-generic #26~16.04.1-Ubuntu SMP Fri Jun 15 14:35:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
olej@nvidia ~ $ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 июл 12 15:58 /dev/fb0

olej@nvidia ~ $ cat /boot/config-4.15.0-24-generic | grep FRAME
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_FRAME_VECTOR=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAME_WARN=1024
CONFIG_FRAME_POINTER=y
CONFIG_UNWINDER_FRAME_POINTER=y
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 14, 2018, 09:29:15 pm
А теперь прямо в десктопе тупо спрашиваю:
Но ещё интереснее просто визуально пройтись редактором по /boot/config-4.16.13-200.fc27.x86_64:
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
CONFIG_FB_DDC=m
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_HECUBA=m
CONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
CONFIG_FB_CIRRUS=m
CONFIG_FB_PM2=m
CONFIG_FB_PM2_FIFO_DISCONNECT=y
CONFIG_FB_CYBER2000=m
CONFIG_FB_CYBER2000_DDC=y
CONFIG_FB_ARC=m
CONFIG_FB_ASILIANT=y
CONFIG_FB_IMSTT=y
CONFIG_FB_VGA16=m
CONFIG_FB_UVESA=m
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
CONFIG_FB_N411=m
CONFIG_FB_HGA=m
CONFIG_FB_OPENCORES=m
CONFIG_FB_S1D13XXX=m
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not set
CONFIG_FB_NVIDIA_BACKLIGHT=y
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
CONFIG_FB_RIVA_BACKLIGHT=y
CONFIG_FB_I740=m
CONFIG_FB_LE80578=m
CONFIG_FB_CARILLO_RANCH=m
CONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not set
CONFIG_FB_INTEL_I2C=y
CONFIG_FB_MATROX=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=m
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY=m
CONFIG_FB_ATY_CT=y
# CONFIG_FB_ATY_GENERIC_LCD is not set
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y
CONFIG_FB_S3=m
CONFIG_FB_S3_DDC=y
CONFIG_FB_SAVAGE=m
CONFIG_FB_SAVAGE_I2C=y
# CONFIG_FB_SAVAGE_ACCEL is not set
CONFIG_FB_SIS=m
CONFIG_FB_SIS_300=y
CONFIG_FB_SIS_315=y
CONFIG_FB_VIA=m
# CONFIG_FB_VIA_DIRECT_PROCFS is not set
CONFIG_FB_VIA_X_COMPATIBILITY=y
CONFIG_FB_NEOMAGIC=m
CONFIG_FB_KYRO=m
CONFIG_FB_3DFX=m
# CONFIG_FB_3DFX_ACCEL is not set
# CONFIG_FB_3DFX_I2C is not set
CONFIG_FB_VOODOO1=m
CONFIG_FB_VT8623=m
CONFIG_FB_TRIDENT=m
CONFIG_FB_ARK=m
CONFIG_FB_PM3=m
CONFIG_FB_CARMINE=m
CONFIG_FB_CARMINE_DRAM_EVAL=y
# CONFIG_CARMINE_DRAM_CUSTOM is not set
CONFIG_FB_SM501=m
CONFIG_FB_SMSCUFX=m
CONFIG_FB_UDL=m
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_FB_METRONOME=m
CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y
CONFIG_FB_SM712=m
...
А обсуждение более-менее внятное таких параметров (не всех, естественно) находим в таком давнем тексте, написанном Алекссем Федорчуком (alv) ещё аж в 2003-м году: Описание опций конфигурирования ядра Linux (linux kernel config howto) (http://www.opennet.ru/base/sys/kern_config.txt.html):
...
Frame-buffer support

   Поддержка т.н. графической консоли через Frame Buffer. Один из
   следующих вариантов может быть включен как модуль (наряду с встроенной
   в ядро VGA text console) или встроен в ядро (в этом случае VGA text
   console следует отключить).

Support for frame buffer devices

   При включении этого пункта разворачиваются нижеследующее меню.

Frame buffer Boot Logo

   Выбор логотипа при загрузке - по умолчанию включается при включении
   поддержки frame buffer и показывает пингвина Tux'а. Варианты выбора
   зависят от дистрибутива. Если при старте системы предполагается
   загрузка графической консоли с разрешение 640x480, следует отключить,
   иначе система не загрузится вообще (впрочем, отключение логотипа не
   всегда возможно).

   Далее идут опции поддержки нескольких типов графических чипов. Они
   далеко не всегда работают должным образом (а иногда не работают
   вовсе). В этом случае нужно выбрать поддержку стандартной
   VESA-консоли.
...
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 14, 2018, 09:32:52 pm
Но ещё интереснее просто визуально пройтись редактором по /boot/config-4.16.13-200.fc27.x86_64:
А теперь заглянул подсмотреть :P что там в CONFIG ставят в Armbian сборке под Orange Pi One:
[olej@xenix boot]$ cat config-4.14.48-sunxi | grep FRAME
CONFIG_FRAME_VECTOR=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAME_WARN=1024
[olej@xenix boot]$ cat config-4.14.48-sunxi | grep _FB_
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_FB_CMDLINE=y
CONFIG_FB_NOTIFY=y
# CONFIG_FB_DDC is not set
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=y
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
# CONFIG_FB_MODE_HELPERS is not set
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_SMSCUFX is not set
# CONFIG_FB_UDL is not set
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_AUO_K190X is not set
CONFIG_FB_SIMPLE=y
# CONFIG_FB_SSD1307 is not set
CONFIG_FB_TFT=m
CONFIG_FB_TFT_AGM1264K_FL=m
CONFIG_FB_TFT_BD663474=m
CONFIG_FB_TFT_HX8340BN=m
CONFIG_FB_TFT_HX8347D=m
CONFIG_FB_TFT_HX8353D=m
CONFIG_FB_TFT_HX8357D=m
CONFIG_FB_TFT_ILI9163=m
CONFIG_FB_TFT_ILI9320=m
CONFIG_FB_TFT_ILI9325=m
CONFIG_FB_TFT_ILI9340=m
CONFIG_FB_TFT_ILI9341=m
CONFIG_FB_TFT_ILI9481=m
CONFIG_FB_TFT_ILI9486=m
CONFIG_FB_TFT_PCD8544=m
CONFIG_FB_TFT_RA8875=m
CONFIG_FB_TFT_S6D02A1=m
CONFIG_FB_TFT_S6D1121=m
CONFIG_FB_TFT_SH1106=m
CONFIG_FB_TFT_SSD1289=m
CONFIG_FB_TFT_SSD1305=m
CONFIG_FB_TFT_SSD1306=m
CONFIG_FB_TFT_SSD1325=m
CONFIG_FB_TFT_SSD1331=m
CONFIG_FB_TFT_SSD1351=m
CONFIG_FB_TFT_ST7735R=m
CONFIG_FB_TFT_ST7789V=m
CONFIG_FB_TFT_TINYLCD=m
CONFIG_FB_TFT_TLS8204=m
CONFIG_FB_TFT_UC1611=m
CONFIG_FB_TFT_UC1701=m
CONFIG_FB_TFT_UPD161704=m
CONFIG_FB_TFT_WATTEROTT=m
CONFIG_FB_FLEX=m
CONFIG_FB_TFT_FBTFT_DEVICE=m
Может достаточно тупо выставить так же конфиги при сборке BuildRoot?
Название: Re: сборка системы BuildRoot
Отправлено: igzero от Июль 15, 2018, 06:37:26 pm
в boot.scr замени console=ttyS01,115200 на console=tty1 и увидешь загрузку на консоле
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 15, 2018, 06:56:31 pm
в boot.scr замени console=ttyS01,115200 на console=tty1 и увидешь загрузку на консоле
Уже заменил (точнее, добавил) - выше (раньше) всё это уже написано: загрузку на консоли видно только до строки "Starting kernel", т.е. идёт вывод U-boot, а у Linux нет фреймбуфера. Или ему его не создаёт U-boot, или kernel собран с CONFIG-параметрами, не позволяющими ему использовать фреймбуфер. О чём и идёт последнее обсуждение...
Название: Re: сборка системы BuildRoot
Отправлено: igzero от Июль 15, 2018, 07:44:39 pm
увидел. сорри :)
Название: Re: сборка системы BuildRoot
Отправлено: AlDemin от Июль 15, 2018, 09:33:58 pm
http://orangepi.pp.ua/index.php/topic,406.msg5411.html#msg5411
Вот тут, год назад обсуждали это, у меня по этой инструкции тогда даже получилось собрать ядро которое работало по hdmi через фреймбуфер от u-boot. С того момента много воды утекло, что то что накладывалось в патчах включено в исходники, в общем надо разбираться, а может немного подождать, в следующем релизе ядра обещали полноценный видеодрайвер для sunxi.
Название: Re: сборка системы BuildRoot
Отправлено: Olej от Июль 16, 2018, 05:26:18 pm
http://orangepi.pp.ua/index.php/topic,406.msg5411.html#msg5411
Вот тут, год назад обсуждали это, у меня по этой инструкции тогда даже получилось собрать ядро которое работало по hdmi через фреймбуфер от u-boot. С того момента много воды утекло, что то что накладывалось в патчах включено в исходники, в общем надо разбираться, а может немного подождать, в следующем релизе ядра обещали полноценный видеодрайвер для sunxi.
Очень интересно, спасибо...
В "следующем" - это в каком? Когда обещали? ;)