# Hardware Upgrade (Motherboard/CPU/RAM)

## slackline

Hi,

Order some new hardware to upgrade my ageing system and would appreciate any tips/pointers to my (broad) plan....

 Take existing computer apart

 Rebuild with new components and existing HDs (1 SSD for OS, 2 X 3TB RAID1)

 Boot computer from a live disc (usually use SystemRescueCD).

 chroot into the existing install

 Build a new kernel specific to the new hardware, installing the initramfs (to support RAID on boot) and kernel image to/with GRUB2

 Modify /etc/portage/make.conf to reflect the new hardware.

 Re-emerge everything (emerge -e @system)

 Leave things along for half-a-day or so.

 Exit chrooted environment and reboot my system

Thats my broad understanding of how I'd go about upgrading the system, is it reasonable/feasible?  I realise its a bit sparse on details but I'm familiar with the Handbook and don't see much point in retyping it all.

Hardware wise I've gone for...

Asus Z170-PRO ATX LGA1151

Intel i7-6700 @ 3.4Ghz Quad-Core Processor

Corsair Vengeance LPX 32GB (2 x 16GB) DDR4-3000

...and I'll obviously need to work out what kernel options to use for this.  In the past I've used genkernel as guidance and then over time trimmed out unnecessary modules.  Are there any features/kernel options I should look out for?

I realise this is kind of a vague post but if anyone has experience of upgrading in this manner I'd be interested to hear what you think of my planned strategy.

Thanks in advance,

slackline

----------

## NeddySeagoon

slackline,

Unplug the mains lead from the old computer.  Plug a new computer into it  :)

Its not quite so simple unless your new system can run the code built for your old system.  If that's true, your post is correct.

Should you be switching between Intel and AMD, its probably not true because they have different (incompatible) instruction set extensions.

In this case, you need to build at least the @system set and kernel with CPU agnostic CFLAGS before you switch.

That way you have a toolchain than works in both places. If your GUI is broken in its new home, not to worry.

Once you have migrated, you can go back to -march=native, rebuild the @system set and anything else that fails with an illegal instruction exception.  

Don't forget to update your CPU_FLAGS_X86= for the new CPU.

----------

## slackline

Thanks Neddy thats really useful (as always).   :Smile: 

Glaringly obvious omission of the existing hardware I'm migrating from.   :Embarassed: 

My current hardware is...

CPU : Intel Core2 CPU E8400 @ 3.00GHz

RAM : 6Gb DIMM 800Mhz

Motherboard : Gigabyte X48-DSX

(I know the key is the CPU architecture though)

So I'm not transitioning from AMD, but I guess it might be sensible to rebuild my system with agnostic CFLAGS anyway as whilst a bit of a pain it could help avoid some problems.

Not having desktop/sound/etc. working I can resolve after I've a system that boots, done it a few times over now.  I know I'll have to sort out VIDEO_CARD  and associated Xorg stuff, but have a good idea what I'm doing there (and theres always the Wiki to consult).

Thank you very much for your advice, really useful.

slackline

```

    description: Desktop Computer

    product: X48-DS4

    vendor: Gigabyte Technology Co., Ltd.

    width: 4294967295 bits

    capabilities: smbios-2.4 dmi-2.4 vsyscall32

    configuration: boot=normal chassis=desktop uuid=00000000-0000-0000-0000-001FD0207979

  *-core

       description: Motherboard

       product: X48-DS4

       vendor: Gigabyte Technology Co., Ltd.

       physical id: 0

       version: x.x

     *-firmware

          description: BIOS

          vendor: Award Software International, Inc.

          physical id: 0

          version: F1

          date: 03/21/2008

          size: 128KiB

          capacity: 960KiB

          capabilities: pci pnp apm upgrade shadowing cdboot bootselect edd int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video acpi usb ls120boot zipboot biosbootspecification

     *-cpu

          description: CPU

          product: Intel(R) Core(TM)2 CPU         E8400  @ 3.00GHz

          vendor: Intel Corp.

          physical id: 4

          bus info: cpu@0

          version: Intel(R) Core(TM)2 CPU E840

          slot: Socket 775

          size: 3GHz

          capacity: 4GHz

          width: 64 bits

          clock: 333MHz

          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf eagerfpu pni monitor tm2 ssse3 lahf_lm dtherm

        *-cache:0

             description: L1 cache

             physical id: a

             slot: Internal Cache

             size: 64KiB

             capacity: 64KiB

             capabilities: synchronous internal write-back

        *-cache:1

             description: L2 cache

             physical id: b

             slot: External Cache

             size: 6MiB

             capabilities: synchronous internal write-back

     *-memory

          description: System Memory

          physical id: 19

          slot: System board or motherboard

          size: 6GiB

        *-bank:0

             description: DIMM 800 MHz (1.2 ns)

             physical id: 0

             slot: A0

             size: 2GiB

             width: 64 bits

             clock: 800MHz (1.2ns)

        *-bank:1

             description: DIMM 800 MHz (1.2 ns)

             physical id: 1

             slot: A1

             size: 1GiB

             width: 64 bits

             clock: 800MHz (1.2ns)

        *-bank:2

             description: DIMM 800 MHz (1.2 ns)

             physical id: 2

             slot: A2

             size: 2GiB

             width: 64 bits

             clock: 800MHz (1.2ns)

        *-bank:3

             description: DIMM 800 MHz (1.2 ns)

             physical id: 3

             slot: A3

             size: 1GiB

             width: 64 bits

             clock: 800MHz (1.2ns)

     *-pci

```

```

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /usr/share/portage/config/make.conf.example for a more

# detailed example.

CFLAGS="-O2 -march=native -pipe"

## CFLAGS="-O2 -pipe"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j3"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="x86_64-pc-linux-gnu"

# Gentoo sync and mirrors

#SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage"

#SYNC="rsync://rsync.gentoo.org/gentoo-portage"

#GENTOO_MIRRORS="http://gentoo.virginmedia.com http://www.mirrorservice.org/sites/distfiles.gentoo.org/ http://distfiles.gentoo.org/"

GENTOO_MIRRORS="http://www.mirrorservice.org/sites/distfiles.gentoo.org/ http://distfiles.gentoo.org/"

# Masked Packages by keyword

ACCEPT_KEYWORDS="~amd64"

# Masked Packages by license

ACCEPT_LICENSE="*"

# These are the USE flags that were used in addition to what is provided by the

# profile used for building.

USE="a52 aac acpi alsa apm bash-completion branding cdda cddb cdr cups dbus device-mapper -doc dvd dvdr emacs exif ffmpeg flac gif gimp glitz gtk gtk3 -hal icu id3tag ipv6 jpeg kpathsea -kde lensfun -libav libsexy lock mp3 mpeg nsplugin ntp nvidia offensive ogg opengl oss pam pdf perl png policykit pulseaudio python -qt3 -qt4 qt5 raw scanner spell sqlite3 ssh svg thunar tiff truetype udev usb vorbis win32codecs X x264 xcb xinetd xulrunner xvmc"

CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3"

RUBY_TARGETS="ruby22 ruby23"

# Default emerge options/features

EMERGE_DEFAULT_OPTS="--alphabetical --keep-going --quiet --verbose --with-bdeps=y"

FEATURES="parallel-fetch -ccache"

AUTOCLEAN="yes"

#USE_PYTHON="2.7"

PYTHON_TARGETS='python2_7 python3_4'

#PYTHON_TARGETS='python3_4'

PYTHON_SINGLE_TARGET='python3_4'

# Keyboard and Mouse

INPUT_DEVICES="keyboard mouse evdev virtualbox"

# Video Cards

#VIDEO_CARDS="nvidia"

VIDEO_CARDS="nouveau"

#ABI_X86="64 32"

ABI_X86="64"

# Linguas

LINGUAS="en_GB"

L10N="en_GB"

```

----------

## NeddySeagoon

slackline,

Intel to Intel should be fairly painless.  AMD to AMD can loose 3Dnow! and 3Dnowext.  That breaks multimedia stoff.

----------

## papu

3 weeks ago i update my cpu-ram-motherboard-box

i just compile from 0 ,  i use gentoo-sources( 4.8.12-gentoo-r1 x86_64)  and make oldconfig from last .config

make.conf --> https://forums.gentoo.org/viewtopic-p-7687980.html#7687980

only think that not working is intel-iommu suport aka--> vt-d ,  that i want to test for do a PCI passthrough

 then i am much interested that you have same problem because you are using same chipset and a intel skylake  like me.

```
kenel BUG at drivers/iommu/intel-iommu.c:3705!
```

 :Shocked: 

----------

## slackline

Short update, upgrade went smoothly (bar not plugging in the 12V power supply for the CPU first time, oops   :Embarassed:  ).

Didn't have to use a Live distro and chroot either, system booted, although Xorg was a bit wonky until I'd emerged x11-drivers/xf86-video-intel having switched to the onboard graphics card.  Needed to compile drivers for the network card and sound card but pretty functional now.

Once the niggles were sorted I ran an 'emerge -e @world' and it flew through recompiling and installing 1387 packages in a fraction over 12hrs (which is almost as long as it took to compile Chromium!).  Fresh kernel compiled too.

RAM wasn't detected a full speed but seems that was a BIOS issue.  WOL isn't currently working which will again be down to BIOS (since I've had WOL support in kernel for sometime now).  Couple of pieces of hardware are reported as not currently supported in the output of lshw so some digging to do to work out what I need to do there, not immediately clear to me what they are, but the second might be some aspect of controlling the memory in some manner (speed/frequency as I reconfigured in the BIOS).

```

id:   communication

description:    Communication controller

product:    Sunrise Point-H CSME HECI #1

vendor:    Intel Corporation

physical id:    16

bus info:    pci@0000:00:16.0

version:    31

width:    64 bits

clock:    33MHz

capabilities:    pm msi cap_list

configuration:   latency   =   0

resources:   memory   :   f714d000-f714dfff

```

```

id:   memory

description:    Memory controller

product:    Sunrise Point-H PMC

vendor:    Intel Corporation

physical id:    1f.2

bus info:    pci@0000:00:1f.2

version:    31

width:    32 bits

clock:    33MHz (30.3ns)

capabilities:    bus_master

configuration:   latency   =   0

resources:   memory   :   f7144000-f7147fff

```

All in all, very pleased with the upgrade process and how easy it was to achieve with Gentoo.  Also chuffed I didn't screw up the motherboard/CPU when connecting them.

----------

