386 boot problems with 2.4.7 and 2.4.7-ac9
I have an old 386 which ran 2.4.3 just fine. Last night i tried to upgrade it but it didnt work at all.
I compiled a stock 2.4.7, and since I had seen some postings on that egcs-2.91.66 didn't compile 2.4.7 I switched to gcc-2.96-85. The only thing I added to the kernel was ISAPNP support.
The 2.4.7 kernel seems to boot fine, no error messages or nothing, but it won't start init. The last line is:
Freeing unused kernel memory: 52K freed
And then it just stops. The kernel is still resonsive but init won't start. Shift-PageUp still works. SysRQ shows that the EIP almost always is on the same spot in schedule. I tried init=/bin/sh but the boot stops at the same place every time.
Then I tried 2.4.7-ac9, same configuration, but that kernel panics.
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Unable to handle kernel paging request at virtual address c0800000
printing eip:
c01eb801
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c01eb801>]
EFLAGS: 00010283
eax: ffffff00 ebx: c0800000 ecx: 00000008 edx: 00000001
esi: c0800000 edi: c01be12e ebp: 00800000 esp: c022bfb8
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c022b000)
Stack: 001f4df8 00000000 00000000 c01f4dfc c01e7fd8 c0105000 0008e000 c01e87d2
00010f00 c0105041 00010f00 c01e7fd8 c0105000 0008e000 c0105472 00000000
c0105038 00098700
Call Trace: [<c0105000>] [<c0105041>] [<c0105000>] [<c0105472>] [<c0105038>]
Code: f3 a6 0f 97 c2 0f 92 c0 38 c2 75 45 c6 44 24 03 00 31 f6 8a
<0>Kernel panic: Attemted to kill init!Relevant parts from System.map are:c0105000 t rest_initc0105000 T _stextc0105000 T stext
c0105038 t init
c010544c T kernel_thread
c01eb7cc t sbf_init
The system is a 386DX with an Award 3.15c BIOS. The distribution is smalllinux i think, but I've modified it a lot.
Please CC replies to me.
/Carl-Johan Kjellander
Signature · 4 lines
begin 644 carljohan_at_kjellander_dot_com.gif Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`
I figured out how to work ksymoops as well.
This is the panic from 2.4.7-ac9 compiled with gcc-2.96-85 (Red Hat).
ksymoops 2.4.0 on i686 2.4.7. Options used
-v vmlinux (specified)
-K (specified)
-L (specified)
-o /lib/modules/2.4.7-ac9/ (specified)
-m System.map (specified)
No modules in ksyms, skipping objects
Unable to handle kernel paging request at virtual address c0800000 c01eb801 *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01eb801>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010283
eax: ffffff00 ebx: c0800000 ecx: 00000008 edx: 00000001
esi: c0800000 edi: c01be12e ebp: 00800000 esp: c022bfb8
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c022b000)
Stack: 001f4df8 00000000 00000000 c01f4dfc c01e7fd8 c0105000 0008e000 c01e87d2
00010f00 c0105041 00010f00 c01e7fd8 c0105000 0008e000 c0105472 00000000
c0105038 00098700
Call Trace: [<c0105000>] [<c0105041>] [<c0105000>] [<c0105472>] [<c0105038>]
Code: f3 a6 0f 97 c2 0f 92 c0 38 c2 75 45 c6 44 24 03 00 31 f6 8aQuoted 1 line
Quoted 1 line
EIP;
c01eb801<sbf_init+35/184> <=====
Trace; c0105000 <_stext+0/0>
Trace; c0105041 <init+9/13c>
Trace; c0105000 <_stext+0/0>
Trace; c0105472 <kernel_thread+26/30>
Trace; c0105038 <init+0/13c>
Code; c01eb801 <sbf_init+35/184>
00000000 <_EIP>:
Code; c01eb801 <sbf_init+35/184> <=====
0: f3 a6 repz cmpsb %es:(%edi),%ds:(%esi) <=====
Code; c01eb803 <sbf_init+37/184>
2: 0f 97 c2 seta %dl
Code; c01eb806 <sbf_init+3a/184>
5: 0f 92 c0 setb %al
Code; c01eb809 <sbf_init+3d/184>
8: 38 c2 cmp %al,%dl
Code; c01eb80b <sbf_init+3f/184>
a: 75 45 jne 51 <_EIP+0x51> c01eb852 <sbf_init+86/184>
Code; c01eb80d <sbf_init+41/184>
c: c6 44 24 03 00 movb $0x0,0x3(%esp,1)
Code; c01eb812 <sbf_init+46/184>
11: 31 f6 xor %esi,%esi
Code; c01eb814 <sbf_init+48/184>
13: 8a 00 mov (%eax),%al
<0>Kernel panic: Attemted to kill init!
Again, please CC replies to me.
/Carl-Johan Kjellander
Signature · 4 lines
begin 644 carljohan_at_kjellander_dot_com.gif Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`
Quoted 11 lines · Carl-Johan Kjellander
I have an old 386 which ran 2.4.3 just fine. Last night i tried to upgrade it but it didnt work at all.
I compiled a stock 2.4.7, and since I had seen some postings on that egcs-2.91.66 didn't compile 2.4.7 I switched to gcc-2.96-85. The only thing I added to the kernel was ISAPNP support.
The 2.4.7 kernel seems to boot fine, no error messages or nothing, but it won't start init. The last line is:
Quoted 8 lines
Freeing unused kernel memory: 52K freed
And then it just stops. The kernel is still resonsive but init won't start. Shift-PageUp still works. SysRQ shows that the EIP almost always is on the same spot in schedule. I tried init=/bin/sh but the boot stops at the same place every time.
Then I tried 2.4.7-ac9, same configuration, but that kernel panics.
Are you using math emulation? If so there was a bug fixed in the 2.4.8-pre kernels.
--
Brian Gerst
Quoted 2 lines
The system is a 386DX with an Award 3.15c BIOS. The distribution is smalllinux i think, but I've modified it a lot.
99% sure that your problem is binaries for 486 and up, had this problem installing RedHat 7.1 on a 486 with no CDROM drive - did the installation on a Pentium 3, then it would not boot, compiled a new kernel for 486, installed that on the P 3, now it booted on the 486 but would not run init. The binaries were for 686 and refused to run...
MaZe.
PS. There should be a choich when installing RedHat in advanced mode what processor you want to install for - often enough the computer you are installing on is not quite the same as the one it will be running on.
Quoted 9 lines · Maciej Zenczykowski
Quoted 3 lines
The system is a 386DX with an Award 3.15c BIOS. The distribution is smalllinux i think, but I've modified it a lot.
99% sure that your problem is binaries for 486 and up, had this problem installing RedHat 7.1 on a 486 with no CDROM drive - did the installation on a Pentium 3, then it would not boot, compiled a new kernel for 486, installed that on the P 3, now it booted on the 486 but would not run init. The binaries were for 686 and refused to run...
As I said in my post, the distribution is not Red Hat, but smalllinux, a very tiny floppydistribution that runs on a 386 with as low as 2MB RAM (Mine has 4MB).
I only compile new kernels on my Red Hat machine and yes I do compile it for the 386:
# Processor type and features
#CONFIG_M386=y
My 386 boots stock 2.4.3 fine but not 2.4.7.
Quoted 4 lines
PS. There should be a choich when installing RedHat in advanced mode what processor you want to install for - often enough the computer you are installing on is not quite the same as the one it will be running on.
You can do always try to install from the harddrive or via NFS, ftp or http from your other machines. Red Hat does a lot of smart things during the install and you have to make sure that for instance glibc is not the i686 rpm.
/Carl-Johan Kjellander
Signature · 4 lines
begin 644 carljohan_at_kjellander_dot_com.gif Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`
Quoted 8 lines · Randy.Dunlap
Quoted 2 lines · Carl-Johan Kjellander
Then I tried 2.4.7-ac9, same configuration, but that kernel panics.
Hi-
There's a patch for this in 2.4.7-ac11.
I just tried 2.4.7-ac11 and it worked beautifully! Thanks Alan.
/Carl-Johan Kjellander
Signature · 4 lines
begin 644 carljohan_at_kjellander_dot_com.gif Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`