Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

የተግባር ታሪክ

በአንድ በኩል አነስተኛ መጠን ያላቸው ኩባንያዎች በመሠረተ ልማታቸው ላይ ከፍተኛ ጥራት ያለው ክትትል ያስፈልጋቸዋል (በተለይም በሰፊው ቨርቹዋልላይዜሽን) በሌላ በኩል አዳዲስ መሣሪያዎችን ለመግዛት በገንዘብ ረገድ አስቸጋሪ ነው. እንዲሁም ብዙውን ጊዜ በአገልጋዩ / ሃርድዌር ላይ ችግሮች አሉ-ብዙውን ጊዜ ከ1-3 ማማ-ሰርቨሮች ከተጠቃሚ የስራ ጣቢያዎች አጠገብ ወይም በትንሽ ቦታ / ቁም ሳጥን ውስጥ።

ዝግጁ የሆነ ስብሰባ (ማከፋፈያ ኪት) መጠቀም ቀላል ነው, ይህም ወደ ማይክሮ ኤስዲ ካርድ ለመስቀል እና ወደ አንድ የተለመደ ነጠላ-ቦርድ ኮምፒዩተር (ቤግልቦን, ራፕቤሪ ፓይ እና ብርቱካን ፒ ቤተሰቦች, አሱስ ቲንከር ቦርድ) ውስጥ ማስገባት በቂ ነው. በተጨማሪም, እንደዚህ ያሉ መሳሪያዎች ርካሽ እና በማንኛውም ቦታ ሊጫኑ ይችላሉ.

የችግሩ ቀመር

በብዙ መልኩ ፕሮጀክቱ ውጤቱን የመተግበር እድል ያለው እንደ የላብራቶሪ ሥራ ዓይነት አዘጋጅቷል.

ዛቢክስ ኃይለኛ፣ ነፃ እና በደንብ የተመዘገበ ስርዓት በመሆኑ እንደ የክትትል ስርዓት ተመርጧል።

ጥያቄው የተነሣው ከሃርድዌር መድረክ ጋር ነው።የተለየ ማሽን በክትትል ውስጥ ማስቀመጥም ጥሩ መፍትሔ አይደለም - ወይ አዲስ መሣሪያ መግዛት ውድ ነው፣ ወይም አሮጌ መሣሪያዎችን መፈለግ + በትናንሽ ድርጅቶች ውስጥ ከአገልጋዩ / ሃርድዌር ጋር ብዙ ጊዜ ችግሮች አሉ።

የ buildroot ግንባታ ስርዓትን በመጠቀም ስለ ሊኑክስ ኦኤስ ቤተሰብ ቤተሰብ እውቀት ባላቸው ሰራተኞች ሊሰሩ የሚችሉ ብጁ መፍትሄዎችን እንዲፈጥሩ ያስችልዎታል። ይህ ስርዓት ለጀማሪ ተስማሚ ነው, ግን በተመሳሳይ ጊዜ ልምድ ባለው ገንቢ እጅ ለማበጀት ሰፊ እድሎችን ይሰጣል. ውድ ያልሆነን ችግር ለመፍታት ፍጹም ነው፣ ነገር ግን የአይቲ መሠረተ ልማትን ሙሉ-ተለይቶ የመከታተል፣ ይህም ለሚሠሩት ሠራተኞች አነስተኛ ሥልጠና የሚያስፈልገው።

የመፍትሄ እርምጃዎች

ይህ ምቹ እና ፈጣን ማረም መፍትሄ ስለሆነ መጀመሪያ ላይ ለ x86_64 qemu ውስጥ እንዲሰራ ፈርምዌር እንዲፈጠር ተወስኗል። ከዚያ ወደ ክንድ ነጠላ-ቦርድ ኮምፒዩተር ያውርዱት (የ asus tinker ቦርዱን ወድጄዋለሁ)።

buildroot እንደ የግንባታ ስርዓት ተመርጧል. መጀመሪያ ላይ የዛቢክስ ፓኬጅ ይጎድለዋል, ስለዚህ ወደብ ማድረግ ነበረብኝ ከሩሲያ አከባቢ ጋር የተያያዙ ችግሮች ነበሩ, ይህም ተገቢውን ጥገና በመተግበር ተፈትቷል (ማስታወሻ: በአዲሶቹ የግንባታ ስሪቶች ውስጥ, እነዚህ ጥገናዎች ከአሁን በኋላ አያስፈልጉም).

የዛቢክስ ፓኬጅ ማጓጓዝ በራሱ በተለየ ጽሑፍ ውስጥ ይገለጻል.

ሁሉም ነገር እንደ ፈርምዌር (የማይለወጥ የስርዓት ምስል + ሊመለሱ የሚችሉ የውቅር ፋይሎች / ዳታቤዝ) መስራት ስላለበት የራሳችንን የስርዓት ኢላማዎች ፣ አገልግሎቶች እና ሰዓት ቆጣሪዎች (ዒላማ ፣ አገልግሎት ፣ ሰዓት ቆጣሪ) መጻፍ አስፈላጊ ነበር ።

ሚዲያውን በ 2 ክፍሎች ለመከፋፈል ተወስኗል - የስርዓት ፋይሎች ያለው ክፍል እና ሊለዋወጡ የሚችሉ ውቅሮች እና የዛቢክስ የውሂብ ጎታ ፋይሎች ያሉት ክፍል።

ከመረጃ ቋቱ ጋር የተያያዙ ችግሮችን ለመፍታት ትንሽ አስቸጋሪ ሆኖ ተገኘ። በቀጥታ በአገልግሎት አቅራቢው ላይ ለማስቀመጥ ትንሽ ፍላጎት አልነበረም። በተመሳሳይ ጊዜ የመሠረቱ መጠን ሊደርስ ከሚችለው ራምዲስክ መጠን በላይ የሆነ መጠን ሊደርስ ይችላል. ስለዚህ, የስምምነት መፍትሄ ተመርጧል-መረጃ ቋቱ በ sd ካርዱ ሁለተኛ ክፍል ላይ ይገኛል (የዘመናዊው የኤስ.ኤል.ሲ ካርዶች እስከ 30 የሚደርሱ ዑደቶች ይፃፉ) ፣ ግን ውጫዊ ሚዲያን እንዲጠቀሙ የሚያስችልዎ መቼት አለ (ለምሳሌ ፣ usb- hdd)።

የሙቀት ቁጥጥር በ RODOS-5 መሳሪያ በኩል ተተግብሯል. እርግጥ ነው፣ ዳላስ 1820ን በቀጥታ መጠቀም ትችላለህ፣ ነገር ግን ዩኤስቢ ለመሰካት ፈጣን እና ቀላል ነበር።

grub86 ለ x64_2 እንደ ማስነሻ ተመረጠ። ለማሄድ አነስተኛ ውቅር ለመጻፍ ያስፈልግ ነበር።

qemu ላይ ካረመ በኋላ፣ ወደ asus tinker ሰሌዳ መላክ ተከናውኗል። በእኔ ተደራቢ መዋቅር ውስጥ መስቀል-ፕላትፎርም መጀመሪያ ላይ ተቀምጧል - ለእያንዳንዱ ቦርድ የተወሰኑ ውቅሮች ምደባ (ቦርድ defconfig, ቡት ጫኚ, የስርዓት ክፍልፍል ጋር ምስል ማመንጨት) እና የፋይል ስርዓት ማዋቀር ውስጥ ከፍተኛው monotony / ውሂብ ጋር ምስል መፍጠር. . ከዚህ ዝግጅት አንፃር፣ ፖርቲንግ በፍጥነት ሄደ።

የመግቢያ መጣጥፎቹን ለማንበብ በጣም ይመከራል-
https://habr.com/ru/post/448638/
https://habr.com/ru/post/449348/

እንዴት መሰብሰብ እንደሚቻል

ፕሮጀክቱ በ github ላይ ተከማችቷል
ማከማቻውን ከዘጉ በኋላ የሚከተለው የፋይል መዋቅር ተገኝቷል

[alexey@comp monitor]$ ls -1
buildroot-2019.05.tar.gz
overlay
README.md
run_me.sh

buildroot-2019.05.tar.gz - ንጹህ buildroot መዝገብ ቤት
ተደራቢ የእኔ ውጫዊ-የዛፍ ማውጫ ነው። buildroot ን በመጠቀም firmware ን ለመሰብሰብ የሚያስፈልግዎ ነገር ሁሉ የሚከማችበት በውስጡ ነው።
README.md - የፕሮጀክቱ መግለጫ እና መመሪያ በእንግሊዝኛ።
run_me.sh የግንባታ ስርዓቱን የሚያዘጋጅ ስክሪፕት ነው። ግንባታውን ከማህደሩ ውስጥ ያሰፋዋል ፣ በላዩ ላይ ተደራቢ ያያይዙ (በውጭ-ዛፍ ዘዴ) እና ለግንባታው የታለመውን ሰሌዳ እንዲመርጡ ያስችልዎታል።

[0] my_asus_tinker_defconfig
[1] my_beaglebone_defconfig
[2] x86_64_defconfig
Select defconfig, press A for abort. Default [0]

ከዚያ በኋላ ወደ buildroot-2019.05 ማውጫ ብቻ ይሂዱ እና የማድረጊያ ትዕዛዙን ያሂዱ።
ግንባታው ከተጠናቀቀ በኋላ ሁሉም የግንባታ ውጤቶች በውጤት/ምስሎች ማውጫ ውስጥ ይሆናሉ፡-

[alexey@comp buildroot-2019.05]$ ls -1 output/images/
boot.img
boot.vfat
bzImage
data
data.img
external.img
external.qcow2
grub-eltorito.img
grub.img
intel-ucode
monitor-0.9-beta.tar.gz
qemu.qcow2
rootfs.cpio
sdcard.img
sys
update

የሚያስፈልጉ ፋይሎች፡-

  • sdcard.img - ወደ sd ካርዱ ለመጻፍ የሚዲያ ምስል (በ wibdows ሾር በ dd ወይም rufus በኩል)።
  • qemu.qcow2 - በqemu ውስጥ የሚሠራ የሚዲያ ምስል።
  • external.qcow2 - የውሂብ ጎታ ውጫዊ ሚዲያ ምስል
  • Monitor-0.9-beta.tar.gz - በድር በይነገጽ በኩል ለማዘመን መዝገብ ቤት

በእጅ ማመንጨት

ተመሳሳዩን መመሪያ ብዙ ጊዜ መፃፍ ዋጋ የለውም። እና በጣም አመክንዮአዊው ነገር አንድ ጊዜ በማርክ ላይ መፃፍ እና ከዚያ ወደ ፒዲኤፍ ለማውረድ እና ለድር በይነገጽ html መለወጥ ነው። ይህ ለፓንዶክ ፓኬጅ ምስጋና ይግባው.

በተመሳሳይ ጊዜ የስርዓቱ ምስል ከመሰብሰቡ በፊት እነዚህን ሁሉ ፋይሎች ማፍለቅ ያስፈልግዎታል, እነዚያ ከግንባታ በኋላ ያሉ ስክሪፕቶች ቀድሞውኑ ምንም ፋይዳ የሌላቸው ናቸው. ስለዚህ, ትውልዱ የተሰራው በጥቅል ማኑዋሎች መልክ ነው. በተደራቢ/ጥቅል/በመመሪያዎች ውስጥ ማየት ይችላሉ።

manuals.mk ፋይል (ሁሉንም ስራ የሚሰራ)

################################################################################
#
# manuals
#
################################################################################

MANUALS_VERSION:= 1.0.0
MANUALS_SITE:= ${BR2_EXTERNAL_monitorOverlay_PATH}/package/manuals
MANUALS_SITE_METHOD:=local

define MANUALS_BUILD_CMDS
    pandoc -s -o ${TARGET_DIR}/var/www/manual_en.pdf ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
    pandoc -f markdown -t html -o ${TARGET_DIR}/var/www/manual_en.html ${BR2_EXTERNAL_monitorOverlay_PATH}/../README.md
endef

$(eval $(generic-package))

ስርዓት

የሊኑክስ አለም በንቃት ወደ ሲስተምድ እየተንቀሳቀሰ ነው፣ እኔም ማድረግ ነበረብኝ።
ከአስደሳች ፈጠራዎች - የሰዓት ቆጣሪዎች መኖር. በአጠቃላይ የተለየ ጽሑፍ ስለእነሱ (እና ስለእነሱ ብቻ ሳይሆን) እየተፃፈ ነው, ግን ስለእነሱ በአጭሩ እናገራለሁ.

በየጊዜው መከናወን ያለባቸው ድርጊቶች አሉ. የlighttpd እና php-fpm ምዝግብ ማስታወሻዎችን ለማጽዳት ሎጎሮቴትን ማሄድ ነበረብኝ። በጣም የተለመደው በክሮን ውስጥ ትዕዛዞችን መፃፍ ነው፣ ነገር ግን የስርዓተ-ነገር ነጠላ ሰዓት ቆጣሪ ለመጠቀም ወሰንኩ። ስለዚህ ሎጎሮቴት ከጠንካራ የጊዜ ክፍተት በኋላ ይሠራል.

እርግጥ ነው, በተወሰኑ ቀናት ላይ የሚቃጠሉ የሰዓት ቆጣሪዎችን መፍጠር ይቻላል, ግን አላስፈለገኝም.
የሰዓት ቆጣሪ ምሳሌ፡-

  • የሰዓት ቆጣሪ ፋይል
    
    [Unit]
    Description=RODOS temp daemon timer

[ሰዓት ቆጣሪ] OnBootSec=1ደቂቃ
OnUnitActiveSec=1ደቂቃ

[ጫን] በ = የሰዓት ቆጣሪዎች ዒላማ

- Файл сервиса, вызываемого таймером:
```bash
[Unit]
Description=RODOS temp daemon

[Service]
ExecStart=/usr/bin/rodos.sh

የሚደገፉ ሰሌዳዎች

Asus tinker board ሁሉም ነገር መስራት ያለበት ዋናው ሰሌዳ ነው. እንደ ርካሽ እና በጣም ኃይለኛ ሆኖ ተመርጧል.

ቢግልቦን ጥቁር ስራው የተሞከረበት የመጀመሪያው ሰሌዳ ነው (የበለጠ ኃይለኛ ሰሌዳ በሚመረጥበት ጊዜ)።

Qemu x86_64 - ለማረም ልማት ስራ ላይ ይውላል።

እንዴት እንደሚሰራ

በሚነሳበት ጊዜ የሁለት-ደረጃ የቅንብሮች እድሳት አለ፡-

  • የ settings_restore ስክሪፕት ማስጀመር (በአገልግሎት በኩል)። መሰረታዊ የስርዓት ቅንጅቶችን ወደነበረበት ይመልሳል - የሰዓት ሰቅ ፣ የአካባቢ ፣ የአውታረ መረብ ቅንብሮች ፣ ወዘተ.
  • የዝግጁን ስክሪፕት ማስጀመር (በአገልግሎቱ በኩል) - zabbix, የውሂብ ጎታ እዚህ እየተዘጋጀ ነው, አይፒው በኮንሶል ውስጥ ይታያል.

በመጀመሪያው ጅምር ላይ የ sd ካርዱ ሁለተኛ ክፍል መጠን ይወሰናል. አሁንም ያልተመደበ ቦታ ካለ, ሚዲያው እንደገና ተከፍሏል, የውሂብ ክፍልፋዩ ሁሉንም ነጻ ቦታ ይይዛል. ይህ የሚደረገው የመጫኛውን ምስል (sdcard.img) መጠን ለመቀነስ ነው. እንዲሁም የ postgresql የስራ ማውጫ በዚህ ነጥብ ላይ ተፈጥሯል። ለዚህም ነው በአዲስ ሚዲያ የመጀመርያው ጅምር ከቀጣዮቹ ይልቅ የሚረዝመው።

ውጫዊ ድራይቭን በሚያገናኙበት ጊዜ በሚነሳበት ጊዜ ነፃ ድራይቭን ይፈልጋል እና በ ext4 ውስጥ በውጫዊ መለያ ይቀርፀዋል።

ትኩረት! ውጫዊ ድራይቭን ሲያገናኙ (እንዲሁም ግንኙነቱን ሲያቋርጡ ወይም ሲቀይሩት) ምትኬ ማስቀመጥ እና ቅንብሮቹን ወደነበሩበት መመለስ ያስፈልግዎታል!

የ RODOS 5 መሳሪያው የሙቀት መጠኑን ለመከታተል ጥቅም ላይ ይውላል, አምራቹ ከመሣሪያው ጋር አብሮ ለመስራት የፍጆታውን ምንጭ ኮዶች ያቀርባል. ስርዓቱን ሲያበሩ የሮዶስ ጊዜ ቆጣሪው ይጀምራል, ይህ መገልገያ በደቂቃ አንድ ጊዜ ይሰራል. የአሁኑ የሙቀት መጠን ወደ /tmp/rodos_current_temp ፋይል ይፃፋል፣ከዚያም ዛቢክስ ይህን ፋይል እንደ ዳሳሽ መከታተል ይችላል።

የውቅረት ማከማቻ ሚዲያው ወደ /የውሂብ ማውጫ ተጭኗል።

ስርዓቱ ሲጀምር እና ለስራ ሲያዘጋጅ የሚከተለው መልእክት በኮንሶሉ ውስጥ ይታያል፡-

System starting, please wait

የዝግጅት ስራው ከተጠናቀቀ በኋላ ወደ አይፒ አድራሻው ውጤት ይለወጣል.

current ip 192.168.1.32
Ready to work

ለሙቀት ክትትል zabbix ማዋቀር

የሙቀት መጠኑን ለመቆጣጠር 2 እርምጃዎችን መውሰድ በቂ ነው-

  • የ RODOS መሣሪያን ከዩኤስቢ ወደብ ጋር ያገናኙ
  • በ zabbix ውስጥ የውሂብ ንጥል ይፍጠሩ

የ zabbix ድር በይነገጽን ይክፈቱ፡-

  • ክፍልን ይክፈቱ ውቅር → አስተናጋጆች
  • በእኛ zabbix አገልጋይ መሾመር ላይ ንጥሎችን ጠቅ ያድርጉ
  • ንጥል ፍጠር የሚለውን ጠቅ ያድርጉ

Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

የሚከተለውን ውሂብ ያስገቡ፡-

  • ስም - ለእርስዎ (ለምሳሌ አገልጋይ ክፍል ቴምፕ)
  • ዓይነት - zabbix ወኪል
  • ቁልፍ - ሮዶስ
  • ዓይነት-ቁጥር
  • ክፍሎች-ሲ
  • የታሪክ ማከማቻ ጊዜ - የታሪክ ማከማቻ ጊዜ። 10 ቀናት ቀርቷል
  • የአዝማሚያ ማከማቻ ጊዜ - ለተለዋዋጭ ለውጦች የማከማቻ ጊዜ። 30 ቀናት ቀርተዋል።
  • አዲስ መተግበሪያ-የአገልጋይ ክፍል ሙቀት

እና የ ADD አዝራሩን ይጫኑ.
Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

ቅንብሮችን በድር በይነገጽ ያቀናብሩ

የድር በይነገጽ በ php ውስጥ ተጽፏል. ዋና ተግባራት አሉ:

  • የመሣሪያውን ሁኔታ ይመልከቱ
  • የአውታረ መረብ ቅንብሮችን መለወጥ
    Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ
  • የተጠቃሚ የይለፍ ቃል ለውጥ
  • የሰዓት ሰቅ ምርጫ
  • ምትኬ / እነበረበት መልስ / የፋብሪካ ዳግም ማስጀመር
  • ውጫዊ ድራይቭን የማገናኘት ችሎታ
  • የስርዓት ዝመና
    Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

ወደ ድር በይነገጽ ግባ በይለፍ ቃል የተጠበቀ ነው። የመጀመሪያ ገጽ - መመሪያ.

zabbix በይነገጽ አድራሻ: ${ip/dns}/zabbix
የአስተዳደር በይነገጽ አድራሻ፡ ${ip/dns}/አስተዳድር
Buildroot፡ የመስቀል መድረክ firmwareን ከዛቢክስ-አገልጋይ ጋር ይገንቡ

በ qemu ውስጥ በመሮጥ ላይ

qemu-system-x86_64 -smp 4 -m 4026M -enable-kvm -machine q35,accel=kvm -device intel-iommu -cpu host -net nic -net bridge,br=bridge0 -device virtio-scsi-pci,id= scsi0 -drive ፋይል=ውጤት/images/qemu.qcow2,ቅርጸት=qcow2,aio=threads -device virtio-scsi-pci,id=scsi0 -drive file=output/images/external.qcow2,format=qcow2,aio=threads

ይህ ትእዛዝ በ 4 ኮሮች ፣ 2048 ራም ፣ KVM የነቃ ፣ bridge0 አውታረ መረብ ካርድ እና ሁለት ዲስኮች ያለው ስርዓት ይጀምራል - ለስርዓቱ እና ውጫዊ ለ postgresql።

ምስሎች በቨርቹዋል ቦክስ ውስጥ ሊለወጡ እና ሊሰሩ ይችላሉ፡-

qemu-img convert -f qcow2  qemu.qcow2 -O vdi qcow2.vdi
qemu-img convert -f qcow2  external.qcow2 -O vdi external.vdi

ከዚያ ወደ ቨርቹዋል ቦክስ አስመጧቸው እና በ sata በኩል ይገናኙ።

መደምደሚያ

በሂደቱ ውስጥ አንድ ምርት ለስራ ዝግጁ ማድረጉ አስደሳች ሆነ - በጣም ቆንጆ ባልሆነ በይነገጽ (መፃፍ አልወድም) ፣ ግን ይሰራል እና ለማዋቀር ቀላል ነው።

በ KVM ውስጥ zabbix-applianceን ለመጫን የመጨረሻው ሙከራ የዚህን ደረጃ ትክክለኛነት አሳይቷል (መጫኑ ከተጠናቀቀ በኋላ ስርዓቱ አይጀምርም). ምናልባት አንድ ስህተት እየሠራሁ ነው 😉

ቁሶች

https://buildroot.org/

ምንጭ: hab.com

አስተያየት ያክሉ