0

I have built a custom kernel using the mainline source, latest version and this config.

I've created an image of Bullseye as suggester here

And then I ran it in QEMU (setting the relative environment variables):

qemu-system-x86_64  -m 2G   -smp 2  -kernel $KERNEL/arch/x86/boot/bzImage   -append "console=ttyS0 root=/dev/sda earlyprintk=serial net.ifnames=0 noxsave"  -drive file=$IMAGE/bullseye.img,format=raw  -net user,host=10.0.2.10,hostfwd=tcp:127.0.0.1:10021-:22    -net nic,model=e1000    -enable-kvm     -nographic  -pidfile vm.pid     -cpu host   2>&1 | tee vm.log

This is the kernel log I got.

The problem is that there is no login prompt in the console and the console seems to be frozen. So, somehow the boot process gets stuck.

I tried attaching GDB by adding -s -S options to QEMU and do gdb vmlinux from the Linux Kernel folder and then I found it got stuck somewhere for some reason (note, I gave the Ctrl-C (SIGINT) once it was stuck at the end of the log where no further output would appear even after minutes).

(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0x000000000000fff0 in cpu_tss_rw ()
(gdb) c
Continuing.
^C
Thread 1 received signal SIGINT, Interrupt.
0xffffffff8d7640ce in ?? ()
(gdb) x/20i $rip-20
   0xffffffff8d7640ba:  nop
   0xffffffff8d7640bb:  nop
   0xffffffff8d7640bc:  nop
   0xffffffff8d7640bd:  nop
   0xffffffff8d7640be:  nop
   0xffffffff8d7640bf:  nop
   0xffffffff8d7640c0:  endbr64 
   0xffffffff8d7640c4:  xchg   %ax,%ax
   0xffffffff8d7640c6:  verw   0x24c1e13(%rip)        # 0xffffffff8fc25ee0
   0xffffffff8d7640cd:  hlt    
=> 0xffffffff8d7640ce:  ret    
   0xffffffff8d7640cf:  int3   
   0xffffffff8d7640d0:  int3   
   0xffffffff8d7640d1:  int3   
   0xffffffff8d7640d2:  int3   
   0xffffffff8d7640d3:  data16 cs nopw 0x0(%rax,%rax,1)
   0xffffffff8d7640de:  data16 cs nopw 0x0(%rax,%rax,1)
   0xffffffff8d7640e9:  data16 cs nopw 0x0(%rax,%rax,1)
   0xffffffff8d7640f4:  data16 cs nopw 0x0(%rax,%rax,1)
   0xffffffff8d7640ff:  nop
(gdb) 

The hltinstruction before ret suggests the machine halted. Anyone knows what is going wrong here and how to fix it?

1 Answer 1

0

Press 'esc' while fairly early in the boot stage (when your distro's bootscreen shows). The one at the bottom of your screen is the module you want to disable.

To disable it, boot into a LiveCD or attach the hard drive to another computer.

In the root directory of the drive, run

sudo echo blacklist <kernel module> > /etc/modprobe.d/blacklist.conf

That should sole the issue.

1
  • No it's the first boot.. Commented Sep 5, 2023 at 12:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .