Hello guys,
I applied the 3 patches about ubifs support on kirkwood successfully.
Many thanks Daniel
I am using linux kernel 2.6.37.6 and mtd-ults 1.4.5.
When erasing, flashing and mounting the first time with mtd-utils from
an initramfs openwrt , it goes well.
After some umount/mount sequences, I often get many messages about
torture test for PEB, that take 100% of the CPU, like those:
> UBI: run torture test for PEB 100
> UBI: PEB 100 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 100
> UBI: PEB 100 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 100
> UBI: PEB 100 passed torture test, do not mark it a bad
> ....
> UBI: PEB 100 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 100
> UBI: PEB 100 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 100
Does any know how to solve this issue?
May be the ubo and ubifs code has some bug in kernel 2.6.37.6...
Here is a full history case:
* first flashing...
> wget http://x.x.x.x/openwrt--trunk-ubifs
> /kirkwood/openwrt-kirkwood-Iconnect-ubi.img
> Connecting to x.x.x.x (x.x.x.x:80)
> openwrt-kirkwood-Ico 100% |*******************************| 13184k
> 00:00:00 ETA
> root@OS:/# mtd erase rootfs
> Unlocking rootfs ...
> Erasing rootfs ...
> nand_erase_nand: attempt to erase a bad block at page 0x0001c840
> Failed to erase block on rootfs at 0xe020000
> root@OS:/# ubiformat /dev/mtd2 -f openwrt-kirkwood-Iconnect-ubi.img
> ubiformat: mtd2 (nand), size 532676608 bytes (508.0 MiB), 4064
> eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
> libscan: scanning eraseblock 4063 -- 100 % complete
> ubiformat: 4063 eraseblocks are supposedly empty
> ubiformat: 1 bad eraseblocks found, numbers: 1793
> ubiformat: flashing eraseblock 102 -- 100 % complete
> ubiformat: formatting eraseblock 4063 -- 100 % complete
* then ubiattach , mount, umount, ubidettach sequences:
> root@OS:/# ubiattach /dev/ubi_ctrl -m 2
> UBI: attaching mtd2 to ubi0
> UBI: physical eraseblock size: 131072 bytes (128 KiB)
> UBI: logical eraseblock size: 129024 bytes
> UBI: smallest flash I/O unit: 2048
> UBI: sub-page size: 512
> UBI: VID header offset: 512 (aligned 512)
> UBI: data offset: 2048
> UBI: max. sequence number: 0
> UBI: volume 0 ("rootfs") re-sized from 101 to 4019 LEBs
> UBI: attached mtd2 to ubi0
> UBI: MTD device name: "rootfs"
> UBI: MTD device size: 508 MiB
> UBI: number of good PEBs: 4063
> UBI: number of bad PEBs: 1
> UBI: number of corrupted PEBs: 0
> UBI: max. allowed volumes: 128
> UBI: wear-leveling threshold: 4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes: 1
> UBI: available PEBs: 0
> UBI: total number of reserved PEBs: 4063
> UBI: number of PEBs reserved for bad PEB handling: 40
> UBI: max/mean erase counter: 0/0
> UBI: image sequence number: 1623879100
> UBI: background thread "ubi_bgt0d" started, PID 1715
> UBI device number 0, total 4063 LEBs (524224512 bytes, 499.9 MiB),
> available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)
> root@OS:/# mount -t ubifs ubi0:rootfs /mnt
> UBIFS: mounted UBI device 0, volume 0, name "rootfs"
> UBIFS: file system size: 517128192 bytes (505008 KiB, 493 MiB, 4008
> LEBs)
> UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
> UBIFS: media format: w4/r0 (latest is w4/r0)
> UBIFS: default compressor: lzo
> UBIFS: reserved for root: 0 bytes (0 KiB)
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/# umount /mnt
> UBIFS: un-mount UBI device 0, volume 0
> root@OS:/# ubidetach -p /dev/mtd2
> UBI: mtd2 is detached from ubi0
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/# lsmod
> Module Size Used by Tainted: G
> dahdi_echocan_mg2 3572 0
> dahdi_voicebus 30260 0
> dahdi_transcode 3732 0
> dahdi 182672 3
> dahdi_echocan_mg2,dahdi_voicebus,dahdi_transcode
> pl2303 9260 0
> usbserial 21364 1 pl2303
> sundance 13568 0
> solos_pci 13996 0
> r8169 25344 0
> e100 22728 0
> pppoe 6768 0
> pppox 948 1 pppoe
> pppoatm 1892 0
> clip 7528 0
> ppp_async 5592 0
> ppp_generic 17704 4 pppoe,pppox,pppoatm,ppp_async
> slhc 4240 1 ppp_generic
> br2684 5560 0
> atm 28692 4 solos_pci,pppoatm,clip,br2684
> ts_fsm 2584 0
> ts_bm 1272 0
> ts_kmp 1144 0
> crc_ccitt 880 2 dahdi,ppp_async
> mv_cesa 7372 0
> aes_generic 33208 1 mv_cesa
> root@OS:/# ubinfo
> UBI version: 1
> Count of UBI devices: 0
> UBI control device major/minor: 10:63
> root@OS:/# ubiattach /dev/ubi_ctrl -m 2
> UBI: attaching mtd2 to ubi0
> UBI: physical eraseblock size: 131072 bytes (128 KiB)
> UBI: logical eraseblock size: 129024 bytes
> UBI: smallest flash I/O unit: 2048
> UBI: sub-page size: 512
> UBI: VID header offset: 512 (aligned 512)
> UBI: data offset: 2048
> UBI: max. sequence number: 4
> UBI: attached mtd2 to ubi0
> UBI: MTD device name: "rootfs"
> UBI: MTD device size: 508 MiB
> UBI: number of good PEBs: 4063
> UBI: number of bad PEBs: 1
> UBI: number of corrupted PEBs: 0
> UBI: max. allowed volumes: 128
> UBI: wear-leveling threshold: 4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes: 1
> UBI: available PEBs: 0
> UBI: total number of reserved PEBs: 4063
> UBI: number of PEBs reserved for bad PEB handling: 40
> UBI: max/mean erase counter: 1/0
> UBI: image sequence number: 1623879100
> UBI: background thread "ubi_bgt0d" started, PID 1724
> UBI device number 0, total 4063 LEBs (524224512 bytes, 499.9 MiB),
> available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)
> root@OS:/# mount -t ubifs ubi0:rootfs /mnt
> UBIFS: mounted UBI device 0, volume 0, name "rootfs"
> UBIFS: file system size: 517128192 bytes (505008 KiB, 493 MiB, 4008
> LEBs)
> UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
> UBIFS: media format: w4/r0 (latest is w4/r0)
> UBIFS: default compressor: lzo
> UBIFS: reserved for root: 0 bytes (0 KiB)
> root@OS:/# ls /mnt
> bin etc mnt proc root sys usr www
> dev lib overlay rom sbin tmp var
> root@OS:/# umount /mnt
> UBIFS: un-mount UBI device 0, volume 0
> root@OS:/# ubidetach -p /dev/mtd2
> UBI: mtd2 is detached from ubi0
> root@OS:/# ubiattach /dev/ubi_ctrl -m 2
> UBI: attaching mtd2 to ubi0
> UBI: physical eraseblock size: 131072 bytes (128 KiB)
> UBI: logical eraseblock size: 129024 bytes
> UBI: smallest flash I/O unit: 2048
> UBI: sub-page size: 512
> UBI: VID header offset: 512 (aligned 512)
> UBI: data offset: 2048
> UBI: max. sequence number: 5
> UBI: attached mtd2 to ubi0
> UBI: MTD device name: "rootfs"
> UBI: MTD device size: 508 MiB
> UBI: number of good PEBs: 4063
> UBI: number of bad PEBs: 1
> UBI: number of corrupted PEBs: 0
> UBI: max. allowed volumes: 128
> UBI: wear-leveling threshold: 4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes: 1
> UBI: available PEBs: 0
> UBI: total number of reserved PEBs: 4063
> UBI: number of PEBs reserved for bad PEB handling: 40
> UBI: max/mean erase counter: 1/0
> UBI: image sequence number: 1623879100
> UBI: background thread "ubi_bgt0d" started, PID 1732
> UBI device number 0, total 4063 LEBs (524224512 bytes, 499.9 MiB),
> available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)
> root@OS:/#
> root@OS:/#
> root@OS:/#
> root@OS:/# mount -t ubifs ubi0:rootfs /mnt
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBIFS: mounted UBI device 0, volume 0, name "rootfs"
> UBIFS: file system size: 517128192 bytes (505008 KiB, 493 MiB, 4008
> LEBs)
> UBIFS: journal size: 9033728 bytes (8822 KiB, 8 MiB, 71 LEBs)
> UBIFS: media format: w4/r0 (latest is w4/r0)
> UBIFS: default compressor: lzo
> UBIFS: reserved for root: 0 bytes (0 KiB)
> UBI: run torture test for PEB 103
> root@OS:/# UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
> UBI: PEB 103 passed torture test, do not mark it a bad
> UBI: run torture test for PEB 103
Bug easy to reproduce from a initramfs.
Any idea ?
Romary
Le 05/08/2011 14:48, Daniel Golle a écrit :
> Enable ubifs on kirkwood (tested it with SheevaPlug).
>
> Signed-off-by: Daniel Golle <[email protected]>
>
> Index: target/linux/kirkwood/image/ubinize.cfg
> ===================================================================
> --- target/linux/kirkwood/image/ubinize.cfg (revision 0)
> +++ target/linux/kirkwood/image/ubinize.cfg (revision 0)
> @@ -0,0 +1,14 @@
> +[rootfs]
> +# Volume mode (other option is static)
> +mode=ubi
> +# Source image
> +image=root.ubifs
> +# Volume ID in UBI image
> +vol_id=0
> +# Allow for dynamic resize
> +vol_type=dynamic
> +# Volume name
> +vol_name=rootfs
> +# Autoresize volume at first mount
> +vol_flags=autoresize
> +
> Index: target/linux/kirkwood/image/Makefile
> ===================================================================
> --- target/linux/kirkwood/image/Makefile (revision 27890)
> +++ target/linux/kirkwood/image/Makefile (working copy)
> @@ -8,6 +8,8 @@
> include $(INCLUDE_DIR)/image.mk
>
> JFFS2OPTS += --little-endian --pagesize=0x800 --no-cleanmarkers --pad
> +UBIFS_OPTS += -m 2048 -e 126KiB -c 8192
> +UBINIZE_OPTS += -m 2048 -p 128KiB -O 512
>
> define Image/Prepare
> cp $(LINUX_DIR)/arch/arm/boot/uImage $(KDIR)/uImage
> Index: target/linux/kirkwood/Makefile
> ===================================================================
> --- target/linux/kirkwood/Makefile (revision 27890)
> +++ target/linux/kirkwood/Makefile (working copy)
> @@ -9,7 +9,7 @@
> ARCH:=arm
> BOARD:=kirkwood
> BOARDNAME:=Marvell Kirkwood
> -FEATURES:=targz usb jffs2
> +FEATURES:=targz usb jffs2 ubifs
> MAINTAINER:=Imre Kaloz <[email protected]>
>
> LINUX_VERSION:=2.6.37.6
> Index: target/linux/kirkwood/config-default
> ===================================================================
> --- target/linux/kirkwood/config-default (revision 27890)
> +++ target/linux/kirkwood/config-default (working copy)
> @@ -110,6 +110,11 @@
> # CONFIG_MTD_ROOTFS_ROOT_DEV is not set
> # CONFIG_MTD_ROOTFS_SPLIT is not set
> # CONFIG_MTD_SM_COMMON is not set
> +CONFIG_MTD_UBI=y
> +CONFIG_MTD_UBI_BEB_RESERVE=1
> +# CONFIG_MTD_UBI_DEBUG is not set
> +# CONFIG_MTD_UBI_GLUEBI is not set
> +CONFIG_MTD_UBI_WL_THRESHOLD=4096
> CONFIG_MV643XX_ETH=y
> CONFIG_NEED_DMA_MAP_STATE=y
> CONFIG_NET_DSA=y
> @@ -138,6 +143,12 @@
> # CONFIG_SERIAL_8250_EXTENDED is not set
> CONFIG_SPLIT_PTLOCK_CPUS=999999
> CONFIG_SYS_SUPPORTS_APM_EMULATION=y
> +CONFIG_UBIFS_FS=y
> +CONFIG_UBIFS_FS_ADVANCED_COMPR=y
> +# CONFIG_UBIFS_FS_DEBUG is not set
> +# CONFIG_UBIFS_FS_LZO is not set
> +# CONFIG_UBIFS_FS_XATTR is not set
> +CONFIG_UBIFS_FS_ZLIB=y
> CONFIG_UID16=y
> CONFIG_USB=y
> CONFIG_USB_EHCI_HCD=y
> _______________________________________________
> openwrt-devel mailing list
> [email protected]
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel