Why FreeBSD does not have temperature/fan/voltage sensors

The sensors framework from OpenBSD was converted to FreeBSD in 2007 as part of a Google Summer of Code project.  It was complete and functional and submitted to the FreeBSD tree at the time for 8.0-CURRENT.

Several other commiters thought the project worthy of being added to the code, but  PHK did not like it and had the code removed for spurious reasons. (reason which have failed to stop other projects currently in FreeBSD releases to this very day)

The developer did not have the time or patience to battle it with one uncooperative developer, so he let it go.   No one else has since picked the project  up and to this date, no sensors framework exists in FreeBSD.

If you want to the developers story, or you want to pick up the latest code and port it yourself, you can find it here

Netgear GS108Tv1

Stay away from this thing if you don’t like problems.  I’ve had two of them for about a year and had multiple throughput and packet loss problems which magically disappeared once the switch was removed from the equation.

I could not even configure more than 2 VLANs on either one of these switches without it locking up every 15 minutes.

If you own one, beware of firmware updates.  They are known to add new bugs and cause problems you did not encounter before.

edit: The latest firmware has been at 3.0.4.10 for quite some time, I expect Netgear has decided to discontinue working on this product.  Many bugs still remain the firmware.

(I have not tried the GS108Tv2, which has different hardware and firmware. )

ASUS 1215N Netbook under Linux

(I used Fedora 14 & 16 for my below experiences)

Atom D525 processor is a desktop processor. No EIST support, no ondemand or conservative cpufreq support. Only supported via the p4-clockmod module with a userspace utility such as ‘cpuspeed’.

I managed to get some small power drain savings by implementing the above, at cost of snappy performance.

The ACPI thermal sensor says around 60C at all times.  Hot air comes out of the side of this thing all of the time it is powered on, even if it’s idle.

note: by turning off the nvidia GPU using the acpi_call module, it drops to around 55C idle.

Up to 4GB maximum, via 2 DDR3 memory modules.  Beware of memory compatabilitiy issues, some of which are solved via the latest BIOS updates.

There is also a limitation with detecting more than 2.7GB of memory unless you run a hacked BIOS version which is floating around the internet.

(This might be limited to Windows, as I read a few posts that Linux always detected all 4GB)

Hybyrid graphics method of ION2/Intel uses a new technology called “optimus” which NVIDIA has officially stated it will not support in Xorg.

A project called bumblebee exists to allow for the intel and nvidia chipsets to both be used. It’s in early stages and you wont find it in any common repos, you’ll have to grab it from the GIT and install it using their scripts. I have not tried it, it does not support Fedora as of yet.

There is a custom acpi_call module you can find over a git repo that will allow you to turn off the NVIDIA chipset, saving you some additional power if you do not need to use it in Linux.

(The intel chipset works plenty fast for compiz effects, so far that I’ve tested)

Power pack gets incredibly hot when under heavy load or when recharging while running. Will probably limit the life and require replacements of the power pack sooner than less demanding laptops.

Still experiencing problems with the wired Ethernet port crapping out, even though the kernel says its detecting link.  Reloading the module did not even fix it, I had to reboot very time.

HARD DRIVE DIED ALREADY.  This is not a surprise as Seagate’s hard drives have basically gone downhill fast in the last few years.  Replaced it with a 64GB SSD and everything is running a lot faster now.

M-Audio Audiophile 24/96 on Fedora 13 with Pulse Audio

  1. Create ice1712-pulseaudio-workaround.rules and copy to /etc/udev/rules.d/
  2. SUBSYSTEM!=”sound”, GOTO=”ice1712_end”
    ACTION!=”change”, GOTO=”ice1712_end”
    KERNEL!=”card*”, GOTO=”ice1712_end”

    SUBSYSTEMS==”pci”, ATTRS{vendor}==”0×1412″, ATTRS{device}==”0×1712″, ATTRS{subsystem_vendor}==”0×1412″, ATTRS{subsystem_device}==”0xd634″, ENV{PULSE_PROFILE_SET}=”via-ice1712.conf”

    LABEL=”ice1712_end”

  3. Create via-ice1712.conf and copy to /usr/share/pulseaudio/alsa-mixer/profile-sets/
  4. # This file is part of PulseAudio.
    #
    # PulseAudio is free software; you can redistribute it and/or modify
    # it under the terms of the GNU Lesser General Public License as
    # published by the Free Software Foundation; either version 2.1 of the
    # License, or (at your option) any later version.
    #
    # PulseAudio is distributed in the hope that it will be useful, but
    # WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    # General Public License for more details.
    #
    # You should have received a copy of the GNU Lesser General Public License
    # along with PulseAudio; if not, write to the Free Software Foundation,
    # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

    ; Via ICE1712 multi-channel audio chipset
    ;
    ; This chipset has up to four stereo pairs of input and four stereo pairs of
    ; output, named channels 1 to 8. Also available are separate S/PDIF stereo
    ; channels (input and output), and a separate “system-out” stereo jack that
    ; supports 6-channel hardware mixing.
    ;
    ; The S/PDIF stereo channels can be controlled via the mixer for hw:0, and
    ; additionally, the 8 main outputs can be loop-routed to a separate stereo
    ; input pair, available as channels 11 and 12.
    ;
    ; Many cards available from vendors do not expose all channels from this chip
    ; to an external port, which effectively reduces the number of channels that
    ; are useful to the user. However, the ALSA driver still exposes all channels
    ; even if they are not connected.
    ;
    ; We knowingly only define a subset of the theoretically possible
    ; mapping combinations as profiles here.
    ;
    ; See default.conf for an explanation on the directives used here.

    [General]
    auto-profiles = no

    [Mapping analog-mch-in]
    description = Analog Multi-Channel Main Input
    device-strings = hw:%f,0
    #channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1,aux2,aux3
    channel-map = aux0,aux1,front-left,front-right,aux2,aux3,aux4,aux5,aux6,aux7,aux8,aux9
    direction = input

    [Mapping analog-mch-out]
    description = Analog Multi-Channel Main Output
    device-strings = hw:%f,0
    #channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right,aux0,aux1
    channel-map = front-left,front-right,aux0,aux1,aux2,aux3,aux4,aux5,aux6,aux7
    direction = output

    [Mapping digital-stereo]
    description = Digital Stereo Input/Output
    #device-strings = hw:%f,1
    device-strings = iec958:%f
    channel-map = left,right
    direction = any

    [Mapping analog-system-out]
    description = Analog Stereo System-Out
    device-strings = hw:%f,2
    channel-map = left,right
    direction = output

    [Profile output:mch]
    description = Multi-Channel Output Active (Digital Disabled)
    output-mappings = analog-mch-out analog-system-out
    input-mappings =
    priority = 90
    skip-probe = yes

    [Profile output:mch+input:mch]
    description = Multi-Channel Input/Output (Digital Disabled)
    output-mappings = analog-mch-out analog-system-out
    input-mappings = analog-mch-in
    priority = 100
    skip-probe = yes

    [Profile output:spdif]
    description = Digital Output (Multi-Channel Disabled)
    output-mappings = digital-stereo analog-system-out
    input-mappings =
    priority = 80
    skip-probe = yes

    [Profile output:spdif+input:spdif]
    description = Digital Input/Output (Multi-Channel Disabled)
    output-mappings = digital-stereo analog-system-out
    input-mappings = digital-stereo
    priority = 90
    skip-probe = yes

    [Profile output:system]
    description = System Output Only
    output-mappings = analog-system-out
    input-mappings =
    priority = 60
    skip-probe = yes

  5. Permissions on each file should be -rw-r–r–
  6. Reboot for the udev changes to take effect.

NOTE: I don’t even use pulseaudio anymore on this card – still experienced problems.  I found that dmix was very easy to setup and allowed for all of my applications to play simultaneously without the need for pulseaudio at all.  I uninstalled pulseaudio and applied the following to my ~/.asoundrc

<code>
# our ICE1712 dmix:
pcm.ossmix {
type dmix
ipc_key 1024
slave {
pcm “hw:0,0″
period_time 0
period_size 1024
buffer_size 4096 # buffer size < 6653, but pow(x, 2)
rate 44100 # we want to play CDs only
format S32_LE # needed in alsa 1.0.10 for some reason
}
bindings {
0 0
1 1
}
}
# Everything shall be dmixed, so redefine “default”:
pcm.!default {
type plug
slave.pcm “ossmix”
}
# OSS via aoss should d(mix)stroyed:
pcm.dsp0 {
type plug
slave.pcm “ossmix”
}
ctl.mixer0 {
type hw
card 0
}
# our ICE1712 dmix:
pcm.ossmix {
type dmix
ipc_key 1024
slave {
pcm “hw:0,0″
period_time 0
period_size 1024
buffer_size 4096 # buffer size < 6653, but pow(x, 2)
rate 44100 # we want to play CDs only
format S32_LE # needed in alsa 1.0.10 for some reason
}
bindings {
0 0
1 1
}
}
# Everything shall be dmixed, so redefine “default”:
pcm.!default {
type plug
slave.pcm “ossmix”
}
# OSS via aoss should d(mix)stroyed:
pcm.dsp0 {
type plug
slave.pcm “ossmix”
}
ctl.mixer0 {
type hw
card 0
}

M-Audio Audiophile 2496 and Pulse Audio 0.9.15 or higher

Solution found in redhat buzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=499435#c29

Edit your /usr/share/alsa/cards/ICE1712.conf and change the following:

–snip–

ICE1712.pcm.front.0 {
@args [ CARD ]
@args.CARD {
type string
}
type route
ttable.0.0 1
ttable.1.1 1
slave.pcm {
type hw
card $CARD
}
slave.format S32_LE
slave.channels 10
}

–snip–

NOTE: The only change in my ICE1712.conf was the addition of these two lines:

slave.format S32_LE
slave.channels 10

note: this change may be obsoleted by the next post

Return top