QNX 6.3 SP3 Self Hosted
I’m trying to make an OS image and transfer it to a Flash disk in order to make a bootable embedded system.
I’m using the IDE System Builder and I include all binaries, libraries, dll’s, etc and whatever I need. It’s seems like the IDE System Builder generates (in the Filesystem view) the filesystem needed for the system I’m designing.
After building the .ifs file, the only way I have to transfer the .ifs is by installing the Flash disk as a secondary IDE in my host PC and then:
- Run “fdisk /dev/hd1”
- Create a new partition of type 77 (qnx)
- Make the partition bootable
- Save and quit fdisk
dinit -h -B ipl-diskpc1 /dev/hd1
dinit -h -f /path/to/my.ifs -B ipl-diskpc2 /dev/hd1t77
Installing the Flash disk on the embedded system as a master, then it fail on booting. Before installing on the embedded system, I’ve seen that in the Flash disk were not any directory created. The only files in / were .boot, .altboot and three other ones.
Do I have to create manually all the directories of the Filesystem?
Is not supossed that it would be made automatically following the steps above (with the image file created with the System Builder)?
Thanks a lot.
The answer is yes, you have to place all the other files and directories there yourself.
The process you did was to format the flask disk for QNX and install a boot image to boot the O/S.
Note, if you only plan to have a few files on your flash disk you can embed them directly in the boot image. Otherwise you have to copy everything you need.
Thanks Tim for your quick reply.
How can I embed the files I need in the boot image?
mkefs → mkimage ?
I suposse doing so, the resulting image file size will be substantially increased. Isn’t it?
Thanks a lot.
you can just copy the files / directory structure over to the compact flash.
Yes the image file size will increase by doing that. You can embed the files in the image simply by including them your .bld file.
Unless you only have a very few files (like a couple of exe’s) it’s not worth going that route. You most certainly do not want to put the full set of files from /bin /usr/bin /etc /root and so on into the boot image. Typically the only reason you embed in the boot image is because you have very limited storage (flash ram) and don’t need the full QNX O/S file system.
Your much better off copying the files and directory structure if you want the full QNX O/S file system. You can create a script to automate that process.
What kind of flash disk are you using? NAND flash?
How do you access the flash disk? As a block device, using devb-eide?
Or do you use the Embedded Transaction File System (ETFS)?