You are not logged in.
Hi guys
I installed Arch Linux on a Trekstor Surftab Wintron 7.0 tablet (baytrail). It has 32 bit efi, even though it actually has a 64 bit processor, so I installed grub using
grub-install --target=i386-efi --efi-directory=/boot/ --bootloader-id=arch
which appeared to work.
Now I have this weird issue with booting:
When I let the system boot normally (without interfering), grub loads and attempts to boot Arch after the timeout. I see the message saying
loading Linux linux...
loading initial ramdisk...
but after that it hangs. I waited for several minutes, but nothing happened.
When I press F7 during boot, I get a little popup that lets me override the boot order. From there, I select 'arch', which is the entry for grub. Grub then loads, and after the timeout, arch boots normally.
I have no idea why this happens. I did some troubleshooting:
I installed rEFInd. I then found out that 32bit rEFInd can't load a 64bit kernel, but I did notice that rEFInd uses a different screen resolution when I override the boot order (compared to when I boot it without interfering).
That led me to believe it was related to modesetting. I tried the nomodeset kernel parameter (using grub), which didn't help or change anything.
I also tried to ssh into the machine after leaving it hangig at 'loading initial ramdisk' for a few minutes, thinking that maybe it boots but can't use the display for some reason. That didn't work, though, so I guess it doesn't boot at all.
I'm really stumped here. I don't know what else to try. If anyone has an idea, please let me know - any help is greatly appreciated. It would be nice if I could boot this thing without having to attach a keyboard every time.
Here's my grub.cfg
#
# 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
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 1cf76837-8e32-42a5-96da-d4aa72eeb6a6
else
search --no-floppy --fs-uuid --set=root 1cf76837-8e32-42a5-96da-d4aa72eeb6a6
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 9922-28ED
else
search --no-floppy --fs-uuid --set=root 9922-28ED
fi
echo 'Loading Linux linux-baytrail ...'
linux /vmlinuz-linux-baytrail root=UUID=1cf76837-8e32-42a5-96da-d4aa72eeb6a6 rw clocksource=tsc
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-baytrail.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
menuentry 'Arch Linux, with Linux linux-baytrail' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-baytrail-advanced-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 9922-28ED
else
search --no-floppy --fs-uuid --set=root 9922-28ED
fi
echo 'Loading Linux linux-baytrail ...'
linux /vmlinuz-linux-baytrail root=UUID=1cf76837-8e32-42a5-96da-d4aa72eeb6a6 rw clocksource=tsc
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-baytrail.img
}
menuentry 'Arch Linux, with Linux linux-baytrail (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-baytrail-fallback-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 9922-28ED
else
search --no-floppy --fs-uuid --set=root 9922-28ED
fi
echo 'Loading Linux linux-baytrail ...'
linux /vmlinuz-linux-baytrail root=UUID=1cf76837-8e32-42a5-96da-d4aa72eeb6a6 rw clocksource=tsc
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-baytrail-fallback.img
}
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 9922-28ED
else
search --no-floppy --fs-uuid --set=root 9922-28ED
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=1cf76837-8e32-42a5-96da-d4aa72eeb6a6 rw clocksource=tsc
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-1cf76837-8e32-42a5-96da-d4aa72eeb6a6' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 9922-28ED
else
search --no-floppy --fs-uuid --set=root 9922-28ED
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=1cf76837-8e32-42a5-96da-d4aa72eeb6a6 rw clocksource=tsc
echo 'Loading initial ramdisk ...'
initrd /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+ ###
and my partition layout
> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0rpmb 179:24 0 4M 0 disk
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
mmcblk0 179:0 0 14.6G 0 disk
├─mmcblk0p1 179:1 0 100M 0 part /boot
├─mmcblk0p2 179:2 0 2G 0 part [SWAP]
└─mmcblk0p3 179:3 0 12.5G 0 part /
Thanks in advance! Let me know if I need to provide more information.
Offline
I would write a grub.cfg myself like this:
insmod efi_gop
insmod efi_uga
insmod ext2
terminal_input console
terminal_output console
search --fs-uuid --set=root <UUID1> # UUID of the root partition.
set default=0
set timeout=3
set rootdev="<UUID2>" # UUID of the partition of the root filsesystem.
menuentry "Archlinux" {
linux /boot/vmlinuz-linux root=${rootdev} rw ipv6.disable=1 intel_pstate=disable
initrd /boot/initramfs-linux.img
}
Careful not loading any video driver and forcing to use the normal console. Maybe grub configure the console badly. It is better that grub does not configure anything and leave this task to the kernel.
Offline