hello all,
I set up and configured the MFGTool and can use it to download and boot the images, but only up to a point.
The last few lines of the attached console output are shown below. It's just stuck there.
------------------------- console output -----------------------
Starting UTP
ln: /etc/mtab: File exists
disable turn off display
Starting the hotplug events dispatcher udevd
Synthesizing initial hotplug events
[ 6.753992] udevd (2028): /proc/2028/oom_adj is deprecated, please use /proc/2028/oom_score_adj instead.
uuc 0.4 [built Aug 16 2013 01:24:08]
UTP: Waiting for device to appear
-----------------------------------------------------------------------
My process steps:
1) cp imx6s_updater_defconfig wandboard_defconfig
2) bitbake -c menuconfig linux-wandboard
Device Drivers -> USB support -> USB announce new devicesDevice
3) cp .config wandboard_defconfig
4) verify settings in wandboard_defconfig as per MFGTool development guide
5) bitbake linux-wandboard -c compile -f
6) bitbake linux-wandboard -c build -f
I then copy the files over to Win7 world and run MftTool.
It boots and stops at the line indicated. I can insert/remove my usb mouse and diagnostic messages appear so I know its still running & waiting.
I am using my uboot and kernel but Freescale supplied:
initramfs.cpio.gz.uboot
Will this work or do I need to create my own initramfs file?
How can I do this?
I've unpacked initramfs.cpio.gz.uboot and see the contents, but after packing it back up, it doesn't boot at all.
Recommendations on how to proceed would be greatly appreciated.
George
Original Attachment has been moved to: wandboard_defconfig.zip
Original Attachment has been moved to: UTP-boot-failure.txt.zip
Hi,
I'm trying to use mfgtool on Linux. This thread already helped me and I hope you can help me with my current problem.
The initramfs in IMX6_L4.1.15_2.0.0_MFG-TOOL has its init file empty (zero), so the kernel fails to run the init:
[ 0.000000] Failed to execute /init (error -13)
In order to bypass this problem, I'm using my own initramfs, in which init works fine, and I have:
1. g_mass_storge device working
2. /dev/utp
I built and added uuc to my initramfs, and when I try to run it (after I have g_mass_storage running), I get this:
root@m:/$ uuc
uuc 0.5 [built Jan 15 2018 18:54:36]
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
cpu_id is 0
I noticed that lsusb on my desktop changed from:
Bus 001 Device 030: ID 15a2:0076 Freescale Semiconductor, Inc.
into:
Bus 001 Device 031: ID 0525:a4a5 Netchip Technology, Inc. Pocketbook Pro 903
But mfgtool doesn't continue to the next step ("Updater").
This is what I have in my ucl2.xml:
<UCL>
<CFG>
<STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
<STATE name="Updater" dev="MSC" vid="0525" pid="a4a5"/>
</CFG>
<!--burn the Mfg boot and Initramfs: -->
<LIST name="ofer" desc="Burn my board">
<CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot.imx" >Loading MFG U-boot For DCD</CMD>
<CMD state="BootStrap" type="load" file="uImage" address="0x91000000"
loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading uImage</CMD>
<CMD state="BootStrap" type="load" file="my_imx7_board.dtb" address="0x92000000"
loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading DTB</CMD>
<CMD state="BootStrap" type="load" file="initramfs-oferf_utp.cpio.gz.uboot" address="0x93000000"
loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading MFG Initramfs</CMD>
<CMD state="BootStrap" type="jump" > Jumping to DDR. </CMD>
<CMD state="Updater" type="push" body="$ echo KUKUKU"> Updater</CMD>
</LIST>
</UCL>
I'm not sure about this line:
<STATE name="Updater" dev="MSC" vid="0525" pid="a4a5"/>
Any help is much appreciated.
Thanks,
Ofer
Update:
I noticed the linuxrc script in the uuc git repo.
The script is missing how to use g_mass_storage, and I'm don't really know how to use it, since it usually being done using file=/dev/mmcblk0p1 (or similar). Maybe I'm suppose to use file=/fat in this case.
Anyway, now I'm getting this message:
MFG tool will use 1st udc:ci_hdrcudc-core: couldn't find an available UDC - added [g1] to list of pending drivers
And if I run uuc, I'm getting this:
uuc 0.5 [built Jan 15 2018 18:54:36]
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
cpu_id is 0
And nothing else happens.
Update #2:
I have it working now.
I needed to replace the linuxrc script with an updated linuxrc script from the uuc repository (https://github.com/codeauroraforum/imx-uuc.git), and change u-boot parameters to include "rdinit=/linuxrc" (bootargs).
In Linux kernel, USB Gadget Drivers (Mass Storage Gadget) needs to be chosen (USB_MASS_STORAGE [=y]), and as others mentioned, CONFIG_FSL_UTP [=y].
The vid/pid values in the "Updater" commands in the xml, should match the values in the (updated) linuxrc script.
<STATE name="Updater" dev="MSC" vid="066f" pid="37ff"/>
you may check your kernel config :
1: <*> USB Gadget Drivers (File-backed Storage Gadget) ---> should be this
2:[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
in your case ,you may not select option 1, please check if any help
MFG tool on Yocto was not supported in the 3.10.9 alpha.
We are planning a full manufacturing tool support in our upcoming 3.10.17-1.0.0 beta release coming out in January 2014. This will include manufacturing images and updates in other components to support the manufacturing tool installation.
I have the same situation. 3.10.53.1.1.0 release, it supports MFG_tool.
Please give a detailed description of this problem!
Hey specialists !!!!
You can give a normal response ????? Is there a step by step guide that I have to change in the image, in u-boot, whatever the damn program MFG_Tool worked!
I need to generate initramfs, or i can use that comes together with MFG_Tool?
I would imagine you could use the mfg2 rootfs, since it does not get written to the target image device.
Hi
Eugene
Did you able to solve your issue?
Thanks
Saurabh
It worked for me!
Hi aliismail
Did it work only for changing the above kernel configuration ?
Could you share me more detail ?
Ko-hey
Some time back, I summarized how I got it going...
"It turns out there are two folder "files" and "firmware" that are in the mfg2 tool working directory. Mfg tool looks in the "firmware" folder for your custom image built to be used in mfg2tool and it looks in the "files" folder for your custom image. I found that I did not have to compile my u-boot for mfg tool so I just used my original. As for the kernel, follow along in the "Manufactoring Tool V2 Linux or Android" document. Everything will be easy to follow except for one instruction where it asks you to "build in mass storage gadget class driver". In menuconfig you can find this driver under Device Drivers->USB Support->USB Gadget Support->USB Gadget Drivers. Make this built in (i.e. put a asterisk). Then go into that driver and choose mass storage gadget. Save everything and this should create a .config file in tmp/work/<your device>/linux-imx/<build #>/build. You can use this to patch your defconfig file and rebuild everything. This should get it going hopefully!"
As far as this UTP waiting error, this should be solved by going into the kernel and turning on UTP.
Hi Ali,
What should I do to turn on UTP? Could you give me some detail steps?
Hi. I have an openwrt kernel that needs to be used on a proprietary board. When I use that kernel I am likewise stuck at the above "UTP: Waiting for device to appear", and never get to the point where it sees /dev/utp"
Can you please list precisely what needs to be ported to that kernel and what config options need to be enabled? CONFIG_FSL_UTP is a really great example. This is not used in the general kernel community. So where is the source code that uses it? What is required to support UTP? Exactly which USB options are required to enter a mass-storage mode that the PC host can use? These are critical, critical details, and I cannot find them (definitively) anywhere on Freescale's site.
Detailing this would go a long way to helping the community develop with the imx6 chipset.
I appreciate any help you can offer.
Hi Stephen,
Do you solve the problem? I get the similar problem. I can't find where to enable /dev/utp driver, can't find utp under directory /dev. Could you give me some suggestions?
You should be able to turn on UTP within the kernel. If you run menuconfig, you should be able to search for UTP and turn that feature on.
Thank you Ali, I found it, and solved my problem.
Best Regards
xixiguo