Αναζήτηση αυτού του ιστολογίου

Installing and Testing Debian 64bit UEFI

Debian Test 20/06/16 with UEFI Support on Toshiba Radius 11

I was looking for an easy way to try Debian amd64 in my Toshiba Radius 11 with UEFI.


For the time being , Debian provides amd64 Live Images, but those images do not support UEFI boot. Debian claims that this feature is under development.


Since Live images does not support UEFI, i thought to install debian using the debian amd64 netinstall image on a usb stick and selecting as disk drive for the installation another seperate usb disk of 8GB. Test was not succesfull.

Test Remarks:

1. First i have to mention that normal Debian 8 installation images trully support UEFI boot. 
This was initially obvious using rufus to make the bootable installation usb. 
If on Rufus you select "MBR for UEFI" instead of the standard "MBR for BIOS or UEFI", if selected iso image is not supporting UEFI, thankfully Rufus understands that and gives a warning message ; moreover Rufus doesn't proceed to format your usb.
You have either to select a UEFI enabled iso image or to change the rufus partition scheme option from "MBR for UEFI" to "MBR for BIOS or UEFI".



Debian amd64 netinstall was written by Rufus to my usb stick (by slecting MBR for UEFI" without any warnings. 

Then when I reboot, Debian Installer of the fresh bootable usb appeared (and i had only the option to install debian and not to try it since it was not a live image).

2. Debian 8 netinstall image was not capable to detect my WiFi adapter and kept asking for a custom proprietary firmware bios file (rtlwifi/rtl8723befw.bin). 

OK i know that my RTL8723 is not supported by free drivers and i could understand what debian was trying to tell me, but come in position of a completely newbie that would just like to try debian. 

How new people should be held responsible to provide "proprietary" dirves for a device that most probably they didn't know it's existance or it's particularities? This is crazy.


This goes further mad if you consider that Ubuntu distros do not ask anything from user. 

The customized "proprietary" firmware file is just installed by Ubuntu and WiFi just works out of the ubuntu-box.

As a workaround i booted on my normal ubuntu partition on hdd/sda, i located the rtl8723be files (rtl8723befw.bin, rtl8723be.h) and copied these files to the debian installation usb stick. I restarted installation of Debian 8 hoping that Debian will give a look to the installation media for the possibility that this rtl8723befw.bin exists. 

Unfortunatelly Debian 8 kept asking me to provide the rtlwifi/rtl8723befw.bin. Not only that, but the Debian installer was not giving me a kind of typical files browser to browse and select the required rtl8723 firmware file and allow the Debian installation to continue. PS: Madness squared. I give up.

3. Finally, i accepted the Debian warnings about "typical/minimum/limited" installation (since net installer could not get connected to the internet) and i tried to proceed with a basic install on the seperated 8GB usb stick. 

During installation on this seperated 8GB usb stick i choose "guided partitioning" and i selected the seperated usb stick appearing as SCSI2 (sdb) or SCSI3 (sdc). 
Debian at first was not capable to "see" this seperate 8GB stick. 
I had to select "Detect Disks" first from the installer menu. 
After "detect disks", Debian installer recognized the existence of this seperate stick, and i selected this stick for automatic - guided - partitioning. 
Debian auto partitioned the 8GB usb making three partitions ; One for UEFI boot (with boot flag set ON by Debian), one for swap (~4GB) and one for the root / (~ 3.5GB)
I let the Debian installer to procceed with the "automatic" partitioning, even if i didn't like the idea of having a UEFI bootable partition on this seperate 8GB stick, since my normal hdd/sda has already a fully functional UEFI boot partition equipped with Grub 2.0 and allowing double boot to Win10 and Ubuntu 16.04,

After some time (long time actually) installation was finished on my 8GB usb stick, but one the next reboot, even removing the Debian net install usb stick, my HDD/sda Grub menu appeared giving me the usuall options for Win10 and Ubuntu booting, meaning that the fresh installed Debian 8 in my 8GB usb stick was just ignored - never booted.


I suspect a kind of "conflict" of the UEFI boot partitions (one on my sda, one on sdc/sdb).


4. As a next step i would try to reinstall Debian on this seperate 8GB stick by selecting a full Debian Installation image (and not a net install image). Then i could try to manual adjust partitions to my 8GB stick without UEFI boot partition. 

Similar to Ubuntu maybe i have to select just a swap and an ext4 partition of the usb stick to hold the root.
In this case, i suppose have to manually add an entry to the existed Grub Loader on my hdd/sda to allow Debian boot as a third option after Win10 and Ubuntu, providing as root path my 8 GB usb stick(sdb or sdc) and not sda (my hdd).

See here for Debian instructions on how to modify existed grub.cfg in order to give you the choice to load debian during booting (instructions seems that apply for first time boot). 
See this post for handling grub by grub command line during boot: 

https://help.ubuntu.com/community/BootFromUSB - applies to the old grub 1. 

Commands for Grub2 differ like this according to this post:

grub> set root='(hd1,1)' (hd0 = your internal hdd, hd1 or hd2 or hdX = your usb)
grub> chainloader +1 and then grub> boot

According to this Victor's post for Grub2, command grub>ls gives a list of all hdd drives:

(hd0) (hd0,msdos5) (hd1) (hd1,msdos0). 

Victor booted with Grub2 like this (you need to know exact path of files vmlinuz and initrd) 

grub> linux (hd1,msdos1)/install/vmlinuz root=/dev/sdb1
grub> initrd (hd1,msdos1)/install/initrd.gz

grub> boot


PS: In case that a grub ls is not listing your usb stick partitions and is limited only to hdd0 partitions, you could try the following commands in grub command line: 

insmod usbms and then insmod ehci or uhci or ohci

Debian Jessy Firmware Files - non free (zipped file including deb files):

https://www.debian.org/releases/stable/i386/ch06s04.html.en

The missing firmware for rtlwifi/rtl8723befw.bin is included in file firmware-realtek.deb


To be sure that all firmware files will be available for your Debian Installer i follow this:

Download the Debian Firmware files.
Browse the debian installer usb and locate the folder called firmware.
Copy the previously downloaded firmware.tar.gz to this folder.
Also extract tar.gz to this /firmware folder.

In an already installed Debian you can copy the required firmware files to the /lib/firmware folder on root. 

For example i copied rtlwifi files to /lib/firmware/rtlwifi .  from ubuntu /lib/firmware/rtlwifi/ and after reboot the rtl8723befw.bin was sucessfully loaded by Debian and wifi card worked ok.

Grub Tests 21/06/2016:

Going on grub command line and running ls, the first time only hd0 was appearing and some other times hd0 and hd1. It depends if the system has recognized or not the usb stick.
Changing usb port helped to recognized usb.

When grub recognized my usb It was strange to see that ls was reporting my internall hdd as hd1 instead of hd0 and usb stick was reported as hd0. 

But i ignored this conflict and i kept referring to my usb stick as hd1 - as it should be.

The command chainloader +1 didn't work in my -messy - set up; Some EFI errors appeared.


I tried the manual grub linux / grub initrd method. 

This method worked, but you need to know the exact name/path of the vmlinuz/initrd.img to load them.
As a matter of fact if you know all the script commands that grub would run automatically and provide them manually you should be able to boot in your usb stick (sdb - hd1).

Set up Ubuntu Grub2 on my hdd - sda7 to provide Debian USB Boot@sdb

This happened very easily and completely automatically!
All i had to do was to boot in Ubuntu, attach my usb stick, verify that Ubuntu can browse the usb stick files (debian root partition) and start the "grub customizer".

Grub customizer loaded the default Ubuntu grub and i suddenly saw some new options for Debian Booting . 

Just in case i saved grubed configuration through grub customizer menu and on the next reboot i had Debian options in my grub (options that actually worked ok and did perform a debian boot from sdb usb stick!)

Obviously , either the grub customizer or Ubuntu itself auto updated hdd grub by adding new entries for the new discovered debian installation in the usb stick.

The only dependency for this to work seems to be Ubuntu to be capable to "see" the usb stick with the debian system on it (= able to browse the files of the sdb i.e with file manager).

PS: As i read on the web, you could even manually update the grub with 
$sudo  update-grub

Comparing Ubuntu -already installed@hdd-Grub with Debian usb stick grub.

Since during debian installation i used automatic partition of my usb stick, debian added boot options and a new grub.cfg file on my usb stick. So i could just compare the contents of usdb-sdb grub vs hdd-sda grub (found under boot folder)

Interesting facts: 

1. Debian usb grub has autodetected the ubuntu installation and had installed the required menu options to allow booting in already installed Win10 and Ubuntu.

2. Debian usb grub and Ubuntu hdd grub had the same scripts for ubuntu/debian/win10 booting with differences on the sdX number; Hard Disk Drive grub was referring to Debian as sdb, while debian grub was referring to itseld as sdc. This is probably due to the fact that when i installed Debian (from a seperate usb stick holding the installer) the Debian Installer had been identified as sdb and the Debian System usb stick had been identified as sdc.

But when i run Ubuntu with Debian System attached , the Debian Installer usb stick was missing and that justify why Ubuntu grub applied hd1 / sdb.

3. The script applied by both grubs for Debian Boot menu entry was like this:

(copy from Ubuntu hd0/sda grub)
insmod part_gpt
insmod ext2
set root = 'hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 422ee123-6b13-4584-9698-df2db9c9d9d4
else
search --no-floppy --fs-uuid --set=root 422ee123-6b13-4584-9698-df2db9c9d9d4
fi
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=422ee123-6b13-4584-9698-df2db9c9d9d4 ro quiet
initrd /boot/initrd.img-3.16.0-4-amd64

I suppose that if i try to give above commands in grub command line would also work...

In any case, having Ubuntu grub updated (automatically) with above script, and having Debian usb stick attached to my Toshiba Radius 11, on reboot selecting Debian entry from grub menu worked!

Then i had to deal with all the debian issues who left me with a basic command line after net install iso image since was not capable to connect to internet due to missing rtlwifi/rtl8723befw.bin , making my wifi card to work, connect to my wifi network, connect to internet to finish the debian installation or to install a graphical desktop enviroment (startx was missing) but this is another story , hard to work around and since now we know how to boot Debian installed on a usb stick we could just installed a Debian 8.5 iso including a desktop enviroment.

The only bug left, is how to make the bloody Debian Installer to locate and load the missing rtlwifi firmware file during installation of Debian. As Debian claims in this manual, installer looks to all available media for loose firmware files or packages containing firmware files, but this didn't worked in my case since i had put on the "root" of my Debian Installer usb stick the rtl8723befw.bin file , but installer just didn't located and/or loaded this file.

Maybe i have to try the debian net installer using the unofficial net install iso including firmware files : http://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/8.5.0+nonfree/amd64/iso-cd/

More Debian Testing 22/06/2016
I tried the iso net install image that supposingly should provide custom firmware but no luck.
Debian kept asking the rtlwifi firmware.

I next made an installation image with rufus and UEFI only options of the Debian 8.5 amd64-xfce-CD1 iso image (here)

I downloaded also the firmware.tar.gz file of Debian - non free repo.
I browse the new Debian installer usb, and i found on route path various folders like root,boot etc, and also a folder called "firmware" including just one deb file (linux -free.deb) with zero bytes (?).
I copied to this firmware folder the firmware.tar file, i extracted all the contents - deb files in this folder, i replaced the existed 0byte linux-free.deb with the one provided by the zipped file (19kb) and i also kept the firmware.tzr.gz in the same firmware folder, just in case.

The Debian XFCE installer is quite similar (maybe identical) to the net install installer.

And finally, when debian installer reached the "determine network hardware" i was glad not to receive a message about missing firmware! 
Next screen was a prompt by debi to select the Wifi network , give key and installer succeed to connect to the internet!

Regarding partitions, i selected my seperate 8gb usb stick , i delete all previous partitions (previous net install tests) , and i manually applied a 7gb ext4 partition as root / and a small 1gb partition as swap. I confirmed the changes (after making sure that installer is not advising any changes to my sda/hdd) and installation begun (basic package goes first).

Then i was prompted to select the Desktop enviroment i need (XFCE was pre-selected ) , i selected almost all of the them except gnome (may be this was not good), and the installer proceed with downloading the required 3000 files (!).
Later i was asked witch display manager i want to use (kdm, lightdm) and i selected lightdm.
Then i received errors about the failure to install grub (i was expecting this to happen since i didn't assign a boot partition on my 8gb usb) and i just choose do not install grub - boot loader (i have plans to use the already installed grub by my ubuntu installation on sda/hdd).

Debian informed me how to manually load debian without a boot installer , and installation finished.


Next step is to test the new Debian, after running  Ubuntu and update the grub in order the sda boot loader to identify the fresh installed Debian system. 


PS1: Remember that this requires that Ubuntu should be able to identify/mount/browse the 8gb usb stick to understand that there is a Debian Installation in there!


PS2: Also you might need to manually remove (grub customizer) the old Debian entries in the grub, applied by Ubuntu when recognized basic - internet failed - debian installation with net-install iso..Or you can let Ubuntu do it's tricks and see how it will go (will it remove or update the old debian entries to match the new Debian XFCE installation?)


PS3: I suppose that if i didn't had ubuntu installed already in my hdd with grub boot loader, Debian would install it's own grub, in the place that i would had selected; either boot partition on my usb stick - sounds buggy - or boot partition of hdd/sda as Ubuntu did during first time install.


Debian Jessie Testing 23/06/16 on Toshiba Radius 11

As mentioned above, it is true that once i had booted in my hdd/Ubuntu , stick my usb , and run grub customizer, all the grub menu entries were automatically updated without the need to run "grub-update" from terminal. As a result on the next boot i choose "Debian 8.5" , debian was loaded by my 8gb usb and everything worked surprisingly well.

So after log in to Debi (standard Debian DE), we got to see what is this stuff looks like and what bugs we have to deal with.


Debian Bugs:


1. Wifi Bugs with RTLWIFI / RTL8723be

I have the well known rtl8723be driver bug (present even in Ubuntu) that causes my wifi laptop card to stop working from time to time . This bugs seems to apply in all realtek wifi cards.

To solve RTL8723BE and other RTL WIFI cards issues , you need to be sure that your RTL wifi (like my rtl8723be) will work correctly by disabling firmware power save options (fwlps):

#echo "options rtl8723be fwlps=0">/etc/modprobe.d/rtl8723be.conf

PS: There is also a file called modesettings.conf. You can apply above options in the end of this file as well , instead of creating a new file.


To see all supported options for this module: #modinfo rtl8723be.


To identify which module is running / loaded by kernel: #lsmod |grep rtl or grep wifi


To dynamically apply options to this module for testing:

#modprobe -r rtl8723be && sleep 3s && modprobe rtl8723be fwlps=0
(and also you can try to include ips=0 swlps=0 to ensure that power save is off).


To see if the options are correctly loaded: #systool -a -v -m rtl8723be (systool require apt-get install sysfsutils


2. VGA Screen and i915 bugs 

The most serious bug with Debian Stable (kernel 3.16) is that my screen is not detected / recognized. As a result running xrandr refers only "Screen 0" together with some gamma errors, and there is only one available resolution (min, current, max) 800x600!

The problem is fixed by installing a higher Kernel from Debian Testing or Debian Sid. 


Currently version 4.7.5.1 is present in debian testing , 4.7.6.1 is present in sid and 4.8.rc is available in Debian Experimental repos. 
The whole 4.7 kernel series works fine for me.
PS: Kernel 4.6 has some issues mainstream , since when working with 4.6 in both Debian and Ubuntu , screen freezes due to i915 handling. 

As a screen workaround for the stable kernel 3.16 i tried to install Intel Linux drivers from here: 

https://01.org/linuxgraphics/downloads/intel-graphics-installer-linux-1.4.0 - 
But unfortunatelly these is not any suitable package for Debian.

I tried to install the Ubuntu 15.10-64bit pkg, and after a lot of pain resolving all the dependency issues and installing the pkg using Synaptics and GDebi, i got an error that this applications is not suitable for my distro!


Another workaround could be to use pkg xserver-xorg-video-intel by debian here:

https://packages.debian.org/search?keywords=xserver-xorg-video-intel

As shown in link, the xorg-video-intel exists in jessie stable as version 2.2.21 but also exists in testing/unstable as version 2.2.99. 



It is not clear if this package (stable version) was installed in debian stable or not. 


Testing / Unstable Repos Tip to avoid full update of your system:

Acc to binarytides, once you create a preferences file (name preferences, put it in etc/apt) you enable apt pinning and you can apply priority based policies for the apt-get updated to avoid full system update by testing/unstable repos and you can thus choose to update only specific packages you need (libgtk3 in my case).
With apt pinning enabled and by apt-get update, local debian package catalogues are updated by the new repos, but when you run apt-get upgrade nothing is installed since you have prioritze the "stable" packages with a hight priority.

You can then see what are the available packages for libgtk3 using

#apt-cache policy libgtk-3-0 -> Will give you the priority list of available versions (stable/testing/unstable) 
If you want to force your system to update a package to a testing version you can do that by
#apt-get install libgtk-3-0/testing or /unstable.

Synaptics Manager Tip : 

Searching for xserver-xorg-video-intel in Synaptics should firstly locate the package since it is on the debian repos and secondly Synaptics will advise if the package is installed or not. It seems that Synaptics can give you a quickway to verify if your system has installed or not any package available in Debian repos. But Synaptics is just a nice apt-get application and will not advise you for software that you might download out of the debian repos (like intel graphics . deb available in intel web site above).

If i do have the 2.2.21 but my PC need 2.2.99 , maybe then it is wrong to install debian stable images on brand new PCs, and you should install debian testing or unstable iso images (i remember that a lot of times met web people advising to do so in a fresh install).


Also Debian Web page here advises hot to enable KMS (Kernel Mode Setting). 

Acc to Debian "Kernel Mode Setting (KMS) provides faster mode switching for X and console. It also provides native-resolution VTs on some laptops and netbooks which, prior to this, would use some standard mode, e.g. 800×600" -> this seems to be exactly my case, unless my pc  does not belong to "some laptops".

Again acc to debian KMS page: "From xserver-xorg-video-intel version 2:2.9.1-2, KMS is enabled by default on Linux, by the way of the file /etc/modprobe.d/i915-kms.conf. 

So from Squeeze on, no hand modification should be necessary anymore.".

Debian Squeeze is version 6, i'm installing version 8.5 , so it is still not clear why i don't have my laptop screen correctly identified and set up in my fresh jessie install.


And moreover, if basic packages are not installed (either due to the fact that are considered as non-free or for some other reason) who knows what else could be missing....


More Debian Intel Packages: 

https://packages.debian.org/search?searchon=names&keywords=intel
Have a look if intel-microcode packages are installed in your system (cpu special support)

Browse Debian Packages of all versions (stable, testing, etc):

https://packages.debian.org/jessie/
On the top screen of the web page, you can select the debian version you want to search (stable, stretch=testing, sid=unstable, etc) or you can use the "search form" in the bottom of the packages home page: https://packages.debian.org/

LoopBack: 

All this trouble to make my screen recognized and worked in it's native resolution? Seriously? Fuck Debian. Love Ubuntu. 
In Ubuntu installation everything made automatically and worked "out of the box". 
It seems that Ubuntu has a kind of vision to be a real windows replacement OS, while Debian doesnot share the same vision.  

In any case, as has been said on web, use of pure debian jessie based distros customized like Crunchbang could solve most of the old-fashion Debian bugs , and in particular for operating in Intel driven VGA screens like mine.


Debian Stretch/Sid Upgrade Tips: 

To upgrade Debian installed in usb stick proved to be a headache:

Problem 1 : Update takes too long, causing the laptop to fall asleep and bios was configured to "disable usb power" when in "sleep mode". As a result.... file System / update corrupted. 

I had to run dpkg --configure -a a lot of times. 
It seems that Synaptics did a perfect job. After update interruption, Synaptics could restore broken packages, could guide you to continue updated from where it was left. More over you could use Synaptics to make the update (upgrade all packages) and not do that job with apt-get update/upgrade/dist-upgrade.

Problem 2: If Debian runs from a usb stick using an existed Grub loader on hdd/sda from another distro like Ubuntu 16.04 (my case), then Debian is not capable to update Grub Entries to load the new kernel.  You need to go in the Distro that "controls" the Grub Loader and update the grub entries for Debian boot (either by grub-update or by just running grub customizer - i always use grub-customizer).


Debian Kernel Upgrade:  https://wiki.debian.org/HowToUpgradeKernel


In Debian Linux pkg you can see Debian kernels: https://tracker.debian.org/pkg/linux

Up to yesterday (Sun 26/06/16), Stretch (testing) repo had kernel 4.6.1.1 and sid (unstable) repo had 4.6.2.2 kernel.

By today (Mon 27/06/16) the following changes have been noticed in the Linux pkg:


(a) Kernel 4.6.2.2 has been moved down from sid (unstable) to stretch (testing) repo.

If you dist-upgrade today you should be able to install and use 4.6.2.2 which might solve the i915 screen freeze bug present in the 4.6.1.1
https://packages.debian.org/sid/kernel/linux-image-4.6.0-1-amd64

Update 28/06/16: Indeed , Kernel 4.6.2.2 was installed after a apt-get update/upgrade.


Kernel Naming Notice: Acc to Kernel-Handbook, the name of the kernels i.e for Debian is a combination of Upstream Version + DebianVersion. 

You can have different debian version for the same upstream version.
If Debian claims kernel version 4.6.1.1 (or 4.6.2.2) this means upstream 4.6 and debian revision 1.1 or 2.2. 
If you browse the packages included in 4.6.2.2 you see that all refer to kernel 4.6.0.1 (upstream). 

(b) Stable kernel:  As above, kernel stable version is 3.16.7 and refers to upstream 3.16.04

Update 28/06/16: Previous version was also 3.16.7 but apt-get update download a new version 3.16.7 & deb patch.


(c) As Debian Wiki suggests, using #apt-cache search linux-image should give you the available kernels in the repos and then you can just run apt-get install linux-image. 

Remember that this apt-cache command is ignoring (in my case) the sid repos, since i have not enable sid repos in my sources.list file. 

Same list can be obtained using apt list linux-image-* or apt policy.

Especiall apt policy will give you info about installed version and available version in each repository.

To install a sid kernel you can enable apt pinning (instruction on Debian Wiki) , you can just download the kernel you like for the Linux pkg page above or you maybe even use Synaptics , since it is actually a package browser for the enabled repos (can by configured even within Synaptics).


(d) Other interesting kernel - linux images to try could be the 4.6.1.1 bpo (backported)


(e) Experimental Repos: Looking at the linux pkg web page, it seems that except stable/stretch and sid, there is also one more repo called "experimantal" , which includes kernel 4.7 as RC (release candidate). You can try it if you can handle it.

You can add experimental kernel & packages as desribed in Debian Wiki here.
You can browse experimental packages here: https://packages.debian.org/experimental/

(f) You will see some kernel meta-packages specially supporting amd64 and intel 64 cpus (amd64 port). You could try a kernel amd64 meta-package like this one here available for the stable release.  Notice that this kernel linux-image-amd64 (3.16+63) on the link above is a meta-data and depends on the kernel linux-image-3.16.0-4-amd64 . 

Or there are meta-packages for the stretch kernel like this one:

As a general idea, people suggest to install generic metapackages like amd64 since seems that ensure kernel updates within your release (see this user post)

PS1: To identify if your cpu is amd64 or intel64 architecture enabled, you can #grep flags /proc/cpuinfo and look for "lm" in the command output. 

If lm is found in the output, then the CPU is 64-bit. If you don't see lm or see i386, i486, i586, or i686 in the output, then the CPU is 32-bit. 

Toshiba Radius 11 L10WC10C is equipped with 2 Intel Celleron N3050 1.6Ghz which acc to Intel it is built on Intel 64 technology. 

PS2: To identify if your Kernel is 64bit, run uname -a and if you see x86-64 then it is 64b. 

(e) You can get lost among available Debian kernel linux images in this overview:

https://packages.debian.org/search?searchon=sourcenames&keywords=linux
https://kernel.org/ -> Notice the version 4.6.3 and also 4.7.rc5 (4.7.rc4 is available even in Debian Experimental Repo here).


Display Debian information commands:

  • #uname -a , -r  or -rms (gives upstream kernel version)
  • #hostnamectl (gives upstream kernel version)
  • #lsb_release or lsb_release -da or -a , -d. Although seems that distros use to apply a custom distro-related values in these fields (i.e Point Linux).
  • #cat /etc/debian_version
  • #cat /etc/issue
  • System Variables (i.e browse with #hardinfo)
  • #cat /proc/sys/kernel/osrelease
  • ls /boot/ | grep vmlinuz or #cd /boot && ls -l (lists linux images for boot) or #dmesg | grep Linux

Install Debian on VHD: 
Even if grub is capable to refer to a vhd file and browse contents, etc, Debian Installer is not giving you the option to install Debian on vhd file. Only physical blocks = physical disks or disk partitions. If you could manage to install Debian on vhd file through windows you could probably run Debian from vhd file with grub . But you can not install it.

(ps: For running Debian manually what would be the root parameter in grub> linux command? i.e grub> linux (loop,1)/vmlinuz root=/dev/sda3/vhdfile.vhd or root=(loop,1)? Never tried since not possible to install Debian on vhd)


Debian Root GUI Login:

In a distro like bundenslab if you try to login in GUI with root account , login fails and you are not able to login again unless you restart. Keep in mind that the default desktop environment it is xfce or openbox in bundenslab. 
You can change the default DE by running #update-alternatives --all
By installing clean Debian (not bundenslab) you can login as root without problems.

Alternative method:

As usuall x server runs on tty7. You can switch to tty1 (ctrl + alt + F1) login as root in Command Line Interface (CLI) and then you can type "startx". 
Then desktop environment is loaded in tty1 bypassing the login screen since you are already logged in. 
I notice that in Debian with multiple DE installed this startx command starts xfce always, even if in tty7 mate is loaded. 
You can change this behavior by creating a ~/.xinitrc file (mind the dot) with a single line in it: exec mate-session or by running #update-alternatives --all and read the on-screen instructions.

To be sure where to add the .xinitrc file you can search for the startx file (it is actually a script). In there you will find something like this according to this post:

userclientrc=$HOME/.xinitrc

sysclientrc=/etc/X11/xinit/xinitrc

* sysclientrc is the "global settings" - userclientrc is the client / user specific settings.

By echo $HOME you can see what is considered to be "home". 

For my system , root account, is /root directory , so this is where i put the .xinitrc file 
For user account, echo $HOME gives /home/username

PS: alternative command #echo exec mate-session >>$HOME/.xinitrc


Solution: not found yet. Not clear what causes login to fail.


Kill a processYou can view running process of a specific tty (i.e tty7) in any other tty (i.e tty1) by using: 

#ps -F -a --tty 7 -> 
You can then kill a process by #kill -9 pid. No need to declare the tty7 again, since every process has a unique pid.


Installing various goodies, like flashplayer in your Debian.
You have to install all the auxiliary packages using apt-get install and using the debian repos and not using the package provided by manufacturers directly (i.e Adobe).
The reason is that Debian Team "finetunes" a package to match Debi systems better, while manufacturers can provide a more global package.
Remember that you can search repos using #apt-cache search flash*
You can list information about installed packages by using #apt-cache policy flash*

Debian Unstable (sid) - Testing - Experimental sources.list
Although Debian claims that they do provide iso images for installation that are "unstable" ready, meaning that include packages from Debian sid/unstable repos, I have not succeed to install such an iso in my system.

What i usually do is after finishing normal debian stable installation, i edit the sources.list file in the /etc/apt folder like bellow.

(See also http://forums.debian.net/viewtopic.php?f=19&t=37593)

deb http://httpredir.debian.org/debian/ sid main contrib non-free

deb-src http://httpredir.debian.org/debian/ sid main contrib non-free

Debian guys claim that above line is enough and you can get rid of the security and volatile entries that exist in the original sources.list


I tried to apply bellow lines in my sources.list file but i got errors after apt-get update (not found):

deb http://httpredir.debian.org/debian/ sid-proposed-updates main contrib non-free
deb-src http://httpredir.debian.org/debian/ sid-proposed-updates main contrib non-free
deb http://security.debian.org/ sid/updates main
deb-src http://security.debian.org/ sid/updates main

On the other hand , replacing sid with testing on lines above seems to work, but it seems that is not necessary since all your system packages will be taken from sid repos, and usually sid has not updates; sid itself it is the top level update of all packages.


If you need to enable also experimental repos you can do it so by adding :

deb http://httpredir.debian.org/debian/ experimental main contrib non-free
deb-src http://httpredir.debian.org/debian/ experimental main contrib non-free

You could consider to activate apt-pinning for the updates in order to force your system to use by default packages from stable, no matter if the sid line is present in your sources list.
In this case it might be usefull to have all four lines in your sources list:
deb http://httpredir.debian.org/debian/ stable main contrib non-free
deb http://httpredir.debian.org/debian/ testing main contrib non-free
deb http://httpredir.debian.org/debian/ sid main contrib non-free
deb http://httpredir.debian.org/debian/ experimental main contrib non-free

If you want to play between sid and experimental , the last two line are enough.
Apt pinning / priority is active for experimental repos by default.

To install a package from experimental you have to :
#apt-get install package/experimental 
or
#apt-get -t experimental install package

If you have enable apt-pinning you could use method above to install packages by sid/testing repos as well.
Default apt-pinning is stable/testing/sid to get the same priority number, while experimental gets a lower priority (higher priority is installed first).

#apt-cache policy package file (i.e leafpad-versionxx-i386.deb)
Gives a list of the available versions in all repos.

#apt-cache search packagename (just leafpad)
Search repos for the given package name


In both cases wildmarks (*) are accepted.

This is a good operating sources.list from my system (Sep 2016):
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ jessie contrib non-free main    
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ testing main non-free contrib  
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ unstable contrib non-free main  
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ experimental main contrib non-free  
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ jessie-updates non-free contrib main  
deb [arch=amd64,i386] http://httpredir.debian.org/debian/ testing-updates non-free contrib main  
deb [arch=amd64,i386] http://security.debian.org/ jessie/updates non-free contrib main
deb [arch=amd64,i386] http://security.debian.org/ testing/updates main contrib non-free
deb http://httpredir.debian.org/debian/ jessie-backports non-free contrib main
deb [arch=amd64,i386] http://www.deb-multimedia.org/ jessie non-free main  
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

The arch option is necessary in multi architecture systems. If system is setup only as one architecture (32 or 64 bit by the very beginning - debian installation image) you can ommit these brackets.

Apt Pinning.
As mentioned a lot of times around web, the priority is (from higher to lower): 
Stable / Stretch / Sid / Experimental. 
Up to Stretch you could expect a good perfrormance since these packages are going to be part of next Debian Release. 
But if you enter in Sid/Experimental paths you have to do it in your very own risk. 
Strange bugs can appear , affecting even stable/stretch installed packages with limited support by Debian or by the web.
In any case apt pinning (setting priorities in /apt/preferences) you would allow your system to "see" these packages with apt-get update but will not automatically install them during apt-get upgrade / dist-upgrade. I suppose that applying same priority to stable and stretch would be included in the automatic apt-get upgrade, but lower priorities like sid/experimental will not.

It seems tha apt-get install doesn't work if the pkg you want to install is not visible by apt through the repos. As a result you might need to enable apt pinning in order to use apt-get for installing custom packages from sid/exp/bpo repos. Unless Synaptics could do the job using dpkg.

Example: Install a kernel version from Debian Experimental:
 # echo "deb http://ftp.de.debian.org/debian experimental main " >> /etc/apt/sources.list
 # echo "deb http://ftp.de.debian.org/debian experimental contribute non-free" >> /etc/apt/sources.list
# apt-get update
 # apt-cache policy   # shows/verifies the current preferences
 # apt-get -t experimental install linux-image-4.7-rc4-amd64
 # apt-get -t experimental install linux-headers-4.7-rc4-amd64
(PS: To correctly see the available packages in experimental repo, run # apt-cache search linuz-image before apt-get experimental install.)

Holding Back Packages like linux-image (kernel)

Kernel 4.8 has been said on the web to have some issues yet, affecting even auto screen rotation (i.e have a look on the iio-sensor-proxy bugs section).
You can manually hold back your kernels from further updating by using aptitude hold linux-image-xxxxxxxx. If you hold a kernel you need also to hold it's headers (specifica and common).
You can downgrade a kernel using apt install linux-image-XXXX/testing and do the same for header files. 
Alternatively : apt install -t testing linux-image-XXX linux-header-XXXX linux-header-XXX-common