OpenNetworkLinux
OpenNetworkLinux copied to clipboard
error occurred during startup on Wedge 100BF-32x
I installed ONL-master-ONL-OS-DEB9-2018-06-19.2333-16f97c4-AMD64-SWI-INSTALLER on Wedge 100BF-32x by ONIE, I can enter the ONL system after first installation restart, but can't enter it after restart again, An error occurred during startup:
Switching rootfsumount: can't umount /sys/firmware/efi/efivars: Invalid argument
then freezing on:
[ 162.913457] gpio_ich: GPIO from 428 to 503 on gpio_ich
sometimes I can enter system after reset wedge_power again and again, but still get another error:
/lib/x86_64-linux-gnu/libonlp.so.1: undefined symbol: onlp_platformi_manage_fans
I checked that the symbol is actually defined:
root@localhost:~# objdump -x /lib/x86_64-linux-gnu/libonlp.so.1 | grep onlp_platformi_manage_fans
0000000000000000 F *UND* 0000000000000000 onlp_platformi_manage_fans
I created the issue on https://github.com/stratum/stratum/issues/26.
Could anyone can help me to solve this problem ? please.
I seems that onlp_platformi_manage_fans symbol is undefined (UND).
You should be able to find this symbol in libonlp-platform.so or libonlp-platform-defaults.so
i encountered a similar problem, i compile my own ONL SWI ,and it can boots successfully but sometimes it stucks . do you have any debug methods to have it show where the problem is ?
@IMxbo did you solve this problem? i tried systemd instead of sysvinit , and it still freeze at "Switching rootfsumount: can't umount /sys/firmware/efi/efivars: Invalid argument ", i think it is somewhere wrong with the switchroot proces , still can not figure it out.
@dracuka I see exactly the same problem with ONL Stretch 3127f40. After approx. 5 times reboot it starts once. The other times it fails with "Switching rootfsumount: can't umount /sys/firmware/efi/efivars: Invalid argument"
Did you find a solution ?
yes, i comment out the umount evivars code in switchroot script,and problem is solved.
197 diff --git a/packages/base/all/initrds/loader-initrd-files/src/bin/switchroot b/packages/base/all/initrds/loader-initrd-files/src/bin/swi tchroot 198 index 97709a4a..6575d788 100644 199 --- a/packages/base/all/initrds/loader-initrd-files/src/bin/switchroot 200 +++ b/packages/base/all/initrds/loader-initrd-files/src/bin/switchroot 201 @@ -34,6 +34,8 @@ 202 ############################################################ 203 204 # Unmount all filesystems except / and anything under /newroot 205 +echo "debug on" 206 +set -x 207 mtab=$(mktemp /tmp/tmp.XXXXXX) 208 cp /proc/mounts ${mtab} 209 while read dev mount x; do 210 @@ -49,14 +51,14 @@ done <${mtab} 211 rm -f ${mtab} 212 213 mount --move /proc /newroot/proc 214 -if [ -d /sys/firmware/efi/efivars ]; then 215 - umount /sys/firmware/efi/efivars || : 216 -fi 217 +#if [ -d /sys/firmware/efi/efivars ]; then 218 +# umount /sys/firmware/efi/efivars || : 219 +#fi
Unfortunately this does not fix my problem. It still hangs immediately after switching root fs:
DEBUG:swimount:+ mount -o rw,remount /mnt/onl/data [ 28.189425] EXT4-fs (sda6): re-mounted. Opts: data=ordered Switching rootfsmodprobe: chdir(4.14.151-OpenNet
For me it looks like a race condition ?
When I comment out the following in packages/base/all/initrds/loader-initrd-files/src/bin/switchroot the system boots properly:
#if [ -d /sys/firmware/efi/efivars ]; then #umount /sys/firmware/efi/efivars || : #fi ... #if [ -d /newroot/sys/firmware/efi/efivars ]; then #modprobe efivarfs || : #mount -t efivarfs efivarfs /newroot/sys/firmware/efi/efivars #fi