You can not start Live-Linux on your AMD computer?
You get a black screen or some errors?
Quote:
AMD-Vi: [Firmware Bug]: : IOAPIC[4] not in IVRS table
linux kernel: AMD-Vi: [Firmware Bug]: : IOAPIC[5] not in IVRS table
linux kernel: AMD-Vi: [Firmware Bug]: : No southbridge IOAPIC found
linux kernel: AMD-Vi: Disabling interrupt remapping
|
That's how to FIX this issue:
Many BIOS Firmware have a BUG in the IOMMU.
To workaround this issue you have to boot and install an old version of GNU/Linux by booting an Live-Linux from USB-Drive whit the Linux-Kernel version:
4.13.
Alternative you can boot the latest GNU/Linux like the
KDE neon GNU/Linux by editing the
/boot/grub/grub.cfg on the USB-Drive whit this workaround:
Code:
ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2
Maybe you have to change the numbers in:
"[
4]" and "[
5]" to "[
3]" and "[
4]" or "[
5]" and "[
4]"...
It depends on you IRQ settings of the BIOS
Workaround.
1. Download GNU/Linux (for example
KDE neon GNU/Linux) and
Rufus
2. Start
Rufus, select the GNU/Linux image (
neon-user-20190404-1118.iso) file and set
GPT UEFI
3. Press START button.
4. Wait till the Boot-USB creating is finished and press Close.
5. Open in
Windows Explorer the
USB-Drive and go to the
/boot/grub/ directory.
3. Open the
grub.cfg with
Notepad and add this line:
ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2
Quote:
# This is a composite, glued together from bits of an actual generated
# grub.cfg from a regular system, and the auto generated stuff created for
# Kubuntu.
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont /boot/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
insmod gfxmenu
loadfont /boot/grub/themes/breeze/unifont-bold-16.pf2
loadfont /boot/grub/themes/breeze/unifont-regular-14.pf2
loadfont /boot/grub/themes/breeze/unifont-regular-16.pf2
loadfont /boot/grub/themes/breeze/unifont-regular-32.pf2
insmod png
set theme=/boot/grub/themes/breeze/theme.txt
export theme
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
# NB: apparmor is disabled because it would deny everything. The actual paths in
# the live system are not the paths used in the configs. This is because of
# how the squashfs is mounted and then overlayed. So the final paths seen by
# apparmor will be /cow/foo/whatevs/... instead of /... this blocks a lot of
# parts of the ISO from working properly (e.g. snapd or kmail; latter only
# if the user opts to install it of course).
menuentry "Start KDE neon" {
load_video
set gfxpayload=keep
linux /casper/vmlinuz boot=casper apparmor=0 ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2 ---
initrd /casper/initrd.lz
}
menuentry "Start KDE neon (OEM mode)" {
load_video
set gfxpayload=keep
linux /casper/vmlinuz boot=casper apparmor=0 ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2 --- oem-config/enable=true
initrd /casper/initrd.lz
}
|
Now reboot the computer and the Live-Linux will start automatically.
If USB-Drive is not starting, you have to enter the BIOS and setup Boot from USB. Start computer and Press a few times
F12 or
F2 or
Del. Enter the BIOS, select the USB-Drive to boot from ti and start the Live-Linux from USB-Drive.
Sometimes the Linux won't start the first time from USB-Drive, you have to restart computer a few times, till the USB-Drive-Live-Linux is booting.
Next install Linux on a Partition of you'r Computer-Drive not USB.
Select MANUAL INSTALLATION TYPE
Keep the Windows partitions and add a new partition.
If Windows is occupying the whole drive, you can resize the drive from the back. Just make the Windows partition smaller on the end of the partition and take the empty space for the Linux partition. Windows need at least 20GB bettet is 40GB. The rest can be used for Linux also 20-40GB.
After you installed the Linux on you'r Computer,
DO NOT REBOOT, first you need to edit in "Live mode" the
/boot/grub/grub.cfg on the Computer Drive (SSD/HDD) where the Linux is installed now, the same way as on the USB-Drive.
Open the
grub.conf in a editor "sd
x1/boot/grub/", search for the "
ro" command and add the workaround
ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2
Code:
menuentry 'KDE neon 5.0 GNU/Linux' --class neon $menuentry_id_option 'gnulinux-simple-xxxxx-xxxx-xxxx-xxx-xxxxxx' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt4 --hint-efi=hd1,gpt4 --hint-baremetal=ahci1,gpt4 xxxxx-xxxx-xxxx-xxx-xxxxxx -e24113c6b8b4
else
search --no-floppy --fs-uuid --set=root xxxxx-xxxx-xxxx-xxx-xxxxxx
fi
linux /boot/vmlinuz-5.0.6-A315-41-R001 root=UUID=xxxxx-xxxx-xxxx-xxx-xxxxxx ro ivrs_ioapic[4]=00:14.0 ivrs_ioapic[5]=00:00.2
initrd /boot/initrd.img-5.0.6-A315-41-R001
}
Save it, reboot and start from you computer-drive.
-------------------------
To fix the AMD-IOMMU issue, you have to install the
Linux-Kernel 5.x.x.
Install Linux Kernel instruction:
First open the Command-Line-Emulator like Konsole/Terminal (
Ctrl+
Alt+
T) login as SuperUser with this command:
su. If you cannot login to you'r SuperUser account, you have to change the SuperUser password and unlock the account.
Enter two times a new SuperUser password.
To unlock (
-u) the SuperUser account execute this command:
Code:
sudo passwd -u root
Now login as SuperUser by entering the command:
enter your password and now you'r root
To install the new Linux-Kernel you have to install all the stuff first:
Code:
apt-get install build-essential
apt-get install gcc
apt-get install make
apt-get install ld
apt-get install flex
apt-get install bison
apt-get install fdformat
apt-get install depmod
apt-get install e2fsck
apt-get install fsck.jfs
apt-get install reiserfsck
apt-get install xfs_db
apt-get install mksquashfs
apt-get install btrfsck
apt-get install pccardctl
apt-get install quota
apt-get install pppd
apt-get install isdnctrl
apt-get install showmount
apt-get install ps
apt-get install oprofiled
apt-get install udevd
apt-get install grub
apt-get install mcelog
apt-get install iptables
apt-get install openssl
apt-get install bc
apt-get install sphinx-build
apt-get install libncurses5-dev
apt-get install libelf-dev
apt-get install libcurl4-openssl-dev
apt-get install libssl-dev
apt-get install pkg-config
apt-get install libpng-dev
apt-get install zlib1g-dev
apt-get install gawk
apt-get install gcc-8
apt-get install g++-8
apt-get install python3-distutils
apt-get install libevent-dev
apt-get build-dep linux
apt-get update
apt-get full-upgrade
apt-get autoremove
apt-get autoclean
The command
apt-get full-upgrade will probably install a new Kernel and reconfigure the grub.conf, and the workaround will be deleted, before you restart the computer, check the grub.conf if the workaround is on it's place.
Now reboot computer.
Change the default compiler to GCC-8:
Code:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
update-alternatives --config gcc
Quote:
scripts/kconfig/mconf Kconfig
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
root@linux:/usr/src/linux-5.0.6-A315-41-R001# update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-8 800 auto mode
1 /usr/bin/gcc-7 700 manual mode
2 /usr/bin/gcc-8 800 manual mode
Press <enter> to keep the current choice[*], or type selection number: 0
|
Select "0" and press enter.
Download
Linux-Kernel 5.x.x it should be downloadet to the
/home/USER/Downloads/ directory.
Edit path "
USER
Code:
su
cd /usr/src/
xz -cd /home/USER/Downloads/ | tar xfv -
Now you need a Linux-Configuration-File. You can find the configuration file on you'r computer in the
/boot/ directory.
Example:
/boot/config-4.15.0-47-generic.
Edit path "
x" and run commands in the command-line:
Code:
sudo cp /boot/config-4.15.x-xx-genxxxx /usr/src/linux-5.x.x/.config
Code:
cd /usr/src/linux-5.x.x
make menuconfig
go to:
Device Drivers ---> IOMMU Hardware Support ---> and set it up like on the screenshot
Now navigate to the button
<Save> save as "
.congif" navigate to the button
Exit ent and press it a few times till it exit back to the command-line.
Now compile the Linux-Kernel: Run in the command-line as SuperUser
The
X is for the number of your CPU cores, if you have 4-CPU-Cores then replace the
X with
4 make -j4, if have 8-Cores
make -j8...
After compiling is finished run
Code:
make modules_install
and boot the new Linux-Kernel.
In the boot manager menu (GRUB) the first entry is always the highest Linux-Kernel version. Press "E" to see the Kernel version and "Esc" to exit.
Now you can boot GNU/Linux Kernel version 5.x without a workaround.