[Q] MKFS.EXT4 Compiled for Android - Gen8 Android Development

I'm trying to make an auto install script within the initramfs. I've got everything working, including automatic fdisk, but I cannot get mkfs.ext4 to work on the Android kernel, and there is no version of Busybox with the ext4 applet. Does anyone have a mkfs.ext4 that runs successfully on Android? When I run it from a terminal the output is
Code:
mkfs.ext4: 1: Syntax error: word unexpected (expecting ")")
Here's my code if you want to see what I'm doing.
Code:
mount /dev/mmcblk1p1 /tmp/mnt
if [ -f /tmp/mnt/mysticfw.tar.gz ]; then
$FDISK /dev/mmcblk0 < /home/fdisk.input
$MKFS_EXT4 -O ^huge_file /dev/mmcblk0p2
mount /dev/mmcblk1p2 /tmp/tmproot
mkdir /tmp/tmproot/itworks
tar -xzvf /tmp/mnt/mysticfw.tar.gz -C /tmp/tmproot/
sync
#rm /tmp/mnt/mysticfw.tar.gz
umount /tmp/tmproot
fi
sync
umount /tmp/mnt
It automatically partitions the stock Android block and installs a tar.gz from the internal storage to simplify my unsquashed 2.1.4 filesystem install, and the only part I can't get working is mkfs.ext4.

Found one! It's 3 MBs though, so if anyone has a smaller one, it would be very nice.

msticninja said:
I'm trying to make an auto install script within the initramfs. I've got everything working, including automatic fdisk, but I cannot get mkfs.ext4 to work on the Android kernel, and there is no version of Busybox with the ext4 applet. Does anyone have a mkfs.ext4 that runs successfully on Android? When I run it from a terminal the output is
Code:
mkfs.ext4: 1: Syntax error: word unexpected (expecting ")")
Click to expand...
Click to collapse
Why do you don't use the mke2fs from Uruk for example (the easiest way) asking $auron if it's ok for him. His size is only 49KB.
Find it like the following on Uruk installation:
Code:
[COLOR="DarkRed"]
# mkfs.ext4 -V
mke2fs 1.41.3 (12-Oct-2008)
Using EXT2FS Library version 1.41.3
# find / -name mke2fs | xargs ls -l
-rwxr-xr-x 1 root root 30584 Dec 15 03:46 /system/bin/mke2fs
[B]-rwxr-xr-x 5 root root 49248 4 Jan 15 13:14 /usr/local/sbin/mke2fs[/B]
#/usr/local/sbin/mke2fs -V
mke2fs 1.41.3 (12-Oct-2008)
Using EXT2FS Library version 1.41.3
[/COLOR]
Here's my code if you want to see what I'm doing.
Code:
mount /dev/mmcblk1p1 /tmp/mnt
if [ -f /tmp/mnt/mysticfw.tar.gz ]; then
$FDISK /dev/mmcblk0 < /home/fdisk.input
$MKFS_EXT4 -O ^huge_file /dev/mmcblk0p2
mount /dev/mmcblk1p2 /tmp/tmproot
mkdir /tmp/tmproot/itworks
tar -xzvf /tmp/mnt/mysticfw.tar.gz -C /tmp/tmproot/
sync
#rm /tmp/mnt/mysticfw.tar.gz
umount /tmp/tmproot
fi
sync
umount /tmp/mnt
It automatically partitions the stock Android block and installs a tar.gz from the internal storage to simplify my unsquashed 2.1.4 filesystem install, and the only part I can't get working is mkfs.ext4.
Click to expand...
Click to collapse
and don't forget to add "-l" on FDISK command and change the device mmcblk0 with mmcblk1 on the lines:
Code:
$FDISK /dev/mmcblk0 < /home/fdisk.input
$MKFS_EXT4 -O ^huge_file /dev/mmcblk0p2
Cheers,

shklifo said:
Why do you don't use the mke2fs from Uruk for example (the easiest way) asking $auron if it's ok for him. His size is only 49KB.
Find it like the following on Uruk installation:
Code:
[COLOR="DarkRed"]
# mkfs.ext4 -V
mke2fs 1.41.3 (12-Oct-2008)
Using EXT2FS Library version 1.41.3
# find / -name mke2fs | xargs ls -l
-rwxr-xr-x 1 root root 30584 Dec 15 03:46 /system/bin/mke2fs
[B]-rwxr-xr-x 5 root root 49248 4 Jan 15 13:14 /usr/local/sbin/mke2fs[/B]
#/usr/local/sbin/mke2fs -V
mke2fs 1.41.3 (12-Oct-2008)
Using EXT2FS Library version 1.41.3
[/COLOR]
and don't forget to add "-l" on FDISK command and change the device mmcblk0 with mmcblk1 on the lines:
Code:
$FDISK /dev/mmcblk0 < /home/fdisk.input
$MKFS_EXT4 -O ^huge_file /dev/mmcblk0p2
Cheers,
Click to expand...
Click to collapse
Why didn't I think of that? Thanks.
But regarding mmcblk0/1, I'm replacing the stock Android, so the fdisk.input file contains the commands to delete mmcblk0p2 and p3, and make a new partition in the unused space. I hate using space on my Internal Storage, so I'm using Archos' space.

msticninja said:
Why didn't I think of that? Thanks.
But regarding mmcblk0/1, I'm replacing the stock Android, so the fdisk.input file contains the commands to delete mmcblk0p2 and p3, and make a new partition in the unused space. I hate using space on my Internal Storage, so I'm using Archos' space.
Click to expand...
Click to collapse
If you are using the mmcblk0p2 as rootfs as you say (and you are expanded tar archive on mmcblk1p2), than you have to change the line:
mount /dev/mmcblk1p2 /tmp/tmproot
Click to expand...
Click to collapse
with
mount /dev/mmcblk0p2 /tmp/tmproot
Click to expand...
Click to collapse

shklifo said:
If you are using the mmcblk0p2 as rootfs as you say (and you are expanded tar archive on mmcblk1p2), than you have to change the line:
with
Click to expand...
Click to collapse
I know, that's my current data partition, I'll change it once I'm done testing. The tar file just has a test file in it, so when I boot back into block1, I can see if the IF statement was executed by seeing if it was extracted to block1. I'll also have to change etc/mountpoints once testing is actually finished.
One more question since you're so quick. I think I have everything working, except it needs a reboot in between the fdisk and mke2fs commands to reload the partition table. I'm trying to use partprobe instead of rebooting, but it hasn't been cross compiled to work on Android, AFAIK. Have you seen a way to reload the MBR without rebooting?

msticninja said:
I know, that's my current data partition, I'll change it once I'm done testing. The tar file just has a test file in it, so when I boot back into block1, I can see if the IF statement was executed by seeing if it was extracted to block1. I'll also have to change etc/mountpoints once testing is actually finished.
One more question since you're so quick. I think I have everything working, except it needs a reboot in between the fdisk and mke2fs commands to reload the partition table. I'm trying to use partprobe instead of rebooting, but it hasn't been cross compiled to work on Android, AFAIK. Have you seen a way to reload the MBR without rebooting?
Click to expand...
Click to collapse
I'v been looking at the recovery_lib.sh in the recovery boot image and can't find anything special to re-read the partition table. And yes they also use fdisk to repartition. So I suspect the driver for the block device does not cache the MBR and you can just mke2fs after the partition table is created.
I can't remember from what firmware that recovery boot image was but I think it's from the 2.1.04 and they do some repartitioning there for the swap space.
I'll check it again and get back to you.

wdl1908 said:
I'v been looking at the recovery_lib.sh in the recovery boot image and can't find anything special to re-read the partition table. And yes they also use fdisk to repartition. So I suspect the driver for the block device does not cache the MBR and you can just mke2fs after the partition table is created.
I can't remember from what firmware that recovery boot image was but I think it's from the 2.1.04 and they do some repartitioning there for the swap space.
I'll check it again and get back to you.
Click to expand...
Click to collapse
I just checked the recovery image from 2.1.04 and after the fdisk commands there is nothing to re-read the MBR the next commands executed are mount commands to check if the fs is present I suggest you look at the /etc/scripts/recovery_lib.sh yourself it could give some clues on how to do things.

wdl1908 said:
I just checked the recovery image from 2.1.04 and after the fdisk commands there is nothing to re-read the MBR the next commands executed are mount commands to check if the fs is present I suggest you look at the /etc/scripts/recovery_lib.sh yourself it could give some clues on how to do things.
Click to expand...
Click to collapse
For me too, it have nothing to do with a reboot to load partitions table and access partition to format them with the choised filesystem.
You can delete any partition on linux (except rootfs one ), recreate them and directly format them as you like, reboot isn't necesary.

Thanks for all the replies, very helpful, but I'm stuck. Fdisk seems to use ioctl to reload the partition table, so you don't need a reboot if everything on the device is unmounted before writing the partition table, but I'm having very strange issues with mke2fs now. I've had the whole thing work twice now, but when I flash back to stock, then retry the script, it usually does everything except the formatting. Here's the code:
Code:
mount /dev/mmcblk1p1 /tmp/mnt
if [ -f /tmp/mnt/mysticfw.tar.gz ]; then
umount /dev/mmcblk0p1
umount /dev/mmcblk0p2
umount /dev/mmcblk0p3
umount /dev/mmcblk0p4
fdisk /dev/mmcblk0 < /home/fdisk.input
mv /tmp/mnt/mysticfw.tar.gz /tmp/mnt/mysticf.tar.gz
sync
umount /tmp/mnt
log_and_reboot
fi
if [ -f /tmp/mnt/mysticf.tar.gz ]; then
rm /etc/mtab
touch /etc/mtab
mke2fs -T ext4 -O ^huge_file /dev/mmcblk0p2
mount /dev/mmcblk0p2 /tmp/tmproot
tar -xzf /tmp/mnt/mysticf.tar.gz -C /tmp/tmproot/
sync
mv /tmp/mnt/mysticf.tar.gz /tmp/mnt/mysticdone.tar.gz
umount /tmp/tmproot
rm /etc/mtab
ln -s /proc/mounts /etc/mtab
fi
sync
umount /tmp/mnt
I have it reboot after the fdisk just in case, and the fdisk works perfectly, so the second IF/THEN is the issue. I had to retouch the mtab just to make sure it's empty, as mke2fs fails if mtab doesn't exist(at least in terminal), then I relink it to /proc/mounts as they do in the stock firmware. Here's my mke2fs.conf:
Code:
[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
}
ext4dev = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
}
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
floppy = {
blocksize = 1024
inode_size = 128
inode_ratio = 8192
}
news = {
inode_ratio = 4096
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
largefile4 = {
inode_ratio = 4194304
blocksize = -1
}
hurd = {
blocksize = 4096
inode_size = 128
}
Is there a way to echo the output from my script to a file like dontpanic so I can see what the error is?

msticninja said:
Is there a way to echo the output from my script to a file like dontpanic so I can see what the error is?
Click to expand...
Click to collapse
Simple append (">>") and "echo" doesn't work to a redirected logfile?

I've only learned what I've needed to learn over the years, usually with endless google searches and reading through man pages, so I've never tried to log outputs, because I could always see the output in a terminal or onscreen during boot. Android is the first time I haven't been able to actually see the boot process.
Once again, thanks for your help. I probably could've googled this, but I kind of asked as an afterthought. I didn't even think about redirecting. So if the mke2fs line is the one I want to log, I just add "2&>> /tmp/mnt/logfile" to the end of it, right?
Also, thanks for your original thread about booting from Internal Storage, I never got around to developing on Android until you posted that, and I realized just how similar Android is to L/unix(e.g. exactly the same).

msticninja said:
I didn't even think about redirecting. So if the mke2fs line is the one I want to log, I just add "2&>> /tmp/mnt/logfile" to the end of it, right?
Click to expand...
Click to collapse
ehm, no.
In your case must be like the following:
Code:
"your command" >> /tmp/mnt/logfile 2>&1
That means redirect all messages from STDERR (2 - standard error) to STDOUT (1 - standard output) and all messaged collected on STDOUT to the redirected log file /tmp/mnt/logfile, or more comprensible redirect all mesage including error ones to the log file.
I'm working in Unix environments and use them often
And a good practice in developing is to use "echo" to the same log file, so you know the exact place the script is running, like:
Code:
echo "I'm just before the formatting step of the ..." >> /tmp/mnt/logfile

shklifo said:
ehm, no.
In your case must be like the following:
Code:
"your command" >> /tmp/mnt/logfile 2>&1
That means redirect all messages from STDERR (2 - standard error) to STDOUT (1 - standard output) and all messaged collected on STDOUT to the redirected log file /tmp/mnt/logfile, or more comprensible redirect all mesage including error ones to the log file.
I'm working in Unix environments and use them often
And a good practice in developing is to use "echo" to the same log file, so you know the exact place the script is running, like:
Code:
echo "I'm just before the formatting step of the ..." >> /tmp/mnt/logfile
Click to expand...
Click to collapse
Strange. The google searching lead me to believe the "2>&1" was before the location, and replaced ">>". Once again, thanks for the help.

any chance of you getting this uploaded? iterested in this since I'm not that good with linux

TjaXanK said:
any chance of you getting this uploaded? iterested in this since I'm not that good with linux
Click to expand...
Click to collapse
I could probably finish it, but I'm waiting for a new version of Uruk first, as his install script already gets rid of the linux steps, it just doesn't give you the choice to install to the internal memory yet. Once he does that, I'll add my changes to make it install to the Archos partition. The latest Uruk is also a bit too big for the archos partition. I had to cut my data partition down to ~150 megs.

msticninja said:
I could probably finish it, but I'm waiting for a new version of Uruk first, as his install script already gets rid of the linux steps, it just doesn't give you the choice to install to the internal memory yet. Once he does that, I'll add my changes to make it install to the Archos partition. The latest Uruk is also a bit too big for the archos partition. I had to cut my data partition down to ~150 megs.
Click to expand...
Click to collapse
ok, I'm currently running urk with the new install system and it's brillant but it would be perfect if we could run it without cutting down on our storage space

Related

[W-I-P][DEVELOPMENT] Dual / Multi Boot Project: Devs Only

{ LONG POST WARNING }
{ NOT FULLY WORKING YET}
{ NEEDS A LOT OF FURTHER DEVELOPMENT }
Hey everyone I had thought of making this Dual Booting system work along side recovery… because initially (with FreeX10-alpha) it was not possible to have both recovery & dual boot...
Thank you zdzihu & jerpelea for your great work on FreeX10-alpha, which booted off SDCARD… I got inspiration to try and make this work for FreeX10-beta4 based on the amazing work that u guys did! Thank you jerpelea for all your feedback on my repeated messages when I was testing this a few months back (hope I didn’t bother u too much with questions )...
zdzihu & jerpelea u are truly LEGENDS!!!
[This is just my personal opinion] Really hoping that some devs can take interest in this to provide compatible files (ramdisks, system files) for this to work… may be as an add-on to their main roms… please don’t keep bothering devs to create ramdisks for booting off SDCARD… they are already very busy trying to make our X10 better with faster and stable ROMS/MODS/etc… this is just an additional feature…
The basic idea was to use the chargemon booting scripts provided in FreeX10-alpha and to try and make FreeX10-beta4 to boot off SDCARD…
Initially I used the img files which came with FreeX10-alpha and wiped the image to then put FreeX10-beta4 on it… while doing so I realized that all of the symbolic links were not getting copied correctly (obviously)… so I started from scratch with blank ext2fs images…
Later I thought of using clean/base nandroid/recovery backups as they are already working/preconfigured system of FreeX10-beta4…
Following is a small How-To on converting NANDROID/RECOVERY images (with yaffs fs) to ext2 fs images keeping the symlinks intact!!
I have used Ubuntu for these steps.
I have attached blank_files.7z which contains precompiled ext2fs images:
system.img [size: 256 MB]
data.img [size: 512 MB]
cache.img [size: 128 MB]
To resize or create newer ext2fs images:
[APP] Windows: Create Your Own Data.img Maker Application, +/- From Existing data.img
U can use the commands provided there even in linux to create/resize these images...
We will keep the NANDROID images at:
Code:
/home/user/nandroid_imgs/test1/
and EXT2 FS images at:
Code:
/home/user/ext2fs_imgs/test1/
while temporary mounts points will be made at:
Code:
/home/user/mntpts/
We will be using unyaffs from here:
[How-To] Extracting/Accessing Recovery/Nandroid backup (.img) files
Extracting files from the nandroid/recovery backups:
Code:
cd /home/user/nandroid_imgs/test1
mv system.img /home/user/nandroid_imgs/test1/system/
cd /home/user/nandroid_imgs/test1/system/
sudo unyaffs system.img
mv system.img ../.
mv data.img /home/user/nandroid_imgs/test1/data/.
cd /home/user/nandroid_imgs/test1/data/
sudo unyaffs data.img
mv data.img ../.
mv cache.img /home/user/nandroid_imgs/test1/cache/
cd /home/user/nandroid_imgs/test1/cache/
sudo unyaffs cache.img
mv cache.img ../.
Loop mounting ext2 fs files:
Code:
sudo mount -t ext2 -o loop,rw,noatime,nodiratime /home/user/ext2fs_imgs/test1/system.img /home/user/mntpts/system/
sudo mount -t ext2 -o loop,rw,noatime,nodiratime,nosuid,nodev /home/user/ext2fs_imgs/test1/data.img /home/user/mntpts/data/
sudo mount -t ext2 -o loop,rw,noatime,nodiratime,nosuid,nodev /home/user/ext2fs_imgs/test1/cache.img /home/user/mntpts/cache/
Recursively copy all files (preserving symlinks) from extracted yaffs images to mount points
Code:
sudo cp -r -p /home/user/nandroid_imgs/test1/system/* /home/user/mntpts/system/.
sudo cp -r -p /home/user/nandroid_imgs/test1/data/* /home/user/mntpts/data/.
sudo cp -r -p /home/user/nandroid_imgs/test1/cache/* /home/user/mntpts/cache/.
Unmount the mounts:
Code:
sudo umount /home/user/mntpts/system/
sudo umount /home/user/mntpts/data/
sudo umount /home/user/mntpts/cache/
Ok now that the ext2fs iamges are populated with working files copy them onto SDCARD…
I have placed it at:
Code:
/sdcard/FreeX10
lets move on to the chargemon script...
This is, as of now, based off xRecovery chargemon (modified from FreeX10-alpha)
Code:
#!/system/bin/busybox sh
# modified chargemon for recovery + dual boot from NAND/SDCARD
/system/bin/charger
cat /dev/input/event2 > /dev/keycheck&
sleep 3
kill -9 $!
# intact recovery
if [ -s /dev/keycheck ]
then
# remount rootfs rw
mount -o remount,rw rootfs /
# Umount MTDs
umount -l /data
umount -l /cache
# Extract recovery
cd /
rm -r /sbin
rm -f etc
tar -xf /system/bin/xrecovery.tar
# Umount system
umount -l /system
chroot / /init
fi
echo "check if reboot into SDCARD OS was called"
if [ -e /data/local/tmp/rebootsdcardos ]
then
echo "Booting from SDCARD!"
# FreeX10-alpha code follows with slight modifications!!!
# remount rootfs rw
mount -o remount,rw rootfs /
busybox chmod 0777 /dev -R
busybox chown 0.2000 /dev/oncrpc -R
rm -r /sdcard
cd /
mkdir sd
chmod 777 sd
rm init*
rm logo.rle
rm default.prop
tar -xf /system/bin/sdcardos_ramdisk.tar
# Umount system,data,cache
umount -l /system
umount -l /data
umount -l /cache
# Check and mount SD Card
dosfsck -y /dev/block/mmcblk0p1
sleep 5
mount -t vfat -o rw,noatime,nodiratime /dev/block/mmcblk0p1 /sd
sleep 5
# Mount system and data ext2 images
losetup /dev/block/loop1 /sd/FreeX10/system.img
sleep 5
losetup /dev/block/loop2 /sd/FreeX10/data.img
sleep 5
losetup /dev/block/loop3 /sd/FreeX10/cache.img
sleep 5
e2fsck -y /dev/block/loop1
e2fsck -y /dev/block/loop2
e2fsck -y /dev/block/loop3
mount -t ext2 -o rw,noatime,nodiratime /dev/block/loop1 /system
sleep 5
mount -t ext2 -o rw,noatime,nodiratime,nosuid,nodev /dev/block/loop2 /data
sleep 5
mount -t ext2 -o rw,noatime,nodiratime,nosuid,nodev /dev/block/loop3 /cache
sleep 5
# zdzihu: hack-fix
if [ -e /data/data/com.android.providers.telephony/databases/telephony.db ]; then
/system/bin/chroot / /init
exit
fi
# Chroot :)
chroot / /init
# jump out of chargemon to skip NAND booting
exit
fi
echo "Booting from NAND!"
# remount rw
mount -o remount,rw rootfs /
cd /
rm -r /sdcard
rm init*
rm logo.rle
rm default.prop
tar -xf /system/bin/ramdisk.tar
# zdzihu: hack-fix
if [ -e /data/data/com.android.providers.telephony/databases/telephony.db ]; then
/system/bin/chroot / /init
exit
fi
chroot / /init
Recovery is intact so u can get into recovery the normal way… (press/tap back key after seeing SE text logo)
OS on NAND (normal system on MTD) will boot by default…
To reboot into OS on SDCARD issue the following commands in terminal emulator/adb shell:
Code:
touch /data/local/tmp/rebootsdcardos
reboot
NOW the OS should start booting off the SDCARD…
It completes commands in chargemon and then BootAnimation can be seen…
BUT HERE IS THE PROBLEM!
Check LOGCAT here: http://www.mediafire.com/?phxm3uqzp0dzzhb
here is wht J had to say:
jerpelea said:
as you can see in logcat
1.your prelink is not ok
2.you don't have something ok in initrd
3.you dont have all permisions ok on data
Click to expand...
Click to collapse
From my limited understanding we yet have to make a proper ramdisk (sdcardos_ramdisk.tar)… I feel the init.rc file has to be changed especially the following line (based off FreeX10-beta4 ramdisk):
Code:
mount yaffs2 [email protected] /system rw remount
mount yaffs2 [email protected] /data nosuid nodev
mount yaffs2 [email protected] /cache nosuid nodev
As for Multi-Booting:
We can keep adding different sections to chargmeon:
Code:
/data/local/tmp/rebootsdcardos1
/data/local/tmp/rebootsdcardos2
etc…
OR
possible solution for having both recovery and dual boot
and similarly keep adding ramdisks in NAND /system:
Code:
sdcardos1_ramdisk.tar
sdcardos2_ramdisk.tar
etc
So we can have as many OS/ROMs on SDCARD as u have free space… though we need to make specific ramdisks for each…
Hope this was slightly useful… and waiting for feedback from advance users on how we can get this working....
Lol, you're working very hard Doom! Keep going!
Doom! You are making enormous progress and helping a lot with Other Devs.
A Combination of a good rom and one of these additional Dual Boot would make x10 better than any Android mobile SE could deliver.
Thank you and I really pray to give SE a run for their money!
for someone thats always saying hes not a developer you sure as hell seem to know what your doing!
Keep up the great work, i hope to see this working flawlessly that would be awesome to be able to dual boot.
Whats the next steps in the project?
BULL3TPR00F said:
for someone thats always saying hes not a developer you sure as hell seem to know what your doing!
Keep up the great work, i hope to see this working flawlessly that would be awesome to be able to dual boot.
Whats the next steps in the project?
Click to expand...
Click to collapse
well i am not exactly a ROM developer and dont know much about how to compile libs/sources/etc...
next step is that we need to make compatible system files & ramdisk (init.rc) for dual booting
DooMLoRD said:
well i am not exactly a ROM developer and dont know much about how to compile libs/sources/etc...
next step is that we need to make compatible system files & ramdisk (init.rc) for dual booting
Click to expand...
Click to collapse
You may not be a rom developer but your an amazing commited x10 modder
Sent from my X10i TripNMiUI using XDA App
DooMLoRD said:
well i am not exactly a ROM developer and dont know much about how to compile libs/sources/etc...
next step is that we need to make compatible system files & ramdisk (init.rc) for dual booting
Click to expand...
Click to collapse
I am also excited buddy..... Once i get through my experiments i will surely like to focus on this as this will allow us to have more then one version of ROM on one machine.
Based on your first post
all i can get is we are getting the boot animation but not going after that.
i would suggest following things based on my experiments with ubuntu work.
use loops above 10 coz i suspect some loops are already in use during my ubuntu boot i am watching that loop7 is already created so i would suggest avoiding it.
also as we have been adding debug "we have reached here" style code can we do the same here that might help us.
also can we find any debug-able place i mean place where we can track the progress to get the position inside the rom so that we can understand except logcat where we are.
any progress or hurdles buddy.....
i am eager to test this .....
anantshri said:
any progress or hurdles buddy.....
i am eager to test this .....
Click to expand...
Click to collapse
sorry man havent had time to do any further testing for this... have been very busy with some personal work and kernel manager scripts...
DooMLoRD said:
sorry man havent had time to do any further testing for this... have been very busy with some personal work and kernel manager scripts...
Click to expand...
Click to collapse
Keep up the good Work Doom. ! and thx for your work
Sorry if its no help but there's a thread in the x10 mini pro section
http://forum.xda-developers.com/showthread.php?t=1084555
Sent from my SEX10 using XDA App
These are great news, keep on developing!
sent from my x10i with wolfbreaks CM 6.1.3 v006 undervolted, bb67
rtblittlebrown said:
Sorry if its no help but there's a thread in the x10 mini pro section
http://forum.xda-developers.com/showthread.php?t=1084555
Sent from my SEX10 using XDA App
Click to expand...
Click to collapse
they have posted exactly the same thing!
read my 1st post in this thread and then read the first few posts there
Ohk so since we now have one more option in Xrecovery i am back to my old suggestion.
however this time i will post my thought out in open so that if someone has required skills and time then they can work on .
I have an idea of using xrecovery as a boot menu.
process would be
1) Xrecovery to start everytime. (this needs some consideration.)
2) To have a timeout value if any key pressed before that then remain in menu otherwise boot to the os.
3) inside menu we should have options of all O.S. / ROM (os coz my intention are to run linux off dualboot) available with selection options.
4) ON selection it will just be the same procedure as already using in xrecovery 1.0 to handover the command to a script. and let it load.
5) boot menu if possible could be controlled by an outside file which we can edit just like grub.conf in linux.
Note : This will requires good understanding of booting process of X10i and c skills as xrecovery is written in complete c.
anantshri said:
Ohk so since we now have one more option in Xrecovery i am back to my old suggestion.
however this time i will post my thought out in open so that if someone has required skills and time then they can work on .
I have an idea of using xrecovery as a boot menu.
process would be
1) Xrecovery to start everytime. (this needs some consideration.)
2) To have a timeout value if any key pressed before that then remain in menu otherwise boot to the os.
3) inside menu we should have options of all O.S. / ROM (os coz my intention are to run linux off dualboot) available with selection options.
4) ON selection it will just be the same procedure as already using in xrecovery 1.0 to handover the command to a script. and let it load.
5) boot menu if possible could be controlled by an outside file which we can edit just like grub.conf in linux.
Note : This will requires good understanding of booting process of X10i and c skills as xrecovery is written in complete c.
Click to expand...
Click to collapse
point no.1 is easy... not an issue..
abt point 2 i think that too would be possible... a while loop with sleep function & wait for input/keppress
pt3 the newer xrecovery v1.0.0 already has something similar may be we can look into it to add "Boot NAND system" as first option
point no. 5 if possible WILL BE BRILLIANT!!!
@anantshri
dude may be these guys can help us:
http://forum.xda-developers.com/showpost.php?p=14354231&postcount=49
DooMLoRD said:
they have posted exactly the same thing!
read my 1st post in this thread and then read the first few posts there
Click to expand...
Click to collapse
Oops sorry..
Sent from my SEX10 using XDA App
rtblittlebrown said:
Oops sorry..
Sent from my SEX10 using XDA App
Click to expand...
Click to collapse
no dude thanks for the info... i have already contacted those guys for help... lets see may be they can help us out to get this working!!!
dual boot hint by Z
http://forum.xda-developers.com/showthread.php?t=1107111
something related

ext2 support?

Specifically, what do I need to install on my gtab so that it can read an sdcard formatted to ext2?
I've already installed Clockworkmod and Vegan-Tab Ginger. Maybe I need a different kernel too? I know very little about kernels - Are they device specific? Are they interchangeable? Can I change the kernel without wiping my files?
Has anyone ever had success with ext2 on the gtab?
deadfraggle said:
Specifically, what do I need to install on my gtab so that it can read an sdcard formatted to ext2?
Click to expand...
Click to collapse
Nothing.
I know very little about kernels - Are they device specific?
Click to expand...
Click to collapse
They have to be--that's their function after all.
Are they interchangeable?
Click to expand...
Click to collapse
They should be. For the gTablet, you can use either the Clemsyn or Pershoot kernels. Both have native extn support.
Can I change the kernel without wiping my files?
Click to expand...
Click to collapse
Yes.
Has anyone ever had success with ext2 on the gtab?
Click to expand...
Click to collapse
ext2/3/4 are all natively supported by the linux kernel, and issuing a mount command will work if you do it on the command line. However, the automounter program, called vold, likes to have ext4 or VFAT (aka FAT32) filesystems on the SD card. If your ext2 formatted SD card is not automatically mounted, format it again as ext4.
Formatted the sdcard to ext4, but still cannot read anything off it.
As for mounting through the terminal, if I use
fdisk -l
it shows nothing, not even an error. Is there another way to list disks so I know what to mount?
What I'm trying to do is use the Debian installer for Android, but the only version I could find is 2 years old. It's probably based on Lenny or earlier which does not have native ext4 support.
deadfraggle said:
Formatted the sdcard to ext4, but still cannot read anything off it.
Click to expand...
Click to collapse
What ROM are you on? Are you running Android or something else?
As for mounting through the terminal, if I use
fdisk -l
it shows nothing, not even an error. Is there another way to list disks so I know what to mount?
Click to expand...
Click to collapse
Code:
$ su
# /system/xbin/fdisk -l /dev/block/mmcblk3
Disk /dev/block/mmcblk3: 16.0 GB, 16097738752 bytes
255 heads, 63 sectors/track, 1957 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk3p1 1 1709 13720703 c Win95 FAT32 (LBA)
/dev/block/mmcblk3p2 1709 1958 1999744+ 83 Linux
Use /dev/block/mmcblk2 for the external SD card. Mount it as:
Code:
$ su
# mount /dev/block/mmcblk2p1 /some/path
or
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /some/path
rajeevvp said:
What ROM are you on? Are you running Android or something else?
Click to expand...
Click to collapse
Vegan-Tab Ginger edition
rajeevvp said:
Code:
$ su
# /system/xbin/fdisk -l /dev/block/mmcblk3
Click to expand...
Click to collapse
This gives me similar results to yours.
rajeevvp said:
Use /dev/block/mmcblk2 for the external SD card. Mount it as:
Code:
$ su
# mount /dev/block/mmcblk2p1 /some/path
Click to expand...
Click to collapse
My result:
Code:
$ su
# mount /dev/block/mmcblk2p1 /micro
mount: mounting /dev/block/mmcblk2p1 on /micro failed: No Such file or directory
Also tried
mount /dev/block/mmcblk2p2 /micro
with the same result.
rajeevvp said:
or
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /some/path
Click to expand...
Click to collapse
My result:
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /micro
mount: mounting /dev/block/mmcblk2p2 on /micro failed: No Such file or directory
Edit:
If I insert a ext2 formatted sdcard, I get a notice that it is being scanned for errors. It goes away after a minute or so.
If I go to /sdcard2 in Root Explorer, the folder is empty but the stats show a correct 2 gb of used space and the correct amount of free space.
(Also in Root Explorer, if I try to create a test file, it says 'successful' but no file is created.)
If someone here owns a gtab and can access a ext2/4 sdcard, please let me know what setup/Rom you are using. Or if you own an extra sdcard you can format to ext2, and use some other aftermarket ROM/different kernel on your gtab, please test and post your results.
The commands I gave were just examples, you'll have to adjust them to suit your system.
deadfraggle said:
If I insert a ext2 formatted sdcard, I get a notice that it is being scanned for errors. It goes away after a minute or so.
Click to expand...
Click to collapse
That looks like the correct behaviour. The external SD card is being fsck'd and then automounted.
If I go to /sdcard2 in Root Explorer, the folder is empty but the stats show a correct 2 gb of used space and the correct amount of free space.
Click to expand...
Click to collapse
This, again, is correct, except that on a newly created filesystem, Root Explorer should've shown a lost+found directory.
(Also in Root Explorer, if I try to create a test file, it says 'successful' but no file is created.)
Click to expand...
Click to collapse
Reformat the filesystem again and try creating a file using the command line:
Code:
$ su
# echo test > /mnt/sdcard2/test.txt
# cat /mnt/sdcard2/test.txt
test
#
My external SD card is formatted as ext3 and I have no problem using Root Explorer. With other file managers, you'll have to be careful because of the standard Unix permissions that come into effect on all extn filesystems. If you want to use file managers other than Root Explorer, just create a new directory on your ext2 filesystem and give that directory a user of "system" and a group of "sdcard_rw", and give (at least) the group "rwx" permissions. Use the user, group and permissions of the /mnt/sdcard directory as a guide:
Code:
$ ls -ld /mnt/sdcard
d---rwxr-x 22 system sdcard_rw 8192 Jan 1 1970 /mnt/sdcard
$ su
# mkdir /mnt/sdcard2/user-dir
# chmod 0775 /mnt/sdcard2/user-dir [I]#or 0075 to exactly match /mnt/sdcard[/I]
# chown system.sdcard_rw /mnt/sdcard2/user-dir
If you don't want to bother with all this, just format the SD card as VFAT, and Android will automatically mount the VFAT filesystem with an owner of "system" and a group of "sdcard_rw". And since (all?) file managers belong to the "sdcard_rw" group, they get automatic read-write permissions to that filesystem. BTW, the Terminal Emulator app also belongs to the "sdcard_rw" group, so you can freely write onto VFAT formatted SD cards on the command line without resorting to the 'su' command (the example above).
Granted, it's been a while since I researched this - but I learned many months ago that the version of VOLD in Froyo does not support anything else but vFAT - so it just won't mount EXT2, or NTFS for that matter.
the mount command would bypass VOLD and we know that NTFS should work, if it's a custom kernel. Conceivably EXT2 should also work, but since it was all manual scripting I just stopped researching it - mainly because I'd still have issues using the card with other devices so it wouldn't really be a portable solution anymore.
As much as I detest FAT32 for its file size limitations, it's still the "standard" between portable devices. The various vendors have yet to figure out a replacement, since they can't seem to agree on anything.
rajeevvp said:
My external SD card is formatted as ext3 and I have no problem using Root Explorer.
Click to expand...
Click to collapse
Figures. Never tried ext3, mainly because it's not a readily available option in Ubuntu. Tried to format to ext3 via the terminal but got a weird error, even after unmounting the drive:
"/dev/sdb is apparently in use by the system; will not make a filesystem here!"
So I booted in to Parted Magic with my netbook, wiped the sdcard, and created a new ext3 partition.
Success!!
The sdcard auto-mounts, and is accessible by Root Explorer, ES File Explorer and File Manager.
Ext3 will suit my purposes just fine. Sorry to make you write all the rest of your post, but it will be a handy reference.
Thank you a million times over!
@ roebeet
I'm humbled this post got your attention. Thanks for the great work!
deadfraggle said:
Figures. Never tried ext3, mainly because it's not a readily available option in Ubuntu.
Click to expand...
Click to collapse
The ext3 format was the default filesystem of Ubuntu, until just recently. It is generally considered better to use ext2 on a SD card. Since a SD card has a limited number of read/writes, a journaling filesystem like ext3/ext4 would use up the limited number of read/writes faster than using ext2. Also, never create a swap partition on a flash drive or SD card.
To format a SD card in Ubuntu, first determine the device name:
Code:
[email protected]:~$ sudo fdisk -l
[sudo] password for paul:
Disk /dev/sda: 64.6 GB, 64609058816 bytes
255 heads, 63 sectors/track, 7854 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000d996
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3890 31246393+ 83 Linux
/dev/sda2 3891 7854 31840830 83 Linux
Disk /dev/sdb: 16.4 GB, 16437477376 bytes
255 heads, 63 sectors/track, 1998 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b3366
Device Boot Start End Blocks Id System
/dev/sdb1 1 1998 16048903+ 83 Linux
My EEEPC has a 64 GB hard drive, and a 16 GB SDHC card. So the card I want to format is /dev/sdb1. Use fdisk again for the formatting, here are the steps copied directly from my terminal:
Run commands with root privileges (sudo).
Find the disk:
# sudo fdisk -l
Format the disk (sdb1):
# sudo fdisk /dev/sdb1
Command (m for help):d (delete any existing partitions)
Command (m for help):n (create a new partition)
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
Command (m for help):w (to write the changes to the disk)
Format the card. You may need to unmount it first:
# sudo umount /dev/sdb1
# sudo mkfs -t ext3 /dev/sdb1

[Q] System.img Editing Dev Help

Hi all,
im working on making a ROM for the Asus Transformer and im struggling a bit. im totall new to Linux, using mint and just getting used to it.
Basically im just trying to take a stock ROM and add root but adding superuser.apk and SU binary but im running into problems.
Asus Roms are a bit unusual, packed into blob files, ive unpacked that no problem, the system image is called blob.APP but its just the same as system.img just the name as i understand it.
ok so what ive done:
Code:
mkdir system
sudo mount -t ext4 -o loop blob.APP system/
so this mounts the ext4 fs as a loop device and allows me to copy the contents out
Code:
sudo cp -ar system new_system
then ive copied superuser.apk to /app and SU binary to /dev with drop and drag.
then make the filesystem image
Code:
sudo ./make_ext4fs -l 512m -a system blob.APP new_system/system
then just pack it up and flash it, flashing works fine, no errors but when i go to reboot it warns that theres no OS so somethings not worked. ive tried everything i can find googeling!
i just started learning linux on weds so go easy on me
any advice or help would be really great. thanks!
mkdir system here you will mount the old system
mkdir system_new here you will mount the new system
we now create the actual image
dd if=/dev/zero of=system_new.img bs=4k count=60000
bs=4k is the block size
count=60000 the number of blocks of 4kb size
so is something like 60000*4= 240000 which is actually 240 Mb
so it depends to you how big you want the image.
now we format the system.img in ext4
mkfs.ext4 system_new.img
Proceed anyway? (y,n) y
now we override the filesystem check
tune2fs -c0 -i0 system_new.img
Now we mount the the 2 directories that we created in the first step
mount -o loop system_new.img system_new/
mount -o loop system_new.img system/
Now we copy the contet of the old image to the new one with all the perimissions
cp -v -r -p system/* system_new/
We sinc the files
sync
We unmount the partitions
umount system_new/
umount system/
And voila, the system.img in ext4 is created.
Tips: you will need superuser acces.
if you will copy new files besides the ones from the old system you will have to set by hand all the permissions.
If you are using ubuntu just type
sudo su
and you will be root and no more sudo at each command.
Thank u so much for your guide this is exactly what I'm looking for so massive thanks!
So to add root I.can drop and drag superuser.apk and the binary into the new image?
Also do I need to worry about the android mountpoint?
Sent from my HTC Sensation Z710e using xda premium
yes you can do that, as long as you set the permissions right. (you can google for them)
and from what i remeber you will have to set also the ownership of the su, and superusers files
you need to do tests first, and then try
the mountpoint should be ok as it is now.
globula_neagra said:
mkdir system here you will mount the old system
mkdir system_new here you will mount the new system
we now create the actual image
dd if=/dev/zero of=system_new.img bs=4k count=60000
bs=4k is the block size
count=60000 the number of blocks of 4kb size
so is something like 60000*4= 240000 which is actually 240 Mb
so it depends to you how big you want the image.
now we format the system.img in ext4
mkfs.ext4 system_new.img
Proceed anyway? (y,n) y
now we override the filesystem check
tune2fs -c0 -i0 system_new.img
Now we mount the the 2 directories that we created in the first step
mount -o loop system_new.img system_new/
mount -o loop system_new.img system/
Now we copy the contet of the old image to the new one with all the perimissions
cp -v -r -p system/* system_new/
We sinc the files
sync
We unmount the partitions
umount system_new/
umount system/
And voila, the system.img in ext4 is created.
Tips: you will need superuser acces.
if you will copy new files besides the ones from the old system you will have to set by hand all the permissions.
If you are using ubuntu just type
sudo su
and you will be root and no more sudo at each command.
Click to expand...
Click to collapse
U said, we have to set permissions by ourselves. So what are the permissions that needs to be set when I add a new folder with an APK in it?
Sudo chmod 777 filepath/filename.apk
Sudo chmod a-rwx filepatch/filename.apk.
This is what I remember from top of my head. Google it a bit if it does not work from the first try as I have not used this like in 5 years.
If you allready have root you can you a file manager and just copy the file/folder where you want and set the permissions via thw file manager or using terminal commanda or via adb.
From what remember you can t make a folder in the apk folder as you won t be able to run the apk.

mmcblk1p1 access from initrd

Hi,
I wish to perform a read/write to /dev/block/mmcblk1p1 from the initrd stage of the booting sequence on my SGS III.
I've managed to unpack the boot.img, add some shell code to /sbin/init and re-pack the image and flash it to my device.
but when i try to access the mmcblk1p1 (the external sd, which is of course present) it seems that the write fails. i tried the most simple procedure:
Code:
echo "hello world" > /dev/block/mmcblk1p1 # shuld write to the first sector.
or
Code:
mkdir /mysd
mount -t vfat /dev/block/mmcblk1p1 /mysd
echo "hello world" > /mysd/test.txt # should create a file on the sd card.
umount /mysd
but non seems to work.
with the second code i actually managed to create a test.txt with with "hello world" into the internal sd "/" partition.
as well I've added mknod and created the mmcblk1p1 file descriptor. i think I've might need to add something to the fstab file.
many thanks.
Another try :angel:

[SOLVED] Missing apps after reboot - Apps linked to SD card (Link2SD)

Hello!
I linked some apps to SD card second partition with Link2SD app.
After restarting my device the linked apps were missing.
I used the quick reboot feature, which fixed the problem temporary.
Do I really have to quick reboot my phone after every reboot to access the linked apps or is there a way to fix this problem?
write your own mount script.
aIecxs said:
write your own mount script.
Click to expand...
Click to collapse
I don't know how to, but I found the file which has the problem.
What should I make writeable: Group/Global?
Is it safe to change those settings?
Sorry, I'm a noob
get yourself a root explorer and find the /data/adb/service.d directory. there should be mount script for Link2SD. please show the contents of this file.
aIecxs said:
get yourself a root explorer and find the /data/adb/service.d directory. there should be mount script for Link2SD. please show the contents of this file.
Click to expand...
Click to collapse
I found the folder, but it's empty.
okay then create one. set permissions executable. replace mmcblk1p2 with proper partition.
/data/adb/service.d/40link2sd
Bash:
#!/system/bin/sh
test -d /data/sdext2 || exit 1
umount -l /data/sdext2
until grep -q /data/sdext2 /proc/mounts; do
mount -t ext4 -o rw,nosuid,nodev,noatime,nodiscard /dev/block/mmcblk1p2 /data/sdext2
sleep 1
done &
edit: fixed typo: grep (missing file name)
aIecxs said:
okay then create one. set permissions executable. replace mmcblk1p2 with proper partition.
/data/adb/service.d/40link2sd
Bash:
#!/system/bin/sh
test -d /data/sdext2 || exit 1
umount -l /data/sdext2
until grep -q /data/sdext2; do
mount -t ext4 -o rw,nosuid,nodev,noatime,nodiscard /dev/block/mmcblk1p2 /data/sdext2
sleep 1
done &
Click to expand...
Click to collapse
Thanks for your help, but as I said I'm a beginner so there are a few things I don't understand.
- What is the extension of the file?
- How to exactly set the RWX settings?
- Should I put a space after mmcblk1p2, then type ext4?
no suffix. like in your screenshot. spaces matter.
aIecxs said:
no suffix. like in your screenshot. spaces matter.
Click to expand...
Click to collapse
space matter. Like this?
/dev/block/mmcblk1p2 ext4/data/sdext2
no. exactly as in post #6
aIecxs said:
no. exactly as in post #6
Click to expand...
Click to collapse
you said replace mmcblk1p2. what does that mean? how to?
check cat /proc/partitions from terminal which is the 2nd partition of your MicroSD card. if you did not create 2nd partition yet, will tell you.
aIecxs said:
check 'cat /proc/partitions' which is the 2nd partition of your MicroSD card. if you did not create 2nd partition yet, will tell you.
Click to expand...
Click to collapse
i have the second partition, but what do you mean replace mmcblk1p2 ?
which is the block device name of your second partition?
aIecxs said:
which is the block device name of your second partition?
Click to expand...
Click to collapse
ext4? im not sure if you meant that
get a terminal emulator app (or connect phone to PC adb shell) and check the output of following command:
Code:
cat /proc/partitions
aIecxs said:
get a terminal emulator app (or connect phone to PC adb shell) and check the output of following command:
Code:
cat /proc/partitions
Click to expand...
Click to collapse
if your 2nd partition is mmcblk1p2 then just mount /dev/block/mmcblk1p2 as in post #6 (nothing to replace)
aIecxs said:
if your 2nd partition is mmcblk1p2 then just mount /dev/block/mmcblk1p2 as in post #6 (nothing to replace)
Click to expand...
Click to collapse
How can I check that? I dont understand the output of the command
you can double check first partition with grep /dev/block/vold /proc/mounts
Code:
:/ $ grep /dev/block/vold /proc/mounts
/dev/block/vold/public:179,129 /mnt/media_rw/8075-15FD vfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
in my case 1st partition is
179 129 1935608 mmcblk1p1
therefore next minor is 2nd partition
179 130 1935607 mmcblk1p2

Categories

Resources