Android Tablets Forum banner
1 - 20 of 24 Posts

·
Registered
Joined
·
301 Posts
I would just like notify you all that I have just made the very first baby step (and I mean baby steps) to hacking the initramFS of this ZT-280.

But what does this mean?
This means that if I can finish this, we could potentially run ANY Linux distro on our devices, whether it be Android, WebOS or and desktop Linux OS like Debian, Ubuntu etc...

Will you ever release how you did it?
Probably, I would more likely create a Linux program to aid. But I'm debating it yet.

Please post your thoughts!

UPDATE {8/1/2012}: I managed to rebuild a kernel after using the modified init method like before on the ZT-180's and the ePad sees and accepts it. This proves I am still making progress on this project.

(Thanks to Mozzwald, Johane)
 

·
Registered
Joined
·
52 Posts
Would running Linux mean we could launch an application like XBMC?

I get the feeling the news you are bringing is much greater, but my knowledge of linux and its capabilities are limited so I apologize if this question was out of place.
But its very nice that someone like you is diving into the tablet and discovering its capabilities and uses!
 

·
Registered
Joined
·
228 Posts
What about device drivers? Can you extract/reuse them without any problem?
Additionally, it would be great if you can shed some light on what you achieved and how you plan to profit from it.

Thanks,
Aonir
 

·
Registered
Joined
·
301 Posts
Discussion Starter · #4 ·
What about device drivers? Can you extract/reuse them without any problem?
Additionally, it would be great if you can shed some light on what you achieved and how you plan to profit from it.

Thanks,
Aonir
Hello.

When I ported Linux to the ZT-180 I was able to use the device drivers from Android without any issues. I don't plan to profit from this other than allowing the tablet to be opened up into a new world of possibilities and giving people the chance to donate for my work. But if a chance comes my way for something big, I would take it.
 

·
Registered
Joined
·
44 Posts
I have successfully extracted the initramfs cpio from the latest gingerbread kernel. Next step is to replace init with new one that will allow booting from sdcard and put the kernel back together.
@abtekk: I will keep you posted and submit the kernel to you for testing as I don't actually have this device
 

·
Registered
Joined
·
228 Posts
Hello.

When I ported Linux to the ZT-180 I was able to use the device drivers from Android without any issues. I don't plan to profit from this other than allowing the tablet to be opened up into a new world of possibilities and giving people the chance to donate for my work. But if a chance comes my way for something big, I would take it.
Okay, haha, I didn't mean profit in a financial sense, but rather what use it would be ;-)
Anyway, nice to hear.
 

·
Registered
Joined
·
490 Posts
this is awesome people! awesome work! do you think it would be possible to take these ideas and possibly fix the wifi driver in such a way that the tablet doesn't freeze on connection?
 

·
Zenithink Tablet User / Information Transmitter
Joined
·
6,629 Posts
Sorry, can i ask a sightly off-topic question?

Anyone know what the zt-280 debian files/kernels on the Zenithink FTP are (and for which zt-280 tablet each one is for)? ftp://zenithink.com/...o/zt-280-debian
 

·
Registered
Joined
·
490 Posts
I am going to take a wild guess and say it is for a "generic Zt-280" i.e: later adapted to each model since the differences are very few
 

·
Registered
Joined
·
301 Posts
Discussion Starter · #10 ·

·
Registered
Joined
·
44 Posts
Unfortunately I have been unable to successfully recombine the kernel with a the modified initramfs. It's a bit difficult anyways without having the device in hand
Here are my notes if anyone else would like to give it a whirl:
Code:
### uImage original size: 3593374 ###<br />
### Binwalk ouput for original uImage ##<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A04739, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 9980736 bytes<br />
<br />
### Remove 2 uImage headers ###<br />
dd if=uImage of=zImage-lzma bs=1 skip=128<br />
<br />
### Uncompress lzma kernel ###<br />
### Compressed size: 3593246 ###<br />
### Uncompressed size: 9980736 ###<br />
dd if=zImage-lzma bs=1 | lzcat > zImage<br />
<br />
### Find start of cpio ###<br />
grep -a -b -m 1 --only-matching '070701' zImage<br />
	167936:070701<br />
	168052:070701<br />
<br />
### Find end of cpio ###<br />
grep -a -b -m 1 --only-matching 'TRAILER!!!' zImage<br />
	1765826:TRAILER!!!<br />
<br />
### Add 11 to the above # to include trailer and extract cpio from kernel ###<br />
dd if=zImage bs=1 skip=167936 count=1765837 of=initramfs_orig.cpio<br />
<br />
### Explode the cpio ###<br />
mkdir cpio_orig<br />
cd cpio_orig/<br />
cpio -v -i --no-absolute-filenames < ../initramfs_orig.cpio<br />
<br />
### Make changes to initramfs ###<br />
<br />
### Create new cpio ###<br />
(cd cpio_orig; find . | cpio -o -H newc | gzip) > ../initramfs.cpio<br />
<br />
### Write beginning of original zImage up to start of cpio to a new file ###<br />
dd if=zImage bs=1 count=167936 of=/tmp/zImage<br />
<br />
### Add new cpio/initramfs to the new file ###<br />
dd if=initramfs.cpio bs=1 seek=167936 of=/tmp/zImage<br />
<br />
### Write ending of original zImage to new file ###<br />
### Seek below should be size of first part (167936) + size of original initramfs (1765837) ###<br />
dd if=zImage bs=1 seek=1933773 skip=1765826 of=/tmp/zImage<br />
<br />
### lzma compress the new zImage ###<br />
### Uncompressed size: 9026566 ###<br />
### Compressed size: 3808279 (larger than original zImage compressed size!?) ###<br />
lzma -9 /tmp/zImage<br />
<br />
### Add uImage headers to new file ###<br />
### or should this be replaced by using the mkimage command? ###<br />
dd if=uImage of=/tmp/uImage bs=1 count=128<br />
<br />
### Add compressed zimage to new uImage ###<br />
### New uImage size: 3808407 ###<br />
dd if=/tmp/zImage.lzma bs=1 seek=128 of=/tmp/uImage<br />
<br />
### binwalk output for new uImage ###<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: <br />
Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A0473<br />
9, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompre<br />
ssed size: 9026566 bytes<br />
248589          0x3CB0D         gzip compressed data, was "\255\344\016\015!\232|.\333\017s\250\3577\366{\241\240<br />
\005`v\321\324\2238\307DX\241l&\003k\330\203b\030\230!\245x\366\021?\211s\214\254\253\327w\354\222C\230\015\303= <br />
64\2126", has comment, from Z-System, comment, encrypted, last modified: Sun Jan 14 00:12:51 2024<br />
<br />
 

·
Registered
Joined
·
22 Posts
Great work mozzwald,

Quick question, Booting another OS.

Could this work?

1.Format sdcard - Part 1 vfat, part 2 ext2/3
2.Write zt280.sd to part 1 using Rescue SDCARD procedure
3.Place a custom built uImage kernel in zt-update directory on part 1 with internal commanline root=/dev/sdb2
4. Write other OS rootfs to partition 2.

BR
vgrade

Unfortunately I have been unable to successfully recombine the kernel with a the modified initramfs. It's a bit difficult anyways without having the device in hand
Here are my notes if anyone else would like to give it a whirl:
Code:
### uImage original size: 3593374 ###<br />
### Binwalk ouput for original uImage ##<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A04739, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 9980736 bytes<br />
<br />
### Remove 2 uImage headers ###<br />
dd if=uImage of=zImage-lzma bs=1 skip=128<br />
<br />
### Uncompress lzma kernel ###<br />
### Compressed size: 3593246 ###<br />
### Uncompressed size: 9980736 ###<br />
dd if=zImage-lzma bs=1 | lzcat > zImage<br />
<br />
### Find start of cpio ###<br />
grep -a -b -m 1 --only-matching '070701' zImage<br />
	167936:070701<br />
	168052:070701<br />
<br />
### Find end of cpio ###<br />
grep -a -b -m 1 --only-matching 'TRAILER!!!' zImage<br />
	1765826:TRAILER!!!<br />
<br />
### Add 11 to the above # to include trailer and extract cpio from kernel ###<br />
dd if=zImage bs=1 skip=167936 count=1765837 of=initramfs_orig.cpio<br />
<br />
### Explode the cpio ###<br />
mkdir cpio_orig<br />
cd cpio_orig/<br />
cpio -v -i --no-absolute-filenames < ../initramfs_orig.cpio<br />
<br />
### Make changes to initramfs ###<br />
<br />
### Create new cpio ###<br />
(cd cpio_orig; find . | cpio -o -H newc | gzip) > ../initramfs.cpio<br />
<br />
### Write beginning of original zImage up to start of cpio to a new file ###<br />
dd if=zImage bs=1 count=167936 of=/tmp/zImage<br />
<br />
### Add new cpio/initramfs to the new file ###<br />
dd if=initramfs.cpio bs=1 seek=167936 of=/tmp/zImage<br />
<br />
### Write ending of original zImage to new file ###<br />
### Seek below should be size of first part (167936) + size of original initramfs (1765837) ###<br />
dd if=zImage bs=1 seek=1933773 skip=1765826 of=/tmp/zImage<br />
<br />
### lzma compress the new zImage ###<br />
### Uncompressed size: 9026566 ###<br />
### Compressed size: 3808279 (larger than original zImage compressed size!?) ###<br />
lzma -9 /tmp/zImage<br />
<br />
### Add uImage headers to new file ###<br />
### or should this be replaced by using the mkimage command? ###<br />
dd if=uImage of=/tmp/uImage bs=1 count=128<br />
<br />
### Add compressed zimage to new uImage ###<br />
### New uImage size: 3808407 ###<br />
dd if=/tmp/zImage.lzma bs=1 seek=128 of=/tmp/uImage<br />
<br />
### binwalk output for new uImage ###<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: <br />
Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A0473<br />
9, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompre<br />
ssed size: 9026566 bytes<br />
248589          0x3CB0D         gzip compressed data, was "\255\344\016\015!\232|.\333\017s\250\3577\366{\241\240<br />
\005`v\321\324\2238\307DX\241l&\003k\330\203b\030\230!\245x\366\021?\211s\214\254\253\327w\354\222C\230\015\303= <br />
64\2126", has comment, from Z-System, comment, encrypted, last modified: Sun Jan 14 00:12:51 2024<br />
<br />
 

·
Registered
Joined
·
22 Posts
Make that root=/dev/mmcblk<whatever sdcard is called>

Great work mozzwald,

Quick question, Booting another OS.

Could this work?

1.Format sdcard - Part 1 vfat, part 2 ext2/3
2.Write zt280.sd to part 1 using Rescue SDCARD procedure
3.Place a custom built uImage kernel in zt-update directory on part 1 with internal commanline root=/dev/sdb2
4. Write other OS rootfs to partition 2.

BR
vgrade
 

·
Registered
Joined
·
22 Posts
Hi mozzwald,

Why do you gzip the cpio when recombining?

BR

vgrade

Unfortunately I have been unable to successfully recombine the kernel with a the modified initramfs. It's a bit difficult anyways without having the device in hand
Here are my notes if anyone else would like to give it a whirl:
Code:
### uImage original size: 3593374 ###<br />
### Binwalk ouput for original uImage ##<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A04739, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 9980736 bytes<br />
<br />
### Remove 2 uImage headers ###<br />
dd if=uImage of=zImage-lzma bs=1 skip=128<br />
<br />
### Uncompress lzma kernel ###<br />
### Compressed size: 3593246 ###<br />
### Uncompressed size: 9980736 ###<br />
dd if=zImage-lzma bs=1 | lzcat > zImage<br />
<br />
### Find start of cpio ###<br />
grep -a -b -m 1 --only-matching '070701' zImage<br />
	167936:070701<br />
	168052:070701<br />
<br />
### Find end of cpio ###<br />
grep -a -b -m 1 --only-matching 'TRAILER!!!' zImage<br />
	1765826:TRAILER!!!<br />
<br />
### Add 11 to the above # to include trailer and extract cpio from kernel ###<br />
dd if=zImage bs=1 skip=167936 count=1765837 of=initramfs_orig.cpio<br />
<br />
### Explode the cpio ###<br />
mkdir cpio_orig<br />
cd cpio_orig/<br />
cpio -v -i --no-absolute-filenames < ../initramfs_orig.cpio<br />
<br />
### Make changes to initramfs ###<br />
<br />
### Create new cpio ###<br />
(cd cpio_orig; find . | cpio -o -H newc | gzip) > ../initramfs.cpio<br />
<br />
### Write beginning of original zImage up to start of cpio to a new file ###<br />
dd if=zImage bs=1 count=167936 of=/tmp/zImage<br />
<br />
### Add new cpio/initramfs to the new file ###<br />
dd if=initramfs.cpio bs=1 seek=167936 of=/tmp/zImage<br />
<br />
### Write ending of original zImage to new file ###<br />
### Seek below should be size of first part (167936) + size of original initramfs (1765837) ###<br />
dd if=zImage bs=1 seek=1933773 skip=1765826 of=/tmp/zImage<br />
<br />
### lzma compress the new zImage ###<br />
### Uncompressed size: 9026566 ###<br />
### Compressed size: 3808279 (larger than original zImage compressed size!?) ###<br />
lzma -9 /tmp/zImage<br />
<br />
### Add uImage headers to new file ###<br />
### or should this be replaced by using the mkimage command? ###<br />
dd if=uImage of=/tmp/uImage bs=1 count=128<br />
<br />
### Add compressed zimage to new uImage ###<br />
### New uImage size: 3808407 ###<br />
dd if=/tmp/zImage.lzma bs=1 seek=128 of=/tmp/uImage<br />
<br />
### binwalk output for new uImage ###<br />
DECIMAL         HEX             DESCRIPTION<br />
-------------------------------------------------------------------------------------------------------<br />
0               0x0             uImage header, header size: 64 bytes, header CRC: 0x534C30CF, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593310 bytes, Data Address: 0xFFFFFFFF, Entry Point: 0x0, data CRC: 0x672C70AA, OS: <br />
Linux, CPU: ARM, image type: Firmware Image, compression type: none, image name: LK:ZT280_H1_2n<br />
64              0x40            uImage header, header size: 64 bytes, header CRC: 0xC6DD4500, created: Tue Nov  8<br />
 06:05:02 2011, image size: 3593246 bytes, Data Address: 0x80008000, Entry Point: 0x80008000, data CRC: 0x58A0473<br />
9, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: lzma, image name: Linux-2.6.34<br />
128             0x80            LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompre<br />
ssed size: 9026566 bytes<br />
248589          0x3CB0D         gzip compressed data, was "\255\344\016\015!\232|.\333\017s\250\3577\366{\241\240<br />
\005`v\321\324\2238\307DX\241l&\003k\330\203b\030\230!\245x\366\021?\211s\214\254\253\327w\354\222C\230\015\303= <br />
64\2126", has comment, from Z-System, comment, encrypted, last modified: Sun Jan 14 00:12:51 2024<br />
<br />
 

·
Registered
Joined
·
301 Posts
Discussion Starter · #17 ·
Hello,

Do you work on linux these days ? Do you think you can release it (beta version maybe?) ?
Thanks
Hi, yes I'm still working on this project. I can't release it yet as I am still trying to modify the kernel. I need a deep conversation with atp once the holidays are up and see if he can help me.
 

·
Registered
Joined
·
22 Posts
Here is my status,

I prepared a sdcard with two partitions one vfat and the other ext3.

On the vfat partition I create a zt-update directory and place a uBoot config file in there called autoscript. The script does fatload mmc 0 82000000 uImage; bootm 82000000

In the root of the vfat I place a uImage kernel.

System boots new kernel and I get linux penguin on framebuffer then and boots into Mer with QML viewer on X.

I'm working from this git repo. https://github.com/hillbeast/Kyorakernel and using the .config from the stock zt-280.

BR

vgrade

Hi, yes I'm still working on this project. I can't release it yet as I am still trying to modify the kernel. I need a deep conversation with atp once the holidays are up and see if he can help me.
 

·
Registered
Joined
·
301 Posts
Discussion Starter · #19 ·
Here is my status,

I prepared a sdcard with two partitions one vfat and the other ext3.

On the vfat partition I create a zt-update directory and place a uBoot config file in there called autoscript. The script does fatload mmc 0 82000000 uImage; bootm 82000000

In the root of the vfat I place a uImage kernel.

System boots new kernel and I get linux penguin on framebuffer then and boots into Mer with QML viewer on X.

I'm working from this git repo. https://github.com/hillbeast/Kyorakernel and using the .config from the stock zt-280.

BR

vgrade
Do you have msn, googletalk or skype? I think we should talk.
 

·
Registered
Joined
·
10 Posts
seems there is no update/reply this past couple of weeks,


anyways, i'll assume that you guys hear about the 'Spark' Tablet(if not, google it)
and since its based on c71, a smaller version of c91 with similar, if not the same, hardware.
maybe we...., i mean you guys could ask for a bit of help, kernel, driver, etc...

no harm in trying, plus it should,in thery anyways, speed the port by months.
 
1 - 20 of 24 Posts
Top