Hi, all,

I set a variable to true just before calling the ramdisk_exeucte_cmd (which is /init in this case) in the kernel_init function,

And added printk in schedule() function so that it prints something it is called and when the previous variable is true.

And found the program stops after the schedule function is called. Like this.

 

Hello! i=115

Hello! i=116

Helloschedule!

schedule!

 

I checked the timer interrupt number was given correctly in the device tree (that’s why schedule was called by the timer..).

I stopped the experiment to do something else but will resume it next week by adding some prints.

If anyone has any idea about what might be wrong, please tell me.

Thanks for reading.

 

Chan Kim

From: Chan Kim <ckim@etri.re.kr>
Sent: Thursday, August 18, 2022 3:02 PM
To: kernelnewbies@kernelnewbies.org
Subject: RE: busybox shell doesn't come up or get stuck.. where should I look or how should I debug it?

 

I had mistakenly omitted -static option when making init program.(repeated Hello! Print).

So now the board output looks like this.

(...)

### point 106-1

Run /init as init process

### point 106-2, ret = 0

Hello! i=0

Hello! i=1

Hello! i=2

...

Hello! i=115

Hello! i=116

Hello! i=117

He            <=== hangs.

So the running the init program (whether its a script or a binary program) is ok.

The binary init program stops after printing Hello 117 times so there seems to be more basic problem in H/W or device tree.  And when the init script ran exec /bin/sh, the shell didnt start so running exec inside a script can have a problem.

If anyone has a suggestion or advice, I welcome it.

 

Thank you!

Chan Kim