Tablet with WINDOWS 10 and USB-LAN SMC 7500 adapter
-
@AndrewG78 Just to be clear, you only change the dnsmasq configuration and you get this error?
It almost looks like for the exit mode for bios systems, you have REFIND configured and not SANBOOT. But again without know what was changed, its only a weak guess.
-
@george1421
Editing /etc/dnsmasq.d/ltsp.conf was my only change. -
@AndrewG78 OK so lets be clear here then.
The fix to dnsmasq only allowed this system to boot, by delivering the proper boot file to the target computer.
This issue is different. The dnsmasq configuration sent the right ipxe boot kernel to the target computer. After ipxe boots, then dnsmasq is not used.
So now you need to look at the fog configuration for the default exit modes for both bios and uefi system. According to the picture it appears to be sending refind.conf and refind.efi to the target computer, but the target computer could not boot them. If the target computer is bios mode, I can understand why it can’t boot. If the target computer is EFI-32 then… I might suspect that refind.efi is a 64 bit kernel…
-
@AndrewG78 OK I just checked and it appears that FOG does not distinguish between 64 bit and 32 bit systems in regards to which boot kernel it sends for refind. I checked with refind and there are two different boot kernels for refind, that may explain why we have that boot error.
@Developers for FOG 1.5.5 would it be possible to add a new exit mode like rEFInd-32 for those that have 32 bit uefi systems, plus include refind_ia32.efi into the fog/service/ipxe directory?
-
@george1421
Thx for this finding.
What is strange to me is my old BIOS behavior. I did not change BIOS exit mode - I have GRUB_FIRST_HDD here but I got this error on my old BIOS machines
What should I do in dnsmasq config to setup just this tablet, and remove BIOS machines temporarily? -
@AndrewG78 Ok lets backtrack a bit. I had you change a setting for consistency sake, but lets remove all but what we need. Go back and edit your ltsp.conf file and comment out out the pxe-service settings like this, leaving just the EFI 32 bit entry.
# pxe-service=X86PC, "Boot to FOG", undionly # pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe # pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe pxe-service=IA32_EFI, "Boot to FOG UEFI IA32_EFI", i386-efi/ipxe.efi
-
@AndrewG78 The one thing I didn’t ask you was what version of dnsmasq are you using? You can find out by opening a command shell on your dnsmasq server and key in
dnsmasq -v
to get the version number. Hopefully you are using 2.76 or later. -
@george1421
yes it is 2.76 -
@george1421
OK. Now, old BIOS machines boot to FOG properly. -
@AndrewG78 OK so now the only thing we need to work on is getting the EFI-32 systems to boot through to the hard drive?
of the other option is to not have the target computers booting through pxe to the hard drive. Once imaged, have them boot locally then there is no immediate need for the 32 bit refind option.
-
@george1421
Well, this is fully autonomous system, so it must boot through the pxe all the time.
Regarding EFI-32:
1 system is not booting from hardrive
2 fog is not loading when selected from the menu (e.g. host registration) -
@AndrewG78 Well in regards to #1, this is a current limitation in fog. I’m going to look tonight to see how hard it is to add another exit mode to fog. In the end this may be up to the developers to figure out if its not a quick fix for someone at my pay grade.
As for #2, what do you see when “not loading” happens? Is there a specific error message? We’ll need a bit more to go on than, “its not working”.
-
@george1421
Thx
#2
I actually described this specific case in this post
https://forums.fogproject.org/topic/12373/tablet-with-windows-10-and-usb-lan-smc-7500-adapter/7
This is the post with 4 screen shots. -
HI
Would this be enough to take refind_ia32.efi from rEFind binary package from http://www.rodsbooks.com/refind/getting.html
and copy to /var/www/html/fog/service/ipxe
and replace refind.efi
? -
@AndrewG78 I’ve been waiting on feedback from the developers on the proposed update to FOG.
What I would recommend you do/test if you are willing.
-
Take that refind_ia32.efi and save it to /var/www/html/fog/service/ipxe as refind32.efi (to keep naming consistent with bzImage).
-
Then if you are willing, edit /var/www/html/fog/lib/fog/bootmenu.class.php
-
Go to line 131 to should have some code that looks like this:
$refind = sprintf( 'imgfetch ${boot-url}/service/ipxe/refind.conf%s' . 'chain -ar ${boot-url}/service/ipxe/refind.efi', "\n" );
- Replace that code with
$refind = sprintf( 'cpuid --ext 29 && set rboot-kernel refind.efi || set rboot-kernel refind32.efi%s' . 'imgfetch ${boot-url}/service/ipxe/refind.conf%s' . 'chain -ar ${boot-url}/service/ipxe/${rboot-kernel}', "\n","\n" );
- Save and exit your editor.
- Now test and see if the efi exit mode is able to load the 32 bit efi version of refind on exit.
If you get an error, I would expect one like in the 3rd picture you posted about error 0x7f048283.
I would test this myself but I don’t have a 32 bit uefi system. Also make sure you backup that php file before you edit it, just incase 1) I’m wrong 2) Your edit is bad and something breaks.
-
-
@george1421
Thx. In the meantime I replaced original refind.efi with refind_ia32.efi but it did not help.
There is different error, but I can provide details on Monday the earliest. -
@george1421
So here is the story:- There must be something wrong with this php code as I got
So, I just changed original
'chain -ar ${boot-url}/service/ipxe/refind.efi',
to
'chain -ar ${boot-url}/service/ipxe/refind_ia32.efi',
and got this
I found scanfor option in refind.conf and disabled it.
After that I can boot to Windows from the FOG menu- “Boot from hard disk”!
So there is some progress.
But
when I choose Quick registration on white background FOG menu, there is another B&W menu displayed.
I must use up/down arrows to select something from the menu, however this is blind selection as current row is not highlighted.When I enter Registration(down arrow x2)
and that second FOG menu without highlighted row is loaded immediately(loop).
When I enter Run Memtest(down arrow x1)
And the system is rebooted.Why do I have 2 menus?
- There must be something wrong with this php code as I got
-
@AndrewG78 said in Tablet with WINDOWS 10 and USB-LAN SMC 7500 adapter:
I found scanfor option in refind.conf and disabled it.
After that I can boot to Windows from the FOG menu- “Boot from hard disk”!You have multiple issue here, so I’m not sure where to start. I have no idea on the boot.php error unless you had a type-o in the code.
The second screen, is a positive note with refind initializing. You have the 32 bit refind running. That is great. The scanfor line, should not be commented out, just remove the reference to bios scan and that error will away. That is the reference to the CSM.
The two screens, the back one is because of an ipxe error. What I’m confused about is why it is picking the init.xz file, since that is a 32 bit system. It should pick init_32.xz. The issue is that the init_XX.xz has to match the architecture of the boot kernel (bzImageXX). If they are mismatched or the boot kernel format does not match the hardware arch, then you will get that error.
You could manually register this host, and then go into the host registration and manually force bzImage32 for the host kernel and init_32.xz for the host initrd file. (this is just a test at the moment to see if it can boot).
-
@george1421
Thank you so much.
Looks like we got it.
When I set bzImage32 for the host kernel and init_32.xz and when I created a task to capture the disk, PartClone has been loaded and it’s taking the image right now.
What is still strange, there is no more any FOG menu list loaded from the PXE, but I can live with manual host registration.
Next step is to test deploy function. -
@AndrewG78 What I’m speculating is that iPXE is miss-identifying the target computer. We have seen this on some tablets where the processor is a 64 bit system, but its locked in 32 bit mode by the manufacturer.
While you have a workaround. I’m interested in the code patch I provided for refind… but if ipxe is miss-identifying the target system, it will still call the wrong refind.
I’m wondering if you could try something for me on your hardware. Reset things so you get the ipxe error with the “chainloading failed, hit ‘s’ for the ipxe shell”.
At this message press s to get the ipxe shell. Then key in
show platform
cpuid --ext 29
if the short method doesn’t return anything then you can use this onecpuid --ext 29 && echo x64 || echo x32