Poziom niżej

Poziom niżej

Podkast av Semihalf

Unikalny w skali polskiego internetu podcast o budowie i zasadzie działania systemów wbudowanych oraz związkach krzemu wszelkiej postaci. Prowadzący są programistami firmy Semihalf i na co dzień tworzą m.in system Linux i FreeBSD. Dzielą się swoimi wieloletnimi doświadczeniami i w sposób przystępny opisują świat na styku programowania i sprzętu.

Tidsbegrenset tilbud

3 Måneder for 9,00 kr

Deretter 99,00 kr / MånedAvslutt når som helst.

Kom i gang

Alle episoder

11 Episoder
episode #009 - Skazani na firmware artwork
#009 - Skazani na firmware

Oprogramowania układowego na PC nie sposób się pozbyć. 40-letnia historia rozwoju rynku komputerów osobistych silnie związała użytkowników z Firmwarem (FW). Od BIOS po UEFI na binarnych fragmentach FW urządzeń peryferyjnych skończywszy, zawsze gdzieś w systemie czyha potencjalny cichy intruz. Nasuwają się więc pytania: Czy jesteśmy skazani na Firmware? Czy producenci sprzętu tworzą tajną lożę i chcą zawładnąć światem poprzez szpiegowanie nieświadomych użytkowników? W czyim interesie jest zaszywanie w krzemie instrukcji procesora weryfikujących podpis cyfrowy oprogramowania? Na te i podobne pytania staramy się odpowiedzieć w tym odcinku podcastu Poziom Niżej. Prowadzący: Radosław Biernacki, Marcin Wojtas, Jan Dąbroś Hashtag: acpi, bios, coreboot, firmware, secureboot, uefi ### Plan odcinka # 00:00 - Wprowadzenie # 04:56 - Czym jest firmware # 10:33 - Trochę historii - BIOS # 17:43 - Czas obecny - UEFI # 22:50 - EDK2 # 28:30 - CSM - czyli UEFI potrafi w BIOS # 29:50 - Coreboot - KISS # 31:05 - Libreboot # 33:30 - Bootloader, czyli co następuje po… # 35:45 - RaspberryPi jako beneficjent otwartego firmware # 38:35 - Bootrom - czyli jak uruchamiają się nowoczesne procesory # 42:40 - Detale wczesnych etapów uruchomienia systemu # 45:40 - Microcode # 48:00 - Inicjalizacja (trening) RAM # 52:12 - Bootloader # 56:40 - Skąd firmware bierze sterowniki? (OptionROM) # 1:01:30 - Jak ładowany i uruchamiany jest kod kernela? # 1:03:18 - Dlaczego kelnerowi potrzebny jest opis sprzętu i środowiska? # 1:05:28 - Jak dokonywane są aktualizacje firmware? # 1:09:55 - ACPI # 1:17:25 - DeviceTree i “sprawa ARM” # 1:21:32 - System Management BIOS (SMBIOS) # 1:23:10 - Bezpieczeństwo, zaufanie i prywatność # 1:26:10 - SecureBoot i VerifiedBoot # 1:31:45 - TPM # 1:35:50 - Podsumowanie # 1:39:25 - Bonus ### Linki do materiałów dodatkowych: # 22:55 - Specyfikacja UEFI - https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf [https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf] # 23:19 - Repozytorium EDK2 - https://github.com/tianocore/edk2 [https://github.com/tianocore/edk2] # 27:07 - Implementacja "UEFI runtime services" w u-boot - https://source.denx.de/u-boot/u-boot/-/blob/master/lib/efi_loader/efi_runtime.c [https://source.denx.de/u-boot/u-boot/-/blob/master/lib/efi_loader/efi_runtime.c] # 30:18 - Repozytorium i strona główna coreboot - https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master [https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master], https://www.coreboot.org/ [https://www.coreboot.org/] # 31:13 - Strona główna libreboot - https://libreboot.org/ [https://libreboot.org/] # 31:35 - Repozytorium FSP - https://github.com/intel/FSP [https://github.com/intel/FSP] # 33:14 - Repozytorium oreboot - https://github.com/oreboot/oreboot [https://github.com/oreboot/oreboot] # 35:15 - Strona główna i repozytorium LinuxBoot - https://www.linuxboot.org/ [https://www.linuxboot.org/], https://github.com/linuxboot/linuxboot [https://github.com/linuxboot/linuxboot] # 44:05 - IME - https://en.wikipedia.org/wiki/Intel_Management_Engine [https://en.wikipedia.org/wiki/Intel_Management_Engine] # 49:17 - Więcej o SPD(Serial Presence Detect) - https://en.wikipedia.org/wiki/Serial_presence_detect [https://en.wikipedia.org/wiki/Serial_presence_detect] # 59:16 - 1:01:30 - Sterownik do uruchamiania instrukcji x86 na AArch64 https://github.com/ardbiesheuvel/X86EmulatorPkg [https://github.com/ardbiesheuvel/X86EmulatorPkg] # 1:04:23 - Opis "runtime services" w specyfikacji UEFI: https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page [https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page]=308 # 1:05:06 - Opis "EFI system table": https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page [https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#page]=168 # 1:11:46 - link do kernel.org i arch/arm/mach*: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm?h=master [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm?h=master] # 1:14:30 - Specyfikacja ACPI i główne koncepty: https://uefi.org/specs/ACPI/6.4/index.html [https://uefi.org/specs/ACPI/6.4/index.html] + https://uefi.org/specs/ACPI/6.4/03_ACPI_Concepts/ACPI_Concepts.html#acpi-concepts [https://uefi.org/specs/ACPI/6.4/03_ACPI_Concepts/ACPI_Concepts.html#acpi-concepts] # 1:15:20 - Specyfikacja AML: https://uefi.org/specs/ACPI/6.4/20_AML_Specification/AML_Specification.html [https://uefi.org/specs/ACPI/6.4/20_AML_Specification/AML_Specification.html] # 1:21:40 - Specyfikacja SMBIOS - https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf [https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf] # 1:29:50 - Podcast Poziom Niżej #006 - "Bezpieczeństwo w krzemie zaklęte" - https://www.youtube.com/watch?v=kqaeyaH8jFs [https://www.youtube.com/watch?v=kqaeyaH8jFs] # 1:31:45 - Wpis dotyczący ataku na komunikacją SPI pomiędzy CPU a TPM - https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network [https://dolosgroup.io/blog/2021/7/9/from-stolen-laptop-to-inside-the-company-network]

08. aug. 2022 - 1 h 41 min
episode #008 - Zaczarowane Jabłko #2 artwork
#008 - Zaczarowane Jabłko #2

W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1. Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiązania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej. Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach Hashtag: Arm, Apple, M1 ### Plan odcinka, część #2 # 0:23 - Translacja kodu x86 -> ARM # 4:30 - Rozkazy x86 potrafią operować na pamięci (model pamięci) # 8:50 - Ograniczenia translacji # 10:00 - Translacja vs emulacja # 11:30 - Wydajność translacji na M1 # 13:30 - WAŻNE: różnice modelu pamięci i wyzwania translacji! # 18:00 - M1 TSO (Total Store Ordering) # 23:26 - Wątek poboczny: Izolacja CPU # 28:13 - koniec wątku pobocznego # 28:50 - Roseta 1 i Roseta 2 # 30:36 - TDP i testy porównawcze # 35:30 - Segmentacja rynku zastosowań procesora # 37:26 - Jądro OSX # 40:42 - Troche o ograniczeniach TDP # 44:12 - Wydajność podsystemu DRAM o SWAP # 45:22 - Podsumowanie #4 (ewolucja a nie rewolucja) # 46:40 - Polityka informacyjna Apple # 49:43 - wątek poboczny: Historia bywa przewrotna, Apple vs IBM, wertykalna struktura Apple # 51:47 - koniec wątku pobocznego # 52:55 - ARM otwiera ISA?!? # 56:30 - wątek poboczny: Linux i samo-modyfikujący się kod # 1:00:47 - koniec wątku pobocznego # 1:01:20 - Apple AMX # 1:06:30 - Czy ARM przejmie rynek PC? # 1:10:35 - Zakończenie ### Linki # 0:23 - Translacja X86 -> ARM: - Jak robi to Apple: - Jak Transitive umarł: https://www.itjungle.com/2011/09/26/tfh092611-story06/ [https://www.itjungle.com/2011/09/26/tfh092611-story06/] - Jak robi to Microsoft: - Niskopoziomowa analiza: https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation [https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation] - Kompleksowa analiza WOW64: https://wbenny.github.io/2018/11/04/wow64-internals.html [https://wbenny.github.io/2018/11/04/wow64-internals.html] - Qemu User Mode Emulation: https://qemu.readthedocs.io/en/latest/user/index.html [https://qemu.readthedocs.io/en/latest/user/index.html] - Narzędzia do skrośnego przygotowywania dystrybucji Debiana/Ubuntu: https://wiki.debian.org/EmDebian/CrossDebootstrap [https://wiki.debian.org/EmDebian/CrossDebootstrap] # 18:00 - TSO - Slajdy poglądowe o Total Store Ordering: https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf [https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf] - Hack do włączania dla każdego procesu w OSX na M1: https://github.com/saagarjha/TSOEnabler [https://github.com/saagarjha/TSOEnabler] # 25:00 - Łatki kernela do "Total CPU Isolation" https://lwn.net/Articles/816298/ [https://lwn.net/Articles/816298/] # 28:50 - Roseta1 i Roseta 2 - Rosetta 2: https://appleinsider.com/inside/rosetta-2 [https://appleinsider.com/inside/rosetta-2] - Rosetta 1 (w 2006 przy przejściu PowerPC -> Intel) będąca modyfikacją technologii QuickTransit: - https://en.wikipedia.org/wiki/QuickTransit [https://en.wikipedia.org/wiki/QuickTransit] - Prezentacja o QuickTransit na KVM Forum 2008: https://www.linux-kvm.org/images/9/98/KvmForum2008%24kdf2008_2.pdf [https://www.linux-kvm.org/images/9/98/KvmForum2008%24kdf2008_2.pdf] # 1:01:20 - Apple AMX https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f [https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f] https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/ [https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/] https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1 [https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1]

25. mars 2021 - 1 h 12 min
episode #008 - Zaczarowane Jabłko #1 artwork
#008 - Zaczarowane Jabłko #1

W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1. Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiazania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej. Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach Hashtag: Arm, Apple, M1 ### Plan odcinka, część #1 # 0:23 - Wstęp # 4:44 - Na jakiej podstawie analizujemy procesor # 6:14 - Czy ISA ARM ma znaczenie? # 8:30 - Jak działa nowoczesny procesor # 11:20 - Dlaczego wszystkie procesory działają bardzo podobnie # 12:55 - Odstępstwa od procesorów superskalarnych # 14:34 - W czym faktycznie różnią się procesory # 18:20 - Na co procesor wydatkuje energię elektryczną # 20:50 - Dlaczego nie zawsze więcej znaczy lepiej # 24:30 - Coś za coś - czyli konsumpcja energii a wydajność # 30:00 - Gdzie jest magia w jabłku? - dlaczego M1 jest tak wydajny? # 32:40 - Jak działają mikro-benchmarki # 39:37 - Podsystem pamięci w M1 # 50:30 - Interconnect jako sieć pakietowa # 51:47 - Nietypowy cache L3 w M1? # 57:29 - L2 jako punkt koherencji w M1? (słynny NSObjects i ref counting) # 1:04:32 - Podsumowanie #1 # 1:07:43 - Opóźnienie L1 w M1 # 1:08:55 - Podsumowanie #2 (nie magia) # 1:10:12 - Registry renaming # 1:12:30 - Dekoder rozkazów i SMT # 1:18:58 - M1 jako awangarda w mikro-architekturze? ### Linki # 4:44 - Testy od AnandTech https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested [https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested] # 13:02 - VLIW https://en.wikipedia.org/wiki/Very_long_instruction_word [https://en.wikipedia.org/wiki/Very_long_instruction_word] # 13:25 - Alternatywne architektury procesorów Microsoft EDGE ISA - procesor grafowy https://www.theregister.com/2018/06/18/microsoft_e2_edge_windows_10/ [https://www.theregister.com/2018/06/18/microsoft_e2_edge_windows_10/] Ian Goddard o EDGE CPU i Mill CPU https://millcomputing.com/topic/microsoft-e2-edge-processor/ [https://millcomputing.com/topic/microsoft-e2-edge-processor/] Procesor RAW https://apps.dtic.mil/sti/pdfs/AD1007208.pdf [https://apps.dtic.mil/sti/pdfs/AD1007208.pdf] Procesor Mill https://millcomputing.com/ [https://millcomputing.com/] # 24:33 - Big-little https://www.usenix.org/system/files/conference/hotpower14/hotpower14_hahnel.pdf [https://www.usenix.org/system/files/conference/hotpower14/hotpower14_hahnel.pdf] # 30:30 - Parametry mikroarchitektury procesora na bazie procesorów Intela i AMD https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake [https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake] https://en.wikichip.org/wiki/amd/microarchitectures/zen_2 [https://en.wikichip.org/wiki/amd/microarchitectures/zen_2] # 31:59 - Andnatech, Apple M1 https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested [https://www.anandtech.com/show/16252/mac-mini-apple-m1-tested] # 49:00 - Dougall Johnson https://dougallj.github.io/applecpu/firestorm.html [https://dougallj.github.io/applecpu/firestorm.html] https://twitter.com/dougallj [https://twitter.com/dougallj] # 50:50 - Interconnect IP od Arteris https://www.arteris.com/ [https://www.arteris.com/] # 55:37 - Wykresu latencji L3 na Apple M1 https://pasteboard.co/JUeihtx.png [https://pasteboard.co/JUeihtx.png] # 1:10:45 - Tomasulo Algorithm - Registry Renaming https://www.youtube.com/watch?v=PZZvhqnch5o [https://www.youtube.com/watch?v=PZZvhqnch5o] https://www.youtube.com/watch?v=D29BgTLHYbk [https://www.youtube.com/watch?v=D29BgTLHYbk] https://www.udacity.com/course/high-performance-computer-architecture--ud007 [https://www.udacity.com/course/high-performance-computer-architecture--ud007] # 1:12:50 Power 10 https://www.hotchips.org/assets/program/conference/day1/HotChips2020_Server_Processors_IBM_Starke_POWER10_v33.pdf [https://www.hotchips.org/assets/program/conference/day1/HotChips2020_Server_Processors_IBM_Starke_POWER10_v33.pdf]

25. mars 2021 - 1 h 21 min
episode Nowa seria podcastów "Poziom Niżej" artwork
Nowa seria podcastów "Poziom Niżej"

Czy są tu słuchacze spragnieni naszych podcastów? Mamy dla Was dobrą wiadomość! :) Po dłuższej przerwie wracamy z nowym cyklem. Dziś przystawka, czyli nowa szata graficzna z zapowiedzią serii. Pozostańcie na łączach, już wkrótce usłyszymy się w nowych odcinkach!

11. mars 2021 - 53 s
episode #007 - Gdy bug w krzemie drzemie... artwork
#007 - Gdy bug w krzemie drzemie...

W siódmym odcinku rozmawiamy o ciekawym aspekcie naszej pracy tj o błędach w układach krzemowych. Praca z producentami układów krzemowych daje niecodzienną możliwość zajrzenia za kulisy rewolucji naszych czasów tj miniaturyzacji układów cyfrowych. Osławione prawo Moore'a niesie ze sobą wykładniczy wzrost gęstości tranzystorów. Co za tym idzie z biegiem czasu układy stają się coraz bardziej skomplikowane a tym samym pomyłki stają się nieuniknione. W trzech krótkich historiach opowiadanych przez członków załogi Semihalf, staramy się przybliżyć wam ciekawe strony pracy z najnowszą technologią, często niosącą bardzo intensywne tygodnie “walki” na styku oprogramowania i sprzętu. Jeśli zastanawialiście się dlaczego aktualizacje firmware (np BIOSU) są konieczne oraz dlaczego procesory zaraz po premierze rynkowej czasami po prostu nie działają jak reklamuje producent, to ten odcinek powinien odpowiedzieć na wasze pytania. Prowadzący: Radosław Biernacki, Jan Dąbroś, Marcin Wojtas, Stanisław Kardach Hashtag: FPGA, VHDL, Ryzen, ARM, hardware, symulator, emulator, bug ### Plan odcinka # 6:10 - Od czego zaczyna się projektowanie układów krzemowych # 7:30 - Testowanie i praca z SW - symulatory i emulatory # 9:20 - Dlaczego emulacja jest czasochłonna? # 11:50 - Narodziny krzemu - tapeout # 15:10 - Marcin - historia wdrożenia zarządzania energią w ARMv8 # 23:30 - Janek - historia błędu przekierowania przerwań do Arm Trustzone # 30:40 - Staszek - historia błędu w procesorze sieciowym do zastosowań DataPlane # 34:10 - Staszek - historia błedu w ARMv8 w instrukcjach LDP/STP # 42:08 - Łatki w firmware # 48:47 - Quirki i upstream do kernela Linuxa # 1:01:00 - Podsumowanie, jak błędy w krzemie manifestują się u użytkowników ### Linki # 6:20 - Fabless chip manufacturing - https://en.wikipedia.org/wiki/Fabless_manufacturing [https://en.wikipedia.org/wiki/Fabless_manufacturing] # 8:50 - Cadance Palladium - https://www.cadence.com/en_US/home/tools/system-design-and-verification/acceleration-and-emulation/palladium-z1.html [https://www.cadence.com/en_US/home/tools/system-design-and-verification/acceleration-and-emulation/palladium-z1.html] # 12:45 - Tape-out - https://en.wikipedia.org/wiki/Tape-out [https://en.wikipedia.org/wiki/Tape-out] # 18:00 - Poziomy uprzywilejowania (Exception levels) na ARMv8 Prezentacja ARM Trusted Firmware (ale z fajnym opowiadaniem jak Exception Levels działają) https://www.slideshare.net/linaroorg/arm-trusted-firmareforarmv8alcu13 [https://www.slideshare.net/linaroorg/arm-trusted-firmareforarmv8alcu13] Artykuł w magazynie "Programista" numer #63, 08/2017r. "Na granicy światów – technologia bezpieczeństwa ARM TrustZone" Dość szczegółowy opis technologii ARM TrustZone http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf [http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf] # 18:35 - Power Management na ARMv8 Całość problemu opisana w magazynie “Programista” numer #56, 01/2017r. “Zarządzanie energią w ARMv8” Opis przebiegu usypiania systemu podczas Suspend-To-Ram https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/power/suspend-and-cpuhotplug.rst [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/power/suspend-and-cpuhotplug.rst] Opis funkcji zwrotnych zarządzania energią w ARM Trusted Firmware https://github.com/scorp2kk/atf/blob/master/docs/platform-migration-guide.md#22-composite-power-state-framework-platform-api-modifications [https://github.com/scorp2kk/atf/blob/master/docs/platform-migration-guide.md#22-composite-power-state-framework-platform-api-modifications] # 35:10 - Problem atomowości instrukcji LDP/STP: https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile [https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile] - Arm Architecture Reference Manual, rozdział B2.2.1 Requirements for single-copy atomicity https://www.element14.com/community/servlet/JiveServlet/previewBody/41836-102-1-229511/ARM.Reference_Manual.pdf [https://www.element14.com/community/servlet/JiveServlet/previewBody/41836-102-1-229511/ARM.Reference_Manual.pdf] - ARMv8 Instruction Set Overview, rozdział 5.2 Memory Access # 51:30 - Upstream quirka do ECAM w ARMv8 Dyskusja na listach mailingowych odnośnie możliwości odstępstw od generycznego działania PCIE na ARMv8 opisanego tablicami ACPI https://lkml.org/lkml/2016/9/20/391 [https://lkml.org/lkml/2016/9/20/391] Opis Extended Configuration Space (ECAM) dla standardu PCIE https://wiki.osdev.org/PCI_Express#Extended_Configuration_Space [https://wiki.osdev.org/PCI_Express#Extended_Configuration_Space] Obejście problemu niezgodności ze standardowym kontrolerem przy zastosowaniu sztuczki z tablicami ACPI https://github.com/tianocore/edk2-platforms/commit/a273cb49fe4f98f662bacb69cfd323722e0993a2#diff-e57f3ee89616dd138928c3655287b0d0 [https://github.com/tianocore/edk2-platforms/commit/a273cb49fe4f98f662bacb69cfd323722e0993a2#diff-e57f3ee89616dd138928c3655287b0d0] Proste rozwiązanie problemu na poziomie sterownika w Linuksie - dozwolone tylko przy opisie poprzez Device Tree https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/pci-host-generic.c#n27 [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/controller/pci-host-generic.c#n27]

17. mai 2020 - 1 h 3 min
Enkelt å finne frem nye favoritter og lett å navigere seg gjennom innholdet i appen
Enkelt å finne frem nye favoritter og lett å navigere seg gjennom innholdet i appen
Liker at det er både Podcaster (godt utvalg) og lydbøker i samme app, pluss at man kan holde Podcaster og lydbøker atskilt i biblioteket.
Bra app. Oversiktlig og ryddig. MYE bra innhold⭐️⭐️⭐️

Tidsbegrenset tilbud

3 Måneder for 9,00 kr

Deretter 99,00 kr / MånedAvslutt når som helst.

Eksklusive podkaster

Uten reklame

Gratis podkaster

Lydbøker

20 timer i måneden

Kom i gang

Bare på Podimo

Populære lydbøker