ORCUS Logo
Datenschutz Impressum Kontakt
Referenzen News Externe Links
email

externer Anbieter: translate.google.com

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK

externer Anbieter: validator.w3.org

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK

externer Anbieter: validator.w3.jigsaw.w3.org

Datenschutz-Hinweis: Durch Auswahl von "OK":

OK
prev. page next page / HOME / Workarounds /[LMDE backports kernels]
logo -

Abstract - last modified 2019-03-27

How to add support for debian backports to get newer kernel versions with Linux Mint LMDE 3.

Use at your own risk - you have to read and accept the disclaimer

[ due to it's transition to LTS, the backports-repository for debian jessie (the base of LMDE 2) has been shutdown since 2019-03-26 and is not reachable any more - the related sections for LMDE 2 (betsy) have been removed from the tutorial ]

Motivation

The kernel versions offered by the default repositories are typically older than kernel versions being available by debian backports.

Although backports kernels are not officially released for lmde, they are sometimes one of the last available options to bypass issues or limitations of hard- and/or software.

Objective

The tutorial creates the required sources.list-file and updates the package-cache to be able to use software coming from debian backports-repositories with lmde 3.

Using the backports repository in place - the kernel of a lmde 3 (cindy) vm is updated to a newer version as a sample.

The preferred and "easier" way for installation of a backports-kernel with lmde is using synaptic (which is covered in the first part of the tutorial).

There might be a situation where a graphical environment cant be used (due to issues - which one tries to bypass using a backports-kernel for example); which is covered by a detailed section using plain command line tools as alternative afterwards.

Remarks

Backports software

Adding debian backports-versions should be done intentionally - do not just hunt for highest version numbers.

Adding debian backports as a package-source will offer - besides more current kernel versions - updated versions of other packages too: Resist to fully update your system (at least not a productive system) without need, as this might get you unexpected/unwanted results or break your installation.

Debian backports are not automatically offered in apt or synaptic in most cases: as long there exist packages named identically with a different version number, backports-versions are "hidden" due to repository priorities normally.

In case you want to make use of available backports versions at other occasions later on, prefer to use synaptic. Select the according package first and then select "Force Version..." from the "Package" menu to have access to the backports-version.

To disable backports packages again, it's enough to run "Software Sources" from the main menu, select "Additional repositories" at the displayed dialog and disable the entries for debian backports; after using "OK "to accept changes, the internal cache will be refreshed.

Trouble shooting

Before you start with the required modifications: Make yourself familiar with entering the grub-menu on boot and how to select a previous kernel version from the advanced section there (in case added backports kernels would give you issues during boot or with the running OS).

Having a working live-mint usb-device or dvd (the one you installed your mint from) will be useful in case of trouble - test it's working before you continue here.

Know where to get more help: Linux Mint has an active community at IRC - running the hexchat IRC-client (is preinstalled + available at a live-mint too) will connect you straight to the #linuxmint-help channel at spotchat-IRC (greetings to the people there). Ask for help there, giving some details about the issue. Important: give people some minutes to write a reply - do NOT just ask and disconnect after one minute if you get no immediate response.

"Newbie" info

To paste commands to your terminal, either right-click into the terminal and select "paste" from the context-menu, or make the terminal the active window and press SHIFT+CTRL+v .

(copy&paste in terminals require to use SHIFT+CTRL+c and SHIFT+CTRL+v ; as CTRL+c is used there to abort running commands).

If your stuck when running commands (give it some time to finish) you could use CTRL+c to abort a running command.

Some commands require you to use " sudo " with them to gain root-access. Your user has to be member of the " sudo "-group to be able to do so. To check the group-membership of the current user, just type "groups" (without quotes) in your terminal, should list it.

Open a terminal and run (copy&paste):


groups

Which does return with the user "demo" (being the primary user = the person who did setup the installation):

demo@lmde-3-cinnamon-64bit:~$ groups
demo adm dialout fax cdrom floppy tape sudo audio dip video plugdev users netdev bluetooth lpadmin scanner

Using sudo will ask for your password. Depending on your settings entering a password on the cli might either display '*' characters or no output at all. while entering it.

1 Preparations

1.1 - Backup data & timeshift

Backup any important data (you did read and understand the disclaimer - didn't you?).

With lmde 3 (cindy) timeshift is preinstalled and could be used to create a system snapshot before applying critical modifications to the installed OS. With a default setup, timeshift will exclude user-data located at /home on purpose.

1.2 - Determine your lmde-version

Open a terminal and run (copy&paste):


uname -a
inxi -Sxx

Will return you some basic info about the used lmde-version - LMDE 3 (cindy) -, the current kernel-version in use and the current gcc-version.

The shown kernel-version and -type will help you to know, which architecture (amd64, 686, ...) has to be used from available kernels later on.

If the inxi-command did not return "LMDE 3 (cindy)" is being used: This tutorial is not meant for your installed linux-version, just stop here! [since 2019-03-26 the backports repository for debian jessie (the base of LMDE 2) has been shut-down and is not reachable any more]

In the tutorial a fully updated (2019-03-16) lmde 3 vm has been used to show samples of the expected output; your output will likely differ in details:

demo@lmde-3-cinnamon-64bit:~$ uname -a
Linux lmde-3-cinnamon-64bit 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux
demo@lmde-3-cinnamon-64bit:~$ inxi -Sxx
System:    Host: lmde-3-cinnamon-64bit Kernel: 4.9.0-8-amd64 x86_64 bits: 64 compiler: gcc v: 6.3.0 
           Desktop: Cinnamon 4.0.9 wm: muffin dm: LightDM Distro: LMDE 3 Cindy base: Debian 9.3 stretch 

... thus we will pick some amd64-kernel in the following sample as reference.

1.3 - Ensure that current repositories are working

Besides having an up-to-date package list, the main purpose is to be sure, that your currently used package-sources are valid and working (which is important to exclude this as a potential point of failure later on) BEFORE adding debian backports repositories.

To update the package-cache use:


apt update

demo@lmde-3-cinnamon-64bit:~$ apt update
[sudo] password for demo:
Hit:1 http://security.debian.org stretch/updates InRelease
Hit:2 http://www.deb-multimedia.org stretch InRelease
Ign:3 http://packages.linuxmint.com cindy InRelease
Hit:4 http://packages.linuxmint.com cindy Release
Ign:6 https://cdn-aws.deb.debian.org/debian stretch InRelease
Hit:7 https://cdn-aws.deb.debian.org/debian stretch-updates InRelease
Hit:8 https://cdn-aws.deb.debian.org/debian stretch Release
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

If the output of "apt update" would show any errors related to used repositories not being reachable or any other error-message: Do not continue, but fix failing package sources first! (see the IRC hint in "Remarks" above, if you are not able to fix issues yourself).

The last line of your output should (preferable) state "All packages are up to date.".

1.4 - Install available updates

Available updates should get installed before adding backports kernels. So - check the update manager and apply offered updates. Using the update manager is preferable, as it does allow you to inspect available updates before they get installed (thus being able to exclude updates on purpose, if needed).

If you - for any reason - have to perform an upgrade from the cli - you can use instead:


apt upgrade

which will apply all available upgrades. Using apt upgrade does not allow you to select or exclude any of the available packages without additional steps.

If you experience issues during update: fix that first, before you continue at all.

In case you had to install missing updates: Reboot, before you continue, to be sure your current setup does work as expected.

1.5 - Dump dmesg output to a file

To be able to compare the system behavior and to identify/fix potential issues after installation of a backports-kernel, you could/should create a dump of related (bootstrap) kernel messages of the unmodified system using:


dmesg >~/dmesg_original.txt

1.6 - (optional) Install quick-search for synaptic

As newer mint versions (like lmde 3) are missing the quick-search feature with synaptic, you might want to add the according feature, as this does help a lot to filter available packages within sections.

The quick-filter is not required in any way, but it's more a personal preference using it (and you will ask yourself, why it did get removed at all, after you did use it). To install it use:


apt install apt-xapian-index

To get the underlying search-index refreshed out of the box (as otherwise the indexing would happen as background job) run:


sudo update-apt-xapian-index -f

2 Steps

2.1 - Create a sources.list

To be able to use the debian backports repository an according sources.list -file has to be created (once).

Create a sources.list -file for debian stretch backports - copy&paste the following to your terminal:


sudo bash -c "cat <<TAG >/etc/apt/sources.list.d/stretch-backports.list
deb http://http.debian.net/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
TAG"

As the output is redirected to a file you should not see any reply from running the command.

demo@lmde-3-cinnamon-64bit:~$ sudo bash -c "cat <<TAG >/etc/apt/sources.list.d/stretch-backports.list
> deb http://http.debian.net/debian stretch-backports main contrib non-free
> deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
> TAG"

[sudo] password for demo:
demo@lmde-3-cinnamon-64bit:~$

2.2 - Add a backports kernel using synaptic

With synaptic (package manager) you mark a set of wanted packages interactively and when done with that, start the installation using the "Apply" toolbar-button. Synaptic will first check needed dependencies + does show what will be added/updated/removed before the actual install does run. Thus one will have a chance to stop package-installation if the outcome would lead to some unwanted "actions".

Using synaptic has the benefit, that it will (offer to) add further required dependencies, with almost no effort.

A typical sample for synaptic being nice to the user is: New/updated kernel-versions might require a newer gcc-versions to fully support added features, or to be able to compile modified kernel-headers.

2.2.1 - Refresh package cache

After adding (or removing) package sources, the package-cache has to be refreshed - just using the "Reload" toolbar-button will take care about.

2.2.2 - Determine available kernel versions

To filter the package-list to available kernel-images use the synaptic search-feature. Press CTRL+F or click onto the search-tool at the toolbar to show it.

Set the field "Look in:" to "Name" (instead of "Name and description") and use one of the following search-terms (matching you current kernel-version):

  • linux-image amd64 - for 64-bit versions
  • linux-image 686 - for 32bit versions
  • linux-image - for a complete list
logo -

In most cases a regular (signed) kernel-version will be needed/used; ignoring this kernel-types:

  • -dbg : with debug-symbols - needed by developers
  • -unsigned : not usable with secure-boot
  • -rt- : realtime - for high-responsive hw-related installations
  • -cloud- : Amazon EC2, Google Compute Engine and Microsoft Azure cloud platforms
  • -grsec- : Grsecurity protection (unofficial patch)
logo - [click to enlarge]

The sample does use the " linux-image-4.19.0-0.bpo.2-amd64 " package from here on.

2.2.3 - Required packages for a complete setup

Although just selecting the kernel-image for installation would technically work (in many cases), there are more packages required to have full and consistent access to all updated features.

To show the complete set of packages related to the kernel-version: run find again using just the plain version-number of the kernel-candidate; with the sample "4.19.0" is used.

logo -

2.2.4 - Mark required packages

Having the available packages filtered, there are several packages which should get marked (using CTRL+left-mouse-click).

Sticking to the sample - we select here:

  • linux-headers-4.19.0-0.bpo.2-amd64
  • linux-headers-4.19.0-0.bpo.2-common
  • linux-image-4.19.0-0.bpo.2-amd64
  • linux-support-4.19.0-0.bpo.2

Perform a right-click onto one of the selected packages and select "Mark for installation".

logo - [click to enlarge]

(lmde 3 only affected) In a perfect world, the message shown next should not be there at all (at least not in this way). What's more important: synaptic does silently fix the missing dependencies internally... without reporting the fact to the user...

logo - [click to enlarge]

With lmde 3 one has to select "Mark for installation" a second time to get the correct dialog shown; lmde 2 is seemingly not affected by this glitch and should show the expected dialog on the first run:

logo - [click to enlarge]

2.2.5 - Install selected packages

Using the "Custom Filters" - section in the lower left panel and selecting "Marked Changes" in the top panel, synaptic does show, that additionally Kbuild infrastructure for Linux 4.19 and an upgraded gcc compiler will get installed.

logo - [click to enlarge]

Using the "Apply" toolbar-button synaptic will show besides a summary of required operations a summary of expected download volume and required disk-space for the actual installation.

logo - [click to enlarge]

Using "Apply" from the dialog will finally start the actual installation (which you should not interrupt).

logo - [click to enlarge]

After the installation is finished you should open the details-section of the install-dialog to check for any error-messages.

logo - [click to enlarge]

If everything did work as expected, the final output should show that the initial ramdisk got created and grub has been successfully updated.

With all required modifications in place, you can close synaptic and reboot - see "Post install" section below.

2.3 - Add a backports kernel using apt

Note: If you are not able to use the suggested installation via synaptic for some reason, you could use the command line interface for installation too. If you did already install the needed backports-version using synaptic you can just skip this part.

To be honest - the main-purpose of showing what's needed to add a new/different backports-kernel using the cli is to convince you, to prefer using synaptic for it :-).

2.3.1 - Refresh package cache

After adding (or removing) package-sources, the cached package-list has to be refreshed:


apt update

If this would show any errors: Do not continue, but fix failing package sources first! The test-vm does return this:

demo@lmde-3-cinnamon-64bit:~$ apt update
Hit:1 http://security.debian.org stretch/updates InRelease
Hit:2 http://www.deb-multimedia.org stretch InRelease
Get:3 http://deb.debian.org/debian stretch-backports InRelease [91.8 kB]
Get:4 http://deb.debian.org/debian stretch-backports/contrib Sources [6,816 B]
Ign:5 http://packages.linuxmint.com cindy InRelease
Get:7 http://deb.debian.org/debian stretch-backports/non-free Sources [8,456 B]
Get:8 http://deb.debian.org/debian stretch-backports/main Sources [587 kB]
Hit:9 http://packages.linuxmint.com cindy Release
Get:6 http://cdn-fastly.deb.debian.org/debian stretch-backports InRelease [91.8 kB]
Get:13 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 Packages [573 kB]
Get:14 http://cdn-fastly.deb.debian.org/debian stretch-backports/main i386 Packages [565 kB]
Get:15 http://cdn-fastly.deb.debian.org/debian stretch-backports/main Translation-en [447 kB]
Get:16 http://cdn-fastly.deb.debian.org/debian stretch-backports/main i386 Contents (deb) [6,256 kB]
Ign:11 https://cdn-aws.deb.debian.org/debian stretch InRelease
Hit:12 https://cdn-aws.deb.debian.org/debian stretch-updates InRelease
Hit:17 https://cdn-aws.deb.debian.org/debian stretch Release
Get:19 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 Contents (deb) [6,234 kB]
Get:20 http://cdn-fastly.deb.debian.org/debian stretch-backports/contrib i386 Packages [10.5 kB]
Get:21 http://cdn-fastly.deb.debian.org/debian stretch-backports/contrib amd64 Packages [11.1 kB]
Get:22 http://cdn-fastly.deb.debian.org/debian stretch-backports/contrib Translation-en [7,540 B]
Get:23 http://cdn-fastly.deb.debian.org/debian stretch-backports/contrib amd64 Contents (deb) [143 kB]
Get:24 http://cdn-fastly.deb.debian.org/debian stretch-backports/contrib i386 Contents (deb) [143 kB]
Get:25 http://cdn-fastly.deb.debian.org/debian stretch-backports/non-free amd64 Packages [32.6 kB]
Get:26 http://cdn-fastly.deb.debian.org/debian stretch-backports/non-free i386 Packages [27.0 kB]
Get:27 http://cdn-fastly.deb.debian.org/debian stretch-backports/non-free Translation-en [37.5 kB]
Get:28 http://cdn-fastly.deb.debian.org/debian stretch-backports/non-free i386 Contents (deb) [68.6 kB]
Get:29 http://cdn-fastly.deb.debian.org/debian stretch-backports/non-free amd64 Contents (deb) [119 kB]
Fetched 15.5 MB in 23s (660 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

2.3.2 - Determine available kernel-versions

To list all available kernels without reducing it to some architecture use:


apt search "linux-image.*"

To limit the output to 686-version (32 bit kernels) only, use:


apt search "linux-image.*686$"

To limit the output to amd64-version (64 bit kernels) only, use:


apt search "linux-image.*amd64$"

As the vm-sample does run a 64-bit version, filtering to amd64 does return:

demo@lmde-3-cinnamon-64bit:~$ apt search "linux-image.*amd64$"
p   linux-image-4.19.0-0.bpo.2-amd64                       - Linux 4.19 for 64-bit PCs (signed)
p   linux-image-4.19.0-0.bpo.2-cloud-amd64                 - Linux 4.19 for x86-64 cloud (signed)
p   linux-image-4.19.0-0.bpo.2-rt-amd64                    - Linux 4.19 for 64-bit PCs, PREEMPT_RT (signed)
p   linux-image-4.9.0-3-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-3-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
p   linux-image-4.9.0-4-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-4-grsec-amd64                        - Linux 4.9 for 64-bit PCs, Grsecurity protection (unofficial patch
p   linux-image-4.9.0-4-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
p   linux-image-4.9.0-5-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-5-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
p   linux-image-4.9.0-6-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-6-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
p   linux-image-4.9.0-7-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-7-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
i   linux-image-4.9.0-8-amd64                              - Linux 4.9 for 64-bit PCs
p   linux-image-4.9.0-8-rt-amd64                           - Linux 4.9 for 64-bit PCs, PREEMPT_RT
i   linux-image-amd64                                      - Linux for 64-bit PCs (meta-package)
p   linux-image-cloud-amd64                                - Linux for x86-64 cloud (meta-package)
p   linux-image-grsec-amd64                                - Linux image meta-package, grsec featureset
p   linux-image-rt-amd64                                   - Linux for 64-bit PCs (meta-package), PREEMPT_RT

With the sample we are using a regular kernel-version and can thus exclude this kernel-types:

  • -dbg : with debug-symbols - needed by developers
  • -unsigned : not usable with secure-boot
  • -rt- : realtime - for high-responsive hw-related installations
  • -cloud- : Amazon EC2, Google Compute Engine and Microsoft Azure cloud platforms
  • -grsec- : Grsecurity protection (unofficial patch)

Thus the first " linux-image-4.19.0-0.bpo.2-amd64 " - kernel is the (backports) kernel version - which we will use in the sample form here on.

2.3.3 - Determine available/needed packages

Although just using the kernel-image for installation would technically work (in many cases), there are more packages required to have full and consistent access to all updated features.

As it's easier to list all packages related to that kernel-versions instead of going through kernel-headers or modules being potentially available, just filter for all packages related to the kernel-version next:


apt search "4.19.0"

oadm@lmde-3-cinnamon-64bit:~$ apt search "4.19.0"
p   linux-headers-4.19.0-0.bpo.2-686:i386                  - Header files for Linux 4.19.0-0.bpo.2-686
p   linux-headers-4.19.0-0.bpo.2-686-pae:i386              - Header files for Linux 4.19.0-0.bpo.2-686-pae
p   linux-headers-4.19.0-0.bpo.2-all                       - All header files for Linux 4.19 (meta-package)
p   linux-headers-4.19.0-0.bpo.2-all:i386                  - All header files for Linux 4.19 (meta-package)
p   linux-headers-4.19.0-0.bpo.2-all-amd64                 - All header files for Linux 4.19 (meta-package)
p   linux-headers-4.19.0-0.bpo.2-all-i386:i386             - All header files for Linux 4.19 (meta-package)
p   linux-headers-4.19.0-0.bpo.2-amd64                     - Header files for Linux 4.19.0-0.bpo.2-amd64
p   linux-headers-4.19.0-0.bpo.2-cloud-amd64               - Header files for Linux 4.19.0-0.bpo.2-cloud-amd64
p   linux-headers-4.19.0-0.bpo.2-common                    - Common header files for Linux 4.19.0-0.bpo.2
v   linux-headers-4.19.0-0.bpo.2-common:i386               -
p   linux-headers-4.19.0-0.bpo.2-common-rt                 - Common header files for Linux 4.19.0-0.bpo.2-rt
v   linux-headers-4.19.0-0.bpo.2-common-rt:i386            -
p   linux-headers-4.19.0-0.bpo.2-rt-686-pae:i386           - Header files for Linux 4.19.0-0.bpo.2-rt-686-pae
p   linux-headers-4.19.0-0.bpo.2-rt-amd64                  - Header files for Linux 4.19.0-0.bpo.2-rt-amd64
p   linux-image-4.19.0-0.bpo.2-686:i386                    - Linux 4.19 for older PCs (signed)
p   linux-image-4.19.0-0.bpo.2-686-dbg:i386                - Debug symbols for linux-image-4.19.0-0.bpo.2-686
p   linux-image-4.19.0-0.bpo.2-686-pae:i386                - Linux 4.19 for modern PCs (signed)
p   linux-image-4.19.0-0.bpo.2-686-pae-dbg:i386            - Debug symbols for linux-image-4.19.0-0.bpo.2-686-pae
p   linux-image-4.19.0-0.bpo.2-686-pae-unsigned:i386       - Linux 4.19 for modern PCs
p   linux-image-4.19.0-0.bpo.2-686-unsigned:i386           - Linux 4.19 for older PCs
p   linux-image-4.19.0-0.bpo.2-amd64                       - Linux 4.19 for 64-bit PCs (signed)
p   linux-image-4.19.0-0.bpo.2-amd64-dbg                   - Debug symbols for linux-image-4.19.0-0.bpo.2-amd64
p   linux-image-4.19.0-0.bpo.2-amd64-unsigned              - Linux 4.19 for 64-bit PCs
p   linux-image-4.19.0-0.bpo.2-cloud-amd64                 - Linux 4.19 for x86-64 cloud (signed)
p   linux-image-4.19.0-0.bpo.2-cloud-amd64-dbg             - Debug symbols for linux-image-4.19.0-0.bpo.2-cloud-amd64
p   linux-image-4.19.0-0.bpo.2-cloud-amd64-unsigned        - Linux 4.19 for x86-64 cloud
p   linux-image-4.19.0-0.bpo.2-rt-686-pae:i386             - Linux 4.19 for modern PCs, PREEMPT_RT (signed)
p   linux-image-4.19.0-0.bpo.2-rt-686-pae-dbg:i386         - Debug symbols for linux-image-4.19.0-0.bpo.2-rt-686-pae
p   linux-image-4.19.0-0.bpo.2-rt-686-pae-unsigned:i386    - Linux 4.19 for modern PCs, PREEMPT_RT
p   linux-image-4.19.0-0.bpo.2-rt-amd64                    - Linux 4.19 for 64-bit PCs, PREEMPT_RT (signed)
p   linux-image-4.19.0-0.bpo.2-rt-amd64-dbg                - Debug symbols for linux-image-4.19.0-0.bpo.2-rt-amd64
p   linux-image-4.19.0-0.bpo.2-rt-amd64-unsigned           - Linux 4.19 for 64-bit PCs, PREEMPT_RT
v   linux-latest-modules-4.19.0-0.bpo.2-686:i386           -
v   linux-latest-modules-4.19.0-0.bpo.2-686-pae:i386       -
v   linux-latest-modules-4.19.0-0.bpo.2-amd64              -
v   linux-latest-modules-4.19.0-0.bpo.2-cloud-amd64        -
v   linux-latest-modules-4.19.0-0.bpo.2-rt-686-pae:i386    -
v   linux-latest-modules-4.19.0-0.bpo.2-rt-amd64           -
p   linux-support-4.19.0-0.bpo.2                           - Support files for Linux 4.19

Sorting out all the dbg, unsigned, rt, cloud, grsec and i386 or 686 packages in the sample, does reduce the list of related packages to:

p   linux-headers-4.19.0-0.bpo.2-amd64                     - Header files for Linux 4.19.0-0.bpo.2-amd64
p   linux-headers-4.19.0-0.bpo.2-common                    - Common header files for Linux 4.19.0-0.bpo.2
p   linux-image-4.19.0-0.bpo.2-amd64                       - Linux 4.19 for 64-bit PCs (signed)
v   linux-latest-modules-4.19.0-0.bpo.2-amd64              -
p   linux-support-4.19.0-0.bpo.2                           - Support files for Linux 4.19

Where one of them does denote with a leading "v" being a virtual packages. To determine which other package does contain the actual install-resources for " linux-latest-modules-4.19.0-0.bpo.2-amd64 " , use:

#you will have to use 'your' according virtual package(s) here

apt-cache showpkg linux-latest-modules-4.19.0-0.bpo.2-amd64

Which does return that it's part of the kernel package itself (and can just be ignored):

oadm@lmde-3-cinnamon-64bit:~$ apt-cache showpkg linux-latest-modules-4.19.0-0.bpo.2-amd64
Package: linux-latest-modules-4.19.0-0.bpo.2-amd64
Versions: 

Reverse Depends: 
Dependencies: 
Provides: 
Reverse Provides: 
linux-image-amd64 4.19+102~bpo9+1 (= )

2.3.4 - Install required packages

At this point we have the initial required information, to give an install with the sample a first try (yes - that will not work on the first try in the sample ... just read on):

# you will have to use 'your' according packages instead:

apt install linux-headers-4.19.0-0.bpo.2-amd64 \
linux-headers-4.19.0-0.bpo.2-common \
linux-image-4.19.0-0.bpo.2-amd64 \
linux-support-4.19.0-0.bpo.2 

demo@lmde-3-cinnamon-64bit:~$ apt install linux-headers-4.19.0-0.bpo.2-amd64 \
> linux-headers-4.19.0-0.bpo.2-common \
> linux-image-4.19.0-0.bpo.2-amd64 \
> linux-support-4.19.0-0.bpo.2 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 linux-headers-4.19.0-0.bpo.2-amd64 : Depends: linux-compiler-gcc-6-x86 (>= 4.14.17-1~)
E: Unable to correct problems, you have held broken packages.

This does show there is still a missing piece linux-compiler-gcc-6-x86 (>= 4.14.17-1~) , which is needed for the kernel-headers. To check which versions are available (keeping in mind that backports versions are not used automatically) we check what is available using:


apt-cache policy linux-compiler-gcc-6-x86

Which does show there is a version available to satisfy the required dependency:

demo@lmde-3-cinnamon-64bit:~$ apt-cache policy linux-compiler-gcc-6-x86
linux-compiler-gcc-6-x86:
  Installed: 4.9.144-3.1
  Candidate: 4.9.144-3.1
  Version table:
     4.19.16-1~bpo9+1 100
        100 http://http.debian.net/debian stretch-backports/main amd64 Packages
 *** 4.9.144-3.1 500
        500 https://deb.debian.org/debian stretch-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     4.9.144-3 500
        500 https://deb.debian.org/debian stretch/main amd64 Packages
     4.9.110-3+deb9u6 500
        500 http://security.debian.org stretch/updates/main amd64 Packages

And the result does show there is a backports-version of gcc available, which does meet the dependency-requirements - Depends: linux-compiler-gcc-6-x86 (>= 4.14.17-1~) ; And armed with that we (hopefully) can get to the final (correct) package-list, where we need to explicitly specify the version to override the defaults:

# you will have to use 'your' according packages instead:

apt install linux-headers-4.19.0-0.bpo.2-amd64 \
linux-headers-4.19.0-0.bpo.2-common \
linux-image-4.19.0-0.bpo.2-amd64 \
linux-support-4.19.0-0.bpo.2 \
linux-compiler-gcc-6-x86=4.19.16-1~bpo9+1

And finally does install everything needed/available for the new backports kernel.

demo@lmde-3-cinnamon-64bit:~$ apt install linux-headers-4.19.0-0.bpo.2-amd64 \
> linux-headers-4.19.0-0.bpo.2-common \
> linux-image-4.19.0-0.bpo.2-amd64 \
> linux-support-4.19.0-0.bpo.2 \
> linux-compiler-gcc-6-x86=4.19.16-1~bpo9+1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  linux-kbuild-4.19
Suggested packages:
  linux-doc-4.19 debian-kernel-handbook
The following NEW packages will be installed:
  linux-headers-4.19.0-0.bpo.2-amd64 linux-headers-4.19.0-0.bpo.2-common linux-image-4.19.0-0.bpo.2-amd64 linux-kbuild-4.19
  linux-support-4.19.0-0.bpo.2
The following packages will be upgraded:
  linux-compiler-gcc-6-x86
1 upgraded, 5 newly installed, 0 to remove and 6 not upgraded.
Need to get 56.4 MB of archives.
After this operation, 319 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-compiler-gcc-6-x86 amd64 4.19.16-1~bpo9+1 [214 kB]
Get:2 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-headers-4.19.0-0.bpo.2-common all 4.19.16-1~bpo9+1 [8,162 kB]
Get:3 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-kbuild-4.19 amd64 4.19.16-1~bpo9+1 [451 kB]
Get:4 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-headers-4.19.0-0.bpo.2-amd64 amd64 4.19.16-1~bpo9+1 [690 kB]
Get:5 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-image-4.19.0-0.bpo.2-amd64 amd64 4.19.16-1~bpo9+1 [46.7 MB]
Get:6 http://cdn-fastly.deb.debian.org/debian stretch-backports/main amd64 linux-support-4.19.0-0.bpo.2 all 4.19.16-1~bpo9+1 [261 kB]
Fetched 56.4 MB in 1min 25s (661 kB/s)
(Reading database ... 232700 files and directories currently installed.)
Preparing to unpack .../0-linux-compiler-gcc-6-x86_4.19.16-1~bpo9+1_amd64.deb ...
Unpacking linux-compiler-gcc-6-x86 (4.19.16-1~bpo9+1) over (4.9.144-3.1) ...
Selecting previously unselected package linux-headers-4.19.0-0.bpo.2-common.
Preparing to unpack .../1-linux-headers-4.19.0-0.bpo.2-common_4.19.16-1~bpo9+1_all.deb ...
Unpacking linux-headers-4.19.0-0.bpo.2-common (4.19.16-1~bpo9+1) ...
Selecting previously unselected package linux-kbuild-4.19.
Preparing to unpack .../2-linux-kbuild-4.19_4.19.16-1~bpo9+1_amd64.deb ...
Unpacking linux-kbuild-4.19 (4.19.16-1~bpo9+1) ...
Selecting previously unselected package linux-headers-4.19.0-0.bpo.2-amd64.
Preparing to unpack .../3-linux-headers-4.19.0-0.bpo.2-amd64_4.19.16-1~bpo9+1_amd64.deb ...
Unpacking linux-headers-4.19.0-0.bpo.2-amd64 (4.19.16-1~bpo9+1) ...
Selecting previously unselected package linux-image-4.19.0-0.bpo.2-amd64.
Preparing to unpack .../4-linux-image-4.19.0-0.bpo.2-amd64_4.19.16-1~bpo9+1_amd64.deb ...
Unpacking linux-image-4.19.0-0.bpo.2-amd64 (4.19.16-1~bpo9+1) ...
Selecting previously unselected package linux-support-4.19.0-0.bpo.2.
Preparing to unpack .../5-linux-support-4.19.0-0.bpo.2_4.19.16-1~bpo9+1_all.deb ...
Unpacking linux-support-4.19.0-0.bpo.2 (4.19.16-1~bpo9+1) ...
Setting up linux-support-4.19.0-0.bpo.2 (4.19.16-1~bpo9+1) ...
Setting up linux-headers-4.19.0-0.bpo.2-common (4.19.16-1~bpo9+1) ...
Setting up linux-image-4.19.0-0.bpo.2-amd64 (4.19.16-1~bpo9+1) ...
I: /vmlinuz is now a symlink to boot/vmlinuz-4.19.0-0.bpo.2-amd64
I: /initrd.img is now a symlink to boot/initrd.img-4.19.0-0.bpo.2-amd64
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.19.0-0.bpo.2-amd64
cryptsetup: WARNING: failed to detect canonical device of /dev/vda1
cryptsetup: WARNING: could not determine root device from /etc/fstab
W: plymouth: The plugin label.so is missing, the selected theme might not work as expected.
W: plymouth: You might want to install the plymouth-themes package to fix this.
/etc/kernel/postinst.d/zz-update-grub:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-0.bpo.2-amd64
Found initrd image: /boot/initrd.img-4.19.0-0.bpo.2-amd64
Found linux image: /boot/vmlinuz-4.9.0-8-amd64
Found initrd image: /boot/initrd.img-4.9.0-8-amd64
Found memtest86+ image: /@/boot/memtest86+.bin
Found memtest86+ multiboot image: /@/boot/memtest86+_multiboot.bin
done
Setting up linux-kbuild-4.19 (4.19.16-1~bpo9+1) ...
Setting up linux-compiler-gcc-6-x86 (4.19.16-1~bpo9+1) ...
Setting up linux-headers-4.19.0-0.bpo.2-amd64 (4.19.16-1~bpo9+1) ...

If everything did install without errors an implicit update-grub has been executed and the kernel will be available on the next reboot.

As an added backports-kernel will likely offer the highest version of available kernels it will be automatically selected as the current one.

So, as last step reboot and check the new "current" kernel version afterwards.


sync
reboot

3 Post Install

You will likely want to recheck your current kernel-version using:


uname -a
inxi -Sxx

Which should proof the new backports-kernel is being used:

demo@lmde-3-cinnamon-64bit:~$ uname -a
Linux lmde-3-cinnamon-64bit 4.19.0-0.bpo.2-amd64 #1 SMP Debian 4.19.16-1~bpo9+1 (2019-02-07) x86_64 GNU/Linux
demo@lmde-3-cinnamon-64bit:~$ inxi -Sxx
System:
Host: lmde-3-cinnamon-64bit Kernel: 4.19.0-0.bpo.2-amd64 x86_64 bits: 64 
compiler: gcc v: 6.3.0 Desktop: Cinnamon 4.0.9 wm: muffin dm: LightDM 
Distro: LMDE 3 Cindy base: Debian 9.3 stretch 

To be able to compare the system behavior and to identify/fix potential issues after installation of a backports-kernel, you could/should create a dump of related (bootstrap) kernel messages of the current/updated system using:


dmesg >~/dmesg_backports.txt

Good luck - have fun


prev. page next page / HOME / Workarounds /[LMDE backports kernels]