Ubuntu启动停止在checking battery state...

本文描述了一次Ubuntu系统从图形界面切换到字符界面启动时遇到的问题,原因是误操作导致grub配置中忽略了正确的启动模式。通过修复grub配置文件中的错误,并重新更新启动配置,最终成功实现了Ubuntu的字符界面启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Ubuntu在“checking battery state...”处停止了,出现这种现象的原因可能有很多种。笔者遇到的是其中的一种。

情景描述:

  笔者此前将Ubuntu的图形启动方式修改为了字符界面启动,可见文章如何让ubuntu启动时打印字符信息----字符启动。之后,Ubuntu的确可以以字符方式启动,但是却不能完整的启动,也就是不能运行到登录界面处。

 

原因查找:

    经查找发现在我实现字符启动的操作过程中,出现了一个不起眼的失误。记录如下:

  /etc/default/grub文件的内容如下:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

#GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX=""

  可以看到我在修改grub文件的时候,不仅将"quiet splash"注释掉,而且把用来替换它的"text"也注释掉了,以至于Ubuntu不知道以何种方式展开启动界面。

 

解决过程:

  纠正/etc/default/grub文件的内容如下:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

GRUB_CMDLINE_LINUX_DEFAULT="text"
GRUB_CMDLINE_LINUX=""

  重新更新/boot/grub/grub.cfg

#update-grub

  然后重启。

#reboot

 

参考资料:如何让ubuntu启动时打印字符信息----字符启动

 

<think>好的,用户现在遇到了configure脚本报错,提示找不到gawk,需要解决在aarch64-linux-gnu环境中安装或指定gawk的问题。我需要根据用户提供的引用和之前的对话来帮助解决这个问题。 首先,用户之前的问题是关于内核镜像未找到的错误,现在的问题是关于gawk缺失的配置错误。两者可能都是在交叉编译环境下出现的问题。用户可能正在尝试在x86主机上为ARM64目标平台编译软件,因此需要处理交叉编译的依赖问题。 根据用户提供的引用,引用[1]提到在配置时指定--build参数来解决平台检测问题。引用[3]展示了在aarch64环境中安装库的步骤,可能需要类似的交叉编译方法。引用[4]涉及到在交叉编译环境中安装Python包的问题,可能需要处理依赖和SSL证书的问题,但这里的问题是关于gawk的,所以可能更直接。 首先,我需要确认gawk是什么。gawk是GNU Awk,一个文本处理工具,很多configure脚本依赖它来生成Makefile。如果系统没有安装gawk,configure会失败。在交叉编译环境中,可能需要安装适用于目标架构的gawk,或者在主机上安装并正确指定路径。 用户的环境是aarch64-linux-gnu,这可能意味着他们正在使用交叉编译工具链在x86主机上编译ARM64的软件。在这种情况下,用户需要确保gawk在主机上可用,或者在配置时指定正确的路径。如果主机上没有安装gawk,最简单的解决方法是安装它。例如,在Ubuntu上,可以使用sudo apt-get install gawk来安装。 但是,用户可能是在交叉编译环境中,这时候可能需要安装针对目标架构的gawk。但通常,像awk这样的工具是在主机上运行的,而不是在目标平台上,因此可能需要安装主机版本的gawk。不过,用户可能混淆了主机和目标的架构,导致configure找不到gawk。此时,用户可能需要检查他们的PATH环境变量,确保包含gawk的路径,或者在配置时指定AWK变量,例如:./configure AWK=/usr/bin/gawk。 根据用户提供的引用,引用[1]中使用了--build=arm-linux来指定构建平台,这可能类似。用户可能需要指定正确的构建参数,或者在配置时设置AWK的路径。此外,用户可能需要安装适用于主机架构的gawk,而不是目标架构,因为configure脚本是在主机上运行的,需要主机上的工具。 另外,用户之前的回答中提到过交叉编译工具链的安装,例如sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu,可能还需要安装主机上的gawk。 可能的解决步骤包括: 1. 检查主机是否安装了gawk,如果没有,安装它。 2. 如果已经安装但路径不在configure的搜索路径中,可以通过设置环境变量或在配置时指定AWK的路径。 3. 如果用户尝试交叉编译gawk,可能需要构建并安装到sysroot中,但这可能比较复杂。 4. 使用包管理器安装gawk,例如apt-get install gawk。 在用户提供的引用中,引用[3]展示了在aarch64环境中安装libva的步骤,可能需要类似的交叉编译方法,但gawk是主机工具,所以可能不需要交叉编译。因此,正确的做法可能是在主机上安装gawk,并确保configure能找到它。 总结:用户的问题可能是由于主机缺少gawk导致的,解决方法是安装主机上的gawk,或者在配置时指定其路径。如果用户的环境是交叉编译,可能需要确保主机工具链正确安装。</think>### 解决configure脚本报错“checking for gawk... no”的完整指南 在交叉编译环境中,`gawk`(GNU Awk)是许多构建系统的基础依赖工具。以下是根据不同场景的解决方法: --- #### **1. 直接安装gawk(推荐)** 若**宿主机**(即执行编译的x86/x64机器)未安装`gawk`,直接通过包管理器安装: ```bash sudo apt-get update && sudo apt-get install gawk # Debian/Ubuntu sudo yum install gawk # CentOS/RHEL ``` --- #### **2. 指定已安装的gawk路径** 若已安装但路径未被`configure`检测到,通过环境变量显式指定: ```bash # 查找gawk路径(通常位于/usr/bin/gawk) which gawk # 配置时声明AWK变量 ./configure AWK=/usr/bin/gawk [其他参数] ``` --- #### **3. 交叉编译环境中使用host-gawk** 当为ARM64目标平台编译时,需确保**宿主机**安装了本地`gawk`工具,而非ARM64版本。**configure脚本依赖宿主机的工具链**,因此无需交叉编译`gawk`。 --- #### **4. 处理特殊环境依赖** 若宿主机受限无法直接安装(如容器环境),可手动编译并指定路径: ```bash # 下载源码 wget https://ftp.gnu.org/gnu/gawk/gawk-5.2.2.tar.gz tar -xvf gawk-5.2.2.tar.gz cd gawk-5.2.2 # 编译为宿主机可执行文件 ./configure --prefix=/opt/host-tools make && sudo make install # 配置时引用 ./configure AWK=/opt/host-tools/bin/gawk [其他参数] ``` --- #### **5. 验证配置结果** 检查`config.log`文件确认工具链状态: ```bash grep -A5 "checking for gawk" config.log ``` --- ### 典型错误场景分析 - **交叉编译工具链污染**:若错误地安装了`aarch64-linux-gnu-gawk`,可能导致路径混淆。需卸载无关包: ```bash sudo apt remove gawk-aarch64-linux-gnu # 示例名称,具体包名可能不同 ``` - **PATH环境变量异常**:确保`/usr/bin`在PATH中优先级高于其他路径: ```bash export PATH="/usr/bin:$PATH" ``` --- ### 引用关联 - 类似参数指定方法可参考Dante配置中的`--build=arm-linux`[^1] - 依赖路径问题与Cygwin编译中的目录缺失错误逻辑相似[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值