# 2.6.9-r6 hangs during boot on vesafb [SOLVED]

## VinzC

Hi,

I've installed gentoo-dev-sources-2.6.9-r6 and splashutils. Sometimes when I reboot my machine (a dual PIII 800MHz) kernel hangs upon the following lines:

```
vesafb: NVIDIA Corporation, NV34 board - p162-1n Chip rev. (OEM: NVIDIA)

vesafb: VBE version 3.0
```

I must power down the system and reboot. Sometimes (and it fails too) pressing the Reset button does the trick.

I'm using vesafb-tng for boot splash. Should I downgrade to vesafb? Is it an issue of dual CPU boards?

EDIT: I don't understand why Gentoo Live CD 2004.0 yet boots and shows its splash screen. It's most than probably using a framebuffer console but it never hung. What's the difference between a kernel for a Live CD and those I want to build alike?

Any ideas?

Thanks in advance.

----------

## VinzC

Just to avoid leaving this topic unanswered. Hope it will be solved soon.

----------

## VinzC

 *VinzC wrote:*   

> Just to avoid leaving this topic unanswered. Hope it will be solved soon.

 

EDIT: The problem is now fully solved! At last!

My motherboard is an MSI 694D Pro2-IR (discontinued). It has dual CPU, IDE RAID 0/1 (Promise Fastrack), 4 USB ports and Infrared. It also has a VIA VT82C686B chipset. Plus many other useless features  :Wink: .

I always wondered why Gentoo LiveCD splashes never failed on my machine. So I studied Gentoo LiveCD 2004.3 kernel config (using /proc/config.gz, a great idea, this one).

Apart from providing a wide choice of modules for several platforms, the major changes I noticed were about APM/ACPI. Also the new Gentoo 2004.3 LiveCD uses udev instead of devfs.

So I first enhanced my original configuration with udev. Then I tried to get as close as possible to the LiveCD's kernel config. Here are the main lines:

```

#                                                               #

# Automatically generated make config: don't edit               # Automatically generated make config: don't edit

# Linux kernel version: 2.6.9-gentoo-r1                       | # Linux kernel version: 2.6.9-gentoo-r12

# Thu Nov 25 03:39:50 2004                                    | # Mon Dec 27 11:59:12 2004

#                                                               #

CONFIG_X86=y                                                    CONFIG_X86=y

CONFIG_MMU=y                                                    CONFIG_MMU=y

CONFIG_UID16=y                                                  CONFIG_UID16=y

CONFIG_GENERIC_ISA_DMA=y                                        CONFIG_GENERIC_ISA_DMA=y

CONFIG_GENERIC_IOMAP=y                                          CONFIG_GENERIC_IOMAP=y

#                                                               #

# Code maturity level options                                   # Code maturity level options

#                                                               #

CONFIG_EXPERIMENTAL=y                                           CONFIG_EXPERIMENTAL=y

CONFIG_CLEAN_COMPILE=y                                          CONFIG_CLEAN_COMPILE=y

#                                                               #

# General setup                                                 # General setup

#                                                               #

CONFIG_LOCALVERSION=""                                          CONFIG_LOCALVERSION=""

CONFIG_SWAP=y                                                   CONFIG_SWAP=y

CONFIG_SYSVIPC=y                                                CONFIG_SYSVIPC=y

# CONFIG_POSIX_MQUEUE is not set                                # CONFIG_POSIX_MQUEUE is not set

# CONFIG_BSD_PROCESS_ACCT is not set                            # CONFIG_BSD_PROCESS_ACCT is not set

CONFIG_SYSCTL=y                                                 CONFIG_SYSCTL=y

# CONFIG_AUDIT is not set                                       # CONFIG_AUDIT is not set

CONFIG_LOG_BUF_SHIFT=15                                         CONFIG_LOG_BUF_SHIFT=15

CONFIG_HOTPLUG=y                                                CONFIG_HOTPLUG=y

CONFIG_IKCONFIG=y                                               CONFIG_IKCONFIG=y

CONFIG_IKCONFIG_PROC=y                                          CONFIG_IKCONFIG_PROC=y

CONFIG_EMBEDDED=y                                               CONFIG_EMBEDDED=y

# CONFIG_KALLSYMS is not set                                    # CONFIG_KALLSYMS is not set

CONFIG_FUTEX=y                                                  CONFIG_FUTEX=y

CONFIG_EPOLL=y                                                  CONFIG_EPOLL=y

# CONFIG_IOSCHED_NOOP is not set                                # CONFIG_IOSCHED_NOOP is not set

# CONFIG_IOSCHED_AS is not set                                  # CONFIG_IOSCHED_AS is not set

CONFIG_IOSCHED_DEADLINE=y                                       CONFIG_IOSCHED_DEADLINE=y

# CONFIG_IOSCHED_CFQ is not set                                 # CONFIG_IOSCHED_CFQ is not set

CONFIG_CC_OPTIMIZE_FOR_SIZE=y                                   CONFIG_CC_OPTIMIZE_FOR_SIZE=y

CONFIG_SHMEM=y                                                  CONFIG_SHMEM=y

# CONFIG_TINY_SHMEM is not set                                  # CONFIG_TINY_SHMEM is not set

#                                                               #

# Loadable module support                                       # Loadable module support

#                                                               #

CONFIG_MODULES=y                                                CONFIG_MODULES=y

CONFIG_MODULE_UNLOAD=y                                          CONFIG_MODULE_UNLOAD=y

# CONFIG_MODULE_FORCE_UNLOAD is not set                         # CONFIG_MODULE_FORCE_UNLOAD is not set

CONFIG_OBSOLETE_MODPARM=y                                       CONFIG_OBSOLETE_MODPARM=y

CONFIG_MODVERSIONS=y                                          | # CONFIG_MODVERSIONS is not set

CONFIG_KMOD=y                                                   CONFIG_KMOD=y

CONFIG_STOP_MACHINE=y                                           CONFIG_STOP_MACHINE=y

#                                                               #

# Processor type and features                                   # Processor type and features

#                                                               #

CONFIG_X86_PC=y                                                 CONFIG_X86_PC=y

# CONFIG_X86_ELAN is not set                                    # CONFIG_X86_ELAN is not set

# CONFIG_X86_VOYAGER is not set                                 # CONFIG_X86_VOYAGER is not set

# CONFIG_X86_NUMAQ is not set                                   # CONFIG_X86_NUMAQ is not set

# CONFIG_X86_SUMMIT is not set                                  # CONFIG_X86_SUMMIT is not set

# CONFIG_X86_BIGSMP is not set                                  # CONFIG_X86_BIGSMP is not set

# CONFIG_X86_VISWS is not set                                   # CONFIG_X86_VISWS is not set

# CONFIG_X86_GENERICARCH is not set                             # CONFIG_X86_GENERICARCH is not set

# CONFIG_X86_ES7000 is not set                                  # CONFIG_X86_ES7000 is not set

# CONFIG_M386 is not set                                        # CONFIG_M386 is not set

CONFIG_M486=y                                                 | # CONFIG_M486 is not set

# CONFIG_M586 is not set                                        # CONFIG_M586 is not set

# CONFIG_M586TSC is not set                                     # CONFIG_M586TSC is not set

# CONFIG_M586MMX is not set                                     # CONFIG_M586MMX is not set

# CONFIG_M686 is not set                                        # CONFIG_M686 is not set

# CONFIG_MPENTIUMII is not set                                  # CONFIG_MPENTIUMII is not set

# CONFIG_MPENTIUMIII is not set                               | CONFIG_MPENTIUMIII=y

# CONFIG_MPENTIUMM is not set                                   # CONFIG_MPENTIUMM is not set

# CONFIG_MPENTIUM4 is not set                                   # CONFIG_MPENTIUM4 is not set

# CONFIG_MK6 is not set                                         # CONFIG_MK6 is not set

# CONFIG_MK7 is not set                                         # CONFIG_MK7 is not set

# CONFIG_MK8 is not set                                         # CONFIG_MK8 is not set

# CONFIG_MCRUSOE is not set                                     # CONFIG_MCRUSOE is not set

# CONFIG_MWINCHIPC6 is not set                                  # CONFIG_MWINCHIPC6 is not set

# CONFIG_MWINCHIP2 is not set                                   # CONFIG_MWINCHIP2 is not set

# CONFIG_MWINCHIP3D is not set                                  # CONFIG_MWINCHIP3D is not set

# CONFIG_MCYRIXIII is not set                                   # CONFIG_MCYRIXIII is not set

# CONFIG_MVIAC3_2 is not set                                    # CONFIG_MVIAC3_2 is not set

# CONFIG_X86_GENERIC is not set                                 # CONFIG_X86_GENERIC is not set

CONFIG_X86_CMPXCHG=y                                            CONFIG_X86_CMPXCHG=y

CONFIG_X86_XADD=y                                               CONFIG_X86_XADD=y

CONFIG_X86_L1_CACHE_SHIFT=4                                   | CONFIG_X86_L1_CACHE_SHIFT=5

CONFIG_RWSEM_XCHGADD_ALGORITHM=y                                CONFIG_RWSEM_XCHGADD_ALGORITHM=y

CONFIG_X86_PPRO_FENCE=y                                       <

CONFIG_X86_F00F_BUG=y                                         <

CONFIG_X86_WP_WORKS_OK=y                                        CONFIG_X86_WP_WORKS_OK=y

CONFIG_X86_INVLPG=y                                             CONFIG_X86_INVLPG=y

CONFIG_X86_BSWAP=y                                              CONFIG_X86_BSWAP=y

CONFIG_X86_POPAD_OK=y                                           CONFIG_X86_POPAD_OK=y

CONFIG_X86_ALIGNMENT_16=y                                     | CONFIG_X86_GOOD_APIC=y

                                                              > CONFIG_X86_INTEL_USERCOPY=y

                                                              > CONFIG_X86_USE_PPRO_CHECKSUM=y

# CONFIG_HPET_TIMER is not set                                  # CONFIG_HPET_TIMER is not set

CONFIG_SMP=y                                                    CONFIG_SMP=y

CONFIG_NR_CPUS=8                                              | CONFIG_NR_CPUS=2

CONFIG_SCHED_SMT=y                                              CONFIG_SCHED_SMT=y

# CONFIG_PREEMPT is not set                                     # CONFIG_PREEMPT is not set

CONFIG_X86_LOCAL_APIC=y                                         CONFIG_X86_LOCAL_APIC=y

CONFIG_X86_IO_APIC=y                                            CONFIG_X86_IO_APIC=y

# CONFIG_X86_MCE is not set                                   | CONFIG_X86_TSC=y

                                                              > CONFIG_X86_MCE=y

                                                              > # CONFIG_X86_MCE_NONFATAL is not set

                                                              > # CONFIG_X86_MCE_P4THERMAL is not set

# CONFIG_TOSHIBA is not set                                     # CONFIG_TOSHIBA is not set

# CONFIG_I8K is not set                                         # CONFIG_I8K is not set

# CONFIG_MICROCODE is not set                                   # CONFIG_MICROCODE is not set

# CONFIG_X86_MSR is not set                                     # CONFIG_X86_MSR is not set

# CONFIG_X86_CPUID is not set                                   # CONFIG_X86_CPUID is not set

#                                                               #

# Firmware Drivers                                              # Firmware Drivers

#                                                               #

# CONFIG_EDD is not set                                         # CONFIG_EDD is not set

# CONFIG_NOHIGHMEM is not set                                 | CONFIG_NOHIGHMEM=y

CONFIG_HIGHMEM4G=y                                            | # CONFIG_HIGHMEM4G is not set

# CONFIG_HIGHMEM64G is not set                                  # CONFIG_HIGHMEM64G is not set

CONFIG_HIGHMEM=y                                              <

# CONFIG_HIGHPTE is not set                                   <

# CONFIG_MATH_EMULATION is not set                              # CONFIG_MATH_EMULATION is not set

CONFIG_MTRR=y                                                   CONFIG_MTRR=y

# CONFIG_EFI is not set                                         # CONFIG_EFI is not set

CONFIG_IRQBALANCE=y                                             CONFIG_IRQBALANCE=y

CONFIG_HAVE_DEC_LOCK=y                                          CONFIG_HAVE_DEC_LOCK=y

# CONFIG_REGPARM is not set                                   | CONFIG_REGPARM=y

#                                                               #

# Power management options (ACPI, APM)                          # Power management options (ACPI, APM)

#                                                               #

CONFIG_PM=y                                                     CONFIG_PM=y

# CONFIG_PM_DEBUG is not set                                    # CONFIG_PM_DEBUG is not set

# CONFIG_SOFTWARE_SUSPEND is not set                            # CONFIG_SOFTWARE_SUSPEND is not set

#                                                               #

# ACPI (Advanced Configuration and Power Interface) Support     # ACPI (Advanced Configuration and Power Interface) Support

#                                                               #

CONFIG_ACPI=y                                                   CONFIG_ACPI=y

CONFIG_ACPI_BOOT=y                                              CONFIG_ACPI_BOOT=y

CONFIG_ACPI_INTERPRETER=y                                       CONFIG_ACPI_INTERPRETER=y

# CONFIG_ACPI_SLEEP is not set                                  # CONFIG_ACPI_SLEEP is not set

CONFIG_ACPI_AC=m                                              | # CONFIG_ACPI_AC is not set

CONFIG_ACPI_BATTERY=m                                         | # CONFIG_ACPI_BATTERY is not set

CONFIG_ACPI_BUTTON=m                                            CONFIG_ACPI_BUTTON=m

CONFIG_ACPI_FAN=m                                               CONFIG_ACPI_FAN=m

CONFIG_ACPI_PROCESSOR=m                                         CONFIG_ACPI_PROCESSOR=m

CONFIG_ACPI_THERMAL=m                                           CONFIG_ACPI_THERMAL=m

CONFIG_ACPI_ASUS=m                                            | # CONFIG_ACPI_ASUS is not set

CONFIG_ACPI_TOSHIBA=m                                         | # CONFIG_ACPI_TOSHIBA is not set

CONFIG_ACPI_BLACKLIST_YEAR=0                                    CONFIG_ACPI_BLACKLIST_YEAR=0

# CONFIG_ACPI_DEBUG is not set                                  # CONFIG_ACPI_DEBUG is not set

CONFIG_ACPI_BUS=y                                               CONFIG_ACPI_BUS=y

CONFIG_ACPI_EC=y                                                CONFIG_ACPI_EC=y

CONFIG_ACPI_POWER=y                                             CONFIG_ACPI_POWER=y

CONFIG_ACPI_PCI=y                                               CONFIG_ACPI_PCI=y

CONFIG_ACPI_SYSTEM=y                                            CONFIG_ACPI_SYSTEM=y

# CONFIG_X86_PM_TIMER is not set                                # CONFIG_X86_PM_TIMER is not set

#                                                               #

# APM (Advanced Power Management) BIOS Support                  # APM (Advanced Power Management) BIOS Support

#                                                               #

CONFIG_APM=m                                                    CONFIG_APM=m

# CONFIG_APM_IGNORE_USER_SUSPEND is not set                     # CONFIG_APM_IGNORE_USER_SUSPEND is not set

CONFIG_APM_DO_ENABLE=y                                          CONFIG_APM_DO_ENABLE=y

# CONFIG_APM_CPU_IDLE is not set                                # CONFIG_APM_CPU_IDLE is not set

# CONFIG_APM_DISPLAY_BLANK is not set                           # CONFIG_APM_DISPLAY_BLANK is not set

# CONFIG_APM_RTC_IS_GMT is not set                              # CONFIG_APM_RTC_IS_GMT is not set

# CONFIG_APM_ALLOW_INTS is not set                              # CONFIG_APM_ALLOW_INTS is not set

CONFIG_APM_REAL_MODE_POWER_OFF=y                                CONFIG_APM_REAL_MODE_POWER_OFF=y

...

```

The left side is Gentoo LiveCD's, while the right side is my configuration. The only difference between my config and LiveCD is that the latter uses vesafb, I'm using vesa-tng.

I wanted to give a try to  Spock's Framebuffer splash HOWTO. It is quite similar to the Gensplash HOWTO except it uses vesa-tng. It also has no clear picture of the kernel config menu but this is probably trivial.

There is also a translation in Spanish on these forums. The latter is a free translation of gentoo wiki but the wiki currently seems completely corrupted. Note it would be great if the Spanish howto also existed here in English.

I finally modified grub.conf the following way:

```
title Gentoo Linux 2.6.9-r12 (Splash)

  root (hd0,0)

  kernel /kernel-2.6.9-gentoo-r12 ro udev acpi=ht root=/dev/hda6 video=vesafb:ywrap,pmipal,1024x768-32@75 splash=silent,theme:emergence

  initrd /fbsplash-emergence-1024x768

```

The LiveCD runs kernel with arguments udev (trivial) and acpi=ht. The latter disables ACPI but modules which have hyperthreading support.

EDIT: Pending problem

- Message i8042.c: Can't read CTR while initializing i8042 appears in boot messages. Tried boot params noapic and nolapic. Rebooted and it worked but...

EDIT: Rebooted once more and know what? keyboard problem still there! WTF??????

Last notes:

- I still didn't have to patch my kernel. I'm running gentoo-dev-sources-2.6.9-r12. So a good idea might be to indicate which kernels need to be patched and why.

- Boot logo doesn't prevent bootsplash from working normally. Gentoo 2004.3 LiveCD also shows both.

----------

## yardbird

You may want to check this out:

http://dev.gentoo.org/~spock/projects/vesafb-tng

It mentions that there may be problems with SMP and vesa-tng. Maybe you should contact Spock and try to debug the problem...

----------

## VinzC

 *yardbird wrote:*   

> You may want to check this out:
> 
> http://dev.gentoo.org/~spock/projects/vesafb-tng
> 
> It mentions that there may be problems with SMP and vesa-tng. Maybe you should contact Spock and try to debug the problem...

 

Thanks yardbird but I fear I'll have to recompile my DSDT. It's buggy as well. The only trouble I'm facing is the keyboard refusing to work. As many troubles of this kind are often linked with ACPI, I expect this is the way to go. We'll see.

----------

## VinzC

 *VinzC wrote:*   

> EDIT: Pending problem
> 
> - Message i8042.c: Can't read CTR while initializing i8042 appears in boot messages.

 

Damn! problem solved definitely!

I finally found this topic about the same problem. I went to my BIOS and disabled BIOS support for USB mouse/keyboard (while leaving USB support enabled).

Now vesafb works, I can boot with full ACPI support and the keyboard isn't locked. I don't know why on earth adding vesa support revealed a problem with legacy USB but, well, at least it works now.

Hope my headaches will be helpful to others.

----------

