erofs / erofs-utils Goto Github PK
View Code? Open in Web Editor NEWA github erofs-utils fork for community development
Home Page: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
License: Other
A github erofs-utils fork for community development
Home Page: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
License: Other
I tried to build this project with:
$ ./autogen.sh
$ ./configure
$ make
and got following configure error:
checking for lz4.h... yes
checking for LZ4_compress_destSize in -llz4... no
configure: error: Cannot find proper lz4 version (>= 1.8.0)
I am sure that I have lz4 1.9.2
installed, so I checked config.log and saw these link error:
configure:10419: checking for LZ4_compress_destSize in -llz4
configure:10444: gcc -o conftest -g -O2 -L conftest.c -llz4 >&5
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../lib/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
This error is caused by an empty -L
flag in the gcc command. I looked into configure.ac and found:
https://github.com/hsiangkao/erofs-utils/blob/dd37a983616706414e2e4232e2aa96b56a09fed6/configure.ac#L177
When the $with_lz4_libdir
is an empty string, LDFLAGS=-L ${LDFLAGS}
, that's why we got the empty -L
.
Here is a working patch for dd37a98:
diff --git a/configure.ac b/configure.ac
index f925358..01a95e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -174,7 +174,7 @@ if test "x$enable_lz4" = "xyes"; then
if test "x${have_lz4h}" = "xyes" ; then
saved_LDFLAGS=${LDFLAGS}
- LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}"
+ LDFLAGS="-L$LZ4_LIBS ${LDFLAGS}"
AC_CHECK_LIB(lz4, LZ4_compress_destSize, [
have_lz4="yes"
have_lz4hc="yes"
Please fix it.
./fsck.erofs system1.img
erofs: .' or
..' dirent is missing @ nid 39
erofs: .' or
..' dirent is missing @ nid 0
erofs: Found some filesystem corruption
请问下这个该怎么解决
给aosp加上了最新的erofs-utils支持,4.19的高通865内核除了dax和fscache特性其他的也都从主线backport了,核心代码对比上游几乎没有差异了,不过最新两个特性出现了些bug,虽然是experimental,但是还是说下吧
AcmeUI/android_external_erofs-utils@5b93190
fragments支持在load android的fsconfig下packed inode得跳过,要不然查找不到路径(
Handling packed_file ...failed to find rblock: %d
in canned fs_config
Out of space? Out of inodes? The tree size of /home/tarsin/Acme/out/soong/.temp/tmp3d41sibp is 990187520 bytes (944 MB), with reserved space of 0 bytes (0 MB).
而且加上这个patch虽然能输出文件了,我bp的内核也没法读取,会触发这个https://github.com/torvalds/linux/blob/725737e7c21d2d25a4312c2aaa82a52bd03e3126/block/blk-core.c#L525, 虽然和上游代码高度一致,不过也不排除我bp的有问题
还有就是在开启dedup特性的时候制作某些镜像(比如android的vendor镜像)mkfs直接死循环了(等了十多分钟什么也没有输出,一直在占用一个线程的cpu时间,我还没去调试,如果您需要测试文件的话我可以传下
This github repo is only an internal working branch myself.
The perferred way is to report issues or submiting patches via erofs mailing list:
[email protected] (Unmoderated mailing list)
Also see (It's also applicable to erofs-utils since it's a Linux kernel related userspace project):
https://www.kernel.org/doc/html/latest/process/submitting-patches.html
Note in particular the requirements for the Developer's Certification of Origin (aka the Signed-off-by tag). That has specific legal meanings (for example, you are certifying that your employer allows
you to contribute to open source projects, or at least, this open source project), so please take a close look at that.
或者说有没类似erofs2simg的工具, 谢谢
Can a file be added to an img file of type erofs? Or can it be changed?
Hello,
I want to change squashfs to erofs image to performance issue, but my first test is very not exiting :
/usr/local/bin/mkfs.erofs -zlz4hc foo.erofs.img /run/WORK/CHROOT.NEW/
=> foo.erofs.img = 553 Mo
mksquashfs /run/WORK/CHROOT.NEW/ tmp/chroot.sqfs -noappend -comp lz4 -no-xattrs
=> /tmp/chroot.fs = 290 Mo
Erofs only compress image without any optimization found in squashfs ?
Regards,
Nicolas
Do you know if erofs is backported to kernel 4.9? If not, how difficult to do that? Thanks
Hi Gao Xiang,
Good works on EROFS! I have a couple of questions, hope you can help to answer them.
Thanks,
--Don
Original report: https://github.com/erofs/erofsnightly/actions/runs/10172576269/job/28135408276
Reproducible image (base64-encoded gzipped blob):
H4sICLInqWYAA2Vyb2ZzZnNja19saWJmdXp6ZXJfT1BXWWFrAGNgZWBg+P//fzcDCDAyIFOYYC4u
CTDQApMvmRkYKoH0PJ95qVUMExgUMRUC7fvNgGQVIxsDA1NSEpC1pBEs+58NoRKbAZgAbA6yGZhK
+CGUDwODIw5D/vMTYxVVABd52gzwSV5EYruiyPwlzzZigAPtjMYKmPEGAc0A1Wz98x9b2sQGgAr/
YRN3IM1CRjD6hkP20cOvD3afq9UDZloGHgYVIOmMz6upIAJUZIAyGVIm/Q/Kf8g5HyLDsQGh1RM7
uMgKkuoGGgEylrjMTgigZmMmdlzqhksm1KKSOR+pZA4UoMUlDfwPzx8slJgCSYgMAJRQJ58LBwAA
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.