UBIFS as rootfs
This Post describes how to get startet with an UBIFS root filesystem. I suppose you are using a image generated for the “spark” device. I have not done any tests with “spark7162”. For the spark boxes there is automatically a ubifs image generated.
Generate a core-image-minimal for example. This assumes You already have set-up the yocto build environment.
MACHINE=spark bitbake core-image-minimal
The resulting image can be found here
tmp/deploy/images/core-image-minimal-spark.ubi
This is a ubivolume which can be burned to flash …
The Linux Way
For flashing from Linux booting over USB is recommended. Be cause we do not want to bite the hand that feeds us. For debugging and configuration purposes a Nullmodem Cable and a Terminal Emulator is recommended.
Flashing the image
To get a list with the mtd devices just dump the content of “/proc/mtd”
root@spark:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00010000 "Boot firmware"
mtd1: 00700000 00010000 "Kernel"
mtd2: 00080000 00010000 "Reserve"
mtd3: 00800000 00020000 "Spark Kernel"
mtd4: 17800000 00020000 "Spark Rootfs"
mtd5: 00800000 00020000 "E2 Kernel"
mtd6: 05000000 00020000 "E2 RootFs"
We want to modify the Partion number “6” also known as “E2 RootFs”. Be carefull to not erase Number “0” otherwise your bootloader is blown. At first you have to transfer the image. In absence of any other tools I do use netcat again.
On the host (quadros) run this
$ cat tmp/deploy/images/core-image-minimal-spark.ubi | nc -l -v 3333
On the target run this
root@spark:~# nc quadros 3333 > /tmp/image.ubi
Now we can burn the image onto the flash
root@spark:~# flash_eraseall /dev/mtd6
root@spark:~# ubiformat /dev/mtd6 -q -y -f /tmp/image.ubi
Choosing the right commandline
I had a some difficulties with the console. The default bootagrs point to “ttyAS1” but I have to use ttyAS0. So I have to check this. This is the command line which works for me.
setenv bootargs 'console=ttyAS0,115200 rw init=/bin/devinit coprocessor_mem=4m@0x40000000,4m@0x40400000 printk=1 nwhwconf=device:eth0,hwaddr:00:80:E1:12:40:61 rw ip=172.100.100.249:172.100.100.174:172.100.100.174:255.255.0.0:LINUX7109:eth0:off bigphysarea=6000 stmmaceth=msglvl:0,phyaddr:2,watchdog:5000 ubi.mtd=6 rootfstype=ubifs root=ubi0:rootfs'
The spark u-boot
The spark bootloader has a nice menu integrated. With this you can also write images from a USB stick to the flash. Notice this is not the recommended way. Using ubiformat keeps all required information about the underlying flash device. To get started you need a USB-Stick which is supported by the spark u-noot. To boot the UBI image the commandline also have be tweaked to use ubi instead jffs2. Please have a look at the The Linux Way section for advise.
- Format USB-thumb drive with a single FAT32 partition
- Create an enigma2 folder on the USB-thumb drive
- Copy the file core-image-minimal-spark.ubi to the enigma2 folder and rename it to e2jffs2.img
- Copy the file uImage-spark.bin to the enigma2 folder as-well and rename it to uImage
- Turn the Set-Top-Box off by the power switch
- Put the USB-Stick into the USB-Slot at the back of the STB. Not the front one!
- Press the OK at the Front-Panel and keep it pressed.
- Turn on the box by the power switch.
- Wait until you read “Forc” on the display
- Release the OK Button. Now you can press the Button V+ -> (right).
- After this you can read “U LD” on the display.
- The flashing of the image may take some minutes. After successfull flashing “SUCC” is written on the display and the box reboots.
blog comments powered by Disqus