i.MX6ULL平臺,在調(diào)試過程中出現(xiàn)sshd在開機(jī)自啟動的過程中卡頓現(xiàn)象(等待時間較久),觀察打印信息發(fā)現(xiàn),sshd一定等待直到以下代碼出現(xiàn)才能正常啟動。
random:nonblocking pool is initialized
在此過程中,nonblocking pool 的初始化要 2 分鐘。而啟動sshd并不需要等待nonblockingpool 初始化。
可以通過加速nonblockingpool的初始化速度從而解決sshd啟動過慢的問題,具體做法修改內(nèi)核代碼。
在kernel_code/drivers/char/random.c 約 900 行處的voidadd_interrupt_randomness(int irq, int irq_flags) 中有一處判斷。
if((fast_pool->count < 64) &&
!time_after(now, fast_pool->last + HZ))
return;
在此基礎(chǔ)上加上nonblocking_pool.initialized判斷。
if((fast_pool->count < 64) &&
!time_after(now, fast_pool->last + HZ)&&
nonblocking_pool.initialized)
return;
內(nèi)核加上以上修改后重新編譯內(nèi)核并燒寫,開機(jī)時sshd就可以正常啟動了。
另外,記得在/etc/ssh/sshd_config 下打開PermitRootLogin yes 釋放 root 權(quán)限登錄。