3GB limit? *2* GB limit?!
I'm trying to experiment with ubifs on a 16GB USB stick. I've downloaded and built:
~2009-02-01
git://git.infradead.org/~dedekind/ubifs-v2.6.25.git -- full kernel tree. :(
git://git.infradead.org/mtd-utils.git (sys-fs/mtd-utils-9999 in gentoo)
I'm running these commands and getting this output:
-----8<-----
# uname -a
Linux fishstick 2.6.25-gentoo-r8 #2 SMP PREEMPT Wed Feb 4 05:23:36 UTC 2009 i686 AMD Phenom(tm) 9850 Quad-Core Processor AuthenticAMD GNU/Linux
# ls -l /dev/mtd*
ls: cannot access /dev/mtd*: No such file or directory
# modprobe block2mtd block2mtd=/dev/sdj,128KiB
# modprobe mtdchar
# ls -l /dev/mtd*
crw-rw---- 1 root root 90, 0 Feb 4 06:29 /dev/mtd0
crw-rw---- 1 root root 90, 1 Feb 4 06:29 /dev/mtd0ro
fishstick devices # ubiformat /dev/mtd0
ubiformat: mtd0 (RAM-based), size 3246391296 bytes (3.0 GiB), 131072 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 1 bytes
libscan: scanning eraseblock 16384 -- 66 % complete libmtd: error!: cannot seek mtd0 to offset 18446744071562067968
error 22 (Invalid argument)
ubiformat: error!: failed to scan mtd0 (/dev/mtd0)
# fdisk /dev/sdj
Device contains neither a valid DOS partition table, nor Sun, SGI
[...]
Command (m for help): pDisk /dev/sdj: 16.1 GB, 16131293184 bytes
-----8<-----
sooo.....first, size is 3.0GiB? not 16GiB?
second, ubiformat has 2GB limit? Is this FAT or something---what gives? Have I missed a ``wings stay on'' switch in 'make menuconfig'?
Quoted 2 lines · Miles Nordin
I'm trying to experiment with ubifs on a 16GB USB stick. I've downloaded and built:
snip
Quoted 17 lines
-----8<-----
# uname -a Linux fishstick 2.6.25-gentoo-r8 #2 SMP PREEMPT Wed Feb 4 05:23:36 UTC 2009 i686 AMD Phenom(tm) 9850 Quad-Core Processor AuthenticAMD GNU/Linux # ls -l /dev/mtd* ls: cannot access /dev/mtd*: No such file or directory # modprobe block2mtd block2mtd=/dev/sdj,128KiB # modprobe mtdchar # ls -l /dev/mtd* crw-rw---- 1 root root 90, 0 Feb 4 06:29 /dev/mtd0 crw-rw---- 1 root root 90, 1 Feb 4 06:29 /dev/mtd0ro fishstick devices # ubiformat /dev/mtd0 ubiformat: mtd0 (RAM-based), size 3246391296 bytes (3.0 GiB), 131072 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 1 bytes libscan: scanning eraseblock 16384 -- 66 % complete libmtd: error!: cannot seek mtd0 to offset 18446744071562067968 error 22 (Invalid argument) ubiformat: error!: failed to scan mtd0 (/dev/mtd0) # fdisk /dev/sdj Device contains neither a valid DOS partition table, nor Sun, SGI
MTD user-space interface is 32-bit, and is simited by 2GiB. You have to upgrade it to use larger devices.
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)
Quoted 19 lines · Artem Bityutskiy
Quoted 17 lines · Miles Nordin
-----8<-----
# uname -a Linux fishstick 2.6.25-gentoo-r8 #2 SMP PREEMPT Wed Feb 4 05:23:36 UTC 2009 i686 AMD Phenom(tm) 9850 Quad-Core Processor AuthenticAMD GNU/Linux # ls -l /dev/mtd* ls: cannot access /dev/mtd*: No such file or directory # modprobe block2mtd block2mtd=/dev/sdj,128KiB # modprobe mtdchar # ls -l /dev/mtd* crw-rw---- 1 root root 90, 0 Feb 4 06:29 /dev/mtd0 crw-rw---- 1 root root 90, 1 Feb 4 06:29 /dev/mtd0ro fishstick devices # ubiformat /dev/mtd0 ubiformat: mtd0 (RAM-based), size 3246391296 bytes (3.0 GiB), 131072 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 1 bytes libscan: scanning eraseblock 16384 -- 66 % complete libmtd: error!: cannot seek mtd0 to offset 18446744071562067968 error 22 (Invalid argument) ubiformat: error!: failed to scan mtd0 (/dev/mtd0) # fdisk /dev/sdj Device contains neither a valid DOS partition table, nor Sun, SGI
Quoted 2 lines
MTD user-space interface is 32-bit, and is simited by 2GiB. You have to upgrade it to use larger devices.
you mean the MTD user-space code he is currently using, not current MTD user-space in general ?
-mike
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"ab" == Artem Bityutskiy <[email protected]> writes:
ab> MTD user-space interface is 32-bit, and is simited by ab> 2GiB. You have to upgrade it to use larger devices.
I am using mtd-tools from git, pulled a couple days ago. or thought I was. What do you mean by upgrade? Do you mean ``redesign the interface and rewrite the tools'' or ``use Linux/amd64'' or ``pull something else from git''?
Quoted 19 lines · Mike Frysinger
Quoted 18 lines · Artem Bityutskiy
Quoted 17 lines · Miles Nordin
-----8<-----
# uname -a Linux fishstick 2.6.25-gentoo-r8 #2 SMP PREEMPT Wed Feb 4 05:23:36 UTC 2009 i686 AMD Phenom(tm) 9850 Quad-Core Processor AuthenticAMD GNU/Linux # ls -l /dev/mtd* ls: cannot access /dev/mtd*: No such file or directory # modprobe block2mtd block2mtd=/dev/sdj,128KiB # modprobe mtdchar # ls -l /dev/mtd* crw-rw---- 1 root root 90, 0 Feb 4 06:29 /dev/mtd0 crw-rw---- 1 root root 90, 1 Feb 4 06:29 /dev/mtd0ro fishstick devices # ubiformat /dev/mtd0 ubiformat: mtd0 (RAM-based), size 3246391296 bytes (3.0 GiB), 131072 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 1 bytes libscan: scanning eraseblock 16384 -- 66 % complete libmtd: error!: cannot seek mtd0 to offset 18446744071562067968 error 22 (Invalid argument) ubiformat: error!: failed to scan mtd0 (/dev/mtd0) # fdisk /dev/sdj Device contains neither a valid DOS partition table, nor Sun, SGI
Quoted 8 lines
Quoted 2 lines
MTD user-space interface is 32-bit, and is simited by 2GiB. You have to upgrade it to use larger devices.
you mean the MTD user-space code he is currently using, not current MTD user-space in general ?
-mikeFrom 2.6.29, the internal MTD API will support 64-bit sizes,
however, presently it only supports 32-bits (probably only 1GiB safely).
However, in any case, the MTD ioctls use unsigned 32-bit integers for sizes, so they must be hacked or 64-bit ioctls added to use MTD's that are 4GiB or over.
Quoted 9 lines · Miles Nordin
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"ab" == Artem Bityutskiy <[email protected]> writes:
ab> MTD user-space interface is 32-bit, and is simited by ab> 2GiB. You have to upgrade it to use larger devices.
I am using mtd-tools from git, pulled a couple days ago. or thought I was. What do you mean by upgrade? Do you mean ``redesign the interface and rewrite the tools'' or ``use Linux/amd64'' or ``pull something else from git''?
Miles,
please, glance at the include/mtd/mtd-abi.h file. This file defines the interface between user-space applications and MTD devices. Notice that the "size" field in the "struct mtd_info_user" data structure is 32-bit. So the size of the MTD device is limited by 4GiB. Look at other data structures and notice a similar thing.
Thus, you have to invent a new user-space interface for MTD. Internally, it is 64-bit already. You do not have to have amd64. You have to code, unfortunately.
Signature · 2 lines
Best regards, Artem Bityutskiy (Битюцкий Артём)