1<?xml version="1.0" encoding="UTF-8"?> 2 3<deviceinfo version="0.2"> 4 <device> 5 <match key="info.udi" string="/org/freedesktop/Hal/devices/computer"> 6 <append key="info.callouts.add" type="strlist">hal-storage-cleanup-all-mountpoints</append> 7 </match> 8 9 <match key="storage.media_check_enabled" bool="true"> 10 <append key="info.addons" type="strlist">hald-addon-storage</append> 11 </match> 12 13 <match key="volume.is_disc" bool="true"> 14 <match key="volume.disc.has_audio" bool="true"> 15 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append> 16 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append> 17 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 18 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 19 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append> 20 </match> 21 <match key="volume.disc.is_blank" bool="true"> 22 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append> 23 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append> 24 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 25 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 26 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append> 27 </match> 28 </match> 29 30 <!-- this is to be able to mount media in drives we cannot poll, e.g. IDE Zip Drives and PC style floppy drives --> 31 <match key="storage.media_check_enabled" bool="false"> 32 <match key="storage.no_partitions_hint" bool="true"> 33 34 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append> 35 36 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Mount</append> 37 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">ssas</append> 38 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">mount_point fstype extra_options</append> 39 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-mount</append> 40 41 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Unmount</append> 42 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 43 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 44 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-unmount</append> 45 46 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append> 47 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 48 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 49 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append> 50 51 <!-- allow these mount options for all file systems --> 52 <append key="volume.mount.valid_options" type="strlist">ro</append> 53 <append key="volume.mount.valid_options" type="strlist">sync</append> 54 <append key="volume.mount.valid_options" type="strlist">dirsync</append> 55 <append key="volume.mount.valid_options" type="strlist">noatime</append> 56 <append key="volume.mount.valid_options" type="strlist">nodiratime</append> 57 <append key="volume.mount.valid_options" type="strlist">noexec</append> 58 <append key="volume.mount.valid_options" type="strlist">quiet</append> 59 <append key="volume.mount.valid_options" type="strlist">remount</append> 60 <append key="volume.mount.valid_options" type="strlist">exec</append> 61 <!-- As this is removable media give some leeway --> 62 <append key="volume.mount.valid_options" type="strlist">utf8</append> 63 <append key="volume.mount.valid_options" type="strlist">shortname=</append> 64 <append key="volume.mount.valid_options" type="strlist">codepage=</append> 65 <append key="volume.mount.valid_options" type="strlist">iocharset=</append> 66 <append key="volume.mount.valid_options" type="strlist">umask=</append> 67 <append key="volume.mount.valid_options" type="strlist">uid=</append> 68 69 </match> 70 </match> 71 72 73 <match key="volume.fsusage" string="filesystem"> 74 75 <!-- Here follow volumes we specifically want to ignore - it is the --> 76 <!-- responsibility of software higher in the stack (e.g. gnome-vfs) --> 77 <!-- amd mount programs (e.g. Mount() on HAL) to respect volume.ignore --> 78 <merge key="volume.ignore" type="bool">false</merge> 79 80 <match key="@block.storage_device:storage.removable" bool="false"> 81 82 <!-- Should always ignore Apple Bootstrap partitions (it would be --> 83 <!-- a security hole to mount it) - TODO: should use the bootable --> 84 <!-- flag from the Mac partition table instead --> 85 <match key="volume.fstype" string="hfs"> 86 <match key="volume.label" string="bootstrap"> 87 <merge key="volume.ignore" type="bool">true</merge> 88 </match> 89 </match> 90 91 <!-- HP ships desktops with a recovery partition --> 92 <match key="volume.fstype" string="vfat"> 93 <match key="volume.label" string="HP_RECOVERY"> 94 <merge key="volume.ignore" type="bool">true</merge> 95 </match> 96 </match> 97 98 <!-- EFI firmware partitions --> 99 <match key="volume.fstype" string="vfat"> 100 <match key="volume.label" string="EFI"> 101 <merge key="volume.ignore" type="bool">true</merge> 102 </match> 103 </match> 104 105 </match> 106 107 108 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Volume</append> 109 110 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Mount</append> 111 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">ssas</append> 112 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">mount_point fstype extra_options</append> 113 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-mount</append> 114 115 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Unmount</append> 116 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 117 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 118 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-unmount</append> 119 120 <append key="org.freedesktop.Hal.Device.Volume.method_names" type="strlist">Eject</append> 121 <append key="org.freedesktop.Hal.Device.Volume.method_signatures" type="strlist">as</append> 122 <append key="org.freedesktop.Hal.Device.Volume.method_argnames" type="strlist">extra_options</append> 123 <append key="org.freedesktop.Hal.Device.Volume.method_execpaths" type="strlist">hal-storage-eject</append> 124 125 <!-- allow these mount options for all file systems --> 126 <append key="volume.mount.valid_options" type="strlist">ro</append> 127 <append key="volume.mount.valid_options" type="strlist">sync</append> 128 <append key="volume.mount.valid_options" type="strlist">dirsync</append> 129 <append key="volume.mount.valid_options" type="strlist">noatime</append> 130 <append key="volume.mount.valid_options" type="strlist">nodiratime</append> 131 <append key="volume.mount.valid_options" type="strlist">noexec</append> 132 <append key="volume.mount.valid_options" type="strlist">quiet</append> 133 <append key="volume.mount.valid_options" type="strlist">remount</append> 134 <append key="volume.mount.valid_options" type="strlist">exec</append> 135 136 <!-- allow these mount options for vfat --> 137 <match key="volume.fstype" string="vfat"> 138 <append key="volume.mount.valid_options" type="strlist">utf8</append> 139 <append key="volume.mount.valid_options" type="strlist">shortname=</append> 140 <append key="volume.mount.valid_options" type="strlist">codepage=</append> 141 <append key="volume.mount.valid_options" type="strlist">iocharset=</append> 142 <append key="volume.mount.valid_options" type="strlist">umask=</append> 143 <append key="volume.mount.valid_options" type="strlist">dmask=</append> 144 <append key="volume.mount.valid_options" type="strlist">fmask=</append> 145 <append key="volume.mount.valid_options" type="strlist">uid=</append> 146 </match> 147 148 149 <!-- allow these mount options for hfs --> 150 <match key="volume.fstype" string="hfs"> 151 <append key="volume.mount.valid_options" type="strlist">uid=</append> 152 <append key="volume.mount.valid_options" type="strlist">force</append> 153 </match> 154 155 <!-- allow these mount options for hfsplus --> 156 <match key="volume.fstype" string="hfsplus"> 157 <append key="volume.mount.valid_options" type="strlist">uid=</append> 158 <append key="volume.mount.valid_options" type="strlist">force</append> 159 </match> 160 161 <!-- allow these mount options for ntfs --> 162 <match key="volume.fstype" string="ntfs"> 163 <append key="volume.mount.valid_options" type="strlist">uid=</append> 164 <append key="volume.mount.valid_options" type="strlist">gid=</append> 165 <append key="volume.mount.valid_options" type="strlist">umask=</append> 166 </match> 167 168 <!-- allow these mount options for ext3 --> 169 <match key="volume.fstype" string="ext3"> 170 <append key="volume.mount.valid_options" type="strlist">data=</append> 171 </match> 172 173 <!-- udf --> 174 <match key="volume.fstype" string="udf"> 175 <append key="volume.mount.valid_options" type="strlist">uid=</append> 176 <append key="volume.mount.valid_options" type="strlist">umask=</append> 177 </match> 178 179 <!-- iso9660 --> 180 <match key="volume.fstype" string="iso9660"> 181 <append key="volume.mount.valid_options" type="strlist">utf8</append> 182 <append key="volume.mount.valid_options" type="strlist">uid=</append> 183 <append key="volume.mount.valid_options" type="strlist">mode=</append> 184 <append key="volume.mount.valid_options" type="strlist">iocharset=</append> 185 </match> 186 187 <!-- pcfs --> 188 <match key="volume.fstype" string="pcfs"> 189 <append key="volume.mount.valid_options" type="strlist">foldcase</append> 190 <append key="volume.mount.valid_options" type="strlist">nofoldcase</append> 191 </match> 192 193 <!-- allow these unmount options --> 194 <append key="volume.unmount.valid_options" type="strlist">lazy</append> 195 196 </match> 197 198 <match key="storage.requires_eject" bool="true"> 199 <!-- storage Eject causes eject on each volume on this storage --> 200 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Storage</append> 201 <append key="org.freedesktop.Hal.Device.Storage.method_names" type="strlist">Eject</append> 202 <append key="org.freedesktop.Hal.Device.Storage.method_signatures" type="strlist">as</append> 203 <append key="org.freedesktop.Hal.Device.Storage.method_argnames" type="strlist">extra_options</append> 204 <append key="org.freedesktop.Hal.Device.Storage.method_execpaths" type="strlist">hal-storage-eject</append> 205 206 <append key="info.interfaces" type="strlist">org.freedesktop.Hal.Device.Storage</append> 207 <append key="org.freedesktop.Hal.Device.Storage.method_names" type="strlist">CloseTray</append> 208 <append key="org.freedesktop.Hal.Device.Storage.method_signatures" type="strlist">as</append> 209 <append key="org.freedesktop.Hal.Device.Storage.method_argnames" type="strlist">extra_options</append> 210 <append key="org.freedesktop.Hal.Device.Storage.method_execpaths" type="strlist">hal-storage-closetray</append> 211 </match> 212 </device> 213</deviceinfo> 214