🥚 PRO1 Kompilowanie jądra Linux - sterowniki portu szeregowego

Opis jak skonfigurować jądro Linux :egg: dla bramki PRO1 na przykładzie dodania sterowników portu szeregowego

Dla bramki PRO1 udostępniamy cały pakiet SDK z kodem źródłowym w kontenerze dockera:

https://hub.docker.com/repository/docker/aispro/sdk_pro_1/general

:tipping_hand_woman: Popularne sterowniki portu szeregowe są już włączone w jądrze PRO1, ten opis pokazuje w jaki sposób to zostało wykonane.

Uruchamiamy kontener z SDK

w konnsoli na swoim PC wpisujemy:

docker run -it aispro/sdk_pro_1:v1

po pobraniu obrazu zostanie automatycznie uruchomiony kontener i automatycznie przejdziemy do jego powłoki bash:

przechodzimy do folderu z SDK

cd /home/sdk

Uruchamiamy konfiguracje jądra w kontenerze

env KCONFIG_CONFIG=/home/sdk/common/arch/arm/configs/meson64_a32_defconfig make -j8 -C common O=../out/target/product/galilei/obj/KERNEL_OBJ ARCH=arm  menuconfig

przechodzimy do menu sterowników urządzenia Device Drivers

wybieramy USB support

w USB Serial Converter support wybieramy interesujące nas sterowniki

zapisujemy konfiguracje

Uruchamiamy kompilacje jądra z naszą konfiguracją

./s922x_ddr4

po pomyślnym zakończeniu konfiguraji nasze nowe jądro znajduje się w lokalizacji out/target/product/galilei/boot.img

Testowe uruchomienie bramki na nowym jądrze

Pobieramy jądro z kontenera

sudo docker cp <id-kontenera>:/home/sdk/out/target/product/galilei/boot.img new-boot.im

Łączymy się z bramką po adb:

adb connect <IP-BRAMKI> 

uruchamiamy bramkę w trybie fastboot:

adb shell reboot fastboot

uruchamiany system na nowym jądrze (jeszcze nie flashując, więc w przypadku problemu wystarczy ponownie uruchomić bramkę aby przywrócić go poprzedniej konfiguracji jądra)

fastboot boot ./new-boot.img

jeżeli system się uruchamia poprawnie to po adb możemy sprawdzić interesujące nas flagi jądra:

adb shell zcat /proc/config.gz | grep CONFIG_USB_SERIAL_C
CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_CH341=y
CONFIG_USB_SERIAL_CP210X=y
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set

Zmieniamy jądro na bramce

Jeśli bramka działa pomyślnie z nowym obrazem rozruchowym, to wracamy do trybu fastboot

adb shell reboot fastboot

i programujemy nowe jądro na stałe:

fastboot flash boot ./new-boot.img
fastboot reboot

:tada:

Ta procedura może początkowo wydawać się trudna, ale kiedy ją wykonasz, zobaczysz, że tak naprawdę trudne to nie jest :slight_smile: potrzeba tylko mocnej maszyny, sporo miejsca na dysku i oczywiście troszkę cierpliwości…

2 polubienia