Hello friends. I recently got my GAOMON PD1560 out of storage and decided to install the driver. There is a native Linux install, so I followed the instructions from the official GAOMON site, running the install script. It then asked if I wanted to restart, and I did. My system now opens grub (previously it skipped straight to my Fedora 41 Workstation), and attempting to open Fedora shows the initial starting up screen, then black. I did wait around 10 minutes to see if it would do anything, it did not. I have restarted a few times, and it only stays on the black screen. I am not sure how to get my computer to fully start. Please help.
Can you select a different Kernel on boot?
Perhaps post the instructions you followed, and link to any scripts you ran.
No, I cannot load any other boots. I did attempt booting into text-only mode and got this error:
I followed a PDF that came with the driver download, but there is a copy of it I found here
https://www.huion.com/index.php?m=content&c=index&a=manual&id=699
I opened the console in the respective folder, and ran sudo sh install.sh, then restarted the computer.
On that page I see
1.Instructions for installing the driver package file in tar.xz format.
Linux operating systems supported:
Ubuntu
And also a .deb file. Which is for Debian Linux.
I look like you have run a script for another Linux distrobution. (and is 31 MB! I wonder what it does!) You should also be very wary of installing apps with ‘sudo’ permissions.
Many graphics tablets are supported in the Linux Kernel, so you may not have needed to install anything at all.
On that black screen, can you select a login terminal with ctrl+alt+f2 ?
The new Fedora 42 Beta includes a recovery setup in it’s installer, which might be an easy way to rebuild your boot system.
I was able to log in with ctrl+alt+f2 (I have only been using Linux for a few months so this option was new to me, thank you)
I’m honestly unsure of what to do now.
(I went ahead and uninstalled using the given uninstall script, still loading to the black screen)
Can you get into your desktop with ?
startx
We will have to rebuild your boot or login screen, which I would have to look up or someone else will know it off the top of their head.
This is what shows up when running startx
If you have any recommendations for something I could look up for instructions I’d be more than willing.
Look up how to start Gnome under Wayland to get into your desktop.
It might be
gnome-shell --wayland
First try
sudo dnf distro-sync
and
sudo dnf update
to try to clean up and packages (eg libglib) that the installer broke.
I was able to get into my desktop! Thank you!
(however I am unable to open my settings and my drawing tablet no longer works as intended, but if it works it works.)
Lets get everything back to normal first and then after that, start a new thread to ask about installing the tablet.
Did you try the distro-sync and update from a command line terminal within Gnome?
I did, yes. I ran both the distro sync and the update.
Did it update or replace anything?
Next step if that does not work on a reboot is to rebuild your boot files.
It updated around 280 files. When rebooting it will stay on the startup screen but is able to start running gnome-shell —wayland but not startx.
(Startx shows a very similar error to before, just only one file)
Don’t worry about startx, that is for x windows system which is old, and you are now on Wayland.
You can look up how to repair your boot, or wait a day for other people who know more than me about boot systems to contribute.
Thank you so much for the help!
It probably means that you need to re-enable gdm service?
sudo systemctl start gdm.service
Unfortunately I still am being met with an endless black screen
Do you still get the same error about gdm?
Yes, I am getting the same error
You need to manually remove the config file added by install.sh: sudo rm /etc/gdm/custom.conf
.
It seems that the install.sh
script disables the Wayland session in GDM, but Fedora no longer has X11 session installed by default.
#! /bin/bash
# Author LiHui <lihui@huion.com>
# uninstall huion driver first
# DPKG_INFO_HUION_PREINST="huiontablet.preinst"
# CHECK_SYS_DPKG_INFO_HUION_PREINST=`ls -l /var/lib/dpkg/info | grep huiontablet.preinst`
# if [[ $CHECK_SYS_DPKG_INFO_HUION_PREINST =~ $DPKG_INFO_HUION_PREINST ]]
# then
# sudo apt remove -y huiontablet >/dev/null 2>&1
# else
# bash ./gaomon/gaomontablet/uninstallHuionDriver.sh
# fi
# cd to current path
dirname=`dirname $0`
tmp="${dirname#?}"
if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
echo $dirname
cd "$dirname"
# close driver if it running
AppName=gaomontablet
AppDir=gaomontablet
pid=`ps -e|grep $AppName`
AppCoreName=huionCore
AppUIName=gaomontablet
#Close running driver
#echo "close core"
sudo killall huionCore >/dev/null 2>&1
#echo "close tablet"
sudo killall gaomontablet >/dev/null 2>&1
#Copy rule
sysRuleDir="/lib/udev/rules.d"
sysRuleDir2="/lib/udev/rules.d"
appRuleDir=./gaomon/gaomontablet/res/rule
ruleName="20-gaomon.rules"
#echo "$appRuleDir/$ruleName"
#echo "$sysRuleDir/$ruleName"
if [ -f $appRuleDir/$ruleName ]; then
str=`cp $appRuleDir/$ruleName $sysRuleDir/$ruleName`
if [ "$str" != "" ]; then
echo "$str";
str=`cp $appRuleDir/$ruleName $sysRuleDir2/$ruleName`
if [ "$str" != "" ]; then
echo "Sstr";
fi
fi
else
echo "Cannot find driver's rules in package"
echo "Install failed !"
exit 1
fi
#install app
sysAppDir="/usr/lib"
appAppDir=./gaomon/$AppName
exeShell="huionCore.sh"
echo $sysAppDir
echo $appAppDir
if [ -d "$appAppDir" ]; then
str=`cp -rf $appAppDir $sysAppDir`
if [ "$str" != "" ]; then
echo "$str";
fi
else
echo "Cannot find driver's files in package"
echo "Install failed !"
exit 1
fi
#echo "shell path "$AppDir/$exeShell
if [ -f $sysAppDir/$AppDir/$exeShell ]; then
str=`chmod +0755 $sysAppDir/$AppName/$exeShell`
if [ "$str" != "" ]; then
echo "Cannot add permission to start script"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find start script"
echo "Install failed !"
exit 1
fi
#echo "exe path "$sysAppDir/$AppDir/$AppCoreName
if [ -f $sysAppDir/$AppDir/$AppCoreName ]; then
str=`chmod +0755 $sysAppDir/$AppDir/$AppCoreName`
if [ "$str" != "" ]; then
echo "Cannot add permission to app Core"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find app Core"
echo "Install failed !"
exit 1
fi
#echo "exe path "$sysAppDir/$AppDir/$AppUIName
if [ -f $sysAppDir/$AppDir/$AppUIName ]; then
str=`chmod +0755 $sysAppDir/$AppDir/$AppUIName`
if [ "$str" != "" ]; then
echo "Cannot add permission to app UI"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find app UI"
echo "Install failed !"
exit 1
fi
if [ -f /home/*/HuionCore.pid ]; then
str=`rm -f /home/*/HuionCore.pid`
if [ "$str" != "" ]; then
echo "$str";
fi
fi
if [ -f /home/*/DriverUI.pid ]; then
str=`rm -f /home/*/DriverUI.pid`
if [ "$str" != "" ]; then
echo "$str";
fi
fi
if [ -f /home/*/huion.log ]; then
str=`rm -f /home/*/huion.log`
if [ "$str" != "" ]; then
echo "$str";
fi
fi
#echo "exe path "$sysAppDir/$AppDir/HuionCore.pid
if [ -f $sysAppDir/$AppDir/.HuionCore.pid ]; then
str=`chmod 0777 $sysAppDir/$AppDir/.HuionCore.pid`
if [ "$str" != "" ]; then
echo "Cannot add permission to .HuionCore.pid"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find .HuionCore.pid"
echo "Install failed !"
exit 1
fi
if [ -f $sysAppDir/$AppDir/.DriverUI.pid ]; then
#str=`chmod 0766 $sysAppDir/$AppDir/.DriverUI.pid`
str=`chmod 0777 $sysAppDir/$AppDir/.DriverUI.pid`
if [ "$str" != "" ]; then
echo "Cannot add permission to .DriverUI.pid"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find .DriverUI.pid"
echo "Install failed !"
exit 1
fi
if [ -f $sysAppDir/$AppDir/log.conf ]; then
str=`chmod 777 $sysAppDir/$AppDir/log.conf`
if [ "$str" != "" ]; then
echo "Cannot add permission to log.conf"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find log.conf"
echo "Install failed !"
exit 1
fi
if [ -f $sysAppDir/$AppDir/.huion.log ]; then
str=`chmod 777 $sysAppDir/$AppDir/.huion.log`
if [ "$str" != "" ]; then
echo "Cannot add permission to .huion.log"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "can not find .huion.log"
echo "Install failed !"
exit 1
fi
# install shortcut
sysDesktopDir=/usr/share/applications
sysAppIconDir=/usr/share/icons
sysAutoStartDir=/etc/xdg/autostart
appDesktopDir=./gaomon/xdg/autostart/
appAppIconDir=./gaomon/icon/
appAutoStartDir=./gaomon/xdg/autostart/
appDesktopName=$AppName.desktop
appIconName=$AppName.png
if [ -f $appDesktopDir/$appDesktopName ]; then
# str=`cp $appDesktopDir/$appDesktopName $sysDesktopDir/$appDesktopName`
str=`cp -a $appDesktopDir/$appDesktopName $sysDesktopDir/$appDesktopName`
if [ "$str" != "" ]; then
echo "$str";
fi
else
echo "Cannot find driver's shortcut in package"
echo "Install failed !"
exit 1
fi
if [ -f $appAppIconDir/$appIconName ]; then
str=`cp $appAppIconDir/$appIconName $sysAppIconDir/$appIconName`
if [ "$str" != "" ]; then
echo "$str";
fi
#echo $sysAppIconDir/$appIconName
stricon=`chmod 0766 $sysAppIconDir/$appIconName`
if [ "$stricon" != "" ]; then
echo "Cannot add permission to app icon"
echo "$str";
echo "Install failed !"
exit 1
fi
else
echo "Cannot find driver's icon in package"
echo "Install failed !"
exit 1
fi
if [ -f $appAutoStartDir/$appDesktopName ]; then
# str=`cp $appAutoStartDir/$appDesktopName $sysAutoStartDir/$appDesktopName`
str=`cp -a $appAutoStartDir/$appDesktopName $sysAutoStartDir/$appDesktopName`
if [ "$str" != "" ]; then
echo "$str";
fi
else
echo "Cannot find set auto start"
echo "Install failed !"
exit 1
fi
#Copy config files
#echo $sysAppDir/$AppDir/res
strres=`chmod -R 766 $sysAppDir/$AppDir/res/*`
if [ "$strres" != "" ]; then
echo "Cannot add permission to res"
echo "$strres";
echo "Install failed !"
exit 1
fi
strres=`chmod 766 $sysAppDir/$AppDir/res/DevImg/*`
if [ "$strres" != "" ]; then
echo "Cannot add permission to DevImg"
echo "$strres";
echo "Install failed !"
exit 1
fi
strres=`sudo chmod -R 777 /usr/lib/gaomontablet/res`
if [ "$strres" != "" ]; then
echo "Cannot add permission to res"
echo "$strres";
echo "Install failed !"
exit 1
fi
strdevuinput=`chmod 0666 /dev/uinput`
if [ "$strdevuinput" != "" ]; then
echo "Cannot add permission 0666 to /dev/uinput"
echo "$strdevuinput";
echo "Install failed !"
exit 1
fi
CUSTOM_CONF_RES_PATH="./gaomon/gaomontablet/custom.conf"
MINT_STR="Mint" #"" Type=x11
DEEPIN_STR="Deepin" #"" Type=x11
MANJARO_STR="Manjaro" #"/etc/gdm/custom.conf"
CENTOS_STR="CentOS" #"/etc/gdm/custom.conf"
UBUNTU_STR="Ubuntu" #"/etc/gdm3/custom.conf"
FEDORA_STR="Fedora" #"/etc/gdm/custom.conf"
CUSTOM_CONF_FILE="/etc/gdm/custom.conf"
check_os_release_result=`ls -li /etc/os-release | grep '^NAME' /etc/os-release`
if [[ $check_os_release_result =~ $UBUNTU_STR ]]
then
CUSTOM_CONF_FILE="/etc/gdm3/custom.conf"
if [ ! -d "/etc/gdm3/" ];then
mkdir /etc/gdm3
fi
else
CUSTOM_CONF_FILE="/etc/gdm/custom.conf"
if [ ! -d "/etc/gdm/" ];then
mkdir /etc/gdm
fi
fi
# changeWaylandToX11
if [ ! -f "$CUSTOM_CONF_FILE" ];then
# custom.conf文件不存在,复制一个到系统目录下
cp -a $CUSTOM_CONF_RES_PATH $CUSTOM_CONF_FILE
else
WAYLAND_DISABLE_STR="#WaylandEnable=false"
WAYLAND_ENABLE_STR="WaylandEnable=false"
DEFAULTSESSION_IS_X11="DefaultSession=x11"
DISABLE_DEFAULTSESSION_IS_X11="#DefaultSession=x11"
SHARP_DAEMON_STR="#\\[daemon\\]"
DAEMON_STR="\\[daemon\\]"
if [[ `grep -c "$SHARP_DAEMON_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
sharp_daemon_line_num=`cat -n $CUSTOM_CONF_FILE |grep $SHARP_DAEMON_STR| awk '{print $1}'`
sed -i "${sharp_daemon_line_num}d" $CUSTOM_CONF_FILE
sed -i "${sharp_daemon_line_num}i ${DAEMON_STR}" $CUSTOM_CONF_FILE
fi
if [[ `grep -c "$WAYLAND_DISABLE_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
if [[ `grep -c "$DEFAULTSESSION_IS_X11" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
insert_wayland_enable_str="WaylandEnable=false"
line_wayland_enable_num=`cat -n $CUSTOM_CONF_FILE |grep WaylandEnable| awk '{print $1}'`
sed -i "${line_wayland_enable_num}d" $CUSTOM_CONF_FILE
sed -i "${line_wayland_enable_num}i ${insert_wayland_enable_str}" $CUSTOM_CONF_FILE
else
insert_str="WaylandEnable=false\nDefaultSession=x11"
if [[ `grep -c "$DAEMON_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
insert_str="WaylandEnable=false\nDefaultSession=x11"
else
insert_str="$DAEMON_STR\nWaylandEnable=false\nDefaultSession=x11"
fi
line_num=`cat -n $CUSTOM_CONF_FILE |grep WaylandEnable| awk '{print $1}'`
sed -i "${line_num}d" $CUSTOM_CONF_FILE
sed -i "${line_num}i ${insert_str}" $CUSTOM_CONF_FILE
fi
else
if [[ `grep -c "$WAYLAND_ENABLE_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
if [[ `grep -c "$DEFAULTSESSION_IS_X11" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
line_wayland_enable_default_session_num=`cat -n $CUSTOM_CONF_FILE |grep $DEFAULTSESSION_IS_X11| awk '{print $1}'`
sed -i "${line_wayland_enable_default_session_num}d" $CUSTOM_CONF_FILE
sed -i "${line_wayland_enable_default_session_num}i ${DEFAULTSESSION_IS_X11}" $CUSTOM_CONF_FILE
else
line_wayland_enable_default_session_num=`cat -n $CUSTOM_CONF_FILE |grep WaylandEnable| awk '{print $1}'`
line_wayland_enable_default_session_num=`expr $line_wayland_enable_default_session_num + 1`
sed -i "${line_wayland_enable_default_session_num}i ${DEFAULTSESSION_IS_X11}" $CUSTOM_CONF_FILE
fi
else
if [[ `grep -c "$DEFAULTSESSION_IS_X11" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
line_wayland_enable_default_session_num=`cat -n $CUSTOM_CONF_FILE |grep $DEFAULTSESSION_IS_X11| awk '{print $1}'`
sed -i "${line_wayland_enable_default_session_num}d" $CUSTOM_CONF_FILE
sed -i "${line_wayland_enable_default_session_num}i ${DEFAULTSESSION_IS_X11}" $CUSTOM_CONF_FILE
#line_wayland_enable_default_session_num=`expr $line_wayland_enable_default_session_num - 1`
sed -i "${line_wayland_enable_default_session_num}i ${WAYLAND_ENABLE_STR}" $CUSTOM_CONF_FILE
else
if [[ `grep -c "$DAEMON_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
insert_str="WaylandEnable=false\nDefaultSession=x11"
line_num=`cat -n $CUSTOM_CONF_FILE |grep $DAEMON_STR| awk '{print $1}'`
line_num=`expr $line_num + 1`
sed -i "${line_num}i ${insert_str}" $CUSTOM_CONF_FILE
else
insert_str="$DAEMON_STR\nWaylandEnable=false\nDefaultSession=x11"
sed -i "2i ${insert_str}" $CUSTOM_CONF_FILE
fi
fi
fi
fi
fi
if [[ `grep -c "$DAEMON_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
echo "$DAEMON_STR"
else
if [[ `grep -c "$WAYLAND_ENABLE_STR" "$CUSTOM_CONF_FILE"` -ne '0' ]];then
line_num=`cat -n $CUSTOM_CONF_FILE |grep $WAYLAND_ENABLE_STR| awk '{print $1}'`
#line_num=`expr $line_num - 1`
sed -i "${line_num}i ${DAEMON_STR}" $CUSTOM_CONF_FILE
fi
fi
XDOTOOL_SYS_BIN_FILE_PATH="/bin/xdotool"
XDOTOOL_RES_BIN_FILE_PATH="./gaomon/gaomontablet/xdotool/xdotool"
if [[ $check_os_release_result =~ $UBUNTU_STR ]]
then
if [ ! -f "$XDOTOOL_BIN_FILE" ];then
cp -a $XDOTOOL_RES_BIN_FILE_PATH $XDOTOOL_SYS_BIN_FILE_PATH
fi
fi
LIBXDO_SYS_LIB_FILE_PATH_UBUNTU="/lib/x86_64-linux-gnu/libxdo.so.3"
LIBXDO_SYS_LIB_FILE_PATH_CENTOS="/usr/lib64/libxdo.so.3"
LIBXDO_RES_LIB_FILE_PATH="./gaomon/gaomontablet/xdotool/libxdo.so.3"
if [[ $check_os_release_result =~ $UBUNTU_STR ]]
then
if [ ! -f "$LIBXDO_SYS_LIB_FILE_PATH_UBUNTU" ];then
cp -a $LIBXDO_RES_LIB_FILE_PATH $LIBXDO_SYS_LIB_FILE_PATH_UBUNTU
fi
fi
if [[ $check_os_release_result =~ $CENTOS_STR ]]
then
if [ ! -f "$LIBXDO_SYS_LIB_FILE_PATH_CENTOS" ];then
cp -a $LIBXDO_RES_LIB_FILE_PATH $LIBXDO_SYS_LIB_FILE_PATH_CENTOS
fi
fi
echo "安装完成!!"
echo "Installation Succeeded !"
function ask_yes_or_no() {
read -p "$1 ([y]es or [N]o): "
case $(echo $REPLY | tr '[A-Z]' '[a-z]') in
y|yes) echo "yes" ;;
*) echo "no" ;;
esac
}
echo "请确认是否现在立即重新启动系统 !"
echo "The installation script will reboot your system so that the driver will work well !"
if [[ "no" == $(ask_yes_or_no "Are you sure reboot your system right now?") ]]
then
echo "警告:驱动安装成功后,第一次使用驱动前, 请您重新启动系统,否则驱动无法正常工作!"
echo "Warning: You should reboot your system after installed this driver, or the driver will not be useful!"
else
echo "Rebooting ..."
reboot
fi
exit 0