Herd Your Boards, Become a Farmer
Goedemorgen, welkom bij mijn presentatie. Hurt Your Boards Bekoma Farmer. Mijn naam is Geert Uiterhoeven. Voor de mensen die niet Dutch spelen, mijn laatste naam eigenlijk betekent van de farm, dus ik ga terug naar mijn route. Dus ik begin werken op Linux een lange tijd geleden, meer dan 20 jaar geleden, voor de portoen Linux M68K naar de Amiga. Toen was ik op de portoen Linux PowerPC op de Common Hardware Reference Platform, wat me sinds dan meestal ging. En voor een while ben ik de Linux Remberver device maintainer. Alles was meestal hobbye om te werken, dus niet voor geld. En in de meeste tijd begon ik te werken voor Sony. En in 2006 begon ik te werken voor Sony om op Linux te werken op de PlayStation 3 Game Console en de cel Broadband Engine processor te werken. In 2013 became Freelands Linux Kernel-developer en heb ik meestal op stream werk gedaan voor de kernel voor de Renesas ARM SoCs. Dus waarom wil je een boortfarm? De meeste mensen beginnen met een boort, ze doen het op hun desk. Het is makkelijk om het op te zetten. Het is makkelijk om het te interacteren. Je wil de boortpoort op de boort. Je wil een switchen. Je wil het resetten. Je wil de hardbeat LED kijken, het is allemaal makkelijk. Maar na een while, deze dagen zijn veel ontwikkeld boorten erg zwaar. Dus na een while, begon je meer en meer boorten en ze begonnen uit te gaan op je desk. Als je van huis werkt, zoals ik, of misschien andere mensen in de huis doen we niet zo'n stack van boorten op je desk gezien van de livingroom of iets zoals dat. Dus ik zou willen weten of er mensen zijn die boort op hun desk hebben. Is er iemand met drie boorten op deze desk? Meer dan vijf? Wie heeft een boortvorm? Dat is goed. Dus na een while, moet ik de boorten ergens zwaar komen. Je hebt minder klutter op je desk. Je kunt alles centraliseren in één plaats in je huis. Als je er echt veel boorten hebt. Je kunt automatische dingen starten. Dankzij de internet kun je gewoon de boorten aansluiten van je huis, van je garden, van de koffie shop, van de andere kant van de wereld. Je kunt begrijpen met accesse naar je boort van andere mensen.  Er zijn geen limitaties. Natuurlijk zijn er een aantal challenges over dat. Dus het is meer complex te zetten dan gewoon een boort op je desk en je connecten naar je lokale PC. Maar het grootste probleem is als het dichter je kan switchen en kijken naar deze plek ofzo. Dus ik zal meestal over de actuale set-up en de challenges die je hebt. En alleen een beetje over de software en de hoogste steen. Wat wil je in een boortfarm? Dus de basis van wat je nodig is is dat je kunt opnemen en op de boorten en een serial console hebben zodat je kunt kijken of het goed is. En dat is meestal wat veel van de KernelCI boot testen testen doen. Maar ik wilde iets beter. Dus ik wilde echte resetsupporten. Ik heb gezien verschillende boorten waar je niet kunt zien wanneer je de boort opnemen. Je had echt de reset button. Of boorten die je niet kunt zien door te typen een reboot-kommand of iets zoals dat. Voor dat moet je de reset button wat een beetje ongeveer is als het niet op de boorten meer is. Allere dingen zijn wake-up-susband. Als je dat wilt checken moet je een wake-up-source een soft power-route zijn. Er zijn verschillende boorten om het op te poweren. Dat boten is verschillend om de boort te cycleren. Er zijn verschillende boorten die je wilt oppressen. Ik wilde ook uiteindelijk een idee over de voortdaging van de boort. Er kunnen meer verschillende dingen doen met je boort. Dat betekent op de gebruikkast. Sommige mensen werken op graphiek. Multimedia. Ze moeten video in en video uit. Deze zijn echt specialisele solutions. Er zijn misschien andere dingen die je wilt doen. Als je gewoon een boort hebt is het makkelijk. Je moet unie-provoud voortdaging. Je connecteert de serial-console. Je connecteert je op de netwerk. En dan heb je interactie die er verschillende dingen kan zijn. Pressing-butten, bekijken op screens. Je nam het. Als je een boort hebt is het bijna dezelfde. Je hebt gewoon meer boorten hier in de middel. Ik ga nu over de verschillende vier componenten. We hebben daarover. Ik begin met power control. Een klassieke solution voor power cycling boort is een device zoals daar. Je ploeg in de power cables daar. Je kunt de device controleren. Je kunt het op en af switchen. Sommigen geven metering.  Dat is een geweldige solution. Je kunt veel low powered, embedded boorten switchen of de freezer of een heater of iets met dat. Maar als je een boort hebt dat er alleen 1 of 2 gebruikt is het een beetje overkild. Een tweede solution zijn de relayboorten. Je kunt ze controleren met verschillende interfaces. Ze zijn er wel opgevuld. Over GPIO, I2C, USB, internet. Ik heb horen over mensen die 2 van ze hebben gebouwd en ontdekten dat ze allemaal dezelfde MAC adres hadden. Dat is een beetje moeilijker. Het kan nog steeds overkilderd voor veel boorten, want deze relays kunnen switchen met 250 volts met 10 ampere, wat je niet nodig kunt. Een andere solution is de mooie device dat Bay Libre gecreëerd, de ACME. Het is eigenlijk een kapel voor de BeagleBone Black. Maar sinds het I2C gebruikt, kan je het nog meer ontdekten als I2C. Je kunt 2 van ze aan de BeagleBone Black ontdekten. Elke boort heeft 8 interfaces om te controleren en te monitoren slaapboorten. Je kunt op 16 boorten met 1 BeagleBone Black te controleren. Dus er zijn verschillende proberen die je kan om de kleine connectoren op de boorten te doen. Een van die is de jack power control boort. Het is 2 standard DC jacks. Power gaat in op één kant. Power gaat uit op de andere kant. Het werkt voor widere voortdages. Het kan switchen tot 6 ampere op de grond. En dat is de 2e device voor USB power devices. Je hebt mini USB B in en plane USB A uit. Voor veel embedded boorten is het goed. Het mag niet goed zijn om je mainframe te switchen. Maar veel mensen werken niet op deze boorten. En er is ook een probleem om gewoon te measuren. Er is een kleine connector die je kunt op de boorten te measuren. En ze hebben ook een temperatuur probleem. Ik heb nog niet dat opgemaakt. Power consumption. Je kunt dat met de voortdages en de grond vervolgen op de device. Voortdages kan het makkelijk measuren. De grond moet je calculeren. Alle probleemen voor de beetje de jack en de USB containen en de device bevindt de voortdages op de register en dan kan het calculeren de grond en dan gebruik je omslout te calculeren op de power consumption. Ja, je kunt dat voor alle boorten gebruiken.  De laatste probleem hier je kunt ook individuele power rails op de boorten of de power gaat naar een component of iets zoals dat. Dat klinkt als een heel interessant device. De 2e gebouw in de boorten van je systeem zal een serial console zijn. Sommige boorten hebben nog legacy db9 of db25 serial dus je gaat gebruiken de USB serial deze dagen. Sommige boorten hebben pinheaders voor UART Sommige hebben een on-boort USB-to-serial converter voor 96 boorten. Je hebt de 96 boort UART expansion boort. Dus in general, we hebben met veel boorten. Dus voor Kevin Hillman dat was de 80 boorten, denk ik. Je had te makkelijk een serial console gebruiken. UDef rules om deftity iets neemt voor actual boorten. Een voorbeeld is daar. Je moet voorzichtig zijn met USB serial adapters. De boorten hebben eigenlijk dezelfde serial nummer in de USB-to-serial ship. Fortunatelijk gelijk voor internet kun je USB-devices door topologie gebruiken door deftity zodat je ze makkelijk kunt identificeren. Natuurlijk kan je de connectoren in je switch dan de deftity veranderen. Een andere component van je system zal een netwerk zijn. Dat gaat een internet switch en een wireless access point zijn. Dat is niet zo anders dan normaal Linux machine dus ik ga niet meer over het. De vierte component is interactie. Dit is de moeilijkste. Het is meestal input en controle. De input is een beetje moeilijk. Als je over de serial console gaat het gaat voor grafiek en multimedia. Je moet je creatieve en custom solutie veranderen. Voor interactie heb je switchen op de boorten. Je kan ze hebben om de boort te resetten en op de boort te veranderen. Je kunt een keypad hebben. En je kunt verschillende inputten op de boort gebruiken om interactie te maken. Het meest makkelijk zijn de female of male headers, zoals je hier ziet op de BeagleBone Black. Er zijn 2,54mm varianten en sommige boorten ook 2mm. Het kan een beetje moeilijker zijn als een connecteur en niet alleen een paar hoekopwires. Bijvoorbeeld de letteren van de DragonBoort. Soms mag je een onpopulated header op de boort hebben. Dat is eigenlijk niet zo moeilijk te veranderen. Je ziet hier een onpopulated header en hier een header dat ik het in mijnzelf voldoende kan. Je kunt daar een jump aanbieden. Op sommige boorten heb je een reset available op een testpunt.  Dan kan je een testklipp of een hoek te connecten op de boort en het remote controlen. Sommige boorten hebben alleen hoge density connecteurs. Ze zijn een beetje moeilijk te veranderen. Voordat je er ook een beetje moeilijk te veranderen is. Het alternatief is dat je probeert iets zelfs. Dat is wat ik hier heb gedaan op de protoboard. Op de boort heb ik een connecteur en ik heb ze in de kleinere hoekopwires soldeerd. Op de andere kant heb ik een header soldeerd. Als je deze route wilt gaan, de extreem hoekopwires zijn van een heel voortstof dat sommige mensen het solderen kunnen doen. Hier heb ik wat tips en trips. Als je niet een header hebt, waar de reset-signal is available bijvoorbeeld, dan kan je het solderen op de switch of wat andere componenten wat ik ook gebruik is dat als er een JTech-connecteur is, het heeft een reset lijn. Op sommige boorten is het alleen connecten met de CPU en op sommige boorten is het alleen connecten met de systemreset zodat je dat kunt gebruiken. Om een boort te wake-up om van RUM te verwijzen, moet je er een Free GPIO of een InterApp lijn. En je moet niet de switches gebruiken die je op de boort hebt. Met wat kleine modificaties op de DTech kun je ook een GPIO dat op een extreem connecteur naar een boton die een signal provides dat je wilt wake-up of key A of 1 of 7 of wat je wilt. Dus je kunt dat gebruiken om de solderen of de wire op de boort te switchen. Er zijn er wat te bekijken voor. Het switcht een soort signal door het gebouwen maar er zijn er wat cases waarom je het op hoog moet en de vraag is welke voltage want op sommige boorten heb je 1,8 volt je hebt ook 3,35 volt Je moet daar voorzien en ik had één boort met een interessant connecteur die alle signalen die ik nodig had maar één signal had op hoog te worden en de connecteur had geen positieve voltage. Dus ik had het op een andere boort waarom ik hier deze red wire had naar een positieve voltage naar een andere boort. Alle andere pinnen had ik om te aansluiten. Hier heb ik een voorbeeld van hoe je een arbitrary GPIO pin hebt en het in een wake-up key converteert.  Dus je moet geen solderen op de reale wake-up key op de boort. Het is gewoon voor referentie. Nu heb je al deze signalinputs die je voor alle boorten in je farm kan controleren. Natuurlijk heb je nog deze wires daar gaan en dan moet je een signal daar staan. Dus je kunt denken ik heb veel GPIO's op een andere development boort zodat ik dat kan gebruiken om certain signalen je kunt dat doen met of bezig met een transistor of MOSFET omdat je geen isolatie hebt tussen de boort controleren en alle andere boorten in de farm. Een tweede solution is gebruiken van een relay boort. Dus een relay is eigenlijk gewoon een elektromagnetisch controle switch. Je gaat nu naar de coil hier en dan verandert het switch daar. Dus je kunt dat gebruiken om te controleren met een signal naar de boort. Het geeft een heel goed isolatie. Je kunt de boort van een shop of van de internet deze advantages zijn dat je de klikking klikt en de relays switcht. Dus je wilt niet alle dag klikken. En nogmaals, ze kunnen overkillen voor input signalen want usually the relays are designed to switch higher current signals than what you need for a simple input switch op de boort. Een andere solution je kunt gebruiken is eigenlijk gewoon een LED en een fototransistor in dezelfde pakket. Dus je drijft de LED zoals andere LED met een current-resistor, een limitende resistor in de serie en als een licht uitkomt het detecteert hier en hier kunt je een soort signalen op de boort. Het geeft wat isolatie, minder dan een relay maar usually goed genoemd. Een advantage is dat je de relays switcht of whatever voltage signals die je gebruikt als nodig je kan nog een relay achter de fototransistor. Een ding die je moet kijken is de polariteit van de signalen want dit is een fototransistor dus de grond moet hier connecten als je een signal loopt als je een signal hoog hebt dan moet de positieve voltage daar gaan. En eigenlijk, dit is de solution die ik gebruik voor de boort voor ik maakte. Dus op de protoboard heb ik een aantal optocouplers gemaakt. Je kunt ze hier zien op de top. Dus deze zijn modules met vier optocouplers in elk pakket. Dus ik heb 8 in total. Dan gebruik ik de I2C GPIO expander.  Dus ik kan het connecten op de I2C bus op de Bigelbomb Black dat ik heb voor de ECME. Dus connecten hier voor de I2C. Ik kan de DC chain en ik heb twee connectoren met een led om te monitoren wat er gebeurt. En ik heb twee van die boort dus ik kan controleren 16 signalen in mijn vorm. Dan de eind component in je vorm zal zijn je management hose die ik vanaf heb gevoerd. In de past mensen gebruiken een oud PC of een betaald x86 boort. Maar deze dagen betaald development boort met arm CPU's en zo. Het wordt moeilijk om dat te handleen. Dus je kunt een sparen Bigelbomb Black of Raspberry Pi of wat je vliegt om dat te controleren. Dit is iets wat ik voor de Bigelbomb Black heb. Het heeft een serial console op een mailleder waar je gewoon de standard FTDI USB serial cable kan connecten. Maar het probleem met Bigelbomb Black is dat als je een capen op het top hebt dan kun je geen langer dat connectoren aansluiten. Dus ik heb wat dingen gehouden als Pogo pins. Dit zijn springloading pins. Ik maak die naar de standard FTDI cable. En als je dan de Bigelbomb Black op het top hebt pushen en er blijft een console terwijl de capen connecten. We praten een beetje over hoe ik de boort opbouwt. Dit is een beurtvuur, niet gelaten met Tim over de farm die ik nu heb. Dus op het centrum heb ik Bigelbomb Black. Dan heb ik 1, 2, 3, 4, 5, 6 development boort. Internet switch. USB hub. USB 2 serial met 4 ports. En dit zijn de 2 boort met optocouplers. Ik maak de input-signalen op de verschillende boorten. En als je voorzien de powerprobes voor de Akme hier zijn de kleine PCB's hier. Dus het is nog steeds meer of meer een prototype. Ik ben bezig om te beginnen te bouwen op een tafel om te zien hoeveel bedrijven ik echt nodig heb en de idee is om het te doen met wat rack of klozen of iets beter. Later. Een ding die hier missen en je niet ziet is de power supply. Zoals een boort komt met de power supply. En dan moet je de mall in een power bar en dan krijg je de rattenest. Dit is eigenlijk een batpictuur van de rattenest.  Sinds ik deze solution niet gebruik, heb ik niet één redelijk available. Dus ik heb de mock-up, maar het lijkt te klaar voor de realiteit. Maar als je 8 boorten netsovic en een USB hub en een Bigelbaum Black en wat meer dan dit is een bar met 11 uitleggers maar omdat de mall waarschijnlijk een beetje te groot is, dan heb je al twee van hem om alles te hebben. Dus ik was wonderen, kan we proberen op te doen iets cleaner. Dus de meeste boorten halen 5 of 12 volt al die ik heb. Maar ze gebruiken power connector type. Je kunt er verschillende voorten op dezelfde connector type. Je hebt verschillende polarities. Dus de jack dat is de meest populaire. En dat is ook de een die onder de akma- jack power groups is. De meeste zijn centra-positief dat betekent dat de pin de positieve voorten is maar niet alle van hem. En je moet voorzichtig zijn, natuurlijk. Een tweede type van connector zie je regelijk de Japanese EIAJ connector. De standaard zegt dat het centra-positief is. Er zijn vijf verschillende types van het. En het is echt leuk, omdat de types voor verschillende voorten zijn en ze ontwikkelen de connectors in zo'n manier dat je niet kan een nummer 4 in een nummer 2 maken. Dat is goed. Does anybody know what 96 boards use as a power connector? Which one? No, nobody tried. It's the number 3, but be careful. Don't insert the power supply for the 96 boards to check into some other board that uses a number 3 connector because you may provide too much too high voltage. En some boards use USB power. For several of these jacks you're going to need a conversion cable or an adapter if you want to use it with ACME because the power probes only support the most common power check. And if you have a center negative board or something like that then you have to make your own cable, probably. So if you have many boards that don't use a power connector and they have the same power connector then you could, for example, use a power to USB hub if you have a be a will of Raspberry Pi they don't consume that much power so you can power them from USB hub.  If you have boards with the DC jack and they all use the same voltage and they don't use more than 2 ampere then you can use a splitter like it's shown here. So usually by a splitter they don't advertise how much current can go through it. So if you have a higher power board be careful. So what I was looking into having a single power supply instead it would make things much easier. So I went over what do I need. So I had 8 boards, the management host and control hardware and I added up the numbers and I arrived at 13 ampere for 5 volt in total. Those are absolute maximum ratings based on the power adapters I had for the various boards. I thought about getting a lot of power supply but usually they don't provide such high currents they're also not that cheap so I was thinking about getting a PC power supply and that sounds nice. PC power supply has multiple output voltages. Usually it has 5 volts for you. It's 12 volts. On some older power supplies you may have two different separate rails for 12 volts so you have to be a bit careful if you that you don't connect them together. PC power supply also has some other voltages you may have a use for or not like 3.3 volts. It could be useful for a Texas instrument launch pad or something like that. We also provide minus 12 volts but that's not so useful these days anymore nobody uses the real RS232 anymore. PC power supply also provides a few interesting features for management host so it provides 5 volts of standby power that's usually limited to 2 or 2.5 ampere but it's more than enough to power a bigger one black. And PC power supply has a soft power on signal if you tie it to ground then it will power on. If it's not tied to ground it will be power off but the standby power is still there so your management host can keep on running. There are some things you have to watch out for with the PC power supply especially with older ones they don't want to power on if there's not enough load on the power rails.  You could add some load like some high power load resistors or power internet switch of something like that but the newer ones work fine with zero load so the one I got it advertised as having Haswell C6C7 zero load support and if it has that then it means that it should just work without any load at all. 