Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018

38 Aufrufe

Veröffentlicht am

Prezentacja z barcampu firmy Semihalf. Przyglądamy się potencjałowi jaki leży w z pozoru starych urządzeniach domowych. Wystarczy pomysł, lutownica, odrobina determinacji i otwarty umysł by użyć stary router jako bazę do stworzenia własnego urządzenia komputerowego.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018

  1. 1. Drugie życie elektroniki Projekt: Wojciech Macek Mówi: Wojciech Żmuda
  2. 2. Agenda ● Po co to spotkanie ● Router TP-Link WR740N ● OpenWRT ● Jak działa PCIe ● Modyfikacje sprzętowe ● Wyniki testów ● Q&A
  3. 3. Router TP-Link WR740N ● Jeden z najtańszych modeli ● Parametry: ○ 4xLAN 100Mb/s ○ WiFi AP 150Mb/s ○ Brak USB źródło: TP-Link
  4. 4. Router TP-Link WR740N ● źródło: OpenWRT Wiki
  5. 5. Co w środku piszczy ● Router jest wyposażony w procesor AR7240 (zdjęcie z dokumentacji)
  6. 6. Konsola szeregowa ● Do dalszych prac wygodnie jest posiadać konsolę szeregową ● Konieczne jest wlutowanie się do PCB w punktach oznaczonych jako TX i RX ● Przejściówka USB pozwala na komunikację 11500 baud źródło: OpenWRT Wiki
  7. 7. Pierwsze uruchomienie U-Boot 1.1.4 (Mar 8 2010 - 10:29:42) AP91 (ar7240) U-boot DRAM: sri #### TAP VALUE 1 = 9, 2 = a 32 MB id read 0x100000ff flash size 4194304, sector count = 64 Flash: 4 MB Using default environment In: serial Out: serial Err: serial Net: ag7240_enet_initialize... No valid address in Flash. Using fixed address : cfg1 0xf cfg2 0x7014 eth0: 00:03:7f:09:0b:ad eth0 up No valid address in Flash. Using fixed address : cfg1 0xf cfg2 0x7214 eth1: 00:03:7f:09:0b:ad ATHRS26: resetting s26 ATHRS26: s26 reset done eth1 up eth0, eth1 Autobooting in 1 seconds ## Booting image at 9f020000 ... Uncompressing Kernel Image ...
  8. 8. Cel ● Nadać routerowi drugie życie ○ Zmienić oprogramowanie na otwarte ○ Wykorzystać interfejsy procesora (USB, PCIe)
  9. 9. OpenWRT ● Otwarte oprogramowanie gotowe do zainstalowania ● Bazuje na systemie Linux ● System “paczek” podobny do innych dystrybucji ● Lekki, wystarczy 4MB Flash i 32MB RAM
  10. 10. Instalacja OpenWRT ● Projekt OpenWRT zawiera gotowe obrazy ● Według instrukcji potrzeba: ○ ściągnąć gotowy obraz “factory” ze strony OpenWRT ○ poprzez interfejs WWW routera użyć obrazu jako “firmware update” ERROR !
  11. 11. Instalacja - problem ● Producent zablokował możliwość wgrania obrazu przez HTTP, konieczne ładowanie Flash z poziomu U-Boota > setenv serverip 192.168.1.234 > tftpboot 0x81000000 firm.bin > erase 0x9f020000 +0x7c0000 > cp.b 0x81000000 0x9f020000 0x7c0000 > bootm 0x9f020000
  12. 12. Start OpenWRT ● Po zainstalowaniu OpenWRT możemy się zalogować wojtek@wojtek-laptop ~ $ ssh -l root 192.168.1.133 BusyBox v1.23.2 (2015-07-25 15:09:46 CEST) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (15.05, r46767) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- root@OpenWrt:~# root@OpenWrt:~# uname -a Linux OpenWrt 3.18.20 #1 Fri Sep 4 21:55:57 CEST 2015 mips GNU/Linux
  13. 13. Pierwszy pomysł Wykorzystać PCIe do bardziej ambitnych celów (np. SATA)
  14. 14. PCIe - co to jest ● Standardowy interfejs komputerowy, następca PCI ● Używany do szybkich kart rozszerzeń ● Zaawansowany technicznie ○ Mały narzut na przetwarzanie przez OS (w przeciwieństwie do USB) ○ Szybki ○ Niska latencja
  15. 15. PCIe - jak wygląda ● Transmisja za pomocą par ścieżek (różnicowych) o kontrolowanej impedancji ● Minimalna konfiguracja “x1” wymaga: ○ Pary RX ○ Pary TX ○ Pary sygnału zegarowego CLK grafika Tracy Wilson
  16. 16. PCIe - gdzie to jest ● Konieczne jest zlokalizowanie linii PCIe na płycie. ● Założenia: ○ Ścieżki powinny łączyć CPU z modułem WiFi ○ Szukamy 3 par różnicowych na PCB (ścieżki idące blisko siebie, otoczone masą) ○ Lane’y PCIe TX/RX są łączone przez kondensatory ○ Para CLK może być łączona przez kondensatory, albo rezystory albo bezpośrednio
  17. 17. Źródło: Collin Warwick, PCIe Express Workshop, Agilent Technologies https://www.slideshare.net/Agilent/ads-workshop-on-pci-expressr-presentation
  18. 18. Router TP-Link WR740N ● źródło: OpenWRT Wiki
  19. 19. PCIe - gdzie to jest
  20. 20. PCIe - gdzie to jest źródło: Atheros
  21. 21. PCIe - gdzie to jest
  22. 22. Dopasowanie impedancji ● PCIe pracuje z częstotliwością 2.5GHz !! ● W transmisji sygnału po płytce PCB ujawniają się zjawiska falowe (odbicia, przesłuchy itp.) ● W przypadku PCIe poniższe muszą być spełnione ○ Impedancje źródła, linii i odbiornika muszą być równe! ○ Długość ścieżek w jednym lane’ie musi być równa co do 0.1mm! ○ PCIe jest magistralą punkt-punkt
  23. 23. Dopasowanie impedancji Jakość sygnału PCIe pokazują tzw. “eye diagram”. U góry - impedancja zgodna. U dołu - impedancja niedopasowana. Ilustracje z przykładów firmy Agilent.
  24. 24. Jak dobrać się do PCIe Kolejnym krokiem jest wykorzystanie interfejsu PCIe. Biorąc pod uwagę poprzednie wiadomości, zdecydowano by: ● Kondensatory postawić “pionowo”, odłączając linie PCIe do karty WiFi ● Do kondensatorów przylutować kabel o impedancji różnicowej 100R ● Przylutować kabel do zewnętrznego gniazda PCIe
  25. 25. Jak dobrać się do PCIe Problem #1: Kondensatory są małe (rozmiar 0402, 1.0x0.5mm). Rozwiązanie: Duża ilość topnika i lutownica na gorące powietrze.
  26. 26. Jak dobrać się do PCIe Problem #2: Linie PCIe muszą mieć impedancję różnicową 100R. Czego użyć jako przewodu? Rozwiązanie: ??
  27. 27. Jak dobrać się do PCIe Problem #2: Linie PCIe muszą mieć impedancję różnicową 100R. Czego użyć jako przewodu? Rozwiązanie: Kabel SATA źródło: Accura webpage
  28. 28. Efekt - lutowanie
  29. 29. Pierwsze uruchomienie root@OpenWRT:~# root@OpenWRT:~# root@OpenWRT:~# lspci -ash: lspci: not found root@OpenWRT:~#
  30. 30. Pierwsze uruchomienie root@OpenWRT:~# opkg update root@OpenWRT:~# opkg install pciutils root@OpenWRT:~# lspci 01:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) root@OpenWRT:~#
  31. 31. Kilka testów Transfer do/z dysku: root@OpenWRT:~#time dd if=~/test.bin bs=1M of=/dev/null 100+0 records in 100+0 records out real 0m 9.17s root@OpenWRT:~# Prędkość odczytu: 10.91 MB/s
  32. 32. Kilka testów Dostęp do danych przez FTP: Prędkość odczytu: 9.3 MB/s
  33. 33. Kilka testów Dostęp do danych przez SFTP: Prędkość odczytu: 1.5 MB/s
  34. 34. Możliwości rozwoju Kolejną z opcji eksploracji jest uruchomienie USB2.0 (https://wiki.openwrt.org/toh/tp-link/tl-wr741nd)
  35. 35. Q&A Pytania?

×