Ubuntu安装迅为iTop-4412开发环境后无法启动图形模式一例

现象:开发板为迅为iTop-4412精英版(Elite),核心板采用SCP封装,1 GB内存。开发计算机操作系统为Windows 8 Enterprise x64,在VMware Workstation Pro 15.5中运行64位Ubuntu 12.04.5 LTS系统。安装iTop-4412开发板编译环境后,重启虚拟机无法进入系统。启动流程阻塞在Ubuntu标志界面,无法进入登录界面,按CTRL+ALT+F1~CTRL+ALT+F7组合键无响应。

排查:在终端输入指令sudo gedit /etc/default/grub,将GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"改为GRUB_CMDLINE_LINUX_DEFAULT=""并保存退出,回终端执行sudo update-grub更新GRUB配置并重启,成功以文本模式启动并进入命令行模式,登录后键入startx执行,回显报错,无法进入图形模式。

多次恢复快照并排查,发现问题出现在执行安装脚本install-devel-packages.sh后,检查该脚本内容:

#!/bin/bash

####################################################################
# Warning:
# Ubuntu 12.04.2 introduced a new X stack that isn't compatible with
# with the old glx packages.

# ------------------------------------------------------------------
# 12.04                --> 12.04.2 (*-lts-quantal)
# ------------------------------------------------------------------
# libgl1-mesa-glx:i386 --> libgl1-mesa-glx-lts-quantal:i386
# libgl1-mesa-dev      --> libgl1-mesa-dev-lts-quantal
# ------------------------------------------------------------------
#
# DON'T install libgl1-mesa-glx:i386 on 12.04.2, else it will *BREAK*
# your system.
####################################################################

# Execute an action
FA_DoExec() {
    echo "==> Executing: '${@}'"
    eval $@ || exit $?
}

# Ubuntu 12.04.2 LTS
FA_DoExec apt-get install \
    git gnupg flex bison gperf build-essential \
    zip curl libc6-dev libncurses5-dev x11proto-core-dev \
    libx11-dev:i386 libreadline6-dev:i386 \
    libgl1-mesa-glx-lts-quantal:i386 libgl1-mesa-dev-lts-quantal \
    g++-multilib mingw32 tofrodos lib32ncurses5-dev \
    python-markdown libxml2-utils xsltproc zlib1g-dev:i386

if [ ! -h /usr/lib/i386-linux-gnu/libGL.so ]; then
    FA_DoExec ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 \
        /usr/lib/i386-linux-gnu/libGL.so
fi

# Development support
FA_DoExec apt-get install \
    vim dos2unix minicom gawk

推测可能与libgl1-mesa-glx-lts-quantal:i386libgl1-mesa-dev-lts-quantal软件包与Ubuntu 12.04.5 LTS的冲突有关。尝试执行该脚本,出现提示显示将卸载xorg。

故障处理:恢复快照到执行该脚本之前并重新执行脚本,执行脚本完毕后,继续在终端执行:

sudo apt-get install xorg 
sudo apt-get install libgl1-mesa-glx:i386
sudo apt-get install libgl1-mesa-dev

恢复xorg以及旧版libgl1-mesa库,重启系统,问题解决。

修改过的install-devel-packages.sh脚本:

#!/bin/bash

####################################################################
# Warning:
# Ubuntu 12.04.2 introduced a new X stack that isn't compatible with
# with the old glx packages.

# ------------------------------------------------------------------
# 12.04                --> 12.04.2 (*-lts-quantal)
# ------------------------------------------------------------------
# libgl1-mesa-glx:i386 --> libgl1-mesa-glx-lts-quantal:i386
# libgl1-mesa-dev      --> libgl1-mesa-dev-lts-quantal
# ------------------------------------------------------------------
#
# DON'T install libgl1-mesa-glx:i386 on 12.04.2, else it will *BREAK*
# your system.
#
# In Ubuntu 12.04.5 LTS, please use libgl1-mesa-glx:i386 and libgl1-
# mesa-dev.
####################################################################

# Execute an action
FA_DoExec() {
    echo "==> Executing: '${@}'"
    eval $@ || exit $?
}

# Ubuntu 12.04.5 LTS
FA_DoExec apt-get install \
    git gnupg flex bison gperf build-essential \
    zip curl libc6-dev libncurses5-dev x11proto-core-dev \
    libx11-dev:i386 libreadline6-dev:i386 \
    libgl1-mesa-glx:i386 libgl1-mesa-dev \
    g++-multilib mingw32 tofrodos lib32ncurses5-dev \
    python-markdown libxml2-utils xsltproc zlib1g-dev:i386

if [ ! -h /usr/lib/i386-linux-gnu/libGL.so ]; then
    FA_DoExec ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 \
        /usr/lib/i386-linux-gnu/libGL.so
fi

# Development support
FA_DoExec apt-get install \
    vim dos2unix minicom gawk

参考资料:

https://blog.csdn.net/weixin_41683971/article/details/107745609

https://blog.csdn.net/ylf_18721347942/article/details/17378011

it
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License