UbuntuWiki:UdevRoadmap
文章出处: |
{{#if: | {{{2}}} | https://wiki.ubuntu.com/UdevRoadmap }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/af | • {{#if: UbuntuWiki:UdevRoadmap|Afrikaans| [[::UbuntuWiki:UdevRoadmap/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ar | • {{#if: UbuntuWiki:UdevRoadmap|العربية| [[::UbuntuWiki:UdevRoadmap/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/az | • {{#if: UbuntuWiki:UdevRoadmap|azərbaycanca| [[::UbuntuWiki:UdevRoadmap/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/bcc | • {{#if: UbuntuWiki:UdevRoadmap|جهلسری بلوچی| [[::UbuntuWiki:UdevRoadmap/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/bg | • {{#if: UbuntuWiki:UdevRoadmap|български| [[::UbuntuWiki:UdevRoadmap/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/br | • {{#if: UbuntuWiki:UdevRoadmap|brezhoneg| [[::UbuntuWiki:UdevRoadmap/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ca | • {{#if: UbuntuWiki:UdevRoadmap|català| [[::UbuntuWiki:UdevRoadmap/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/cs | • {{#if: UbuntuWiki:UdevRoadmap|čeština| [[::UbuntuWiki:UdevRoadmap/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/de | • {{#if: UbuntuWiki:UdevRoadmap|Deutsch| [[::UbuntuWiki:UdevRoadmap/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/el | • {{#if: UbuntuWiki:UdevRoadmap|Ελληνικά| [[::UbuntuWiki:UdevRoadmap/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/es | • {{#if: UbuntuWiki:UdevRoadmap|español| [[::UbuntuWiki:UdevRoadmap/es|español]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/fa | • {{#if: UbuntuWiki:UdevRoadmap|فارسی| [[::UbuntuWiki:UdevRoadmap/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/fi | • {{#if: UbuntuWiki:UdevRoadmap|suomi| [[::UbuntuWiki:UdevRoadmap/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/fr | • {{#if: UbuntuWiki:UdevRoadmap|français| [[::UbuntuWiki:UdevRoadmap/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/gu | • {{#if: UbuntuWiki:UdevRoadmap|ગુજરાતી| [[::UbuntuWiki:UdevRoadmap/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/he | • {{#if: UbuntuWiki:UdevRoadmap|עברית| [[::UbuntuWiki:UdevRoadmap/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/hu | • {{#if: UbuntuWiki:UdevRoadmap|magyar| [[::UbuntuWiki:UdevRoadmap/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/id | • {{#if: UbuntuWiki:UdevRoadmap|Bahasa Indonesia| [[::UbuntuWiki:UdevRoadmap/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/it | • {{#if: UbuntuWiki:UdevRoadmap|italiano| [[::UbuntuWiki:UdevRoadmap/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ja | • {{#if: UbuntuWiki:UdevRoadmap|日本語| [[::UbuntuWiki:UdevRoadmap/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ko | • {{#if: UbuntuWiki:UdevRoadmap|한국어| [[::UbuntuWiki:UdevRoadmap/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ksh | • {{#if: UbuntuWiki:UdevRoadmap|Ripoarisch| [[::UbuntuWiki:UdevRoadmap/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/mr | • {{#if: UbuntuWiki:UdevRoadmap|मराठी| [[::UbuntuWiki:UdevRoadmap/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ms | • {{#if: UbuntuWiki:UdevRoadmap|Bahasa Melayu| [[::UbuntuWiki:UdevRoadmap/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/nl | • {{#if: UbuntuWiki:UdevRoadmap|Nederlands| [[::UbuntuWiki:UdevRoadmap/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/no | • {{#if: UbuntuWiki:UdevRoadmap|norsk| [[::UbuntuWiki:UdevRoadmap/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/oc | • {{#if: UbuntuWiki:UdevRoadmap|occitan| [[::UbuntuWiki:UdevRoadmap/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/pl | • {{#if: UbuntuWiki:UdevRoadmap|polski| [[::UbuntuWiki:UdevRoadmap/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/pt | • {{#if: UbuntuWiki:UdevRoadmap|português| [[::UbuntuWiki:UdevRoadmap/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ro | • {{#if: UbuntuWiki:UdevRoadmap|română| [[::UbuntuWiki:UdevRoadmap/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/ru | • {{#if: UbuntuWiki:UdevRoadmap|русский| [[::UbuntuWiki:UdevRoadmap/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/si | • {{#if: UbuntuWiki:UdevRoadmap|සිංහල| [[::UbuntuWiki:UdevRoadmap/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/sq | • {{#if: UbuntuWiki:UdevRoadmap|shqip| [[::UbuntuWiki:UdevRoadmap/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/sr | • {{#if: UbuntuWiki:UdevRoadmap|српски / srpski| [[::UbuntuWiki:UdevRoadmap/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/sv | • {{#if: UbuntuWiki:UdevRoadmap|svenska| [[::UbuntuWiki:UdevRoadmap/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/th | • {{#if: UbuntuWiki:UdevRoadmap|ไทย| [[::UbuntuWiki:UdevRoadmap/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/tr | • {{#if: UbuntuWiki:UdevRoadmap|Türkçe| [[::UbuntuWiki:UdevRoadmap/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/vi | • {{#if: UbuntuWiki:UdevRoadmap|Tiếng Việt| [[::UbuntuWiki:UdevRoadmap/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/yue | • {{#if: UbuntuWiki:UdevRoadmap|粵語| [[::UbuntuWiki:UdevRoadmap/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/zh | • {{#if: UbuntuWiki:UdevRoadmap|中文| [[::UbuntuWiki:UdevRoadmap/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/zh-hans | • {{#if: UbuntuWiki:UdevRoadmap|中文(简体)| [[::UbuntuWiki:UdevRoadmap/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuWiki:UdevRoadmap | UbuntuWiki:UdevRoadmap | {{#if: | :}}UbuntuWiki:UdevRoadmap}}/zh-hant | • {{#if: UbuntuWiki:UdevRoadmap|中文(繁體)| [[::UbuntuWiki:UdevRoadmap/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuWiki:UdevRoadmap|:UbuntuWiki:UdevRoadmap|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :UbuntuWiki:UdevRoadmap/zh | | {{#ifexist: UbuntuWiki:UdevRoadmap/zh | | {{#ifeq: {{#titleparts:UbuntuWiki:UdevRoadmap|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:UbuntuWiki:UdevRoadmap|1|-1|}} | zh | | }}
- Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/udev-roadmap
- Created: Date(2005-11-02T17:22:51Z) by JeffBailey
- Contributors: JeffBailey, ScottJamesRemnant
- Packages affected: initramfs-tools, hotplug, grepmap, udev, klibc, linux-image-*, modutils
Summary
As discussed in HardwareDetection there are many compelling reasons to select both the 2.6.15 kernel and the required udev 071 for our hardware-detection needs. The upgrade from the current udev 060 is a major change that affects many packages currently in the archive, some requiring changes and some becoming deprecated.
This spec outlines a roadmap of changes required.
Implementation
klibc
- Update to most recent version and use to compile tools (like udev) that will be placed in the initramfs.
udev
- Update or repackage udev to the latest version from upstream (071).
- There are some more recent changes in the git repository that provide caching of the udev rules and further volume UUID support (that would be nice for ProbeForRootFilesystem); so we'll pull these and add them to the package.
As discussed in HardwareActivation:
- Implement udevd scoreboard
- Implement udevplug
- The new udev package will Provide, Conflict and Replace the old hotplug package.
- Ensure that during upgrade hotplug configuration is cleaned away, and the init script disabled.
- As discussed in NetworkMagic, move the network agent from hotplug to ifupdown.
- Move blacklists and isapnp alias map from hotplug package to udev. These will continue to be maintained with new entries added as necessary.
- Add new udev rules to replace `usbfs` with `/dev/bus/usb`.
hotplug
- Ask the ftpmasters to eject it from the archive like the bitch it is.
modutils
- Upgrade to most recent version to ensure we have the best alias and blacklist support.
grepmap
- Ask the ftpmasters to gently lay it to rest in the morgue, and plant a flower on its chest.
initramfs
Update the initramfs to take advantage of the new cold-plugging system described in HardwareDetection:
- Mount virtual filesystems.
- Start udevd to handle device node creation, etc.
- Create base device nodes by tickling the parts of `/sys` that reflect the platform.
- Load essential modules from `/etc/mkinitramfs/modules` (and other `force_load` calls).
- Walk the PCI `/sys` tree for hard-drive devices and tickle those, also tickle the IDE, SCSI and i2o buses. Other buses aren't known to contain drives we support for the root filesystem.
- Attempt hibernate recovery.
- Walk the PCI, USB and ieee1394 trees to locate controllers and hubs, for both removable devices and keyboards.
- Mount root filesystem and switch to userspace.
User space
- Replace the initial `S02mountvirtfs` and `S04udev` scripts with a single script that checks whether the initramfs was run, and if not mounts virtual filesystems and prepares `/dev`.
- Start udevd if not running, or instruct the running udevd to reload the rules and add a new inotify watch on the real filesystem.
- Walk the entire `/sys` tree and tickle all events; this will not only cold-plug all of the hardware, but adjust the permissions of anything created in the initramfs.
Data preservation and migration
Custom-written hotplug rules will need to be migrated to be udev rules. There is no way to do this in an automated fashion.
Outstanding issues
Rebooting the system shortly after the upgrade is critical. It is quite likely that hal will stop working, and the rules that are on the harddrive may then be completely incompatible. The cute little lightbulb "Please click on me for a message" in the corner is probably insufficiently invasive to make sure this happens. That notification applet should be refered to mpt for a case of the mean-and-ugly treatment. This is out of scope for this spec.
This spec has been created as https://launchpad.net/distros/ubuntu/+spec/urgent-reboot-notification