You are not logged in.
Pages: 1
Background:
I am running a MacBook Pro 8,2 which has AMD/Intel hybrid graphics, however the intel card only works when booted via efi and the ATI card only works when booted via Apple's BIOS emulation, and unfortunately video out only works with the ATI card. Currently I am booting via grub-efi and everything is fine. However if I try to boot through the BIOS I get a Kernel error saying the rootfs (identified by UUID) cannot be found (at this point fsck would normally run).
What I've done to get to this point:
1. Installed xf86-video-ati
2. Ran
grub-install --target=i386-pc --recheck /dev/sda
2a.
[ben@ben grub]$ ls
fonts grub.cfg.example grub.gfc i386-pc themes
grub.cfg grubenv grub_intel.cfg locale x86_64-efi
note: there are some extra files (grub.gfc and grub_intel.cfg)
3. Added an appropriate grub menuentry (copied the fallback entry)
4. Restarted with option key held which brought me to GRUB with the proper config file & menu entries
5. Get to kernel boot readout with error which lists the proper UUID for root from the grub.cfg file.
As you can see, the UUIDs match between all entries, so I'm not sure what's going on here
[ben@ben grub]$ sudo cat grub.cfg
[sudo] password for ben:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
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 [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 485b95dc-f8de-4edd-96ad-b441988586a0
else
search --no-floppy --fs-uuid --set=root 485b95dc-f8de-4edd-96ad-b441988586a0
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-485b95dc-f8de-4edd-96ad-b441988586a0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set gfxmode=${GRUB_GFXMODE}
outb 0x728 1
outb 0x710 2
outb 0x740 2
outb 0x750 0
load video
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 485b95dc-f8de-4edd-96ad-b441988586a0
else
search --no-floppy --fs-uuid --set=root 485b95dc-f8de-4edd-96ad-b441988586a0
fi
echo 'Loading Linux core repo kernel ...'
linux /boot/vmlinuz-linux root=UUID=485b95dc-f8de-4edd-96ad-b441988586a0 rw quiet radeon.modeset=0 i915.modeset=1 i915.lvds_channel_mode=2 i915.lvds_use_ssc=0 i915.i915_enable_rc6=1
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux.img
}
menuentry 'Arch Linux, ATI' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-485b95dc-f8de-4edd-96ad-b441988586a0' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 485b95dc-f8de-4edd-96ad-b441988586a0
else
search --no-floppy --fs-uuid --set=root 485b95dc-f8de-4edd-96ad-b441988586a0
fi
echo 'Loading Linux core repo kernel ...'
linux /boot/vmlinuz-linux root=UUID=485b95dc-f8de-4edd-96ad-b441988586a0 rw quiet radeon.dpm=1
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-485b95dc-f8de-4edd-96ad-b441988586a0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 485b95dc-f8de-4edd-96ad-b441988586a0
else
search --no-floppy --fs-uuid --set=root 485b95dc-f8de-4edd-96ad-b441988586a0
fi
echo 'Loading Linux core repo kernel ...'
linux /boot/vmlinuz-linux root=UUID=485b95dc-f8de-4edd-96ad-b441988586a0 rw quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux-fallback.img
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
### BEGIN /etc/grub.d/60_memtest86+ ###
### END /etc/grub.d/60_memtest86+ ###
Offline
I don't know whether it would be different, but did you consider generating a new grub.cfg in case there's something different for BIOS?
It might be easier to use different boot loaders for EFI and BIOS to avoid things getting this confusing.
Take quiet out of the command line to get more output.
Did you check whether you initramfs needed to be regenerated?
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
I don't know whether it would be different, but did you consider generating a new grub.cfg in case there's something different for BIOS?
It might be easier to use different boot loaders for EFI and BIOS to avoid things getting this confusing.
Take quiet out of the command line to get more output.
Did you check whether you initramfs needed to be regenerated?
Rebuilt kernel image, same result.
Last edited by hippieben (2013-11-27 01:57:52)
Offline
A quick Web search turned up this Arch bug report. I've just skimmed it, though, and it seems to be related to the keyboard, not the disk device:
https://bugs.archlinux.org/task/27555
Try the following diagnostics:
Type "ls -l /dev/sd*" to see what disk devices are identified by the kernel. If you see none when you don't have any USB disk devices plugged in, then the kernel isn't detecting your hard disk. If you do see a device, use fdisk, gdisk, or parted to verify its size and therefore positively identify it as your hard disk (or as not your hard disk).
Type "dmesg | less" and search for messages related to the hard disk devices. There may be a clue about why it's not showing up, if it's not, or about why partitions aren't being detected even if the disk itself is.
There may be a way to get the ATI video working in EFI mode, but I'm not an expert on this topic, which tends to vary a lot from one machine to another.
Offline
Do you get the message about the controller when you boot in EFI mode? [EDIT: I am guessing if so, it is the keyboard thing - I found the same bug report, I think. EDIT 2: Different bug report but probably the same problem.]
Did you try creating a fresh config with the bios version installed to disk?
You said that one card only worked when you booted in BIOS mode. How can you boot in BIOS mode, then? That is, what does work?
EDIT: Don't know if https://bbs.archlinux.org/viewtopic.php … 6#p1139226 is in any way related.
Last edited by cfr (2013-11-27 02:32:41)
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
A quick Web search turned up this Arch bug report. I've just skimmed it, though, and it seems to be related to the keyboard, not the disk device:
https://bugs.archlinux.org/task/27555
Try the following diagnostics:
Type "ls -l /dev/sd*" to see what disk devices are identified by the kernel. If you see none when you don't have any USB disk devices plugged in, then the kernel isn't detecting your hard disk. If you do see a device, use fdisk, gdisk, or parted to verify its size and therefore positively identify it as your hard disk (or as not your hard disk).
Type "dmesg | less" and search for messages related to the hard disk devices. There may be a clue about why it's not showing up, if it's not, or about why partitions aren't being detected even if the disk itself is.
There may be a way to get the ATI video working in EFI mode, but I'm not an expert on this topic, which tends to vary a lot from one machine to another.
I'm considering the controller error to be irrelevant as it shows up in EFI boot but doesn't cause anything to not work. No disk devices were found when running ls -l /dev/sd* at kernel recovery prompt. dmesg | less didn't tell me anything useful as I have no way to scroll the console (apple keyboard has no scroll lock). I'd really like to be able to get the ATI card working in EFI boot, but I've never been able to figure it out despite trying many many times in many many distros.
Last edited by hippieben (2013-11-27 02:30:21)
Offline
Did you try creating a fresh config with the bios version installed to disk?
You said that one card only worked when you booted in BIOS mode. How can you boot in BIOS mode, then? That is, what does work?
What do you mean by creating a fresh config with the bios version installed to disk? Do you mean grub.cfg? I did delete grub.cfg and run grub-update with no different results, not sure why I didn't include that in the post. As far as only one card working under BIOS, that's just a fact of this hardware.
Offline
I cross-posted a thread link with yours. That seems to concern the opposite issue (BIOS -> EFI) but it does concern a similar error on Macs and the solution looks potentially harmless, at least.
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
I cross-posted a thread link with yours. That seems to concern the opposite issue (BIOS -> EFI) but it does concern a similar error on Macs and the solution looks potentially harmless, at least.
No luck
Offline
cfr wrote:Did you try creating a fresh config with the bios version installed to disk?
You said that one card only worked when you booted in BIOS mode. How can you boot in BIOS mode, then? That is, what does work?
What do you mean by creating a fresh config with the bios version installed to disk? Do you mean grub.cfg? I did delete grub.cfg and run grub-update with no different results, not sure why I didn't include that in the post. As far as only one card working under BIOS, that's just a fact of this hardware.
What distro are you using? There is no grub-update in Arch's grub package.
CLI Paste | How To Ask Questions
Arch Linux | x86_64 | GPT | EFI boot | refind | stub loader | systemd | LVM2 on LUKS
Lenovo x270 | Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz | Intel Wireless 8265/8275 | US keyboard w/ Euro | 512G NVMe INTEL SSDPEKKF512G7L
Offline
Pages: 1