Dell Venue 8 Pro imaging/eMMC
-
@Uncle-Frank @Tom-Elliott the output of fdisk -l /dev/mmc* or lsblk with the same returns no such file or directory. This is even with the newest kernel.
Since we don’t even see the MMC device, I’ve been going through a few things over the weekend and I might have found something. The eMMC device is operating in ACPI mode per windows and also per Clonezilla. The HS200 device sits at ACPI\80860f41:0001 Comparing the dmesg outputs between clonezilla and fog, I don’t see the above address anywhere in the FOG dmesg output.
After a little poking around for Kernel issues with Baytrail, it turns out there is an extra kernel option needed to make Baytrail work in a sane manner: CONFIG_PINCTRL_BAYTRAIL=“y”
When I looked at the kernel options with your name in git, the above is not configured or even defined. Would you be able to set the above to “y” and recompile the 32-bit kernel once more please? If it is already there then something is a miss.
This seems to very specific to Baytrail which the Venue is using. I do not have any info on Cherrytrail. If this works then the patch sets applied earlier should also take out the rpmb issue so it should theoretically be the one kernel that just works!
References:
https://lists.debian.org/debian-kernel/2015/09/msg00023.html
https://bbs.archlinux.org/viewtopic.php?id=193180
https://embedded.communities.intel.com/thread/7507 -
Looking through the links I find they are talking about SD cards not eMMC drives. Maybe I got this wrong?
I wish I had one of those devices here to poke around with it myself to make it work.
-
@Uncle-Frank Not all of them but the SD and eMMC controllers are on die so being unable to address them correctly could explain why it doesn’t show. I would think that at least mmc0 would show in FOG but it doesn’t - there is no dev node for the micro sd card - the SD card shown as SDA1 is actually a USB SD card reader.
Thoughts?
-
I’m adding CONFIG_PINCTRL_BAYTRAIL and other devices to the kernel as we speak, will be about 5-10 minutes.
-
Kernels are updated if you would be willing to give them a shot.
-
@Tom-Elliott I gave it a shot and no dice. Something is amiss and I keep comparing the Clonezilla boot process and that of FOG. The only thing I do notice is that the boot process of FOG is a whole lot quicker than that of FOG and also the /proc/iomem from clonezilla is a lot longer.
I am wondering if we need to patch the initxz with a /lib/modules/modules.builtin to make this work as I don’t see modules loading and am not sure how to detect if a module compiled in is actually getting used or not.
-
@AsGF2MX We need to get @Tom-Elliott a Dell Venue 8 pro he’s had a rough day.
http://www.newegg.com/Product/Product.aspx?Item=N82E16834298232&Tpk=N82E16834298232
-
@AsGF2MX Could you please upload the full dmesg output of FOG and Clonezilla?
You should be able to safe the output on your NFS share. Bootup Clonezilla/FOG in debug mode and then:
mkdir /images mount -t nfs -o nolock x.x.x.x:/images /images dmesg > /images/dmesg_fog.txt umount /images
Where x.x.x.x is the IP address of your FOG server… Don’t copy/paste the files here (way too long) but attach or upload them (http://pastebin.com/).
-
@Uncle-Frank Had to disappear for a bit as I got buried for a bit but hopefully I’m not empty handed and I’ve got something.
@Tom-Elliott I took the make file from the SVN and went through a few compiles - started fat - with a lot of suspected options ticked and eventually one set worked.
A little bit of reading on eMMC interfaces and after going through a few posts in various places, I then took a different approach - add a few items and compile then recompile and retry. When I enabled a few extra options more towards the I2C and SPI interfaces, I ended up with one set that worked and my makefile is attached. There is an SPI and I2C bus involved but it took some digging to find the connection and unfortunately I didn’t bookmark the page before my browser crashed out.
I did try to pull the image and although there were a few errors (I don’t have the patch sets applied) but I also do think part of it may have been because the partitions are in fact bitlockered - still trying to figure that part out.
This post wouldn’t be complete without the pictures and a request:
I am betting if you recompile with the above make and the patches you applied, at least @d4rk3 should be up and running and myself, I am trying to figure out if I can sysprep the unit for the purpose of testing so that fog can read the partitions but I will need a little while for that.
-
@AsGF2MX BRAVO!
-
I will compare the differences between them and see what I can come up with. This may take a bit though, as you don’t know the differences between what I had and you added directly. Like specifically. So it will be a little bit of a wait, but I hope you can bare it.
-
@Tom-Elliott I can definitely hold on for a little bit. I am not sure if a diff is sufficient to identify what changed but it has to do with SPI and I2C options mostly. Not sure if there is some sort of cheat sheet with all kernel options and path in menuconfig but if not, it will have to be side by side compare. I took the base and added only the SPI and I2C options but I will need a bit to pick the options again and document what I had to change exactly.
@Wayne-Workman Fingers crossed we can see this through to completion and put Bay Trail on FOG’s compatibility list. Poking around the forums, I did see a request from @reub_rester (https://forums.fogproject.org/topic/5238/trying-to-image-a-dell-venue-pro-11-5130-x64) and his issue was the same as mine so this should help it get further along. The only thing is that in the device basic options, he will need to put in /dev/mmcblk0 and at least inventory will work.
@Uncle-Frank If need be, I will grab the dmesg output. Just let me know.
Also it seems I misread the error message on image pull. I stripped bitlocker from one of the units only to find it would throw the same error. So I think what is happening is a mount point issue.
I am not sure where the relevant code is or how complicated it would be to modify but it looks like what is happening is that the enumeration is not expecting two character suffixes.
Typical setup is: /dev/sdXY where x is usually a and Y could be anything from 1 to 5.
MMCBLK setup is /dev/mmcblkXpY and unlike the above, X is a number and so is Y.However it looks like partition resize input is not being fed Y although the script before it is showing the path correctly. Function input variable size too small?
I am poking around to figure where this comes out of but if anyone has any pointers, I can have a look.
-
@Tom-Elliott @Wayne-Workman @Uncle-Frank
Regarding the error that was being displayed earlier, I did manage to track it down and it requires a minor patch to partition-functions.sh in the ram disk. There is an extra character in addition to the number that needs to be stripped out. I just re-piped through another sed and tested and it works. The patch takes care of all functions and it has no impact on hdXY or sdXY devices unless you really have to clone sdp1 then you might have a problem.
I got as far as resizing partitions before what looks like an attempt to hit the rpmb part of the emmc caused the whole it error out. Got this far:
Still poking around but I think the missing patches is probably what is causing this. But I could be wrong. I am not sure what is triggering the updates to the rpmb.
-
@AsGF2MX I did work to get a “cheat sheet” but the kernel’s are ever changing so I gave up on that approach.
A
diff -u <originalfilename> <changedfilename>
is sufficient to see the changes. Just remember to use the TomElliott.config.32 and your Config (as I saw it is 32 as well?) so that we don’t get a change of all the differences between a 32 bit config and a 64 bit one. -
@Tom-Elliott Here you go. It is 32-bit as the 64 bit kernel doesn’t seem to working with the Venue, crashes out right after iPXE gets done. 32-bit has been good to me so far.
Point taken on the cheat sheet - hopefully this does the trick.
MMCMod-TomElliotConfig.32.patch
On another note on the init_32.xz - I tried to get rpmb to stay out by using udev rules but then I noticed you have got part of the rules there. Is there any way to stop the unit from rebooting and drop to a shell to see what last happened before it failed?
-
@AsGF2MX Wow, you are doing a great job here! Thanks a lot for digging into the details and sharing all this here! Awesome.
I tried comparing the kernel configs and I found CONFIG_X86_INTEL_LPSS to be set in your new config. According to this post this is exactly what might be missing to make eMMC working with Bay Trail: https://chromium-review.googlesource.com/221327
And too CONFIG_SPI (with some more sub options) is set in AsGF2MXs config. SPI also seams to be related to eMMC and I guess I will not hurt to be enabled (keep fingers crossed).
I am not sure about the I2C stuff. Both configs have I2C in gerneral enabled. Just some of the I2C settings are different. @AsGF2MX could you please try Toms original config (http://sourceforge.net/p/freeghost/code/HEAD/tree/trunk/kernel/TomElliott.config.32) and enable INTEL_LPSS + SPI and see if it is working??
Maybe I have missed that part of the discussion but why do you use resizable image type?? Maybe use “single disk - multiple partitions” or even “raw” first to get it working without poking around patching the scripts (this might be the second step).
-
@AsGF2MX said:
On another note on the init_32.xz - I tried to get rpmb to stay out by using udev rules but then I noticed you have got part of the rules there. Is there any way to stop the unit from rebooting and drop to a shell to see what last happened before it failed?
Do you have the patch applied to your kernel (https://dev-nell.com/rpmb-emmc-errors-under-linux.html). This should keep rpmb out of the way I think. You might be able to get along without rebooting by running a debug upload session.
-
@Uncle-Frank That was a good call on the single-disk multiple partitions.
Need a few moments to recompile the kernel will test it out as well.
By the way, my kernel is not patched - straight off the kernel site, along with Tom’s 32 bit config file, only magic was the ones you pointed out and possibly the little modification to the partition functions.
-
All you guys are amazing… keep up the great work!!
-
I’d just like to step and and thank you @AsGF2MX. You’re doing an AMAZING job helping us debug this.