SlideShare a Scribd company logo
1 of 35
Download to read offline
Drugie życie elektroniki
Projekt: Wojciech Macek
Mówi: Wojciech Żmuda
Agenda
● Po co to spotkanie
● Router TP-Link WR740N
● OpenWRT
● Jak działa PCIe
● Modyfikacje sprzętowe
● Wyniki testów
● Q&A
Router TP-Link WR740N
● Jeden z najtańszych modeli
● Parametry:
○ 4xLAN 100Mb/s
○ WiFi AP 150Mb/s
○ Brak USB
źródło: TP-Link
Router TP-Link WR740N
●
źródło:
OpenWRT Wiki
Co w środku piszczy
● Router jest wyposażony w procesor AR7240 (zdjęcie z dokumentacji)
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
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 ...
Cel
● Nadać routerowi drugie życie
○ Zmienić oprogramowanie na otwarte
○ Wykorzystać interfejsy procesora (USB, PCIe)
OpenWRT
● Otwarte oprogramowanie gotowe do zainstalowania
● Bazuje na systemie Linux
● System “paczek” podobny do innych dystrybucji
● Lekki, wystarczy 4MB Flash i 32MB RAM
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 !
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
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
Pierwszy pomysł
Wykorzystać PCIe do bardziej
ambitnych celów (np. SATA)
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
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
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
Źródło: Collin Warwick, PCIe Express Workshop, Agilent Technologies
https://www.slideshare.net/Agilent/ads-workshop-on-pci-expressr-presentation
Router TP-Link WR740N
●
źródło:
OpenWRT Wiki
PCIe - gdzie to jest
PCIe - gdzie to jest
źródło:
Atheros
PCIe - gdzie to jest
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
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.
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
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.
Jak dobrać się do PCIe
Problem #2:
Linie PCIe muszą mieć impedancję różnicową 100R. Czego
użyć jako przewodu?
Rozwiązanie:
??
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
Efekt - lutowanie
Pierwsze uruchomienie
root@OpenWRT:~#
root@OpenWRT:~#
root@OpenWRT:~# lspci
-ash: lspci: not found
root@OpenWRT:~#
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:~#
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
Kilka testów
Dostęp do danych przez FTP:
Prędkość odczytu: 9.3 MB/s
Kilka testów
Dostęp do danych przez SFTP:
Prędkość odczytu: 1.5 MB/s
Możliwości rozwoju
Kolejną z opcji eksploracji jest uruchomienie USB2.0
(https://wiki.openwrt.org/toh/tp-link/tl-wr741nd)
Q&A
Pytania?

More Related Content

What's hot

Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Semihalf
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Semihalf
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKSemihalf
 
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...PROIDEA
 
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PROIDEA
 
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...PROIDEA
 

What's hot (9)

Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.Efekt motyla w kodzie maszynowym.
Efekt motyla w kodzie maszynowym.
 
GlusterFS
GlusterFSGlusterFS
GlusterFS
 
Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.Stosy sieciowe w przestrzeni użytkownika.
Stosy sieciowe w przestrzeni użytkownika.
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
 
Zaliczenie Sem 2
Zaliczenie Sem 2Zaliczenie Sem 2
Zaliczenie Sem 2
 
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...
PLNOG 8: Lucjan Kisiel, Marcin Matyla - Router brzegowy z wydolnością 3 Gb ru...
 
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
 
Sniffing
SniffingSniffing
Sniffing
 
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...
PLNOG 8: Krzysztof Konkowski - GigabitEthernetem routera agregacyjnego do nie...
 

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

PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...
PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...
PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...PROIDEA
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Semihalf
 
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlay
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlayPLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlay
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlayPROIDEA
 
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiej
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiejŁukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiej
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiejPROIDEA
 
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PROIDEA
 
PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPROIDEA
 
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...PROIDEA
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPROIDEA
 
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.Semihalf
 
100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. 100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. Redge Technologies
 
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFX
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFXPLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFX
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFXPROIDEA
 
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic NetworkingPLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic NetworkingPROIDEA
 
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...PROIDEA
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. Semihalf
 
PLNOG 3: Piotr Jabłoński - Realizacja styku międzyoperatorskiego dla usług L...
PLNOG 3: Piotr Jabłoński -  Realizacja styku międzyoperatorskiego dla usług L...PLNOG 3: Piotr Jabłoński -  Realizacja styku międzyoperatorskiego dla usług L...
PLNOG 3: Piotr Jabłoński - Realizacja styku międzyoperatorskiego dla usług L...PROIDEA
 
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...PROIDEA
 
PLNOG 6: Bartłomiej Anszperger - MPLS
PLNOG 6: Bartłomiej Anszperger - MPLSPLNOG 6: Bartłomiej Anszperger - MPLS
PLNOG 6: Bartłomiej Anszperger - MPLSPROIDEA
 
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej PROIDEA
 

Similar to Programuj wbrew regułom. Barcamp Semihalf S08:E02 29/05/2018 (20)

PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...
PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...
PLNOG 18 - Robert Ślaski - Programowanie a nie konfiguracja - porozmawiajmy z...
 
Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.Programowanie sterowników w Linuksie.
Programowanie sterowników w Linuksie.
 
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlay
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlayPLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlay
PLNOG 7: Marcin Bała, Tomasz Stępniak - budowa sieci dostępowych TriplePlay
 
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiej
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiejŁukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiej
Łukasz Bromirski - Najlepsze praktyki zabezpieczania sieci klasy operatorskiej
 
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
 
PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data CenterPLNOG 13: Artur Gmaj: Architecture of Modern Data Center
PLNOG 13: Artur Gmaj: Architecture of Modern Data Center
 
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...
PLNOG 18 - Maciej Flak - Network as a Sensor czyli wykorzystanie NetFlow do m...
 
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOpsPLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
PLNOG 22 - Krzysztof Załęski - Praktyczne zastosowanie narzędzi NetDevOps
 
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
ARM CoreSight - sprawdź, co tak naprawdę robi Twój SoC.
 
100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. 100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego.
 
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFX
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFXPLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFX
PLNOG 17 - Sławomir Janukowicz - NFV – using Juniper vMX, vSRX and NFX
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic NetworkingPLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
PLNOG 13: Piotr Jabłoński: First Steps in Autonomic Networking
 
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
PLNOG 8: Bartłomiej Anszperger - MPLS - Co to jest? Z czym to gryźć? Jak i po...
 
Wysoko wydajne sieci TCP/IP
Wysoko wydajne sieci TCP/IPWysoko wydajne sieci TCP/IP
Wysoko wydajne sieci TCP/IP
 
CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special. CPU GHOST BUSTING. Semihalf Barcamp Special.
CPU GHOST BUSTING. Semihalf Barcamp Special.
 
PLNOG 3: Piotr Jabłoński - Realizacja styku międzyoperatorskiego dla usług L...
PLNOG 3: Piotr Jabłoński -  Realizacja styku międzyoperatorskiego dla usług L...PLNOG 3: Piotr Jabłoński -  Realizacja styku międzyoperatorskiego dla usług L...
PLNOG 3: Piotr Jabłoński - Realizacja styku międzyoperatorskiego dla usług L...
 
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...
PLNOG 8: Przemysław Grygiel - Data Center Allegro wyboista droga L2 do autost...
 
PLNOG 6: Bartłomiej Anszperger - MPLS
PLNOG 6: Bartłomiej Anszperger - MPLSPLNOG 6: Bartłomiej Anszperger - MPLS
PLNOG 6: Bartłomiej Anszperger - MPLS
 
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej
PLNOG 7: Bartłomiej Anszperger - MPLS - trochę głębiej
 

More from Semihalf

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Semihalf
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Semihalf
 
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01Semihalf
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Semihalf
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Semihalf
 
Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Semihalf
 
Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Semihalf
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Semihalf
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Semihalf
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Semihalf
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!Semihalf
 
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Semihalf
 
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.Semihalf
 
Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Semihalf
 
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.Semihalf
 
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Semihalf
 
DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.Semihalf
 
Secure Coding w praktyce.
Secure Coding w praktyce.Secure Coding w praktyce.
Secure Coding w praktyce.Semihalf
 
FreeBSD on Cavium ThunderX System on a Chip
FreeBSD on Cavium ThunderX System on a ChipFreeBSD on Cavium ThunderX System on a Chip
FreeBSD on Cavium ThunderX System on a ChipSemihalf
 

More from Semihalf (19)

Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
Meetup #1 - Świat Komputera Przed Systemem Operacyjnym
 
Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?Embedded Debugging, czyli co kryje się w jądrze?
Embedded Debugging, czyli co kryje się w jądrze?
 
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01Uwaga na buga! GDB w służbie programisty.  Barcamp Semihalf S09:E01
Uwaga na buga! GDB w służbie programisty. Barcamp Semihalf S09:E01
 
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
Oczyszczacz powietrza i stos sieciowy? Czas na test! Semihalf Barcamp 13/06/2018
 
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
Programuj wbrew regułom - Bug Legends Quiz Show. Semihalf Barcamp 25/04/2018
 
Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02Skazani na firmware. ARM Trusted Firmware. S07E02
Skazani na firmware. ARM Trusted Firmware. S07E02
 
Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.Skazani na firmware. Świat komputera przed systemem operacyjnym.
Skazani na firmware. Świat komputera przed systemem operacyjnym.
 
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
Software Defined Networks (SDN) na przykładzie rozwiązania OpenContrail.
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.Architektura mikrokontrolera pisana słowem.
Architektura mikrokontrolera pisana słowem.
 
Jak napisać własny RTOS!
Jak napisać własny RTOS!Jak napisać własny RTOS!
Jak napisać własny RTOS!
 
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
Masz wiadomość! Komunikacja wieloprocesorowa w praktyce.
 
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.
Linux KVM - wsparcie dla wirtualizacji w kontekście serwerów ARM.
 
Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?Czym są heterogeniczne systemy mikroprocesorowe?
Czym są heterogeniczne systemy mikroprocesorowe?
 
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
SmartNIC - wprowadzenie do inteligentnych interfejsów sieciowych.
 
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.Wirtualizacja sieci na przykładzie OpenContrail vRouter.
Wirtualizacja sieci na przykładzie OpenContrail vRouter.
 
DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.DTrace, czyli jak zobaczyć to czego nie widać.
DTrace, czyli jak zobaczyć to czego nie widać.
 
Secure Coding w praktyce.
Secure Coding w praktyce.Secure Coding w praktyce.
Secure Coding w praktyce.
 
FreeBSD on Cavium ThunderX System on a Chip
FreeBSD on Cavium ThunderX System on a ChipFreeBSD on Cavium ThunderX System on a Chip
FreeBSD on Cavium ThunderX System on a Chip
 

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

  • 1. Drugie życie elektroniki Projekt: Wojciech Macek Mówi: Wojciech Żmuda
  • 2. Agenda ● Po co to spotkanie ● Router TP-Link WR740N ● OpenWRT ● Jak działa PCIe ● Modyfikacje sprzętowe ● Wyniki testów ● Q&A
  • 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
  • 5. Co w środku piszczy ● Router jest wyposażony w procesor AR7240 (zdjęcie z dokumentacji)
  • 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. 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. Cel ● Nadać routerowi drugie życie ○ Zmienić oprogramowanie na otwarte ○ Wykorzystać interfejsy procesora (USB, PCIe)
  • 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. 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. 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. 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. Pierwszy pomysł Wykorzystać PCIe do bardziej ambitnych celów (np. SATA)
  • 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. 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. 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. Źródło: Collin Warwick, PCIe Express Workshop, Agilent Technologies https://www.slideshare.net/Agilent/ads-workshop-on-pci-expressr-presentation
  • 19. PCIe - gdzie to jest
  • 20. PCIe - gdzie to jest źródło: Atheros
  • 21. PCIe - gdzie to jest
  • 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. 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. 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. 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. Jak dobrać się do PCIe Problem #2: Linie PCIe muszą mieć impedancję różnicową 100R. Czego użyć jako przewodu? Rozwiązanie: ??
  • 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
  • 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. 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. Kilka testów Dostęp do danych przez FTP: Prędkość odczytu: 9.3 MB/s
  • 33. Kilka testów Dostęp do danych przez SFTP: Prędkość odczytu: 1.5 MB/s
  • 34. Możliwości rozwoju Kolejną z opcji eksploracji jest uruchomienie USB2.0 (https://wiki.openwrt.org/toh/tp-link/tl-wr741nd)