Home-Server™ with MSI J1900I and debian Linux

This is kind of a review but at the same time it's not. I'm not going to test audio or video right now nor will i benchmark anything down. The MSI J1900I has an onboard Intel® Celeron® Processor J1900 (2M Cache, up to 2.42 GHz, 4 Cores) Chip, which lacks instruction sets compared to other mainboards in this category, but comes with a good clockspeed and low energy consumption.

I decided to get me a new little server running at home. For fun and entertaining myself for sure.

Sorry, i flipped the wrapping of the board. Well here is the hardware list.

 

Components:

  • MSI J1900I Motherboard, Intel® Celeron® J1900 (2M Cache, up to 2.42 GHz), mini-ITX
  • Kingston SDD V300 120 GB
  • be quiet 300 Watts Power Supply
  • Xigmatek Case Nebula, mini-ITX
  • and of course some SO-DIMMs 4 GB in total (Teamgroup)

 

Once assembled i started to install debian with USB sticks and a lot of patience and problems and patience. Why debian? well i made this decision like 17 years ago. It's an old love.

An argument maybe would be that debian appears very clean to me. Some people maybe in turn would say the opposite. However...

Now i have a running system with cpufreqd (this changed), dynamic dns or dyndns, wordpress of course and the independency and freedom that comes with it.

 

Few words about the Xigmatek Nebula Case

I like it. You can take off 3 side panels and everything is easy to access. The bottom has a lot of tiny holes for good airflow. For installing a mini-itx board i can recommend a short screw driver and be patient when you install the power supply. Everything is new and sits tight. The hole case itselfs look pretty clean and "cool". I wish i had the money to get me a stack of them to create a wall. But my internet connection just couldn't make use of them.

If you buy one, be gentle! The panels sit very justified/flush. You may have to use your nails or some plastic stick to get the first panel off. Once you  have the first panel off, its easy. Additionally i bought some purple LED to light the undersurface.

 

 

 

Realtek you Schlitzohr (translate that please for me)

During installation you may  get in trouble with the network drivers. Possible that your kernel is shipped with Realtek 8169 support (grep for r816 in lsmod) and even that a driver is loaded your network is not working properly? Then open your brower and search for "Realtek 8168".

I ended up here and tried some mirrors for the UX drivers and as you can see i got it to work - otherwise you wouldn't see this website.

When compiled and installed using the autorun.sh there still might be a r8169.ko left. Rename it to something that doesn't end with *.ko and run:

update-initramfs -u -k $(uname -r)

otherwise your kernel may keep loading the "old" driver during boot.

root@bahuett:~# lsmod|grep -i r8
r8168                 248409  0

 You didn't even get to that point? Debian is not even booting? What device are you using to deploy debian love on your system?

 

CD/DVD/NetInst?

The painful truth about this system is, that even when you manage it to install the netinstall system or base system using USB sticks you end up with dead network drivers and an USB stick and no way to compile a new driver (when using 1 CD ISO Image only).

So i recommend using an DVD Image to make sure every package that could be useful is available. And please, check the Image you downloaded for corruption/integirity or the files you need are not there or not complete.

For "burning" my USB sticks on Windows i tested some programms and in the end i can recommend this one:

WinSetupFromUSB-1-4 - Click

 

Quiet but not cold?

The MSI J1900i comes with a passive heatsink and the Nebula case has a fan rotating at ~ 1000 rpm. You can't hear it thats what we want - but - under load the CPU can reach up to 60 ° C or 158° F. (Just keep in mind that this CPU comes with a turbo boost mode!) I dont like that but for now i leave it as it is. The first thing i did was to play with cpufreqd and start makeing powersaving modes for my little hamster.

governor "powersave" -- didn't work well for me

... because i want both, saving power when nothing to do and launch rockets when necessary.

At first i tried the governor (you will know what this is, when you start business with cpufreqd) "powersave". The result was that the CPU got throttled the way i wanted but didn't dethrottle the way i wanted. Or there was an "incredible" higher stress required to get this governor switch to the next higher frequency while in powersaving mode. Don't get me wrong, the CPU got clocked smoothly higher and higher but not to fullspeed.

And i had  5 Rules and 5 Profiles to cover the frequencies (9 steps) cpufreq can move in.

Steppings

2.0 GHz (100%) 1.91 GHz (95,5%) 1.83 GHz (91,5%) 1.74 GHz (87%) 1.66 GHz (83%) ->

1.58 GHz (79%) 1.49 GHz (74,5%) 1.41 GHz (70,5%) 1.33 GHz (66,5%)

 (and the turbo-boost frequency 2.4 GHz)

 

However some of the governor parameters in cpufreqd are not available for governor "powersave" thus i changed to governor "ondemand" and am happy with it. Name of the rules do not have to contain the name of the governor in it. And frequencies are allowed to overlap. Also its not necessary to provide exact frequencies. You can use % values instead in your config.

current active rule is being selected by cpufreqd according to it's rule parameters which scores most

root@bahuett:~# cpufreqd-get

Name (#1):      ondemand High
Active on CPU#: 0, 1, 2, 3                       (this line implies which profile is active which in turn gets selected by the rules you create)

Governor:       ondemand
Min freq:       1328000
Max freq:       1328000

Name (#2):      ondemand Med
Governor:       ondemand
Min freq:       1328000
Max freq:       1494000

Name (#3):      ondemand Low1
Governor:       ondemand
Min freq:       1411000
Max freq:       1660000

Name (#4):      ondemand Low2
Governor:       ondemand
Min freq:       1577000
Max freq:       1826000

Name (#5):      ondemand Low3
Governor:       ondemand
Min freq:       1826000
Max freq:       1993000

model name and its official clock speed and the actual speed of each core-#

root@bahuett:~# watch "grep Hz /proc/cpuinfo"

Every 2,0s: grep Hz /proc/cpuinfo             Fri Aug 15 21:08:17 2014

model name      : Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
cpu MHz         : 1328.000
model name      : Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
cpu MHz         : 1328.000
model name      : Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
cpu MHz         : 1328.000
model name      : Intel(R) Celeron(R) CPU  J1900  @ 1.99GHz
cpu MHz         : 1328.000

 

 

 

 Sensors / Temperatur

Unfortunately ACPI can't find the CPUs temperature or at least not from stock. Just the systems temp can be measured - but - lm-sensors is doing well AND you can use the values in cpufreqd!

lm-sensor output

root@bahuett:~# sensor
sacpitz-virtual-0
Adapter: Virtual device
temp1:        +26.8°C  (crit = +90.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +46.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:       +46.0°C  (high = +105.0°C, crit = +105.0°C)
Core 2:       +48.0°C  (high = +105.0°C, crit = +105.0°C)
Core 3:       +48.0°C  (high = +105.0°C, crit = +105.0°C)

ACPI output

root@bahuett:~# acpi -V
No support for device type: power_supply
No support for device type: power_supply
Thermal 0: ok, 26.8 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 90.0 degrees C
Thermal 0: trip point 1 switches to mode hot at temperature 85.0 degrees C
Thermal 0: trip point 2 switches to mode passive at temperature 85.0 degrees C
Thermal 0: trip point 3 switches to mode active at temperature 50.0 degrees C
Cooling 0: Processor 0 of 10
Cooling 1: Processor 0 of 10
Cooling 2: Processor 0 of 10
Cooling 3: Processor 0 of 10
Cooling 4: Fan 0 of 1

root@bahuett:~# acpi -t
Thermal 0: ok, 26.8 degrees C

 

The negative side is, that cpufreqd and turbo boost mode seem not to work together. However. Loading the msr module

modprobe msr 

and an additional stresstest discover that cpufreqd is the boss, but when you turn cpufreqd off, the turbo boost is working fine!

You could get cpufreqd working with "turbo" when you adjust the max frequency setting. But in my case i can now stick to msr only. So cpufreqd would just be extra overhead.

 

For plain powersavings i would recommend cpufreqd.  In my case, msr-only is the better choice. Frequency-changes during short stress-tests:

root@bahuett:~# turbostat
 CPU   GHz    TSC
 avg   2.35   2.00
   0   2.10   2.00
   1   2.41   2.00
   2   1.39   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.33   2.00
   0   2.12   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.30   2.00
   0   2.29   2.00
   1   2.38   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.34   2.00
   0   2.22   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.34   2.00
   0   2.06   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.34   2.00
   0   2.06   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.34   2.00
   0   2.06   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.34   2.00
   0   2.19   2.00
   1   2.41   2.00
   2   1.33   2.00
   3   1.33   2.00
 CPU   GHz    TSC
 avg   2.36   2.00
   0   2.16   2.00
   1   2.41   2.00
   2   1.42   2.00
   3   1.43   2.00

 

19 thoughts on “Home-Server™ with MSI J1900I and debian Linux

  1. Hello,

    I’m looking forward to buying this board for a fanless HTPC. I’ll put it on a very small case with no fans. Sice I live in Brazil temperature is an important issue. My other option is the Asrock Q1900-ITX which runs at 2 GHz. Could you tell me if I can disable turbo boost and leave the board on 2 GHz on the BIOS? I noticed you managed to do that by software – your problem might just be my solution!.

    Thanks in advance.

  2. Hi… I’m on the same journey as you… Using msi j1900 as home server. First, congrats for your post.. It helps me a lot… But when I turn on my home server with no monitor connected, the main board starts beeping and I have to connect a VGA display and reboot the computer… When I turn on my PC with a monitor connected, the PC works fine… Did you experience something like that with your server too or there’s something that I’m missing? Regards…

    1. Hello, i had no problems yet with this ITX board. Its running without a monitor attached. I recently upgraded the RAM to 16 GB for some virtualization with VirtualBox and even this is working like a sharm. Not the fastet CPU but sufficient to run Windows ontop of Linux as a Space Engineer Server.

        1. i know that i updated it once, but can’t tell which version. Keeping in mind the server is running since one year at least the BIOS version is: 2014-03-26

          And here the output from `dmesg` on the system itself. So surprisingly in this BIOS Version, MSI fixed something on the VBIOS as well. You should check that immediately

          [ 0.000000] DMI: MSI MS-7877/J1900I, BIOS V1.2 03/25/2014

          1. Hi bahuett… tks for your answer…
            Yes… I’ve updated the BIOS to last avaiable version @msi support web site…

            I’ll try to change the memories and I’ll report you what happened…

  3. [SOLVED]

    Use this grub2 config:

    # If you change this file, run ‘update-grub’ afterwards to update
    # /boot/grub/grub.cfg.
    # For full documentation of the options in this file, see:
    # info -f grub -n ‘Simple configuration’

    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    #GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
    GRUB_CMDLINE_LINUX=”nomodeset”

    # Uncomment to enable BadRAM filtering, modify to suit your needs
    # This works with Linux (no patch required) and with any kernel that obtains
    # the memory map information from GRUB (GNU Mach, kernel of FreeBSD …)
    #GRUB_BADRAM=”0x01234567,0xfefefefe,0x89abcdef,0xefefefef”

    # Uncomment to disable graphical terminal (grub-pc only)
    GRUB_TERMINAL=console

    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo’
    #GRUB_GFXMODE=640×480

    # Uncomment if you don’t want GRUB to pass “root=UUID=xxx” parameter to Linux
    #GRUB_DISABLE_LINUX_UUID=true

    # Uncomment to disable generation of recovery mode menu entries
    #GRUB_DISABLE_RECOVERY=”true”

    # Uncomment to get a beep at grub start
    GRUB_INIT_TUNE=”480 440 1″

    1. you did uncomment the line to hear a beep at start but i think Eduardo is aiming for the complete opposite.

      this is what my config looks like (i didnt change anything):

      # If you change this file, run ‘update-grub’ afterwards to update
      # /boot/grub/grub.cfg.
      # For full documentation of the options in this file, see:
      # info -f grub -n ‘Simple configuration’

      GRUB_DEFAULT=0
      GRUB_TIMEOUT=5
      GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
      GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
      GRUB_CMDLINE_LINUX=””

      #GRUB_BADRAM=”0x01234567,0xfefefefe,0x89abcdef,0xefefefef”

      #GRUB_TERMINAL=console

      #GRUB_GFXMODE=640×480

      #GRUB_DISABLE_LINUX_UUID=true

      #GRUB_DISABLE_RECOVERY=”true”

      #GRUB_INIT_TUNE=”480 440 1″

      1. i did not only uncomment beep

        my changes:
        1. comment #GRUB_CMDLINE_LINUX_DEFAULT
        2. set GRUB_CMDLINE_LINUX=”nomodeset” (not load video drivers and use BIOS modes)
        3. uncomment GRUB_TERMINAL=console (disable graphical terminal)
        4. uncomment GRUB_INIT_TUNE=”480 440 1″ (beep on grub load)

        ps: bios 1.5v

        1. Hi Anonymous…. Tks for your tips… I’ll try it this weekend and return what happened… It seems to be correct your line of thought for me…

          FYI: The memories that I’ve changed doesn’t fixed the problem…

          1. [SOLVED]
            Hi!

            It works! I changed the /etc/default/grub and the server boots up! Tks guys!!!

            =D

      2. Hi bahuett, my first version of grub was the default one… I didn’t change anything too… What the Anonymous are trying seems to be correct for me… I’ll try it… Wish me luck…. =D

        By the way, I’ve changed the memories and the problem still… No boot with no monitor attached… =(

        1. thats bad news. who did tell you to change the ram when they didnt produce an error? you should punish him with the old modules!

          Thx to Anonymous for (maybe) solving this 🙂 good work.

          1. Hi Anonymous! The RAM change was by myself… I was thinking that a bad memory could cause boot fails; hehehehehe

            =D

Leave a Reply

Your email address will not be published.