Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I need help extracting and modifying the uImage used for my tablet device, in the end product I need to modify the init to look to the SDCARD rather than NAND.
Right anyway to start I'm unsure where to go.
I understand the uImages have a 64byte header, so I open uImage in hex editor and remove the first 64bytes, I then save the new file as name.bz2 and open it, this gives me a data file (which I believe is raw data).
First, What is your intension, do you want to boot from SD card instead of NAND Device. It is done at the boot loader level not at the kernel level. And one more thing is as far as I know you can't modify the kernel image once you built it, it is an object file and not a plain text file.
I also believe modifying uImage is not what you what, since it does not control the device boot, only the OS boot.
You have to tell the boot loader (maybe uBoot?) where do you want it to boot from, or rather, where do you want it to read the kernel image (uImage) from...
Well, last with my old tablet device I extracted the initramfs from the zImage and modified init to boot from SD card, this worked successfully. However, this new tablet (made by the same company) uses a uImage, and it won't work the same.
[QUOTE=formiaczek;4526979]I have not done it with tables, but I think I agree. What you might want to do is to modify (or create if there isn't any) a boot.scr.
You can create one from your boot script using mkimage. Command would look something like:
mkimage -A arm -T script -C none -n "My Boot.scr" -d /tmp/boot.script /mnt/boot.scr
Well, with uBoot it depends. Yes you can create the boot.scr file.
But you can also create an uEnv.txt with environment variables assignments which would replace the default values in the uBoot binary.
However, if the uBoot binary is in an internal memory of the device, that is always read at start-up, then none of this methods will work. You need to boot into uBoot, modify the variables you need, and save them. Some useful commands are printenv, setenv, saveenv.