Tablet with WINDOWS 10 and USB-LAN SMC 7500 adapter
-
@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
-
@george1421
Well this is really strange, ipxe thinks this is 64 bit architecture
-
@AndrewG78 excellent, we see that iPXE is thinking its a 64 bit system. That’s why things didn’t work out of the box.
I’m more curios now, what model tablet is this? What CPU does it report on the tin?
-
@george1421
Inari 10 2GB
-
@AndrewG78 Thank you for the feedback. The atom processor IS 64 bits.
What I’m wondering is what operating system is installed on these tablets (in regards to the architecture)? Is that Win10 32 bit or Win10 64 bit?
According to what you captured from your dnsmasq server
Aug 20 10:55:28 localhost dnsmasq-dhcp[9463]: 2705516733 vendor class: PXEClient:Arch:00006:UNDI:003001
The system is telling your dnsmasq server that its a [Arch:00006] == “EFI IA32” computer. So at least the firmware thinks its a 32 bit computer.
-
@george1421
Actually it is not WIN10 but WIN 8.1 ( my mistake in the topic)
It’s 32bit version. -
@AndrewG78 said in Tablet with WINDOWS 10 and USB-LAN SMC 7500 adapter:
It’s 32bit version.
Ah that explains a bit. These did some electronic trickery to make a 64 bit processor think its a 32 bit one.
So you have a workaround for this system now? Can we close this issue because there is not much FOG can do with scripting around this?
-
@george1421
Thanks for your support here. Yes we can close it.
Im just curious, what about refind in 32 and 64 bit ? Will this be supported in the next FOG release out of the box? -
@AndrewG78 I need to talk to the developers about this. I feel yes since fog supports both 32 bit and 64 bit environments, that refind 32 bit needs to be included.
BUT I’m afraid it will not help you since your system is a 64 bit imposter, in that the CPU is reporting its 64 bits, but the hardware manufacturer has locked it in 32 bit mode. I looked through smbios to see if there was a system board setting that would report the data width so we could see if FOG can classify the system better. But there wasn’t anything I could see in smbios that reported we could key off of. I did see using dmidecode that the Processor section says its 64-bit capable (on my VM), but I don’t know if that would work correctly on your non-standard hardware.