Linuk, Openembedded i 'embedded-sistemi'

Zdravo drugari,

zeleo bih da startujem pricu o adaptaciji linuksa i kompajliranju kernela za proprietarne sisteme, takozvane embedded-sisteme. To bi trebala da bude malo ozbiljnija diskusija, tako da se opste raumevanje operativnog sistema linuksa podrazumeva.

U firmi, gde sam se zaposlio pre nekoliko godina, mi komercijalno koristimo svoju Distribuciju Linuksa na proprietarnoj platformi, tojest hardweru koji smo mi razvili. Meni bi stalo do toga da ovde zajedno izradimo put o bejsiksima potrebnim za:

[LIST]
[*]Konfiguraciju Kernela

[*]Kompajliranje Kernela
[/LIST]
Openembedded , kao glavni Projekat za adaptaciju Linuksa bih hteo da uvedem u pricu.

Cilj mi je da se stvori skup informacija potrebnih za start nekih mozda malo ambicijonih projekata. Kao Platformu bih predlozio da se koristi Racunaric Raspberry-Pi, koji nije nedostupan ili strasno skup. Ima li zainteresovanih?

Pozdrav svima!

Razmisljam kako bih mogao da motivisem clanove foruma, da se ova tema obradi;-)
Ako bi sastavili tim, da obradi ovu temu i dokumentise je adekvatno mozda bi donacija nprm. projektu TRIOS-a sa moje strana bila zahvala za rad. Tema nikako nije hitna, ali sigurno aktuelna…Meni je motivacija, da se stvori skup informacija.

Pretpostavjam da su domacini ovog foruma obuhvaceni svojim obavezama, tako da nemam nekih specijalnih ocekivanja. Nego cisto radi zezanja startujem tu Temu.

Pozdrav svima!

To mogu nprmr biti komercijalni projekti, sto da ne…Vrsta zajebancije po mome.
Ja cu uskoro zapoceti tutorial, pa ko’ stigne nek’ ubaci sa strane sta zna…

Ja sam u neku ruku zainteresovan za temu, a ti pisi polako, pa ce nekada nekome biti od koristi. BTW, ne mislm da je termin “proprietary” odgovarajuci za hardware. Hardware moze biti zasticen i patentima a da je od pocetka podrzan softverom otvorenog koda pod odgovarajucom licencom. Raspberry pi moze da se pazari i u Bgd Mikro Princ | RaspberryPi | Računari | Računari i oprema | on-line prodavnica

Trenutno se pripremam za BananaPro LeMaker | The Single Board Computers Community[/URL] (ARM Cortex) jer ima gigabitnu mreznu karticu (cekam samo jos kuciste i jedan kabl, ostalo je vec stiglo) i na njemu cu probati razlicite Linukse i FreeBSD, a provericu da nije slucajno i OpenBSD podrzan. Pre toga moram da na edge router [URL=“https://www.ubnt.com/edgemax/edgerouter-lite/”]Ubiquiti Networks - EdgeRouter™ Lite (Cavium Octeon) instaliram OpenBSD. Sinoc sam se zabavljao povezujuci faillover (a.k.a. cisco) kablom njega i desktop.

Bilo bi lepo da firma donira hardware domacoj Linuks distribuciji. Koliko ja vidim, TRIOS je vrlo ozbiljan projekat, ali nisam siguran koliko je fokusiran na rad na embeded sistemima. (Na tu temu Bitrig[/URL] i [URL=“http://www.netbsd.org”]The NetBSD Project ). No, ako firma donira hardware, pa jos i ako finansira, ili zaposli nekog (ili nekoliko njih :smiley: ), samo nebo je granica.

Do sada ništa nije probano na tu temu, što ne znači da je nemoguće :slight_smile:
No, embeded sistemi su specifični zbog neophodnog visokog nivoa optimizacije za određeni hardver, a to zahteva ozbiljan rad tokom punog radnog vremena, pristup hardveru, inženjere uslove…nisam siguran da li je bilo ko spreman to da plaća ovde u Srbiji :wink:
Npr…minimum 5 ljudi (2 inženjera+2 sistem programera + vođa projekta…) x 3-4 k€ po zaposlenom (mesečno, naravno…) + doprinosi + troškovi + prostor, pa sve to x 6-12 meseci intenzivnog rada…da li je neko spreman da uloži 150-200 k€ u razvoj sopstvenog embeded sistema pored toliko već postojećih na tržištu? A cifra je prosto simbolična u odnosu na ono što je uobičajeno u normalnom svetu u toj oblasti…milioni se ulažu i to bez ikakvih garancija da će se nešto probiti na tržištu.
No, mi nismo normalan svet, pa je najbolje da TRIOS ostane tamo gde jeste :wink:
@Jovan
Radi ćemo prihvatiti donaciju u hardveru, ako je to neki ozbiljan server… :wink:

Kao što kaže @bestragamuglava ti kreni kako misliš a ljudi će se po svom nahođenu ili uključivati ili ne. Mene iskreno tema zanima…

Inače ako je neko baš baš baš, kada kažem BAŠ onda mislim upravo na to BAŠ zagrižen za razvoj embeded sistema u saradnji sa jednom CNC mašinom i ima znanja da implementira aplikativni deo i poveže ga sa mašinom i sa hardverom… neka se javi ovde pa mogu čoveka koji radi razvoj takve mašine a želi da upravljački sistem bude na unix-u, uključim ovde u diskusiju.

Inače je to strogo komercijalno rešenje pa osim realizacije za koje Vam trebaju veštine, predpostavljam da ima mesta i za dobru zaradu.

Izvinjavam se, malo zaostajem radom; Cisto mi fali vreme…

Na kakav Hardware si mislio? Kako bi to moglo da se izvede…Moze im PM.

@Vladimir:

Hvala ti za podrsku…

@Dragan:

Mislim da je sav normalan svet Clanova FOSSA u srbiji u situaciji da se pozabavi sa ovom temom. Sigurno je potrebno nekoliko kreativnih licnosti, sa tim se slazem. Jedina namena ovom tredu je po mom, da se stvori baza znanja oko te teme…

Ajd da pocnemo ovako - kakav bi mogao da izgleda sistem koji cemo da stvorimo?

Kao prvo da vam pokazem namenu tkzvn. Embeded Sistema, slicnom toj koju je vec Vlada korektno opisao…Ovo je prvi rezultat koji sam nasao na guglu, poznata mi je Masina i slucajno znam da je operativni sistem linuks…Sistem je namenjen za razne varijante masine i ima ekran na touch od nekih 5-6 zoli…Haptika je slicna obicnim Android sistemima. GUI(=‘Graphical User Interface’) mu je radjen sa QT-Frejmwork-om
Namena masine je hladjenje/grejanje raznoraznih eksternih aplikacija/Nprm. hemiskih reaktora, masina itd…

detail_pilot-one4.jpg

detail_pilot-one5.jpg

Sem sto mu lepo izgleda GUI, ovaj sistem upravlja masinom. Taj proces, koji je inace aktivan u pozadini koristi za to razno razne aktore/sensore kojima moze da komunicira. Standardni protokol za ovakve Masine je trenutno CAN, koji realizuje Fizikalni i Transportni Sloj po mom razumevanju.
Aktor je naprimer Modul koji upravlja jednim ventilom ili motorom a sensor nprmr Termometar…

Evo vam primer jedne aplikacije…

24777_1.jpg

Posto i mene licno ova tema zanima, a adaptacija linuksa bas nije moj specijalitet moze da se desi u toku obrade ove teme, da cemo se ponekad vrteti u krug, da su neke stvari nedovoljno ili pogresno opisane. Iskreno se nadam, da ce mi se to oprostiti. Samo jos jednom da vas podsetim…

Ovo je istina. Znaci u samom startu bi trebali da razlikujemo softver po tipovima licence, po kojima se vodi taj isti. Zasto?
Zato jer ne sme da se koristi Softver za sve namene, iako je opensource - a narocito ne za komercijalne produkte. Evo vam malo materijala, za dalje studije na tu temu za zainteresovane.

Toliko za sad o tome. Ko zaista zeli da projektuje komercijalne sisteme, tome bi preporucijo da se konsultuje sa advokatom specijalizovanim na tom polju posto su velike ristrikcije. A obaveze koje koriscenje opensource softver-a se izuztno moraju postovati.

Da se vratim na temu…

Ajd da opisemo minimalne Funkcije, koje bi taj sistem morao da podrzava za pocetak(Mozda cemo u nekoj drugoj epizodi dodati jos neke Funkcije):
[LIST]
[]Ne treba mi u startu nikakva Desktop aplikacija kao KDE ili slicno tome, posto nam je dovoljan sam shell za pocetak
[
]Zeleo bi, da podrzava C, C++, Qt5, Perl and Python kao Jezike i Alatke kojima se u glavnom koristim
[]Zeleo bi da imam ‘package’-menadzera(apt kod ubuntu-a nprm)
[
]I narocito klasicne Linuks Alatke(SSH, make, itd…)
[/LIST]

Jedna vazna informacija - pripremite racunare za kross-kompajliranje koda, to znaci vec za ‘build’ ili pravljene Aplikacija za nas raspberi. Zasto?
Obicna Linuks distribucija donosi svoje Alatke (Kompajlere, Linker itd.) za pravljenje Aplikacija, koje su iskljcivo namenjene za taj sistem, na kome je instalirana ta ista.

Pamti:
Pripremi Alatke!!Dal’ priprema Pecenja, pecenje Paprike za Ajvar ili nesto trece, bez prave opreme uspeha nema:)

Kako se to izvodi, o tome cu kasnije, posto kao prvo moramo da stvorimo sam sistem na koj bi smo posle da ubacujemo aplikacije.

Treba nam sada ‘Build Sistem’. Ja bih za to da koristim Yocto. Evo da izrecitujem:

[SIZE=6]Openembedded Core[/SIZE]
OpenEmbedded Core contains base layer of recipes, classes and associated files that is meant to be common among many different OpenEmbedded-derived systems, including the Yocto Project. This set of metadata is co-maintained by the Yocto Project and the OpenEmbedded Project.

Na strani[/URL] tog projekta mozete da skinete taj [URL=‘https://www.yoctoproject.org/downloads/core/krogoth21’]sistem.

To je najnovija verzija Yocto-Sistema “Krogoth” i sadrzava:

OpenEmbedded -> “krogoth”
BitBake->1.30
poky->15.0

Trebao bih mozda da spomenem za one, koji u samom startu ne zele da daju pare za Raspberri pi, da postiji mogucnost virtualizacije.

Pregledna Stranica sa opstim informacijama o Yocto-Projektu…

Jos jednom da recitujem:

The Yocto Project can generate images for many kinds of devices. However, the standard example machines target QEMU full-system emulation for x86, x86-64, ARM, MIPS, and PPC-based architectures as well as specific hardware such as the Intel® Desktop Board DH55TC. Because an image developed with the Yocto Project can boot inside a QEMU emulator, the development environment works nicely as a test platform for developing embedded software.

[SIZE=5]What You Need and How You Get It[/SIZE]
You need these things to develop projects in the Yocto Project environment:

[LIST]
[]A host system with a minimum of 50 Gbytes of free disk space that is running a supported Linux distribution (i.e. recent releases of Fedora, openSUSE, CentOS, Debian, or Ubuntu). If the host system supports multiple cores and threads, you can configure the Yocto Project build system to significantly decrease the time needed to build images.
[/LIST]
[LIST]
[
]Appropriate packages installed on the system you are using for builds.
[/LIST]
[LIST]
[*]A release of the Yocto Project.
[/LIST]

Evo jos Link za dokumentaciju Yocto-Projekta->tkzv. Referfence Man.

Samo da pitam - dali je to onda domaci proizvod? Ili to vrsta usluge za razvijanje softver-a za strane Firme? To bi me bas zanimalo;-)

Sta bi mozda jos bilo zanimljivo:
Koja je to vrsta aplikacije? Dali se radi o komunikaciji i vizualizaciji ili i o upravljanju i regulisanjem motora i daljih aktora?To su dve razlicite vrste specijalizacije…po mom misljenju…

Toliko za sad! Pozdrav svima!!!

Čini mi se da je domaći proizvod odnosno 90% sam siguran da će to biti investirano u srpskoj proizvodnji, nisu stranci u pitanju, mašina se razvija u Srbiji u saradnji sa našim ljudima a naravno komercijalizacija će sasvim sigurno u nekom daljem planu ići za inostranstvo jer Srbija je mali potrošač takvih namenskih mašina.

Vrsta aplikacije je zapravo mašina za mašinski vez i radi se o upravljanju i regulisanju i sinhrozniaciji različitih elemenata što step motora što senzora kojih ima nekoliko stotina. Međutim za razvoj ovakve mašine, programer em što mora da poznaje savršeno preciznu mehaniku (da bi razumeo vrlo dobro šta mu inžinjer/mehaničar govori i traži da programira, dozvoljena odstupanja su 0.01-0.03cm), mora pritom da poznaje savršeno tekstil i osnove tekstila i principe šivenja… uzgred mora da zna da programira na Unix-u :wink:

Zdravo Dragane,

Eto i na tvoj post da odgovorim, bilo bi samo fer, ako si se vec uklucio;.)

Slazem se u svemu, samo da dodam;-)

[LIST=1]
[*]Tu ima velike zarade. Pretpostavljam da hardver za kontroller, koj sam prestavio, sa sve tacom i produkcijom ne kosta vise od 100 evra - a sto i zavisi i od zemlje, gde se proizvodi. Tako da bi ta cena, ako vec pricamo o optimizaciji, cak mogla da bude 20-30% manja. Iaoko nemamo taj stepen automatizacije,koji postoji vec u inostranstvu. U prodaji se sigurno ispod 500-600 evra nece naci. Kome nije poznat sistem u busevima gradskog prevoza u beogradu? To je jedna dalja namena.

[]Potrebna je infrastruktura za produkciju: To znaci da bi u nekom malo vecem krugu mnogo ljudi imali neki profit od toga.
[
]Postoji nekoliko stotina tona aplikacija. Ne mora da bude odma neka masina visokog kompleksiteta.
[*]Za finansiranje projekta postoje razne mogucnosti. Naj atraktivnije je u ovakvoj situaciji “crowdfunding” sto je i veoma popularno.
[/LIST]

Ne verujem da je kod nas u srbiji nivo plate 3-4k€. Za razvoj hardvera nisu bas potrebna tolika ulaganja. Pored ovoga [/URL]i [URL=‘http://beagleboard.org/bone’]ovoga postoje sigurno dosta dizajna, koji mogu bez ikakvih problema da se koriste kao referenc - tu si u pravu. To znaci da bi razvoj softvera/sistema mogao da napreduje do nekog visokog stepena sa demonstratorima. Najveca ulaganja su vec u sam marketing i sam proces dobijanja dozvole za prodaju u odredjenim zemljama. Ali i tu postoje mogucnosti.Po mom misljenju grupa zainteresovanih i angazovanih inzinjera/studenata koji se opredele za embeded sisteme i koji imaju predispozicije bi mogli vrlo dobro da napreduju. Naravno bez garancije za uspeh.

Secam se jedne price, gde 30% projekata na kraju prezive. Ta cifra je realna. Teoretski to znaci, ako 10 Projekata startujem, tri bi trebala da uspeju;-)
To bi rekao optimista.

“mora pritom da poznaje savršeno tekstil i osnove tekstila i principe šivenja”
To mi se cini, da je veoma specificno, da pitam Kevu da me uvede u tu pricu;-)?

Ja se licno interesujem i zelim da se opredelim za projektovanje elektronike u samoj masini. Dal je za sivanje ili neku drugu aplikaciju, za sad nije bas toliko vazno. To ce biti vazan kriterijum za sledeci put kad budem imao zelju da menjam radno mesto.