1 (edytowany przez Graffy 2016-09-20 17:51:24)

Temat: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Stało się, zamówiłem APU.2C4 i do tego kartę na AR9280.
Ogarniam temat kompilacji OpenWrt CC na to urządzenie.
Znalazłem w sieci wsparcie do obsługi LED i GPIO - T U T A J oraz takie info ale tyczyło się LEDE:

Optimising LEDE for the APU2
GCC optimisation

GCC has its own target for the Jaguar SoCs. You can optimise by using the -march=btver2 -mtune=btver2 GCC options, with a recent GCC version. In the buildroot, enable Advanced configuration options (for developers), then tick Target Options and add the compiler flags to Target Optimizations. Do keep in mind though this will greatly limit your testing capabilites - I haven't found a way to emulate a CPU supporting the same feature set yet, if you do, let me know, that would greatly simplify testing. For now I build a separate generic x86_64 build so I can test it in a VM, before deploying it.
AES-NI

One of the cooler things with the APU2 is it supports AES-NI, which is handy for applications relying on encryption (e.g. a VPN). There is no kmod-aes-ni package yet, so for now you'll have to do a bit of hacking. You cannot solve this through the LEDE image generator, the only way to get this is through the buildroot.

    Add the following to target/linux/x86/64/config-default:

    CONFIG_CRYPTO_AES_X86_64=y

The CRYPTO_AES_X86_64 symbol should enable CRYPTO_AES_NI_INTEL as well.

    Enable kmod-crypto-aead through make menuconfig

After that, you can run a regular build. To make sure everything goes according to plan, you can check during compilation:

build_dir/target-x86_64_musl-1.1.15/linux-x86_64/linux-4.4.18$ grep AES_ .config
CONFIG_CRYPTO_AES_X86_64=y
CONFIG_CRYPTO_AES_NI_INTEL=y

Dodać to "GCC optimisation" - nie bardzo rozumiem to objaśnienie po angielsku?
Co do AES NI znalazłem taką opcję po wydaniu make "kernel_menuconfig" ale nie jestem pewien kiedy wprowadzić zmiany w kernelu?
@Ceazary pisze:

Czasami (w bardzo rzadkich przypadkach) może przydać się zmiana opcji kompilacji kernela. Można to zrobić poleceniem (po uprzedniej kompilacji systemu!)

Czyli "make menuconfig" -> "make" -> " make kernel_menuconfig" -> "make" ?

Nawiązując do T E G O tematu, pytanie do @pepe2k - co zaznaczyć aby uzyskać skalowanie na APU2 przy tym procesorze GX-412TC ?

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

2

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Wg opisu - tak, trzeba tak zaznaczyć. Co do gcc - jak zrobisz make menuconfig to idź po wymienionych opcjach i dopisz to co piszą.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Nie wiem, jakie moduły są potrzebne do skalowania zegara na apu2... generalnie olałem tę wersję apu, bo to jakiś przejściowy cudak i czekamy na apu3 smile

4

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

pepe2k napisał/a:

Nie wiem, jakie moduły są potrzebne do skalowania zegara na apu2... generalnie olałem tę wersję apu, bo to jakiś przejściowy cudak i czekamy na apu3 smile

Ok a w takim razie możesz się podzielić ustawieniami od APU1 ?

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

5

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Graffy napisał/a:
pepe2k napisał/a:

Nie wiem, jakie moduły są potrzebne do skalowania zegara na apu2... generalnie olałem tę wersję apu, bo to jakiś przejściowy cudak i czekamy na apu3 smile

Ok a w takim razie możesz się podzielić ustawieniami od APU1 ?

U mnie skalowanie zegara działa z ACPI (kernel 3.18):
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y

I u Ciebie pewnie też to wystarczy o ile BIOS w apu2 nie jest skiełbaszony.

6

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Skompilowałem CC ze wsparciem APU2 z linka, który podałem w pierwszym poście.
Teraz chcę wprowadzić zmiany w kernelu ale po "make kernel_menuconfig" tak jakby wczytywało default-owy.
Myślałem, że wczyta mi ten wygenerowany przez profil dla APU2, który wybrałem w "make menuconfig".
W katalogu z kernelem mam:

~/build/test_x86/Openwrt-APU2/openwrt/build_dir/target-x86_64_uClibc-0.9.33.2/linux-x86_64/linux-3.18.36 $ ls .config*
.config  .config.old  .config.override  .config.target

Powinienem wczytać któryś z nich?
Wcześniej już kompilowałem OpenWrt ale nie wprowadzałem zmian w kernelu, proszę o pomoc.

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

7

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Żaden z nich. .config jest tworzony dynamicznie z tego co masz w systemie - z konfigu głównego, z domyślnego configu z generic i specyficznego targetu.

Więc - jak zrobiłeś make kernel_menuconfig to zmień to co chcesz i zapisz, to zmiany zapiszą się w konfigu tego specyfcznego targetu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Edytowałem przez:

make kernel_menuconfig CONFIG_TARGET=subtarget
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

9

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Bez tego CONFIG_TARGET=subtarget

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Dzięki za dotychczasową pomoc, jak do tej pory udało mi się dostosować kompilacje LEDE do własnych potrzeb, włączyć skalowanie cpu oraz wbudować w kernel dodatkowy driver do GPIO.
Doczytałem, że APU2 ma watchdoga ale kiedy udało mi się go uruchomić

[    2.448759] sp5100_tco: SP5100/SB800 TCO WatchDog Timer Driver v0.05
[    2.455232] sp5100_tco: PCI Vendor ID: 0x1022, Device ID: 0x780b, Revision ID: 0x42
[    2.462955] sp5100_tco: Using 0xfeb00000 for watchdog MMIO address
[    2.469173] sp5100_tco: Last reboot was not triggered by watchdog.
[    2.475467] sp5100_tco: initialized (0xffffc90000034000). heartbeat=60 sec (nowayout=0)

to wysiada SMBUS / I2C

[    7.156357] i2c /dev entries driver
[    7.160796] piix4_smbus 0000:00:14.0: SMBus base address index region 0xcd6 already in use!
[    7.169424] piix4_smbus: probe of 0000:00:14.0 failed with error -16

Rozumiem, że to normalne i muszę wybrać albo I2C albo watchdog?

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

11

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Jedno się gryzie z drugim, ciekawe smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Znalazłem takie info przy driverach w kernelu:

Some AMD chipsets contain two PIIX4-compatible SMBus
          controllers. This driver will attempt to use both controllers
          on the SB700/SP5100, if they have been initialized by the BIOS.

          This driver can also be built as a module.  If so, the module
          will be called i2c-piix4.
APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

13

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Tak, w pierwszym apu był ten sam problem.

14

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Dzięki @Cezary oraz @pepe2k za pomoc w różnych wątkach o APU2.
Poniżej link do GitHuba z moimi wypocinami, udało mi się uruchomić między innymi dodatkowe GPIO - zdjęcie z opisem pinów w repo.
Podesłałem moje poprawki kolesiowi, który wcześniej zrobił wsparcie LED dla CC i coś tam wspólnie wymodziliśmy.
https://github.com/Gr4ffy/LEDE-APU2

@riptidewave93 z GitHub-a zaczął pracę nad swoim wsparciem LEDE -> https://github.com/riptidewave93/LEDE-APU2
Jak dostanie kolejne APU2, będzie kontynuował swoje prace.

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

15

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Szykuje się oficjalne wsparcie dla APU2 w LEDE.
https://github.com/riptidewave93/LEDE-A … tream-port

pepe2k napisał/a:

... generalnie olałem tę wersję apu, bo to jakiś przejściowy cudak i czekamy na apu3 smile

Dobrze, że nie czekałem... APU3

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

16

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Wsparcie dla APU2 szykuje się ładne, na liście deweloperskiej o tym dyskutowali.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Czy macie jakiś pomysł a y uruchomić I2C na APU2. Używam najnowszej kompilacji LEDE/LUCI pobranej z eko.one.pl  "LuCI LEDE 17.01-SNAPSHOT" ?

LJO

18

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Z czym masz problem? Urządzenie nie jest wykrywane, magistrali nie widzi czy coś jeszcze innego?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Polecenie  i2cdetect -l nie daje wyniku, kernel w dmesg podaje:

[   21.913630] piix4_smbus 0000:00:14.0: SMBus base address index region 0xcd6 already in use!
[   21.922356] piix4_smbus: probe of 0000:00:14.0 failed with error -16

20

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Sprawdzę jutro w pracy czy magistrala jest wykrywana.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

@snakex0x0 wystarczyło przeczytać ten wątek!

APU2 @ OpenWrt 18.06-SNAPSHOT, r7852-7ac6044632

22

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Sprawdziłem, działa nadal - trzeba się pozbyć sp5100_tco i załadować i2c-piix4.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Cezary dzięki za odpowiedź. Jak wyłączyć  sp5100_tco LEDE ?
Graffy przeczytałem dlatego zadałem pytanie w tym wątku.

LJO

24

Odp: Kompilacja OpenWrt CC/LEDE na PC Engines APU2

Zależy którego obrazu używasz, jak ext4 to po prostu odinstaluj moduł.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.