Hardware hotplug ko kɛlenw Linux kan, o gory details | Mewayz Blog
Hacker News

Hardware hotplug ko kɛlenw Linux kan, o gory details

Kow fɔcogo

17 min read Via arcanenibble.github.io

Mewayz Team

Editorial Team

Hacker News

daminɛ : fɛnɲɛnamafagalan bolo yebali

Miiri k' a filɛ i bɛ baara kɛ i ka Linux masin kan , k' i sinsin baara kɔrɔlen dɔ kan . I bɛ USB-disque dɔ don a kɔnɔ walasa ka dosiye dɔ bila, dɔɔnin o kɔfɛ, a taamasiyɛn bɛ bɔ i ka tabali kan. I b’i ka ɔridinatɛri dock, o yɔrɔnin bɛɛ la, o sistɛmu bɛ kɛnɛma monitor, klaviyeti ani réseau connecté dɔn. Nin ko kɛlen min tɛ fɛn tiɲɛ, n’o ye bi ɔridinatɛri taamasyɛn ye, o bɛ i n’a fɔ a bɛ ɲini ka kɛ kabako ye. Nka nin ɲɛfɛla min bɛ se ka baara kɛ ni a ye, o jukɔrɔ, porogaramuw ka ko kɛlenw labɛncogo gɛlɛn dɔ bɛ yen, min bɛ kɛ ni fɛn caman ye, n’o bɛ wele ko fɛnɲɛnamafagalanw (hardware hotplugging). Ni baarakɛlaw ni sistɛmu ɲɛmɔgɔw bɛ plateforme barikamaw jɔ, nin "gory details" ninnu faamuyali nafa ka bon kosɛbɛ. O ye danfara ye sigida min bɛ ladamu fɛn caman Changement (Yɛlɛma) la ni nɛɛma ye ani min bɛ bin k’a sɔrɔ a ma miiri. Mewayz la, an ka jago OS modulari bɛ jɔ ni nin faamuyali jugu in ye, k’a lajɛ ko fɛnɲɛnamafagalanw jɛli tɛ basigibaliya sababu ye nka a ye baarakɛcogo sɛgɛsɛgɛli fan ye min tɛ fɛn tiɲɛ.

Ka bɔ kuran taamasiyɛn na ka taa Kɛrɛnkɛrɛnnenya la ko kɛlen : Udev Daemon

hotplug ko dɔ taama bɛ daminɛ waati min na , fɛnɲɛnɛma jɛɲɔgɔnya kɛra . Kɛrɛnkɛrɛnnenya la, fɛn min bɛ fɛn caman Changement (Yɛlɛma) in Kɔlɔsi o yɔrɔnin bɛɛ bus (USB, PCIe, Thunderbolt) la, ka minɛn raw node (minɛn raw) dɔ Dabɔ `/dev` ɲɛbilasɛbɛn kɔnɔ. Nka, nin node in ye yɔrɔ-yɔrɔ dɔrɔn de ye min tɛ ni danyɔrɔ kɔrɔ si ye. O yɔrɔ de la `udev`, n’o ye Linux kernel ka minɛnw ɲɛnabɔbaga ye, o bɛ cɛmancɛ-yɔrɔ ta. I n’a fɔ baarakɛminɛnw daemon, udev bɛ kernel kunnafoniw lamɛn (minnu bɛ wele ko uevents) minɛn kuraw kan. Ni ko dɔ sɔrɔla, udev bɛ wuli ka baara kɛ, ka minɛn in ɲininka kunnafoni nafamaw kama i n’a fɔ feerekɛla ID, fɛn dilannen ID, ani seriyali nimɔrɔ. O kɔfɛ, a bɛ sariyaw filenw kulu nafama dɔ lajɛ, minnu bɛ sɔrɔ cogoya la `/etc/udev/rules.d/` ani `/lib/udev/rules.d/` kɔnɔ, walasa ka minɛn in ɲɛnabɔcogo dɔn.

Nin sariyaw fanga ka bon kosɛbɛ . U b’a to sistɛmu ka walew kɛ i n’a fɔ :

  • Mɛn tɔgɔ min bɛ to senna ani min kɔrɔ ka bon, o dabɔli (misali la, `/dev/my_external_drive` sanni ka kɛ `/dev/sdb1` ye min tɛ ɲɛfɔ).
  • minɛnw node ka yamaruyaw walima a tigiya caman cili wuluwulu la .
  • Ka kernel module (driver) wajibiyalenw doni daminɛ ni u ma doni kaban.
  • Sɛbɛnni minnu bɛ kɛ ka kɛɲɛ ni mɔgɔw sago ye, olu kɛli walasa ka minɛn in sigi sen kan walima ka baarakɛminɛn wɛrɛw ladɔnniya.

Nin sariya siratigɛ la, o de bɛ bloki minɛn caman sɛmɛntiya ka kɛ i ka "Backup_Drive" dɔnta ye, wa a jɔyɔrɔ ka bon sistɛmu jɔcogo la min bɛ se ka wuli ka bɔ a nɔ na i n'a fɔ Mewayz, yɔrɔ min na minɛn tɔgɔladonni min bɛ se ka fɔ ka ɲɛ, o ye otomatiki baarakɛcogo kunba ye.

D-Bus ni Hardware Abstraction Layers jɔyɔrɔ

Ni udev y' a ka baara kɛ sistɛmu nivo la, ko kɛlen ka kan ka lase tabali lamini na ani baarakɛlaw ka baarakɛminɛnw ma. O yɔrɔ de la D-Bus, n’o ye cikan bisiw sigicogo ye, o bɛ don ja in kɔnɔ. Baarakɛminɛnw i n’a fɔ `udisks2` (min bɛ kɛ ka fɛnw mara) ani `upower` (ka ɲɛsin fanga marali ma) bɛ kɛ cɛmancɛlamɔgɔw ye. U bɛ udev kɔlɔsi ka sɔrɔ ka taamaʃyɛnw Bɔ kɔrɔko siratigɛ la sistɛm D-Bus kan. Misali la, ni USB stick dɔ donna a kɔnɔ, udisk2 bɛna udev ko kɛlen ye, ka filesystem (dosiyɛri) wuli, ka sɔrɔ ka D-Bus taamasiyɛn ci min bɛ volume kura nali laseli kɛ, min labɛnnen don ka baara kɛ ni a ye.

ye D-Bus bɛ baara kɛ i n’a fɔ diɲɛ bɛɛ bamanankan-falen-falen, a bɛ kernel (kɛrɛnkɛrɛnnenya la) ko kɛlenw sɛmɛntiya minnu bɛ se ka kɛ fɛn ye min bɛ se ka kɛ kunnafoni-falen-falen ye, minnu bɛ se ka faamuya nɔgɔya la, ka baara kɛ ni minnu ye.
ye

Nin abstraction in nafa ka bon kosɛbɛ. O kɔrɔ ye ko porozɛw dilannikɛla man kan ka hami udev sariyaw walima kernel APIw ka gɛlɛyaw la. U bɛ Se k'u Jὲ dɔrɔn D-Bus la k'u ka "VolumeAdded" taamaʃyɛn Lamɛ. Nin fɛɛrɛ layɛrɛ in ye hakilila jɔnjɔn ye Mewayz la; an kɛtɔ ka API saniyalenw di, minnu ɲɛfɔlen don kosɛbɛ, ka ɲɛsin fɛnɲɛnamafagalanw ni ɲɔgɔn cɛ jɛɲɔgɔnya ma, an bɛ se ka kɛ sababu ye ka baarakɛlaw dɛmɛ u ka se ka modulu barikamaw dilan k’a sɔrɔ u ma don sistɛmu kɔnɔ gɛlɛyaw la.

ni kow ma ɲɛ : Hotplug ko kɛlenw tiɲɛni

Hali ni a dilanni ka ca , hotplug ko kɛlenw bɛ se ka dɛsɛ tuma dɔw la . Minɛn dɔ bɛ se ka sɔrɔ, walima a bɛ se ka dɔn nka a ma sigi. O ko ninnu ɲɛnabɔli bɛ kɛ sababu ye ka ko kɛlen in nɔfɛtaama cakɛda bɛɛ kɔnɔ. A ka c’a la, a fɔlɔ ye ka kernel cikanw lajɛ ni `dmesg` ye walasa k’a dɔn ni fɛnɲɛnamafagalanw dɔnna a dɔgɔyalenba la. O kɔfɛ, i bɛ se ka udev ko kɛlenw kɔlɔsi waati yɛrɛ la ni `udevadm monitor` ye walasa k’a dɔn ni ko kɛlen bɛ baara kɛ ka ɲɛ. Ni i ye udev sariya kɛrɛnkɛrɛnnenw lajɛ minnu bɛ tali kɛ minɛn dɔ la ni `udevadm info` ye, o bɛ se ka yamaruya koɲɛw walima sariya tununnenw jira. A laban na, baara kɛli ni D-Bus kɔlɔsilikɛminɛn ye i n’a fɔ `dbus-monitor`, o bɛ se k’a jira ni ko in bɛ ka lase ka ɲɛ ka taa tabali lajɛ la. Nin gɛlɛyaw ɲɛnabɔcogo ɲuman in b’a to an ka dɛmɛjɛkulu min bɛ Mewayz, o bɛ se ka teliya ka fɛnɲɛnamafagalanw jɛli koɲɛw ɲɛnabɔ, ka sistɛmu ka dannaya sabati.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Kunnafoni : Sistɛmu jɛ-ka-baara sinsinnan

Hardware hotplugging Linux kan, o ye misali ɲuman ye gɛlɛya gɛlɛn dɔ la min ɲɛnabɔra jɛ-ka-baara fɛ, layɛrɛw dilanni fɛ. K’a ta kernel ka dɔnni fɔlɔ la ka se udev ka sariyaw sigicogo ma, ani laban na ka se D-Bus ka application-level kunnafoniw ma, a yɔrɔ kelen-kelen bɛɛ jɔyɔrɔ ka bon kosɛbɛ. O jibɔ in faamuyali tɛ kalanko dɔrɔn ye; a nafa ka bon sigidaw dabɔli la minnu bɛ se ka wuli tiɲɛ na ani minnu bɛ se ka muɲu. Jagokɛlaw ka OS modulariw kama i n’a fɔ Mewayz, nin jɛɲɔgɔnya jugu in ye jusigilan ye an bɛ sigida dɔ jɔ min kan, min bɛ se ka ladamu bi jagokɛla ka fɛnɲɛnamafagalanw cogoya la min bɛ ɲɔgɔn Changé tuma bɛɛ, k’a kɛ ɲagami ye min bɛ se ka kɛ, ka kɛ baarakɛcogo ye min tɛ gɛlɛya.

Ɲininkali minnu bɛ kɛ tuma caman na

daminɛ : fɛnɲɛnamafagalan bolo yebali

Miiri k' a filɛ i bɛ baara kɛ i ka Linux masin kan , k' i sinsin baara kɔrɔlen dɔ kan . I bɛ USB-disque dɔ don a kɔnɔ walasa ka dosiye dɔ bila, dɔɔnin o kɔfɛ, a taamasiyɛn bɛ bɔ i ka tabali kan. I b’i ka ɔridinatɛri dock, o yɔrɔnin bɛɛ la, o sistɛmu bɛ kɛnɛma monitor, klaviyeti ani réseau connecté dɔn. Nin ko kɛlen min tɛ fɛn tiɲɛ, n’o ye bi ɔridinatɛri taamasyɛn ye, o bɛ i n’a fɔ a bɛ ɲini ka kɛ kabako ye. Nka nin ɲɛfɛla min bɛ se ka baara kɛ ni a ye, o jukɔrɔ, porogaramuw ka ko kɛlenw labɛncogo gɛlɛn dɔ bɛ yen, min bɛ kɛ ni fɛn caman ye, n’o bɛ wele ko fɛnɲɛnamafagalanw (hardware hotplugging). Ni baarakɛlaw ni sistɛmu ɲɛmɔgɔw bɛ plateforme barikamaw jɔ, nin "gory details" ninnu faamuyali nafa ka bon kosɛbɛ. O ye danfara ye sigida min bɛ ladamu fɛn caman Changement (Yɛlɛma) la ni nɛɛma ye ani min bɛ bin k’a sɔrɔ a ma miiri. Mewayz la, an ka jago OS modulari bɛ jɔ ni nin faamuyali jugu in ye, k’a lajɛ ko fɛnɲɛnamafagalanw jɛli tɛ basigibaliya sababu ye nka a ye baarakɛcogo sɛgɛsɛgɛli fan ye min tɛ fɛn tiɲɛ.

Ka bɔ kuran taamasiyɛn na ka taa Kɛrɛnkɛrɛnnenya la ko kɛlen : Udev Daemon

hotplug ko dɔ taama bɛ daminɛ waati min na , fɛnɲɛnɛma jɛɲɔgɔnya kɛra . Kɛrɛnkɛrɛnnenya la, fɛn min bɛ fɛn caman Changement (Yɛlɛma) in Kɔlɔsi o yɔrɔnin bɛɛ bus (USB, PCIe, Thunderbolt) la, ka minɛn raw node (minɛn raw) dɔ Dabɔ `/dev` ɲɛbilasɛbɛn kɔnɔ. Nka, nin node in ye yɔrɔ-yɔrɔ dɔrɔn de ye min tɛ ni danyɔrɔ kɔrɔ si ye. O yɔrɔ de la `udev`, n’o ye Linux kernel ka minɛnw ɲɛnabɔbaga ye, o bɛ cɛmancɛ-yɔrɔ ta. I n’a fɔ baarakɛminɛnw daemon, udev bɛ kernel kunnafoniw lamɛn (minnu bɛ wele ko uevents) minɛn kuraw kan. Ni ko dɔ sɔrɔla, udev bɛ wuli ka baara kɛ, ka minɛn in ɲininka kunnafoni nafamaw kama i n’a fɔ feerekɛla ID, fɛn dilannen ID, ani seriyali nimɔrɔ. O kɔfɛ, a bɛ sariyaw filenw kulu nafama dɔ lajɛ, minnu bɛ sɔrɔ cogoya la `/etc/udev/rules.d/` ani `/lib/udev/rules.d/` kɔnɔ, walasa ka minɛn in ɲɛnabɔcogo dɔn.

D-Bus ni Hardware Abstraction Layers jɔyɔrɔ

Ni udev y' a ka baara kɛ sistɛmu nivo la, ko kɛlen ka kan ka lase tabali lamini na ani baarakɛlaw ka baarakɛminɛnw ma. O yɔrɔ de la D-Bus, n’o ye cikan bisiw sigicogo ye, o bɛ don ja in kɔnɔ. Baarakɛminɛnw i n’a fɔ `udisks2` (min bɛ kɛ ka fɛnw mara) ani `upower` (ka ɲɛsin fanga marali ma) bɛ kɛ cɛmancɛlamɔgɔw ye. U bɛ udev kɔlɔsi ka sɔrɔ ka taamaʃyɛnw Bɔ kɔrɔko siratigɛ la sistɛm D-Bus kan. Misali la, ni USB stick dɔ donna a kɔnɔ, udisk2 bɛna udev ko kɛlen ye, ka filesystem (dosiyɛri) wuli, ka sɔrɔ ka D-Bus taamasiyɛn ci min bɛ volume kura nali laseli kɛ, min labɛnnen don ka baara kɛ ni a ye.

ni kow ma ɲɛ : Hotplug ko kɛlenw tiɲɛni

Hali ni a dilanni ka ca , hotplug ko kɛlenw bɛ se ka dɛsɛ tuma dɔw la . Minɛn dɔ bɛ se ka sɔrɔ, walima a bɛ se ka dɔn nka a ma sigi. O ko ninnu ɲɛnabɔli bɛ kɛ sababu ye ka ko kɛlen in nɔfɛtaama cakɛda bɛɛ kɔnɔ. A ka c’a la, a fɔlɔ ye ka kernel cikanw lajɛ ni `dmesg` ye walasa k’a dɔn ni fɛnɲɛnamafagalanw dɔnna a dɔgɔyalenba la. O kɔfɛ, i bɛ se ka udev ko kɛlenw kɔlɔsi waati yɛrɛ la ni `udevadm monitor` ye walasa k’a dɔn ni ko kɛlen bɛ baara kɛ ka ɲɛ. Ni i ye udev sariya kɛrɛnkɛrɛnnenw lajɛ minnu bɛ tali kɛ minɛn dɔ la ni `udevadm info` ye, o bɛ se ka yamaruya koɲɛw walima sariya tununnenw jira. A laban na, baara kɛli ni D-Bus kɔlɔsilikɛminɛn ye i n’a fɔ `dbus-monitor`, o bɛ se k’a jira ni ko in bɛ ka lase ka ɲɛ ka taa tabali lajɛ la. Nin gɛlɛyaw ɲɛnabɔcogo ɲuman in b’a to an ka dɛmɛjɛkulu min bɛ Mewayz, o bɛ se ka teliya ka fɛnɲɛnamafagalanw jɛli koɲɛw ɲɛnabɔ, ka sistɛmu ka dannaya sabati.

Kunnafoni : Sistɛmu jɛ-ka-baara sinsinnan

Hardware hotplugging Linux kan, o ye misali ɲuman ye gɛlɛya gɛlɛn dɔ la min ɲɛnabɔra jɛ-ka-baara fɛ, layɛrɛw dilanni fɛ. K’a ta kernel ka dɔnni fɔlɔ la ka se udev ka sariyaw sigicogo ma, ani laban na ka se D-Bus ka application-level kunnafoniw ma, a yɔrɔ kelen-kelen bɛɛ jɔyɔrɔ ka bon kosɛbɛ. O jibɔ in faamuyali tɛ kalanko dɔrɔn ye; a nafa ka bon sigidaw dabɔli la minnu bɛ se ka wuli tiɲɛ na ani minnu bɛ se ka muɲu. Jagokɛlaw ka OS modulariw kama i n’a fɔ Mewayz, nin jɛɲɔgɔnya jugu in ye jusigilan ye an bɛ sigida dɔ jɔ min kan, min bɛ se ka ladamu bi jagokɛla ka fɛnɲɛnamafagalanw cogoya la min bɛ ɲɔgɔn Changé tuma bɛɛ, k’a kɛ ɲagami ye min bɛ se ka kɛ, ka kɛ baarakɛcogo ye min tɛ gɛlɛya.

aw ka jago ɲɛnabɔ ni Mewayz ye

Mewayz bɛ na ni jago modulu 207 ye kɛnɛ kelen kan — CRM , fatura, poroze ɲɛnabɔli , ani fɛn wɛrɛw . Aw ka fara baarakɛla 138.000+ kan minnu y’u ka baarakɛcogo nɔgɔya.

A daminɛ hɔrɔnya bi →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime