Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录

在调试zynq开发板时,linux启动后总是需要手动输入root以登录系统,如下图所示:

Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录_第1张图片

这对于自动执行应用程序来说很不方便。现在可以通过修改ramdisk的相关内容实现root账号自动登录。

 

1、创建可执行文件

首先需要创建可执行文件,用对应板子的CROSS COMPILE编译为可执行文件,当前环境下选择的是arm-linux-gnueabihf-,将auto_login.c编译为auto_login.

 Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录_第2张图片

 

2、修改ramdisk

将原来的uramdisk.image.gz进行解压,得到文件系统。可以采用下面命令:

dd if=./uramdisk.image.gz bs=64 skip=1of=ramdisk.gz
gunzip -c ramdisk.gz | sudo sh -c 'cdroot_tmp/ && cpio -i'


 

这样就可以修改root_tmp,将auto_login放入/usr/sbin

Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录_第3张图片

 

3、查看/etc/inittab文件

查看/etc/inittab文件中的内容,主要是下面这一句,判断执行了什么程序

PS0:12345:respawn:/bin/start_getty115200 ttyPS0

 

# /sbin/getty invocations for therunlevels.

#

# The "id" field MUST be the sameas the last

# characters of the device (after"tty").

#

# Format:

:::

#

1:12345:respawn:/sbin/getty 38400 tty1

通过分析知道登录时执行的是/bin/start_getty

4、修改/bin/start_getty

在start_getty内增加调用/usr/sbin/auto_login命令

#!/bin/sh

if [ -c /dev/$2 ]

then

         /sbin/getty -L $1 $2 -n -l /usr/sbin/autologin

Fi

5、重新生成ramdisk

genext2fs -b 16384 -d root_tmp ramdisk
gzip ramdisk
mv ramdisk.gz uramdisk.image
mkimage -n 'uboot ext2 ramdisk' -A arm -Olinux -T ramdisk  -d uramdisk.imageuramdisk.image.gz


此时启动后就变成自动以root账号登录了

Zynq-Linux移植学习笔记之21-Linux启动时自动以root账号登录_第4张图片

 

你可能感兴趣的:(Felven在职场)