4

I've noticed that my machine is missing lshal for some reason. I've tried to install it with sudo apt-get install hal but it did help. What should I do?

4

You can install HAL from the PPA.

sudo add-apt-repository ppa:mjblenner/ppa-hal
sudo apt-get update
sudo apt-get install hal
  • Works. I just needed this to get a single value for something and this did the trick. Thank you. – thedp Sep 19 '15 at 16:49
  • 1
    @thedp You are most welcome. :~) – mikewhatever Sep 19 '15 at 16:53
7

HAL is long deprecated by most of Linux Distros (since 4 years at least now), due to the fact that

it has become a large monolithic unmaintainable mess, and also duplicates a lot of functionality which are nowadays provided by udev and the kernel itself.

Source

I would strongly suggest to you that you find a modern way to do what you intent to do, instead of trying to use an old software that will probably break your system.

  • I was required to see what lshal gives for system.hardware.product. – thedp Sep 19 '15 at 16:52
  • 1
    Well, you should say to this person that he/she has to update him/herself, because that command is neither a good suggestion nor a useful one anymore. – dadexix86 Sep 19 '15 at 16:59
  • Sadly, this value is used by pm-action to identify and set quirks on the display. – thedp Sep 19 '15 at 20:06
  • Don't know who told you that, but definitely not anymore. The latest pm-utils version that used HAL was 1.2.7, and it is loooong gone (was released in 2009!). You do not need HAL on your system to use pm-actions. It may also happen that they create conflicts. Pay close attention to what your are doing, becasue when dealing with these things you risk to break the hardware ;) – dadexix86 Sep 20 '15 at 7:04
7

lshal is no longer available.

HAL is now deprecated on most Linux distributions, such as parts of Ubuntu with functionality being merged into udev as of 2008–2010. Previously, HAL was built on top of udev.

Source

udevadm is your new friend, e.g.

udevadm info --query=all --attribute-walk --name=/dev/sda

gives

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="250069680"
    ATTR{stat}=="   57563     3582  2721456    42992    56151    40558  2275840   104352        0    22216   147296"
    ATTR{range}=="16"
    ATTR{discard_alignment}=="0"
    ATTR{events}==""
    ATTR{ext_range}=="256"
    ATTR{events_poll_msecs}=="-1"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="0"
    ATTR{capability}=="50"
    ATTR{events_async}==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0':
    KERNELS=="0:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{rev}=="2a  "
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="6"
    ATTRS{model}=="ADATA SP900     "
    ATTRS{state}=="running"
    ATTRS{unload_heads}=="0"
    ATTRS{queue_type}=="none"
    ATTRS{iodone_cnt}=="0x1c943"
    ATTRS{iorequest_cnt}=="0x1ca1e"
    ATTRS{queue_ramp_up_period}=="120000"
    ATTRS{device_busy}=="0"
    ATTRS{evt_capacity_change_reported}=="0"
    ATTRS{timeout}=="30"
    ATTRS{evt_media_change}=="0"
    ATTRS{ioerr_cnt}=="0xe4"
    ATTRS{queue_depth}=="31"
    ATTRS{vendor}=="ATA     "
    ATTRS{evt_soft_threshold_reached}=="0"
    ATTRS{device_blocked}=="0"
    ATTRS{evt_mode_parameter_change_reported}=="0"
    ATTRS{evt_lun_change_reported}=="0"
    ATTRS{evt_inquiry_change_reported}=="0"
    ATTRS{iocounterbits}=="32"
    ATTRS{vpd_pg80}==""
    ATTRS{vpd_pg83}==""
    ATTRS{eh_timeout}=="10"

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0':
    KERNELS=="target0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0':
    KERNELS=="host0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
    KERNELS=="ata1"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2':
    KERNELS=="0000:00:1f.2"
    SUBSYSTEMS=="pci"
    DRIVERS=="ahci"
    ATTRS{irq}=="25"
    ATTRS{subsystem_vendor}=="0x1028"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x010400"
    ATTRS{driver_override}=="(null)"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000003"
    ATTRS{device}=="0x2822"
    ATTRS{enable}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x020d"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
  • I was required to see what lshal gives for system.hardware.product. – thedp Sep 19 '15 at 16:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.