Flash files are available here to automatically create the swap partition:
https://xdaforums.com/hp-touchpad/general/how-to-create-swap-partition-size-t3892060#post78939182
How to configure the Hp Touchpad internal storage
The most important feature that was ahead of its time and still until today is the use of LVM (Logical Volume Manager) for managing the internal storage.
To the regular user it will be insignificant but it can provide great benefits if deploy properly.
I could be wrong, but the TP could be the first and only mobile device ever shipped with LVM even now. (someone can correct me on this)
What is LVM?
https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)
I am a regular user and not an expert on LVM in Linux, the only device that I have to play with LVM is the TP and will show you the basics usage and it may not even have the full potential settings.
In webOS there is a program (app) call Tailor ( Formerly Known as Resizah ), a graphical interface to manage LVM.
http://preware.pivotce.com/package/org.webosinternals.tailor
https://www.webos-internals.org/wiki/Application:Tailor
https://forums.webosnation.com/webos-internals/304871-tailor-device-live-partition-filesystem-editor-beta-testing.html
https://github.com/rwhitby/tailor
The last alpha version 0.3.1 allows for creating a LuneOS partition.
Also you can create all Android partitions inside WebOS, create and resize all partitions while running WebOS.The magic of LVM!
Attached is a screen shot of my TP running Taylor.
Think of it as creating, deleting , moving, expanding or reducing (files and folders) with your file manager. Instead it will be the actual storage card, partitions, volumes. All done withing the OS no need to reboot or enter any commands. Resizing the android system, cache or data partition live inside android with just touch input.! That is how easy it could have been, but Android does not use LVM and the TP had to follow the rest of the herd. The reason that WebOS, Android, LuneOS (and more OS) can be install together is due to the flexibility of LVM.
The ToolBox by jcsullins provides scripts to create webOS and Android volumes and resize system, cache and data. But is not a live system and limited to pre-configure settings.
All the flexibility and easy to use comes with a risk of data lost as we know not everything in the computer world works as intended, due to the endless configuration and uses of each user.
https://xdaforums.com/hp-touchpad/general/how-to-create-swap-partition-size-t3892060#post78939182
How to configure the Hp Touchpad internal storage
The most important feature that was ahead of its time and still until today is the use of LVM (Logical Volume Manager) for managing the internal storage.
To the regular user it will be insignificant but it can provide great benefits if deploy properly.
I could be wrong, but the TP could be the first and only mobile device ever shipped with LVM even now. (someone can correct me on this)
What is LVM?
https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)
I am a regular user and not an expert on LVM in Linux, the only device that I have to play with LVM is the TP and will show you the basics usage and it may not even have the full potential settings.
In webOS there is a program (app) call Tailor ( Formerly Known as Resizah ), a graphical interface to manage LVM.
http://preware.pivotce.com/package/org.webosinternals.tailor
https://www.webos-internals.org/wiki/Application:Tailor
https://forums.webosnation.com/webos-internals/304871-tailor-device-live-partition-filesystem-editor-beta-testing.html
https://github.com/rwhitby/tailor
The last alpha version 0.3.1 allows for creating a LuneOS partition.
Also you can create all Android partitions inside WebOS, create and resize all partitions while running WebOS.The magic of LVM!
Attached is a screen shot of my TP running Taylor.
Think of it as creating, deleting , moving, expanding or reducing (files and folders) with your file manager. Instead it will be the actual storage card, partitions, volumes. All done withing the OS no need to reboot or enter any commands. Resizing the android system, cache or data partition live inside android with just touch input.! That is how easy it could have been, but Android does not use LVM and the TP had to follow the rest of the herd. The reason that WebOS, Android, LuneOS (and more OS) can be install together is due to the flexibility of LVM.
The ToolBox by jcsullins provides scripts to create webOS and Android volumes and resize system, cache and data. But is not a live system and limited to pre-configure settings.
All the flexibility and easy to use comes with a risk of data lost as we know not everything in the computer world works as intended, due to the endless configuration and uses of each user.
Code:
This is a 32G Touchpad with WebOS, Android and LuneOS install and perfectly running.
Factory install WebOS (original)
Used ToolBox to create Android system, cache and data
Used Taylor to create luneos-root
List of physical volumes
/dev/store/root [ 568.00 MB]
/dev/store/var [ 64.00 MB]
/dev/store/update [ 16.00 MB]
/dev/store/log [ 24.00 MB]
/dev/store/mojodb [ 256.00 MB]
/dev/store/filecache [ 136.00 MB]
/dev/store/media [ 19.44 GB]
/dev/store/swap [ 400.00 MB]
/dev/store/cm-cache [ 200.00 MB]
/dev/store/cm-data [ 4.88 GB]
/dev/store/cm-system [ 1.17 GB]
/dev/store/luneos-root [ 1.95 GB]
12 disks
0 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
LVM is reporting to each OS its own disks and each OS mounts its own Disk using f stabs. In reality there is only one storage, not 12 ( the magic of LVM !
This is a 32G Touchpad that was completely reset using the Toolbox.
/dev/block/mmcblk0p8 [ 10.00 MiB]
/dev/block/mmcblk0p9 [ 1.46 MiB]
/dev/block/mmcblk0p1 [ 100.00 MiB]
/dev/block/mmcblk0p10 [ 3.00 MiB]
/dev/block/mmcblk0p11 [ 3.00 MiB]
/dev/block/mmcblk0p3 [ 1.46 MiB]
/dev/block/mmcblk0p12 [ 4.00 MiB]
/dev/block/mmcblk0p13 [ 32.00 MiB]
/dev/block/mmcblk0p14 [ 29.09 GiB] LVM physical volume
/dev/block/mmcblk0p6 [ 750.00 KiB]
/dev/store/media [ 29.09 GiB]
/dev/block/mmcblk0p7 [ 2.44 MiB]
1 disk
10 partitions
0 LVM physical volume whole disks
1 LVM physical volume
/dev/block/mmcblk0p13 ( is the boot partition ) 32 MB where all the uImages are boot it from.
This is the physical volume the real internal storage.
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 0
This is the logical volume of the physical volume which is part of the volume group "store"
The media USB storage in Android. This is the logical volume to resize and create other logical volume.
--- Logical volume ---
LV Name /dev/store/media
VG Name store
LV UUID WhFWig-xwTY-0SK3-OnrS-32mq-gADG-7mLY7c
LV Write Access read/write
LV Status available
# open 1
LV Size 29.09 GiB
Current LE 3723
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 4096
Persistent major 254
Persistent minor 6
Block device 253:6
This is all done loading TWRP mounting /boot and adb shell.
The working directory for lvm.static is:
/boot/usr/sbin
to execute ./lvm.static plus command.
Resizing Logical volume /dev/store/media to 1GB
./lvm.static lvresize --size 1G /dev/store/media
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 28.09g
Now there is 28.09g free to be allocated to any volume (disk) we want to create
Keep in mind the Persistent minor is 6 of the major 254 ( the next disk can be from 0 to 5 and 7 to 254 ) but 6 is already taken.
Creating Android volume cm-system
./lvm.static lvcreate -L 1.3G -M y --major 254 --minor 0 -n /dev/store/cm-system
Creating Android volume cm-cache
./lvm.static lvcreate -L 200M -M y --major 254 --minor 1 -n /dev/store/cm-cache
Creating Android volume cm-data (4GB)
./lvm.static lvcreate -L 4G -M y --major 254 --minor 2 -n /dev/store/cm-data
Activating the new logical volume
/boot/usr/sbin # ./lvm.static vgchange -ay
4 logical volume(s) in volume group "store" now active
/boot/usr/sbin # ./lvm.static pvs
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 22.59g
There is 22.59GB free to create more volume or disk!
Let's create volumes to install Linux as chroot
./lvm.static lvcreate -L 2G -M y --major 254 --minor 5 -n /dev/store/Linux-root
Another chroot as Debian!
./lvm.static lvcreate -L 2G -M y --major 254 --minor 7 -n /dev/store/debian-root
Create LuneOS volume
./lvm.static lvcreate -L 2G -M y --major 254 --minor 4 -n /dev/store/luneos-root
There is 16.59GB free
/boot/usr/sbin # ./lvm.static pvs
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 16.59g
Let's create another Android installation ( completely independent )
Android PIE system
./lvm.static lvcreate -L 1.3G -M y --major 254 --minor 8 -n /dev/store/A_PIE-system
Android PIE cache
./lvm.static lvcreate -L 200M -M y --major 254 --minor 9 -n /dev/store/A_PIE-cache
Android PIE Data (4GB)
./lvm.static lvcreate -L 4G -M y --major 254 --minor 10 -n /dev/store/A_PIE-data
There is 11.09GB free
/boot/usr/sbin # ./lvm.static pvs
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 11.09g
Let's create SailFishOS!
./lvm.static lvcreate -L 2G -M y --major 254 --minor 11 -n /dev/store/Sailfish_OS
Another Installation Android 10 Queso!
A_Queso-system
./lvm.static lvcreate -L 1.3G -M y --major 254 --minor 12 -n /dev/store/A_Queso-system
A_Queso-cache
./lvm.static lvcreate -L 200M -M y --major 254 --minor 13 -n /dev/store/A_Queso-cache
A_Queso_data
./lvm.static lvcreate -L 2G -M y --major 254 --minor 14 -n /dev/store/A_Queso_data
There is 5.59GB free
PV VG Fmt Attr PSize PFree
/dev/block/mmcblk0p14 store lvm2 a- 29.09g 5.59g
What about a swap volume!
./lvm.static lvcreate -L 1G -C y -M y --major 254 --minor 15 -n /dev/store/swap
Now we can give the command to LVM to extend media to use the 4.59GB available and use it all.
/lvm.static lvresize -l 100%FREE /dev/store/media
15 logical volume(s) in volume group "store" now active
Here is the summary of all the disks available:
/boot/usr/sbin # ./lvm.static lvmdiskscan
/dev/block/mmcblk0p8 [ 10.00 MiB]
/dev/store/cm-system [ 1.30 GiB]
/dev/block/mmcblk0p9 [ 1.46 MiB]
/dev/block/mmcblk0p1 [ 100.00 MiB]
/dev/store/cm-cache [ 200.00 MiB]
/dev/block/mmcblk0p10 [ 3.00 MiB]
/dev/store/cm-data [ 4.00 GiB]
/dev/block/mmcblk0p11 [ 3.00 MiB]
/dev/block/mmcblk0p3 [ 1.46 MiB]
/dev/block/mmcblk0p12 [ 4.00 MiB]
/dev/store/luneos-root [ 2.00 GiB]
/dev/block/mmcblk0p13 [ 32.00 MiB]
/dev/store/Linux-root [ 2.00 GiB]
/dev/block/mmcblk0p14 [ 29.09 GiB] LVM physical volume
/dev/block/mmcblk0p6 [ 750.00 KiB]
/dev/store/media [ 4.59 GiB]
/dev/block/mmcblk0p7 [ 2.44 MiB]
/dev/store/debian-root [ 2.00 GiB]
/dev/store/A_PIE-system [ 1.30 GiB]
/dev/store/A_PIE-cache [ 200.00 MiB]
/dev/store/A_PIE-data [ 4.00 GiB]
/dev/store/Sailfish_OS [ 2.00 GiB]
/dev/store/A_Queso-system [ 1.30 GiB]
/dev/store/A_Queso-cache [ 200.00 MiB]
/dev/store/A_Queso_data [ 2.00 GiB]
/dev/store/swap [ 1.00 GiB]
15 disks
10 partitions
0 LVM physical volume whole disks
1 LVM physical volume
Now we can format every disk with ext2, ext3, ext4 and vfat
Example to format Android system volumen
mke2fs -E lazy_itable_init=0 -t ext4 /dev/store/cm-system
mke2fs -E lazy_itable_init=0 -t ext4 /dev/store/cm-cache
mke2fs -E lazy_itable_init=0 -t ext4 /dev/store/cm-data
To make swap
mkswap /dev/store/swap
This is very easy to create, and quick there is no waitting time is done as soon as you press enter.
We have create it a Touchpad that is capable of running the following OS independently.
Current Version of Android
A version of Android PIE 9
A version of Android Queso 10
LuneOS
SailfishOS
Linux-root (to run as chroot or native)
debian-root (to run as chroot or native)
A 1GB swap file
The volume size of the disk created are minimum or below requirement but this is to show how powerful and simple LVM is to set up.
Attachments
Last edited: