my computer can not restart and shutdown in opensue 11.4

recently I installed opensuse 11.4 in my Dell optiplex 790 desktop. everything works well. however, when I tried to restart or shutdown my computer . the computer logoff and then “freeze” at opensuse window. I have to turn off the power button forcely and turn on the computer again. can somebody help me out of this problem? Thank you very much.

My computer configuration:
DELL Optiplex 790
Intel i5 3.1G with HD intel graphic card
Bios revision A05
Memory 8G

Can you take a look in the /var/log/messages file , looking for the entry at the exact time of your shutdown. What does it say ? What are the last few lines or so of the entry before the next restart. Do NOT post the entire /var/log/messages here (its too big). If you must post it anywhere do so on SUSE Paste and share here the URL you get after pressing create.

You could also look here for some ideas: Resolve Linux freeze or hang issues during reboot, restart, shutdown | Debian Ubuntu Linux Solutions Blog

when I restart my computer, I can not see anything in /var/log/messages.
I read through the link you gave me. it is very useful. however, I am new to linux. would you please tell me where reboot.c is located and how can I modify it? Thank you very much.

when I restart my computer, I can not see anything in /var/log/messages.
I read through the link you gave me. it is very useful. however, I am new to linux. would you please tell me where reboot.c is located and how can I modify it? Thank you very much.

I would NOT recommend modifying such a file. The file is mentioned, but I see no place where it states to actually modify the file.

You can find examples of a reboot.c on the web:
LXR / The Linux Cross Reference

If you look on your openSUSE under
/usr/src/linux-your-kernel-version/kernel/

you will see many ‘something.c files’ .

The article was written around a Debian/Ubuntu GNU/Linux blog …

So they may use different naming conventions for their files than openSUSE. I recommend you look at the various .c files and see if you can find one representative of the reboot.c file.

sorry. I can not find reboot.c under /usr/src/linux-2.6.37.6-0.7/kernel. is that weired? Thanks.

On 08/10/2011 12:46 PM, mwu123 wrote:
>
> sorry. I can not find reboot.c under /usr/src/linux-2.6.37.6-0.7/kernel.
> is that weired? Thanks.

Look in

/usr/src/linux-2.6.37.6-0.7/arch/x86/kernel/reboot.c
/usr/src/linux-2.6.37.6-0.7/drivers/acpi/reboot.c

I don’t think you should modify those files, or need to tinker with source code.

your problem seems to be ACPI/BIOS related => not all PC systems comply with the standards, and it shows in this aspect.
the documentation shown by the former post, correctly treats the problem, only left to you is a way to add that parameter to the kernel boot args
try /boot/grub/grub.cfg

extract from Resolve Linux freeze or hang issues during reboot, restart, shutdown | Debian Ubuntu Linux Solutions Blog

In order to fix the issue, you should try one-by-one passing the following parameter to the kernel, in the form of “reboot=<parameter>”, at the time of boot:

warm =  Don’t set the cold reboot flag

cold = Set the cold reboot flag

bios = Reboot by jumping through the BIOS (only for X86_32)

smp = Reboot by executing reset on BSP or other CPU (only for X86_32)

triple = Force a triple fault (init)

kbd = Use the keyboard controller. cold reset (default)

acpi = Use the RESET_REG in the FADT

efi = Use efi reset_system runtime service

pci = Use the so-called “PCI reset register”, CF9

force = Avoid anything that could hang.

As per my experience, one of the parameters (in blue color above) should be able to resolve your hang (or freeze) issue 90% of the time:

reboot=bios
or
reboot=acpi

Once your system boots you can verify whether the parameter was correctly passed or not by issuing the following command:

cat /proc/cmdline

Output:

root=/dev/sda ro vga=791 quiet reboot=bios

You can find the list of all the above parameters in the reboot.c file in the Linux kernel source.

By default, the Linux kernel uses the reboot=kbd method i.e. it tries to look for a keyboard controller and issue a reset/shutdown command to it. But there are some systems like some of the Intel Atom processor based machines that don’t have a keyboard controller and the above fixes are required. If you read the reboot.c file carefully there are some major main stream machines from Dell, Sony, HP, etc. that require the above “reboot=” fix. I guess sometime it is easier to fix the issue by using the kernel parameter rather than fixing in the BIOS.

Also you can also use the first letter (as denoted in the “]” brackets) of each of the parameter:

reboot=b # for reboot=**ios
reboot= a # for reboot=[a]cpi

and you can pass multiple parameter at the same time and Linux kernel will try in order specified:

reboot=a,b,k,c # for reboot=acpi,bios,kbd,cold
====================================================================================**

To the OP: after you find the parameter that works for you, you can add it permanently to the boot options in Yast>Bootloader. AFAIK Yast won’t let you enter invalid/unrecognized parameters, but make sure you just edit the options line, it’s very easy to bork your system if you change the wrong thing there.

Are you running KDE4.7? After I upgraded I could not logout normally of KDE anymore, had to shutdown from the command line. I ended up downgrading to KDE4.6.5.

I still have no idea how to do that. where can I try “reboot=” ? I can not find grub.cfg under /boot/grub.

[QUOTE=redagadir;2374320]I don’t think you should modify those files, or need to tinker with source code.

your problem seems to be ACPI/BIOS related => not all PC systems comply with the standards, and it shows in this aspect.
the documentation shown by the former post, correctly treats the problem, only left to you is a way to add that parameter to the kernel boot args
try /boot/grub/grub.cfg

I am sorry. I still have no idea how to solve this problem. what I have tried is to edit reboot.c ( in the line : __setup(“reboot=”, reboot_setup) ) and save it. however, I still have the problem.
can someone show me step by step how to do that? Thank you very much.

I think you believe this to be more complex than it actually is. Enter those as a boot code … ie lets say you wish to try the boot code ‘reset=bios’

Then consider this example image below, where I have applied the boot code ‘nomodeset’ (and to do this, as soon as the boot screen showed up, I just started typing ‘nomodeset’ (no quotes) and it appeared immediately in the options line):
http://thumbnails42.imagebam.com/14504/60422a145037164.jpg](http://www.imagebam.com/image/60422a145037164)
[click on image to obtain a larger/easier to read view]

… except in your case, instead of typing ‘nomodeset’ you type ‘reset=bios’ … then continue with the boot.

ONLY after you have confirmed one of those codes works, should you try to put it into a configuration file to make it more permanent.

i tried “reset=bios”. the computer is total frozen and there is no response from keyboard and mouse. something wrong?

I don’t know.

I suspect one can expect unexpected behaviour from different codes. Go on to another boot code.

Just to confirm, your PC is running openSUSE-11.4 right ? and not openSUSE Tumbleweed-11.4 ?

Yes, mine is opensuse 11.4.
one thing I want to make sure with you is that it should be the “reset=bios” not “reboot=bios”, right?
Thanks.

Yes my example is bad.

It should be ‘reboot = bios’

Finally, I figured out ‘reboot=pci’ works for my computer. I have one question left. how can I “put it into a configuration file to make it more permanent”? should I edit some file?
Thank you very much.

You can as root edit the /boot/grub/menu.lst file. Or it can be done in yast.

On 08/14/2011 02:06 PM, mwu123 wrote:
>
> I still have no idea how to do that. where can I try “reboot=” ? I can
> not find grub.cfg under /boot/grub.
>
>
> redagadir;2374320 Wrote:
>> I don’t think you should modify those files, or need to tinker with
>> source code.
>>
>> your problem seems to be ACPI/BIOS related => not all PC systems comply
>> with the standards, and it shows in this aspect.
>> the documentation shown by the former post, correctly treats the
>> problem, only left to you is a way to add that parameter to the kernel
>> boot args
>> try /boot/grub/grub.cfg
>
>

If everything fails, try CTRL+ALT+F2 and log in as root and type reboot.
As far as Bios goes, set it to the defaults and see if that improves
your problem to the better.


Euer Komputerfriek Joerg
using LXDE on 11.4 x64 and happy with a cup of real hot coffee…