Hardware hotplug nudzɔdzɔwo le Linux, ʋu ƒe nyatakakawo | Mewayz Blog Skip to main content
Hacker News

Hardware hotplug nudzɔdzɔwo le Linux, ʋu ƒe nyatakakawo

Nyaŋuɖoɖowo

16 min read Via arcanenibble.github.io

Mewayz Team

Editorial Team

Hacker News

Ŋgɔdonya: Hardware ƒe Asi Makpɔmakpɔ

Tsɔe be èle dɔ wɔm le wò Linux mɔ̃ dzi, eye wò susu le dɔ vevi aɖe ŋu. Èdea USB-mɔ̃ aɖe me be nàtsɔ faɛl aɖe ayi teƒe bubu, eye le ɣeyiɣi kpui aɖe megbe la, eƒe dzesi dzena le wò kɔmpiuta dzi. Ètsɔa wò kɔmpiutaa ɖoa ʋua me, eye ɖoɖoa dea dzesi gotagome ŋkuléleɖenuŋu, keyboard, kple network ƒe kadodoa enumake. Nuteƒekpɔkpɔ sia si me kuxi aɖeke mele o, si nye egbegbe kɔmpiuta zazã ƒe dzesi, se le eɖokui me abe akunyawɔwɔ ene kloe. Gake kɔmpiutadziɖoɖowo ƒe nudzɔdzɔwo ƒe haƒoƒo si me kɔ, si me wowɔa nu vovovowo le si woyɔna be hardware hotplugging la le ŋgɔgbexɔ sia si zazã le bɔbɔe la te. Le dɔwɔlawo kple ɖoɖodzikpɔla siwo le mɔ̃ sesẽwo tum gome la, "nyatakaka siwo me ʋu le" siawo gɔmesese le vevie ŋutɔ. Enye vovototo si le ɖoɖo si trɔna ɖe tɔtrɔ ŋu le amenuveve me kple esi gblẽna le vome dome. Le Mewayz la, wotu míaƒe modular business OS kple gɔmesese deto sia, si kpɔa egbɔ be hardware ƒe ƒoƒo ɖekae menye malikenyenyetsoƒe o ke boŋ enye dɔwɔwɔ ƒe asitɔtrɔ ƒe akpa si me kuxi aɖeke mele o.

Tso Elektrik Dzesi dzi yi Kernel Nudzɔdzɔ dzi: Udev Daemon

Hotplug nudzɔdzɔ ƒe mɔzɔzɔ dzea egɔme tso ɣeyiɣi si me wowɔ hardware kadodo. Kernel la dea dzesi tɔtrɔa enumake le bɔs ƒe ɖoɖo nu (USB, PCIe, Thunderbolt) eye wòwɔa raw device node le `/dev` ƒe nyatakakadzraɖoƒea. Gake teƒe aɖe koe node sia nye si me dzesidenu aɖeke si ŋu gɔmesese le o. Afi siae `udev`, mɔ̃dzikpɔla na Linux kernel, xɔa titina. Abe userspace daemon ene la, udev ɖoa to kernel nyatakakawo (si woyɔna be uevents) tso mɔ̃ yeyewo ŋu. Ne udev xɔ nudzɔdzɔ aɖe la, edzea dɔwɔwɔ gɔme, eye wòbiaa gbe mɔ̃a hena nyatakaka veviwo abe nudzrala ƒe ID, adzɔnuwo ƒe ID, kple xexlẽdzesi si wotsɔ ɖoa ​​wo nɔewo gbɔ ene. Emegbe edzroa sewo ƒe faɛl siwo me kesinɔnuwo le, siwo zi geɖe le `/etc/udev/rules.d/` kple `/lib/udev/rules.d/` me, be yeanya alesi woawɔ akpɔ mɔ̃a gbɔe.

Se siawo sesẽ ŋutɔ. Woɖea mɔ na ɖoɖoa be wòawɔ nuwɔnawo abe:

    ƒe nyawo
  • Dɔwɔnu ƒe ŋkɔ si nɔa anyi ɖaa eye gɔmesese le eŋu wɔwɔ (e.g., `/dev/my_external_drive` ɖe esi womeɖɔ o `/dev/sdb1` teƒe).
  • Trɔ mɔɖeɖewo alo mɔ̃a ƒe node ƒe aƒetɔ nyenye le dzodzo me.
  • Kernel modules (ʋukulawo) siwo hiã ƒe agbatsɔtsɔ ƒe ʋuʋu ne wometsɔ wo de eme xoxo o.
  • Ŋɔŋlɔdzesi tɔxɛwo wɔwɔ be woaɖo mɔ̃a alo ana nyanya dɔwɔɖoɖo bubuwo.
ƒe nyawo

Nuɖoɖo sia si wotu ɖe se dzi lae trɔa mɔxenu ƒe mɔ̃ si wozãna le mɔ vovovowo nu wòzua wò "Backup_Drive" si woateŋu ade dzesii eye wònye nu vevi aɖe na ɖoɖo ƒe xɔtuɖoɖo si te ŋu trɔna abe Mewayz ene, afisi mɔ̃a ƒe ŋkɔyɔyɔ si woateŋu agblɔ ɖi nye nu vevitɔ na dɔwɔwɔ le wo ɖokui si.

Akpa si D-Bus kple Hardware Abstraction Layers wɔna

Ne udev wɔ eƒe dɔ le ɖoɖowɔɖi ƒe ɖoɖo nu ko la, ehiã be woaɖo nudzɔdzɔa ɖe kplɔ̃dzi nɔnɔme kple zãla ƒe dɔwɔɖoɖowo. Afi siae D-Bus, si nye gbedasiwo ƒe bɔs ƒe ɖoɖo, gena ɖe nɔnɔmetata la me le. Subɔsubɔdɔwo abe `udisks2` (na nudzraɖoƒemɔ̃wo) kple `upower` (na ŋusẽdzikpɔkpɔ) wɔa dɔ abe domenɔlawo ene. Woléa ŋku ɖe udev ŋu eye emegbe woɖea dzesi siwo me kesinɔnuwo le le gɔmesese nu to ɖoɖo D-Bus dzi. Le kpɔɖeŋu me

ƒe nyawo D-Bus wɔa dɔ abe xexeame katã ƒe gbegɔmeɖela ene, etrɔa kernel nudzɔdzɔ siwo le ɖoƒe si le bɔbɔe la wozua nyatakaka siwo le ɖoƒe kɔkɔ siwo gɔme kplɔ̃dzidɔwɔwɔwo ate ŋu ase bɔbɔe ahawɔ nu ɖe wo ŋu.
ƒe nyawo

Abstraction sia le vevie ŋutɔ. Efia be mehiã be kɔmpiuta dɔwɔɖoɖowɔla natsi dzi ɖe udev sewo alo kernel APIwo ƒe nu sesẽwo ŋu o. Woateŋu aƒo ka na D-Bus ko eye woaɖo to "VolumeAdded" dzesi. Mɔnu sia si wotsɔ ƒo ƒui nye xexemenunya vevi aɖe le Mewayz; to API dzadzɛ siwo woɖe nyuie nana hena xɔtunuwo ƒe kadodo me la, míenaa dɔwɔlawo te ŋu tua modules sẽŋuwo evɔ womaƒo wo ɖokui ɖe ɖoɖo ƒe ɖoɖo ƒe kuxi sesẽwo me o.

Ne Nuwo Gblẽ: Hotplug Nudzɔdzɔwo ƒe Debugging

Togbɔ be wowɔe wòde ŋgɔ hã la, hotplug nudzɔdzɔwo ateŋu ado kpo nu ɣeaɖewoɣi. Ðewohĩ womade dzesi mɔ̃ aɖe o, alo woate ŋu ade dzesii gake womedee o. Nya siawo gbɔ kpɔkpɔ bia be woadi nudzɔdzɔa to kɔsɔkɔsɔ bliboa me. Afɔɖeɖe gbãtɔ nye zi geɖe be woalé ŋku ɖe kernel gbedasiwo ŋu to `dmesg` zazã me akpɔe ɖa be wokpɔ hardware la dze sii le ɖoƒe si bɔbɔ wu hã. Eyome, àteŋu alé ŋku ɖe udev nudzɔdzɔwo ŋu le ɣeyiɣi ŋutɔŋutɔ me to `udevadm monitor` zazã me be nàkpɔe ɖa be wole nudzɔdzɔa ŋudɔ wɔm nyuie hã. Ne èlé ŋku ɖe udev se tɔxɛ siwo ku ɖe mɔ̃ si ŋu `udevadm info` le ŋu la, ate ŋu aɖe mɔɖeɖe ƒe nyawo alo se siwo bu la afia. Mlɔeba la, D-Bus ŋkuléleɖenuŋu dɔwɔnu abe `dbus-monitor` zazã ateŋu aɖee afia nenye be wole nudzɔdzɔa kakam dzidzedzetɔe ɖe kplɔ̃dzi ɣeyiɣia me. Mɔnu sia si wozãna tsɔ kpɔa kuxiwo gbɔ nyuie la kpɔa egbɔ be míaƒe kpekpeɖeŋunaha si le Mewayz ate ŋu akpɔ xɔtunuwo ƒe ƒoƒo ɖekae ƒe nyawo gbɔ kaba, si alé ɖoɖoa ƒe kakaɖedzi me ɖe asi.

💡 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 →

Nyataƒoƒo: Dɔwɔɖoɖowo ƒe Ðekawɔwɔ ƒe Symphony

Hardware hotplugging le Linux dzi nye kuxi sesẽ aɖe si wokpɔ gbɔ to nuwɔwɔ aduadu, layered architecture me ƒe kpɔɖeŋu nyui aɖe. Tso kernel ƒe dzedzeme gbãtɔ dzi va ɖo udev ƒe ɖoɖowɔwɔ si wotu ɖe se dzi dzi, eye mlɔeba va ɖo D-Bus ƒe dɔwɔwɔ ƒe ɖoɖo ƒe nyatakakawo dzi la, akpa ɖesiaɖe wɔa akpa vevi aɖe. Menye agbalẽnyanya koe sisi sia gɔmesese nye o; ele vevie na ɖoɖo siwo me ŋusẽ le ŋutɔŋutɔ eye woate ŋu anɔ te ɖe nɔnɔme sesẽwo nu. Le modular business OS abe Mewayz ene gome la, ƒoƒo ɖekae goglo siae nye gɔmeɖoanyi si dzi míetu mɔnu si dzi agbagbadzedze aɖeke mele o si trɔna ɖe egbegbe asitsaha ƒe xɔtunuwo ƒe nɔnɔme si le tɔtrɔm ɣesiaɣi ŋu, si trɔa zitɔtɔ si ate ŋu adzɔ la wòzua dɔwɔwɔ si me kuxi aɖeke mele o.

Nyabiase Siwo Wobiana Enuenu

Ŋgɔdonya: Hardware ƒe Asi Makpɔmakpɔ

Tsɔe be èle dɔ wɔm le wò Linux mɔ̃ dzi, eye wò susu le dɔ vevi aɖe ŋu. Èdea USB-mɔ̃ aɖe me be nàtsɔ faɛl aɖe ayi teƒe bubu, eye le ɣeyiɣi kpui aɖe megbe la, eƒe dzesi dzena le wò kɔmpiuta dzi. Ètsɔa wò kɔmpiutaa ɖoa ʋua me, eye ɖoɖoa dea dzesi gotagome ŋkuléleɖenuŋu, keyboard, kple network ƒe kadodoa enumake. Nuteƒekpɔkpɔ sia si me kuxi aɖeke mele o, si nye egbegbe kɔmpiuta zazã ƒe dzesi, se le eɖokui me abe akunyawɔwɔ ene kloe. Gake kɔmpiutadziɖoɖowo ƒe nudzɔdzɔwo ƒe haƒoƒo si me kɔ, si me wowɔa nu vovovowo le si woyɔna be hardware hotplugging la le ŋgɔgbexɔ sia si zazã le bɔbɔe la te. Le dɔwɔlawo kple ɖoɖodzikpɔla siwo le mɔ̃ sesẽwo tum gome la, "nyatakaka siwo me ʋu le" siawo gɔmesese le vevie ŋutɔ. Enye vovototo si le ɖoɖo si trɔna ɖe tɔtrɔ ŋu le amenuveve me kple esi gblẽna le vome dome. Le Mewayz la, wotu míaƒe modular business OS kple gɔmesese deto sia, si kpɔa egbɔ be hardware ƒe ƒoƒo ɖekae menye malikenyenyetsoƒe o ke boŋ enye dɔwɔwɔ ƒe asitɔtrɔ ƒe akpa si me kuxi aɖeke mele o.

Tso Elektrik Dzesi dzi yi Kernel Nudzɔdzɔ dzi: Udev Daemon

Hotplug nudzɔdzɔ ƒe mɔzɔzɔ dzea egɔme tso ɣeyiɣi si me wowɔ hardware kadodo. Kernel la dea dzesi tɔtrɔa enumake le bɔs ƒe ɖoɖo nu (USB, PCIe, Thunderbolt) eye wòwɔa raw device node le `/dev` ƒe nyatakakadzraɖoƒea. Gake teƒe aɖe koe node sia nye si me dzesidenu aɖeke si ŋu gɔmesese le o. Afi siae `udev`, mɔ̃dzikpɔla na Linux kernel, xɔa titina. Abe userspace daemon ene la, udev ɖoa to kernel nyatakakawo (si woyɔna be uevents) tso mɔ̃ yeyewo ŋu. Ne udev xɔ nudzɔdzɔ aɖe la, edzea dɔwɔwɔ gɔme, eye wòbiaa gbe mɔ̃a hena nyatakaka veviwo abe nudzrala ƒe ID, adzɔnuwo ƒe ID, kple xexlẽdzesi si wotsɔ ɖoa ​​wo nɔewo gbɔ ene. Emegbe edzroa sewo ƒe faɛl siwo me kesinɔnuwo le, siwo zi geɖe le `/etc/udev/rules.d/` kple `/lib/udev/rules.d/` me, be yeanya alesi woawɔ akpɔ mɔ̃a gbɔe.

Akpa si D-Bus kple Hardware Abstraction Layers wɔna

Ne udev wɔ eƒe dɔ le ɖoɖowɔɖi ƒe ɖoɖo nu ko la, ehiã be woaɖo nudzɔdzɔa ɖe kplɔ̃dzi nɔnɔme kple zãla ƒe dɔwɔɖoɖowo. Afi siae D-Bus, si nye gbedasiwo ƒe bɔs ƒe ɖoɖo, gena ɖe nɔnɔmetata la me le. Subɔsubɔdɔwo abe `udisks2` (na nudzraɖoƒemɔ̃wo) kple `upower` (na ŋusẽdzikpɔkpɔ) wɔa dɔ abe domenɔlawo ene. Woléa ŋku ɖe udev ŋu eye emegbe woɖea dzesi siwo me kesinɔnuwo le le gɔmesese nu to ɖoɖo D-Bus dzi. Le kpɔɖeŋu me

Ne Nuwo Gblẽ: Hotplug Nudzɔdzɔwo ƒe Debugging

Togbɔ be wowɔe wòde ŋgɔ hã la, hotplug nudzɔdzɔwo ateŋu ado kpo nu ɣeaɖewoɣi. Ðewohĩ womade dzesi mɔ̃ aɖe o, alo woate ŋu ade dzesii gake womedee o. Nya siawo gbɔ kpɔkpɔ bia be woadi nudzɔdzɔa to kɔsɔkɔsɔ bliboa me. Afɔɖeɖe gbãtɔ nye zi geɖe be woalé ŋku ɖe kernel gbedasiwo ŋu to `dmesg` zazã me akpɔe ɖa be wokpɔ hardware la dze sii le ɖoƒe si bɔbɔ wu hã. Eyome, àteŋu alé ŋku ɖe udev nudzɔdzɔwo ŋu le ɣeyiɣi ŋutɔŋutɔ me to `udevadm monitor` zazã me be nàkpɔe ɖa be wole nudzɔdzɔa ŋudɔ wɔm nyuie hã. Ne èlé ŋku ɖe udev se tɔxɛ siwo ku ɖe mɔ̃ si ŋu `udevadm info` le ŋu la, ate ŋu aɖe mɔɖeɖe ƒe nyawo alo se siwo bu la afia. Mlɔeba la, D-Bus ŋkuléleɖenuŋu dɔwɔnu abe `dbus-monitor` zazã ateŋu aɖee afia nenye be wole nudzɔdzɔa kakam dzidzedzetɔe ɖe kplɔ̃dzi ɣeyiɣia me. Mɔnu sia si wozãna tsɔ kpɔa kuxiwo gbɔ nyuie la kpɔa egbɔ be míaƒe kpekpeɖeŋunaha si le Mewayz ate ŋu akpɔ xɔtunuwo ƒe ƒoƒo ɖekae ƒe nyawo gbɔ kaba, si alé ɖoɖoa ƒe kakaɖedzi me ɖe asi.

Nyataƒoƒo: Dɔwɔɖoɖowo ƒe Ðekawɔwɔ ƒe Symphony

Hardware hotplugging le Linux dzi nye kuxi sesẽ aɖe si wokpɔ gbɔ to nuwɔwɔ aduadu, layered architecture me ƒe kpɔɖeŋu nyui aɖe. Tso kernel ƒe dzedzeme gbãtɔ dzi va ɖo udev ƒe ɖoɖowɔwɔ si wotu ɖe se dzi dzi, eye mlɔeba va ɖo D-Bus ƒe dɔwɔwɔ ƒe ɖoɖo ƒe nyatakakawo dzi la, akpa ɖesiaɖe wɔa akpa vevi aɖe. Menye agbalẽnyanya koe sisi sia gɔmesese nye o; ele vevie na ɖoɖo siwo me ŋusẽ le ŋutɔŋutɔ eye woate ŋu anɔ te ɖe nɔnɔme sesẽwo nu. Le modular business OS abe Mewayz ene gome la, ƒoƒo ɖekae goglo siae nye gɔmeɖoanyi si dzi míetu mɔnu si dzi agbagbadzedze aɖeke mele o si trɔna ɖe egbegbe asitsaha ƒe xɔtunuwo ƒe nɔnɔme si le tɔtrɔm ɣesiaɣi ŋu, si trɔa zitɔtɔ si ate ŋu adzɔ la wòzua dɔwɔwɔ si me kuxi aɖeke mele o.

Tsɔ Wò Dɔwɔƒea Naɖɔ Ðo kple Mewayz

Mewayz tsɔa asitsatsa ƒe modules 207 vaa mɔnu ɖeka dzi — CRM, fexexe, dɔa dzikpɔkpɔ, kple bubuwo. Wɔ ɖeka kple zãla 138,000+ siwo na woƒe dɔwɔwɔ le bɔbɔe.

Dze egɔme Femaxee Egbe →
ƒe nyawo

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