[Linux] [DEV] [WIP]Backtrack 5 on the gtablet HYBRID. 7/18/11 1.2 BL kernel - G Tablet Android Development

6/13/12 update
updated links and some instructions.
I currently do not have time to do any work on this currently as i have been working 18+ hours a day. Hopefully if i ever get some time again I will continue it.
Jaybob413 built the kernel for 1.2 Bootloader. Link is posted below
Thanks jaybob413
*PLEASE READ AND UNDERSTAND EVERYTHING HERE BEFORE ATTEMPTING THIS*
BACKTRACK 5 IS running on the GTABLET in Hybrid mode!
http://www.youtube.com/watch?v=kJb3mwBhMik video up now =)
http://www.youtube.com/watch?v=be-9F_VzbHY Dual boot video
working
boots natively into backtrack
X11 desktop works
wifi
TOUCHSCREEN!!!!!
4 buttons. Search opens firefox, home opens users home dir, settings toggles the Onscreen keyboard, and back switches through virtual desktops.
Not Working
sound
bluetooth
battery stats
------------------------------------------------
I currently have this set up for windows. It can be done from linux but will link everything for windows in this post.
you must have ADB installed on windows working with the gtablet. see http://forum.xda-developers.com/showthread.php?t=902860
required files:
bt5.tar.xz http://d-h.st/YZ4
restore_droid-kern.zip http://dev-host.org/qsbz1s7xbebt/restore_droid-kern.zip
droid-kern_backup.zip http://dev-host.org/evmqb1yrd0tn/droid-kern_backup.zip
1.1 bootloader:
bt5kern-01-20110525.zip http://dev-host.org/s4d4pp1wvxx4/bt5kern-01-20110525.zip
1.2 bootloader: thanks jaybob413 for the 1.2 kernel.
http://forum.xda-developers.com/showpost.php?p=15703493&postcount=137
optional files:
nvidia_windows.zip http://dl.dropbox.com/u/4917587/nvflash_windows.zip
kernel config file http://dl.dropbox.com/u/4917587/config this file is only for reference. you do not have to download it or install it
the root password is "toor"
THIS MAY ERASE EVERYTHING ON YOUR TABLET!!!!
Do this at your own risk!! I take no responsibility for anything that happens to your tablet.
Start by installing your favorite ROM and kernel.
Make sure you have adb working and CWM installed
turn off the device then boot into recovery. (vol+ and power).
once in recovery you must format the EXTERNAL sdcard into ext3.
Code:
adb shell
parted /dev/block/mmcblk2
mkfs 1 ext2
confirm
exit
tune2fs -j /dev/block/mmcblk2p1 to format the external SDcard to ext3
mkdir /tmp/ext-sd
mount /dev/block/mmcblk2p1 /tmp/ext-sd/
exit adb and run
* this will take a long time *
Code:
on a linux box unxz bt5.tar.xz
adb push c:\path\to\bt5.tar /tmp/ext-sd/bt5.tar
adb shell
# cd /tmp/ext-sd/
tar xvf bt5.tar
rm bt5.tar
cd /
umount /tmp/ext-sd/
reboot the device into android and connect the INTERNAL sdcard to the computer to place files on to the sdcard.
make a directory called kernels on the sdcard and put the 3 zips from above in that folder.
bt5kern-01-20110525.zip
droid-kern_backup.zip
restore_droid-kern.zip
reboot into recovery and flash the
droid-kern_backup.zip this will create a backup of the android kernel. This will ONLY need to be done any time that you UPGRADE or CHANGE your android kernel.
once this is done you switch back and forth between android and backtrack with:
bt5kern-{date}.zip to boot into backtrack
restore_droid-kern.zip to boot into android
******* You do NOT have to wipe cache or anything when switching back and forth. Just flash whichever you want to boot into and you are done************
http://forum.xda-developers.com/showpost.php?p=16223052&postcount=139 WICD fix

Linux touchscreen drivers and settings
xf86-input-multitouch https://launchpad.net/debian/+archi...ut-multitouch_1.0~rc2+git20110312.orig.tar.gz
libmtdev1 http://ftp.de.debian.org/debian/pool/main/m/mtdev/mtdev_1.1.0.orig.tar.gz
************OLD WAY******************
How to install backtrack 5 to run on the gtablet with out gtab filesystem modification.
You must recreate the img file to be less then 4Gb. The img file is currently 4.6Gb. The new image created will be 2.9Gb. this is a vfat limitation
this has been tested on vegan 5.1 with the gtab/zpad 1.4 OC kernel. Its still a little buggy with random reboots depending on what your are doing but it is a WIP
The kernel must have loop devices support. Also looks like the kernel needs swap functionality to be enabled.
I could release the img file that has already been created but backtrack would prefer that people not release other images so this will allow you to create your own after downloading it from them so it remains trusted.
you either need:
linux with ADB working on the gtab
OR
windows with ADB and access to a linux box with about 10gb of free space.
Backup your sdcard because it needs to be repartitioned with CWM.
In CWM under advanced > Partition SD Card > 2048 > 128
download the arm version of backtrack from www.backtrack-linux.org/downloads/
and extract the files. you need to copy the bt5.img.gz to the linux box and do all the following steps.
make a working directory for all the files, copy and gunzip the img file
Code:
mkdir bt5
cp /root/bt5.img.gz bt5
cd bt5
gunzip bt5.img.gz
rename the old bt5.img to something else and create a new image that fits onto the gtabs vfat filesystem.
then create 2 directory to mount each image and copy the files over to the new img file.
Code:
mv bt5.img bt5.old.img
dd if=/dev/zero of=bt5.img bs=4k count=900000
mke2fs -F -i 8192 bt5.img
mkdir bt5old bt5new
mount -o loop bt5.old.img bt5old
mount -o loop bt5.img bt5new
cd bt5old
cp -rp * ../bt5new
*****************************************
since the system does not go through the full startup scripts once you run "sh bootbt" you must run /etc/rc.local from the chroot to start the vnc server if you add these lines otherwise you must type them each time.
Code:
cd ../bt5new/
vi etc/rc.local and add the following 2 lines before the exit 0 line
export USER=root
/usr/bin/startvnc
save the file and then continue on.
also you can edit /usr/bin/startvnc and modify the screensize to fit the tablet
the gtablet is 1024x600
Code:
vncserver -geometry 1024x600
*****************************************
after all files have been copied over you just unmount the 2 directories and gzip the new image.
Code:
cd ..
(you should now be in the directory with the 2 img files and 2 directories)
umount bt5old
umount bt5new
gzip bt5.img
edit the bootbt file and change the line
Code:
mount -o remount,rw /dev/block/mmcblk0p5 /system
with
Code:
mount -o remount,rw /dev/block/mtdblock3 /system
*** this needs to be changed to whatever your /system is on your tablet or phone if it is something other then the gtablet.
now copy this new bt5.img.gz file over to the directory where you got the original image from and then follow the instructions that are included with the download in the README file.
a good VNC viewer is located
http://code.google.com/p/android-vnc-viewer/downloads/list
and also install a terminal emulator so you can start Backtrack 5 from the device.
---BUGS---
running from a terminal emulator everything runs fine but running VNC gnome takes up way to much RAM currently. Looking at fluxbox and/or swap as a fix. causes the tablet to lock up and must be powered off by holding the power button.
---Thanks---
The Backtrack Team -- for coming up with an amazing security distro
The G-TabDevs Team -- for the vegan 5.1 Rom
Pershoot -- for maintaining the 1.4 kernel for the gtab and hopefully adding support for needed features =)
Sorry for the flash in the pictures
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}

sorry for the noob question.....
where we need to run all the commands you have stated????

fauz33 said:
sorry for the noob question.....
where we need to run all the commands you have stated????
Click to expand...
Click to collapse
They must be run on a linux box. I bolded it just now in the first post. I would do it all and just release the gzip file but backtrack does not want that.

slimm609 said:
They must be run on a linux box. I bolded it just now in the first post. I would do it all and just release the gzip file but backtrack does not want that.
Click to expand...
Click to collapse
sorry....
i have googled it for hours.....
what is mean by linux box??

fauz33 said:
sorry....
i have googled it for hours.....
what is mean by linux box??
Click to expand...
Click to collapse
_almost_ any version of linux installed on a computer (laptop or desktop).
you need about 8-10gb of free space after linux is installed.
like fedora, centOS, ubuntu, suse, slackware, etc.
90+% of the versions on this site would work www.distrowatch.com

I'll talk to Muts and see if he will allow the gzip. Maybe if it is maintained by you but released by them they might consider it.
These instructions are for running BT5 in a shell, not actually installing it as the working OS on the gtablet - right?
Similar to:
http://www.backtrack-linux.org/forums/backtrack-5-how-tos/40376-%5Bhow-%5D-backtrack-5-motorola-xoom-gnome-ui-via-tightvncserver.html

runner989 said:
I'll talk to Muts and see if he will allow the gzip. Maybe if it is maintained by you but released by them they might consider it.
These instructions are for running BT5 in a shell, not actually installing it as the working OS on the gtablet - right?
Similar to:
http://www.backtrack-linux.org/forums/backtrack-5-how-tos/40376-%5Bhow-%5D-backtrack-5-motorola-xoom-gnome-ui-via-tightvncserver.html
Click to expand...
Click to collapse
This runs the same way that it does on the Xoom. Just making it fit onto the gtab and Evo 4g
here is CHS (runner989)

Is packet injection working with the wireless adapter?

kdj67f said:
Is packet injection working with the wireless adapter?
Click to expand...
Click to collapse
most of the tools for wireless were removed when they created the arm version.
I am going to try and compile them and see if they work when i get a chance (hopefully soon)

Ugh! That sucks! I did not know they did that. Since the gtablet has a USB port the USB wireless adapters (like the Alfa adapter) should work just as they do in the regular Backtrack builds.
slimm609 said:
most of the tools for wireless were removed when they created the arm version.
I am going to try and compile them and see if they work when i get a chance (hopefully soon)
Click to expand...
Click to collapse

runner989 said:
Ugh! That sucks! I did not know they did that. Since the gtablet has a USB port the USB wireless adapters (like the Alfa adapter) should work just as they do in the regular Backtrack builds.
Click to expand...
Click to collapse
The internal card is a broadcom 4329 so it should support everything also. have to wait and see.

Major progress made on booting native backtrack linux. Kernel boots but it missing a driver so it drops into a ramfs but getting close.
off to bed

I was so excited I forgot we run an arm processor! Good work to the devs on this. And although it was probably an ethical thing to remove all the wireless functions for ARM builds, It would be much handier than lugging around my old laptop with it's ancient battery that barely last 45 minutes under load.
Many thanks, I am subscribing. Just wish I could help

This is pretty awesome. Might want to check the debian or ubuntu ARM community to find out how the wireless drivers work there. I'm assuming our ARM runs in it's normal little indian, not ARMEB mode, right?

muqali said:
This is pretty awesome. Might want to check the debian or ubuntu ARM community to find out how the wireless drivers work there. I'm assuming our ARM runs in it's normal little indian, not ARMEB mode, right?
Click to expand...
Click to collapse
the wireless card is a broadcom 4329

slimm609 said:
the wireless card is a broadcom 4329
Click to expand...
Click to collapse
The driver source thread is http://forum.xda-developers.com/showthread.php?t=906628

wifi is working now. tested with wpa-psk
New files coming tomorrow with wifi included.
the touchscreen is seen by the system and xorg just need to find the right configuration for it to work
now trying to compile as a single touch device because Xorg does not support multi-touch displays

touchscreen is working. just working on calibration of it now. only single touch currently

This is awesome...
Sent from my Droid using XDA App

Related

[Tutorial] How to mount external NTFS drive

*** I am not responsible for any damage, lost or explosion. So, try it as your own risk ***
I successfully mount my 250G powered external HD with NTFS partition on this post: http://forum.xda-developers.com/showpost.php?p=14650094&postcount=146
Here are the steps:
1. Root is a must
2. Install any terminal emulator from the market.
3. d/l and extract the ntfs.ko to your i9100
4. load the ntfs.ko with insmod (update: Some custom kernel doesn't work with module, try CF-root kernel or any stock kernel if you have problem loading the module)
5. Connect your drive with OTG.
6. Don't need to worry about "USB storage blank or has unsupported file" complaint in the notification area. But you may need a Y splitter USB cable with power supply if you got an high power consumption complaint.
7. Follow the screen shoot for the mounting command. "iocharset=utf8" is needed if you have non English files/folders name
8. Verify the mount with ls command
9. Verify non root apps (e.g. Astro File Manager) are able to read the files
10. After you done, make sure no process is accessing the mount, then un-mount using the umount command. You may want to remove the module using rmmod.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
[request] Can this be done with a sdcard? That would be nice.
Maybe built in a rom
Awesome work il give it a try.. Just one question lol whats insmod?
Sent from my GT-I9100 using XDA App
I have a problem with "mount" - "mount: can't read /etc/fstab: No such file or directory". What's wrong? I can't find fstab in /etc, there is only vold.fstab.
Try
#cat /proc/mounts > /etc/fstab
#chmod 644 /etc/fstab
Now I have /etc/fstab but "mount: can't find /dev/block/sd in /etc/fstab".
How can I build a good fstab???
Edit: nevermind, I used a bad command, it works now but read only, so I'm waiting for a full working module. Thanks very much for your works jackleung. Best regards!
jackleung said:
*** I am not responsible for any damage, lost or explosion. So, try it as your own risk ***
I successfully mount my 250G powered external HD with NTFS partition on this post: http://forum.xda-developers.com/showpost.php?p=14650094&postcount=146
Here are the steps:
1. Root is a must
2. Install any terminal emulator from the market.
3. d/l and extract the ntfs.ko to your i9100
4. load the ntfs.ko with insmod
5. Connect your drive with OTG.
6. Don't need to worry about "USB storage blank or has unsupported file" complaint in the notification area. But you may need a Y splitter USB cable with power supply if you got an high power consumption complaint.
7. Follow the screen shoot for the mounting command. "iocharset=utf8" is needed if you have non English files/folders name
8. Verify the mount with ls command
9. Verify non root apps (e.g. Astro File Manager) are able to read the files
10. After you done, make sure no process is accessing the mount, then un-mount using the umount command. You may want to remove the module using rmmod.
Click to expand...
Click to collapse
Can you please upload a video showing how to do it for noobs
Sent from my GT-I9100 using XDA App
Waiting for my OTG Cable to arrive and will 100% try this. Do you get a good playback speed of 720p/1080p videos using ntfs drives?
hakkinenvthh said:
Edit: nevermind, I used a bad command, it works now but read only, so I'm waiting for a full working module. Thanks very much for your works jackleung. Best regards!
Click to expand...
Click to collapse
What command have you use finally? I was thinking you may have different block device instead of hda1.
For writing, we may need NTFS-3G but that I don't know where to get the source for **Android**. And I really don't have time to dig into that yet.
mythoc said:
Waiting for my OTG Cable to arrive and will 100% try this. Do you get a good playback speed of 720p/1080p videos using ntfs drives?
Click to expand...
Click to collapse
I haven't try. Practically, media sharing over Samba (cifs) is more useful for me. I can watch 720p video over the wireless G network shared folders.
@Tulips, it should work but may not be useful without write ability.
insmod = insert modules
lsmod = list modules
rmmod = remove modules
okey, sdcard works using the device /dev/block/mmcblk1p1, but as you said read only.
@jackleung : Where did you get this module from? Did you build it yourself from the kernel source, or downloaded it from somewhere else? As far as I understood, the linux kernel now fully supports ntfs rw capabilities (for several years, if I'm not mistaken).
Tulips said:
@jackleung : Where did you get this module from? Did you build it yourself from the kernel source, or downloaded it from somewhere else? As far as I understood, the linux kernel now fully supports ntfs rw capabilities (for several years, if I'm not mistaken).
Click to expand...
Click to collapse
I built from the kernel source d/l from Samsung. Here is the situation stated in wiki:
The ability to read and write to NTFS is provided by the NTFS-3G driver. It is included in most Linux distributions. Other solutions exist as well:
Linux kernel 2.2: Kernel versions 2.2.0 and later include the ability to read NTFS partitions
....
Note that all three userspace drivers, namely NTFSMount, NTFS-3G and Captive NTFS, are built on the Filesystem in Userspace (FUSE), a Linux kernel module tasked with bridging userspace and kernel code to save and retrieve data.
Click to expand...
Click to collapse
I do find the FUSE in the kernel source, but I believe we still need some user space program like NTFS-3G to manage it.
jackleung said:
What command have you use finally? I was thinking you may have different block device instead of hda1.
For writing, we may need NTFS-3G but that I don't know where to get the source for **Android**. And I really don't have time to dig into that yet.
Click to expand...
Click to collapse
I used exactly the same to you I think it's better if you can make it mounted automatically (by modify the kernel???) or make a software to do it
I can mount a NTFS microsd but after that the phone can't be recognized by the PC, unless I format it by the phone
mythoc said:
Waiting for my OTG Cable to arrive and will 100% try this. Do you get a good playback speed of 720p/1080p videos using ntfs drives?
Click to expand...
Click to collapse
well i watched 1080p clips and they worked perfectly fine, the file size was 8gb, not sure about bitrate or anything though
why is this not in the Dev Section???!!
[email protected]!
My first successful attempt with ntfs-3g can be found here: http://forum.xda-developers.com/showpost.php?p=15001824&postcount=23
jastonas said:
why is this not in the Dev Section???!!
[email protected]!
Click to expand...
Click to collapse
Because nothing being developed. I simply compiled a module from existing source code.
I wrote two small shell scripts for mount and unmount.
Both i can run in GScript (free light version from market).
The first ist mounting:
Code:
insmod /mnt/sdcard/ntfs.ko
mkdir /mnt/sdcard/usbStorage/usb_ntfs
sleep 1
mount -t ntfs -o rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1015,fmask=0002,dmask=0002,iocharset=utf8 /dev/block/sda1 /mnt/sdcard/usbStorage/usb_ntfs
And this one for unmounting:
Code:
umount -f /mnt/sdcard/usbStorage/usb_ntfs
rmmod ntfs
Both scripts are attached and if they are saved on sdcard in a folder namend "gscript" they can be imported directly into GScript.
The ntfs.ko file has to be placed in the root folder of the SD-Card (/mnt/sdcard/ntfs.ko).
@jackleung: Thank you for compiling
Ps: sorry for my bad english... ;-)
Could someone please upload a video on youtube showing how to do it. I dont understand all this mount and unmount.. Do i need to unmount before i take out the usb drive?
Sent from my GT-I9100 using XDA App
Could you compile ext3 kernel module too, please ?
I'm trying to mount a linux image but there's no ext3 support so I cannot mount it
alx5962 said:
Could you compile ext3 kernel module too, please ?
I'm trying to mount a linux image but there's no ext3 support so I cannot mount it
Click to expand...
Click to collapse
Maybe ext2/3 doesn't even need a module? Could someone just try this command?
Code:
mount -t ext2 -o uid=1000,gid=1015,iocharset=utf8,umask=000 /dev/block/sda1
(.../dev/block/mmcblk1p1 for microSD)
Help wat do i do i keep getting this
Sent from my GT-I9100 using XDA App

Ubuntu for N80xx

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
In addition to GNU/[email protected] topic, this one is a separate for Ubuntu users. Read below if you want to have native Ubuntu 13.10 wih Gnome/LDXE/XFCE at your Galaxy Note 10.1 device (2012 models only).
Screenshots:
Please be aware, that stuff I share with you is experimental, it does not work 100% correctly and there are some lags and bugs.
Some technical details:
The approach is based on using custom recovery (e.g. custom kernel and initrd image) which boots into Linux. All Linux files are stored at data partition (it is mmcblk0p12 when using standard firmware, which also is internal sdcard) in a separate folder. Initrd script mounts data partition and looks for the special file /media/rootdev - this file contains the path to the Linux root folder. Script sets the Linux root device to be this folder specified and invokes /sbin/init. You see Linux booting - Ubuntu in our case.
However I've also prepared the second folder with native recovery files. E.g. if you change rootdev content to point to recovery files folder, you will boot into recovery. Generally, you can boot any other recovery or Linux distro using this approach. And hosting it at sdcard in a folder much easier than re-partitioning tablet or using loop-device in a file. Free space for your Linux depends only of free space you have at data partition.
Prerequisites:
Rooted GT-N80xx device
Busybox tools installed
Desktop computer with ADB tools
Custom recovery image (with or without menu), native recovery, Ubuntu image files downloaded (see downloads section)
Understanding of what are you doing
Downloads:
Custom recovery image which boots to Linux (no menu) - recovery_nomenu.img
Custom recovery image which boots to Linux (with menu) - recovery_menu.img
Native recovery files archive - recovery.tar.gz
Ubuntu 13.10 files archive - ubuntu.tar.gz
Steps:
Connect your device to the desktop computer with USB cable. Make sure your device is visible when you run "adb devices"
Rename downloaded recovery image to "recovery.img"
Upload downloaded files to the internal memory:
Code:
adb push recovery.img /sdcard/
adb push recovery.tar.gz /sdcard/
adb push ubuntu.tar.gz /sdcard/
Now you need to get into device, so run "adb shell", then type the next commands (the lines beginning from # are the comments, you don't need to type it ):
Code:
# 4. become root user
su -
# 5. go to the internal sdcard real path, where you uploaded files
cd /data/media
# 6. write custom recovery to the special partition, by default it is mmcblk0p6
dd if=./recovery.img of=/dev/block/mmcblk0p6
# 7. unpack native recovery files, the "recovery" folder will be created
gunzip -c ./recovery.tar.gz | tar -x
# 8. unpack Ubuntu files, the "ubuntu" folder will be created
gunzip -c ./ubuntu.tar.gz | tar -x
# 9.1. Now, if you downloaded custom recovery without menu - set what to
# boot, in our case it is Ubuntu, and go to step #10
echo "/media/ubuntu" > ./rootdev
# 9.2. OR, if you downloaded custom recovery with menu - add menu entries
echo "Ubuntu=/media/ubuntu" > ./rootdev
echo "Recovery=/media/recovery" >> ./rootdev
echo "Reboot=reboot" >> ./rootdev
# 10. remove files that we don't need anymore and quit
rm ./recovery.img ./recovery.tar.gz ./ubuntu.tar.gz
exit
exit
Now you should reboot your device to recovery mode. If you did all correctly (and I did not miss anything in steps) you should see Linux booting (and menu if you are using custom recovery with menu).
Please use your S-Pen as mouse, button on the pen works as "right-click".
The password for root user and android user is "q" (small q-letter without quotes).
Notes:
The Ubuntu image I shared with you is v13.10 and Gnome-based (Unity does not work due to Compiz issues).
Regular Gnome session works at most, but have some bugs, due to 3D acceleration support issues. For example, window dragging does not work and the session hangs (sorry, I have not found why, please fix if you can and share your workaround with us).
Gnome Fallback works better, but might not start properly from the first time. E.g. you should boot to regular Gnome session, then log out and login to Fallback (also have no idea why it works like this, please help if have experience).
Due to the issues with Gnome, I've also installed LXDE and XFCE, so you could try login to it. However I would recommend booting to regular Gnome session at least to configure your Wi-Fi connection.
Internal and external sdcards are mounted to /mnt/intSdCard and /mnt/extSdCard paths.
Important notes:
The Ubuntu image has ADB installed. E.g. if something goes wrong at the screen and you are not able to manage your device, connect it to the desktop with USB cable, run "adb shell", then "sudo su -" and you become root user. To restart graphical session you need to invoke "service gdm restart" command.
If you are using custom recovery without menu and want to boot native recovery instead of Ubuntu, edit "rootdev" file at internal sdcard to contain "/media/recovery" path (without quotes). You can do that via ADB shell, using any Android text editor, or directly from Linux.
The last thing to know:
Not all is working from Ubuntu. Currently there is no 3G support and some other things. All of them are discussed in the parent thread
Please let me know if I have missed something and my steps do not work for you. Any other feedback will also be appreciated
downloading right now... just one question! can i do all this with terminal emulator on android?
edit: forget about that last question, tried from terminal emulator and it worked.
X-Stranger said:
In addition to GNU/[email protected] topic, this one is a separate for Ubuntu users. Read below if you want to have native Ubuntu 13.10 wih Gnome/LDXE/XFCE at your Galaxy Note 10.1 device (2012 models only).
Screenshots:
View attachment 2432486 View attachment 2432487 View attachment 2432488
Please be aware, that stuff I share with you is experimental, it does not work 100% correctly and there are some lags and bugs.
Some technical details:
The approach is based on using custom recovery (e.g. custom kernel and initrd image) which boots into Linux. All Linux files are stored at data partition (it is mmcblk0p12 when using standard firmware, which also is internal sdcard) in a separate folder. Initrd script mounts data partition and looks for the special file /media/rootdev - this file contains the path to the Linux root folder. Script sets the Linux root device to be this folder specified and invokes /sbin/init. You see Linux booting - Ubuntu in our case.
However I've also prepared the second folder with native recovery files. E.g. if you change rootdev content to point to recovery files folder, you will boot into recovery. Generally, you can boot any other recovery or Linux distro using this approach. And hosting it at sdcard in a folder much easier than re-partitioning tablet or using loop-device in a file. Free space for your Linux depends only of free space you have at data partition.
Prerequisites:
Rooted GT-N80xx device
Busybox tools installed
Desktop computer with ADB tools
3 files downloaded (see downloads section)
Understanding of what are you doing
Downloads:
Custom recovery image which boots to Linux - recovery.img
Native recovery files archive - recovery.tar.gz
Ubuntu 13.10 files archive - ubuntu.tar.gz
Steps:
Connect your device to the desktop computer with USB cable. Make sure your device is visible when you run "adb devices"
Upload downloaded files to the internal memory:
Code:
adb push recovery.img /sdcard/
adb push recovery.tar.gz /sdcard/
adb push ubuntu.tar.gz /sdcard/
Now you need to get into device, so run "adb shell", then type the next commands (the lines beginning from # are the comments, you don't need to type it ):
Code:
# 4. become root user
su -
# 5. go to the internal sdcard real path, where you uploaded files
cd /data/media
# 6. write custom recovery to the special partition, by default it is mmcblk0p6
dd if=./recovery.img of=/dev/block/mmcblk0p6
# 7. unpack native recovery files, the "recovery" folder will be created
gunzip -c ./recovery.tar.gz | tar -x
# 8. unpack Ubuntu files, the "ubuntu" folder will be created
gunzip -c ./ubuntu.tar.gz | tar -x
# 9. set what to boot, we want Ubuntu
echo "/media/ubuntu" > ./rootdev
# 10. remove files that we don't need anymore and quit
rm ./recovery.img ./recovery.tar.gz ./ubuntu.tar.gz
exit
exit
Now you should reboot your device to recovery mode. If you did all correctly (and I did not miss anything in steps) you should see Linux booting.
Please use your S-Pen as mouse, button on the pen works as "right-click".
The password for root user and android user is "q" (small q-letter without quotes).
Notes:
The Ubuntu image I shared with you is v13.10 and Gnome-based (Unity does not work due to Compiz issues).
Regular Gnome session works at most, but have some bugs, due to 3D acceleration support issues. For example, window dragging does not work and the session hangs (sorry, I have not found why, please fix if you can and share your workaround with us).
Gnome Fallback works better, but might not start properly from the first time. E.g. you should boot to regular Gnome session, then log out and login to Fallback (also have no idea why it works like this, please help if have experience).
Due to the issues with Gnome, I've also installed LXDE and XFCE, so you could try login to it. However I would recommend booting to regular Gnome session at least to configure your Wi-Fi connection.
Internal and external sdcards are mounted to /mnt/intSdCard and /mnt/extSdCard paths.
Important notes:
The Ubuntu image has ADB installed. E.g. if something goes wrong at the screen and you are not able to manage your device, connect it to the desktop with USB cable, run "adb shell", then "sudo su -" and you become root user. To restart graphical session you need to invoke "service gdm restart" command.
If you want to boot native recovery instead of Ubuntu, edit "rootdev" file at internal sdcard to contain "/media/recovery" path (without quotes). You can do that via ADB shell, using any Android text editor, or directly from Linux.
The last thing to know:
Not all is working from Ubuntu. Currently there is no 3G support and some other things. All of them are discussed in the parent thread
Please let me know if I have missed something and my steps do not work for you. Any other feedback will also be appreciated
Click to expand...
Click to collapse
Hi! What about the Source Code for your custom recovery and stuff?
Simon94 said:
Hi! What about the Source Code for your custom recovery
Click to expand...
Click to collapse
In ubuntu or debian:
Code:
apt-get install abootimg
abootimg -x recovery-1.img
After this you will have a folder with all the contents of the img. Some of which you can edit the scripts. You can extract the initrd and kernel even further with abootimg-unpack-initrd
i must say this is pretty awesome very few bugs, and xfce works perfect
Can't risk ruining my tablet until after the semester ends but as soon as it does I'll be trying this! Sounds awesome...
THANK YOU, and THANK YOU for returning! Note 10.1 is currently in hands of Samsung for repairs. Hopefully I can have some fun with this once it is back.
Please check drivers here: http://forum.xda-developers.com/showthread.php?p=45340017#post45340017
I think the driver for Mali acceleration may be possible (you are using Hardkernel from ODROID, correct?).
Simon94 said:
Hi! What about the Source Code for your custom recovery and stuff?
Click to expand...
Click to collapse
My latest kernel sources (arch branch) and toolchain (in the toolchain branch): https://github.com/X-Stranger/N8000
Kernel sources, patched video driver and other stuff: https://code.google.com/p/opensgn/
Recovery can be unpacked/fixed/repacked using abootimg tools as mentioned
dwegiel said:
THANK YOU, and THANK YOU for returning!
Click to expand...
Click to collapse
Don't forget to press "thanks" button (or even "donate to me" )
dwegiel said:
Note 10.1 is currently in hands of Samsung for repairs. Hopefully I can have some fun with this once it is back.
Please check drivers here: http://forum.xda-developers.com/showthread.php?p=45340017#post45340017
I think the driver for Mali acceleration may be possible (you are using Hardkernel from ODROID, correct?).
Click to expand...
Click to collapse
Yes, I'm using Mali acceleration in my Ubuntu image. It is still not 100% working though, that is what I'm talking about, when describe Gnome issues. If you can fix that - please do and share your experience, I'll update the image then.
I would also like someone to help with migration to the latest kernel, which has support for our Exynos board. Exception13 was going to do that, but looks like he is very busy person (and I can understand that).
Have composed a small menu program and added it to custom initrd. Now it is possible to select what to boot (see screenshot), e.g. don't need to edit rootdev file every time, only when adding new menu entry.
Updated first post of this topic with instructions how to get this.
X-Stranger said:
Have composed a small menu program and added it to custom initrd. Now it is possible to select what to boot (see screenshot), e.g. don't need to edit rootdev file every time, only when adding new menu entry.
View attachment 2436305
Updated first post of this topic with instructions how to get this.
Click to expand...
Click to collapse
This is fantastic news for Note 10 owners out-there. I never read about another tablet with a bootmenu to native linux and recovery, so Y'all are lucky to have X-Stranger on the case =] because also now the Ubuntu flavor is on the go.
For all you Note 8 owners out-there I am trying to port the images over with as few changes as possible but my skill level at this type of task is 1/10 that of X-Stranger, so bare with me! (Or you can try and get a package together faster than me =] ).
My process so far is to use the initrd from X-Stranger's recovery_menu.img, and use a zImage from CWM, TWRP, and stock. All that they do is loop back to the note's defalt splash screen. I used X-Stranger's entire recovery_menu.img too and it boots to just a black screen on the Note 8. So my WIP conclusion thus far is that I or someone (volunteer required) has to compile a kernel with some patches just like X-Stranger did on page 3 of the previous thread.
Enjoy Ubuntu all the Note 10 owners....
at the first boot it says "failed to mount extsdcard, press S to skip ....." of course there's nothing to press anything on. I guess it's because my 64gb microsd is ntfs formated. Should I convert it to exfat from windows, should I attach a usb keyboard with OTG and press s?
Sent from my GT-N8013 using Tapatalk
Anyone tried this on the n8020?
I cant get it to work.
Nothing happens
Edit: Wrong recovery partition...for me it is mmcblk0p9
I'm having the same the same issue as panoz, error mounting /mnt/extSdCard. Also tried removing it before boot, but it complains that there's nothing to mount. I only have a Bluetooth keyboard, no otg, so is my only option to format the card?
Btw thanks X-Stranger and all the devs involved for all your work!!
panoz said:
at the first boot it says "failed to mount extsdcard, press S to skip ....." of course there's nothing to press anything on. I guess it's because my 64gb microsd is ntfs formated. Should I convert it to exfat from windows, should I attach a usb keyboard with OTG and press s?
Sent from my GT-N8013 using Tapatalk
Click to expand...
Click to collapse
Yes, it is expecting FAT to be mounted. As a workaround you can disable ext sdcard mounting. Just go to ubuntu image directory, etc folder, find fstab file and comment out the line related to external sdcard (put # symbol in the beginning).
emptynick said:
Anyone tried this on the n8020?
I cant get it to work.
Nothing happens
Edit: Wrong recovery partition...for me it is mmcblk0p9
Click to expand...
Click to collapse
Didn't know n8020 has recovery partition different. Is data partition the same? Or also differs? Did you finally get it working or still need help?
X-Stranger said:
Didn't know n8020 has recovery partition different. Is data partition the same? Or also differs? Did you finally get it working or still need help?
Click to expand...
Click to collapse
Userdata is mmcblk0p16.
It starts to boot but tells me that the path "new_root/linux" and "new_root/ubuntu" couldn't be found.
I read about it recently, but dont know where anymore
What im mostly curious about right now are the bugs you talked about. Are they comparable to the archlinux ones? Worse? Better?
Does it have mali hardware accel?
Does the entire thing crash after a while?
Does the img itself get corrupted every few boots?
Wifi works fine?
Sorry for the barrage, but these are important for me to know before i make the switch
Sent from my Nexus 4 using xda app-developers app
emptynick said:
Userdata is mmcblk0p16.
It starts to boot but tells me that the path "new_root/linux" and "new_root/ubuntu" couldn't be found.
I read about it recently, but dont know where anymore
Click to expand...
Click to collapse
Okay, in your case I need to fix recovery partition to look for mmcblk0p16 instead of mmcblk0p12 in my case. Please send me your email, I'll generate and send special version for you to try fixing that.
younix258 said:
What im mostly curious about right now are the bugs you talked about. Are they comparable to the archlinux ones? Worse? Better?
Click to expand...
Click to collapse
This really depends. I would say that it is the same. The bugs I'm talking about: the graphics may hang it you try to move window in Gnome for example, but works perfectly in Gnome Fallback. You should give it a try.
younix258 said:
Does it have mali hardware accel?
Click to expand...
Click to collapse
Yes, it has the same accel that ArchLinux has. But after summer upgrades Gnome did not want to work in ArchLinux and I was not able to fix that. That is why there is no new ArchLinux images.
younix258 said:
Does the entire thing crash after a while?
Click to expand...
Click to collapse
Have not faced this yet.
younix258 said:
Does the img itself get corrupted every few boots?
Click to expand...
Click to collapse
Nope. There I use new approach without img. All the files are stored and the data partition and it is fsck-ing every boot. Even more - it is easier to have Ubuntu and ArchLinux together. I just need to to prepare the Arch files folder for you when have free time. Or you can do it by yourself.
younix258 said:
Wifi works fine?
Click to expand...
Click to collapse
WiFi works the same. The only thing is better - it does not require to off/on to start seeing hotspots.

[Guide] Linux on the Nexus 9

This is a guide about getting a Linux distribution up and running on your Nexus 9. The goal of this thread is to give a basic understanding about how to get a basic system running, but not working throughout all the kinks that come with doing so on tablet style hardware.
This guide will be non-destructive, and won't touch the data on your tablet. Unless of course you've yet to unlock your bootloader, which if that is the case then shame on you.
Some prerequisites before starting this project with your Nexus 9
A Linux distribution running on your computer. Either in a virtual machine or as your main OS.
A USB flash drive
USB OTG cable
Some things that are nice to have
USB hub
USB keyboard
USB mouse
USB network card
Headphone UART cable
A brief overview about what we are going to be doing here.
First we are going to be building an initramfs. This is a small filesystem with a bare minimum set of tools that can be loaded in to RAM space and use. We will be using this while we are initially getting our kernel up and running, to make sure we didn't mess anything up.
Next we will move on to building the actual kernel for the device. We will be running a Android kernel since Nvidia hasn't been the quickest on their attempt to upstreaming everything required to run this device on a upstream Linux kernel. So we'll be running a 3.10 kernel, which is a heck of a lot better than some 3.0 or 3.4 thing that older devices are on.
Third we will be building our rootfs that will run from an external USB storage device, so we don't affect any data actually on the tablet. I may also add to the guide how to partition your internal storage space so we can use that instead.
[Step 0/4]
We need to set up our build environment on our host Linux distribution before we begin anything. I'm going to assume that the host Linux system we are running is Debian/Ubuntu based, so we'll be using apt to grab our packages we need.
Code:
sudo apt-get install gcc g++ git gcc-4.9-aarch64-linux-gnu g++-4.9-aarch64-linux-gnu libncurses5-dev
This installs the host gcc and AArch64 cross compiler, along with git. We will need these tools to build everything required.
Things that don't work.
Rebooting
Touchscreen
Way more things that people care about
The first step that we will be doing is building our filesystem that we will load in to memory for testing.
This is typically called an initramfs, which tends to be a compressed filesystem that gets copied in to a kernel image once the kernel is built. We won't be using this image for long, as it is mostly to make sure we have everything working correctly before jumping to a full linux distribution.
This step is technically unnecessary, but it brings you up to speed with what initially needs to be done to get something running.
So starting off, we are going to need to pick a target for the filesystem. I've decided to go with buildroot since it is a project that is really easy to get built.
Steps Overview
Clone buildroot with git
Setup buildroot to cross compile
Set up basic options
Compile!
1)*Clone buildroot from github.
Code:
git clone https://github.com/buildroot/buildroot.git
cd buildroot
2)*Start configuring buildroot
Code:
make menuconfig
This will bring up a menu for determining how we want to build our buildroot. We have quite a few things to change.
These options enable building an AArch64 capable buildroot using the Linaro AArch64 toolchain, with it outputting a terminal to ttyFIQ0 which is the headphone UART terminal. Along with taking the filesystem and pushing it in to a cpio archive which later the linux kernel understands how to use.
Target options->Target Architecture->AArch64
Toolchain->Toolchain type->External toolchain
External toolchain automatically enables the Linaro AArch64 toolchain below it.
System configuration->getty options->TTY port->ttyFIQ0
Filesystem images->cpio the root filesystem
3)*Build the buildroot
Code:
make
This will go through downloading all the packages required to build an AArch64 buildroot. So go make a cup of tea, this should only take a few minutes depending on your internet speed and computer speed.
Once the system has gone through compiling everything, then you'll have a file available.
This file will end up in the `output/images/` folder as the file 'rootfs.cpio'. If that file isn't there then something terrible has happened.
If the file is there, then everything on this step is done! We built our temporary filesystem which we will be putting to use in the next step!
This is really the meat of the guide. Building the kernel correctly is half the battle with running a full Linux distribution on the device. We are going to be pulling our kernel from the official Android repository and changing the default configuration to suit our needs.
Steps Overview
Clone kernel with git
Configure environment for cross-compiling
Configure the kernel for building correctly
Test run kernel
1) Clone the kernel using git
This step will take quite a bit of time since it is fairly large.
Code:
git clone https://android.googlesource.com/kernel/tegra.git
cd tegra
2)*Checkout the correct branch
Code:
git checkout android-tegra-flounder-3.10-lollipop-release
3)*Set environment variables for cross-compiling the Linux kernel
Code:
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
4) Configure the kernel
Code:
make flounder_defconfig
make menuconfig
This will bring up a menu just like how the buildroot menu came up. We need to set a few options to make sure everything comes up correctly on the Nexus 9.
General setup->Cross-compiler tool prefix->aarch64-linux-gnu-
General setup->Initramfs source file(s)-><The cpio file that was built in the buildroot>
Mine was '/home/ryanh/work/N9_Kernel_Tutorial/buildroot/output/images/rootfs.cpio'
Device Drivers->Character devices->Virtual Terminal
Device Drivers->Generic Driver Options->Maintain a devtmpfs filesystem to mount at /dev
Device Drivers->Generic Driver Options->Automount devtmpfs at /dev...
Device Drivers->Network device support->Wireless LAN->Firmware path->/lib/firmware/fw_bcmdhd.bin
Device Drivers->Network device support->Wireless LAN->NVRAM path->/etc/wifi/bcmdhd.cal
Device Drivers->Character devices->Virtual terminal
Device Drivers->Watchdog Timer Support->Tegra watchdog (Disable it)
Device Drivers->Staging drivers->Android->Put the FIQ debugger into console mode by default
Device Drivers->Graphics support->Tegra Framebuffer driver
Device Drivers->Graphics support->Console display driver support->Framebuffer Console support
Device Drivers->Graphics support->Console display driver support->Map the console to the primary display device
Device Drivers->Graphics support->Console display driver support->Framebuffer Console Rotation
We've got to enable the tegra watchdog otherwise the device will reboot automatically every two minutes.
The few other things are needed for a sane Linux environment and also setting the initramfs file as our root filesystem.
5)*Compile the kernel
Code:
make -j5
If you're lucky it will build without error and you'll have a file in 'arch/arm64/boot/' named 'Image.gz-dtb' which is the final kernel file.
With this file we should be able to boot a kernel with a buildroot automatically mounted.
Test run the kernel!
This is where I recommend having your headphone UART cable, because this won't update the screen at all and it will seem like it has locked up. The cable is fairly easy to make with a little bit of know how about soldering and electronics, and will save you from tearing out your hair trying to figure out what went wrong.
Without the cable you won't be able to see any output, so either build the cable or skip this step.
To see output from the cable you need to connect to it with either gnu screen or minicom
Code:
sudo screen /dev/ttyUSB0 115200
To boot the kernel reboot in to the bootloader and then boot the kernel using fastboot
Code:
adb reboot bootloader
fastboot -c "console=ttyFIQ0,115200n8 rw" boot arch/arm64/boot/Image.gz-dtb
Once you do this, over the UART cable you'll see the Linux kernel booting and have a buildroot login terminal.
The default username is 'root' without any password.
Code:
Welcome to Buildroot
buildroot login: root
# uname -a
Linux buildroot 3.10.40-ga3846f1 #2 SMP PREEMPT Sat Dec 27 06:15:13 CST 2014 aarch64 GNU/Linux
This shows that the kernel is booting properly and jumping in to our buildroot correctly.
To go back in to Android from this area just type reboot in to the terminal instance.
The final step in getting a Linux distro is to build our root filesystem on a USB flash drive.
Steps Overview
Format flash drive as ext2/ext3/ext4
Dump Ubuntu rootfs on to the flash drive
Minor configuration
Rebuild Linux kernel with new options
The first thing we will want to be doing is formatting a flash drive to a Linux partition type. I am going to be using an ext3 partition on a 64GB USB 3.0 flash drive. I'd recommend at least an 8GB flash drive, anything smaller may have issues with fitting everything on to it.
Once you're done flashing your drive you'll need to download an Ubuntu Core image for AArch64/ARM64/ARMv8.
Download the Ubuntu Core 14.04.1 image*Here. Make sure to grab the 'arm64' tar.gz file, not the 'amd64' file.
Once you have the flash drive formatted and mounted, extract the ubuntu core image to the flash drive.
Code:
sudo tar zxf ubuntu-core-14.04.1-core-arm64.tar.gz -C Mount/
Configuring the Ubuntu Core image for the Nexus 9
Steps Overview
Terminal over UART configuration
DNS configuration
Firmware files
Add user
In order to properly get a terminal instance over the UART we have to add a package to the base Ubuntu core image.
This is a small package that all it does is open a new terminal instance over the configured getty instance. The package can be found*Here.
To install it to the root filesystem just unpack it to the root filesystem on the USB flash drive
Code:
sudo tar xf console.tar -C Mount/
We need to set up a DNS server so that the filesystem will be able to resolve addresses via DNS.
Let's just set it to Google's DNS.
Code:
sudo echo 'nameserver 8.8.8.8' >> Mount/etc/resolv.conf
We've got to grab the firmware files from the Nexus 9 in order for the device to stop spamming warnings at us in the console.
These are used for multiple things, so it is a good idea to grab them. You can grab these either from a factory image or directly from the Nexus 9. I chose to grab mine directly from the Nexus 9.
Code:
sudo mkdir Mount/lib/firmware
sudo mkdir Mount/etc/wifi
sudo adb pull /vendor/firmware Mount/lib/firmware/
sudo adb pull /system/etc/wifi/bcmdhd.cal Mount/etc/wifi/
We need to add a user to the root filesystem. This is a fairly annoying step because we actually need to chroot in to the filesystem.
There is a really nice guide to doing this on a ARMv7 filesystem*Here. This won't work for our system because we are working with ARMv8 instead.
So we are going to use that guide as a base but change it over to support what we need to do for AArch64.
First thing we've got to do is build qemu as a static binary for AArch64
This is fairly straight forward.
Code:
git clone git://git.qemu-project.org/qemu.git
cd qemu
sudo apt-get build-dep qemu
./configure --target-list=aarch64-linux-user *--static --disable-werror
make -j5
This will get us a binary in the aarch64-linux-user folder called 'qemu-aarch64'
We will need to rename this to 'qemu-arm64-static' and move it in to the '/usr/bin/' folder inside of our root partition
Once qemu is inside of the root partition, we will be able to chroot in to it and add our user.
So go in to the root directory of our filesystem we are generating, and run a few basic commands.
Set up some mounts inside of the chroot
Code:
for m in `echo 'sys dev proc'`; do sudo mount /$m ./$m -o bind; done
*Chroot in to the root filesystem
Code:
sudo LC_ALL=C chroot . /bin/bash
Now we are inside of the root filesystem, we can add the new user to it.
Let's just add a new user named 'ubuntu'. The first command will ask for a password for your user. The rest will add it to some default groups to make sure it can do things.
Code:
adduser ubuntu
addgroup ubuntu adm
addgroup ubuntu sudo
Once the user is added you can exit the root filesystem with a regular exit command, then we have to make sure to unmount all of the mounts we did prior to chrooting in to the filesystem.
Code:
for m in `echo 'sys dev proc'`; do sudo umount ./$m; done
Make sure to cleanly unmount the flash drive so everything is written to it.
Reconfigure the kernel to boot from flash drive instead of initramfs
1)*Go in to the kernel configuration
Code:
make menuconfig
Change the configuration to remove the initramfs
General Setup->Initial RAM filesystem and RAM disk (initramfs/initrd) support (Disable it)
Then exit the menu and rebuild the kernel
Code:
make -j5
Running the Ubuntu Core Image
So with the device sitting at the bootloader we will need to boot the new kernel
Code:
fastboot -c "fbcon=rotate:1 root=/dev/sda1 rootwait rw" boot arch/arm64/boot/Image.gz-dtb
This will boot the kernel and then it'll wait until you plug in the flash drive to continue booting.
So plug the USB hub in to the USB OTG cable. Then plug your USB flash drive and USB keyboard in to the USB hub.
After that plug the USB OTG cable in to the tablet and it will continue booting.
Give it roughly 20-60 seconds and it will show a login prompt on the devices screen.
You'll be able to login to the core image with the user you created earlier.
With some packages installed like the xubuntu-desktop environment you can have a full desktop available.
Reserved for QA - Additional Information - Misc
Information
Hardware acceleration
Potentially hardware acceleration should be possible using the Nouveau video driver. This is completely untested, and the Nouveau version included with Ubuntu 14.04 isn't new enough to have GK20a support. One would most likely need to build Nouveau from ToT to get support.
Known Issues
If something tries enabling the wifi chipset then the kernel will hardlock and cause the device to reboot. It may be best to disable the broadcom driver in the kernel until that is figured out.
Bluetooth doesn't seem to work. Not sure why not. Seems to show up as a device, but it can't be used.
Wow thanks for taking the time to post this tuturial.
Greatly apriciated.
Nice work, excellent writeup.
Cant wait to try!!
---------- Post added at 08:35 PM ---------- Previous post was at 08:31 PM ----------
Where did you get your headphone UART cable
Great work sonic, been waiting for this. Will try and report back.
I took some time to figure out how to fix the integrated wireless LAN in the tablet.
This requires grabbing an additional file from the tablet and configuring a few kernel options so they know where the new file locations are since previously they are configured to Android specific locations.
Seems to work fine on my 802.11n 2.4Ghz network.
Running into a snag while compiling the kernel. It always fails at this exact spot on Ubuntu 14.10. Any ideas? (first time compiling a kernel from source )
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
farmerbb said:
Running into a snag while compiling the kernel. It always fails at this exact spot on Ubuntu 14.10. Any ideas? (first time compiling a kernel from source )
Click to expand...
Click to collapse
Note: that does not tell me what failed
When the build failes can you do
Code:
make
Then give me the output
USBhost said:
Note: that does not tell me what failed
When the build failes can you do
Code:
make
Then give me the output
Click to expand...
Click to collapse
OK, here's what failed. Looks like an error in qcom_usb_modem_power.c:
Looks like it's having a fit in a required module that is enabled for the tegra platform.
Looks like a new warning that has cropped up in a newer version of GCC? My AArch64 gcc version that I'm running is 4.8.2. I can install 4.9.1 and test there but it will have to be later.
GCC is definitely right in this case though, Qualcomm managed to screw up a basic memset function call. The zero is supposed to be the middle argument, and GCC recognizes it as an warning now. Which gets upgraded to an error with some configuration.
If you know light C/C++ you can change those two lines that it is complaining about to be correct.
Should be
memset(modem->ftrace_cmd, 0, sizeof(modem->ftrace_cmd));
and
memset(modem->msr_info_list, 0, sizeof(modem->msr_info_list));
For those two lines at 1912 and 1915 respectively.
Looks like I'm going to have to start a patch set for this to work around Qualcomm failing.
sonicadvance1 said:
Looks like it's having a fit in a required module that is enabled for the tegra platform.
Looks like a new warning that has cropped up in a newer version of GCC? My AArch64 gcc version that I'm running is 4.8.2. I can install 4.9.1 and test there but it will have to be later.
GCC is definitely right in this case though, Qualcomm managed to screw up a basic memset function call. The zero is supposed to be the middle argument, and GCC recognizes it as an warning now. Which gets upgraded to an error with some configuration.
If you know light C/C++ you can change those two lines that it is complaining about to be correct.
Should be
memset(modem->ftrace_cmd, 0, sizeof(modem->ftrace_cmd));
and
memset(modem->msr_info_list, 0, sizeof(modem->msr_info_list));
For those two lines at 1912 and 1915 respectively.
Looks like I'm going to have to start a patch set for this to work around Qualcomm failing.
Click to expand...
Click to collapse
I made the changes to qcom_usb_modem_power.c as you listed, and got the kernel to compile okay.
Starting from a fresh Ubuntu 14.10 install (inside a VM), I ended up installing these additional packages in addition to the ones you list in step 0:
Code:
libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 qemu binfmt-support qemu-user-static android-tools-adb android-tools-fastboot
To get the kernel to compile, I also needed to symlink aarch64-linux-gnu-gcc-4.9 to aarch64-linux-gnu-gcc in /usr/bin, for make to recognize the correct gcc program.
But anyway, I've gotten my N9 booted to the Ubuntu login prompt Now I just need to grab a USB keyboard so that I can actually login!
Thanks so much for the guide! Can't wait for MultiROM to be ported to our device, to make this easier to boot
farmerbb said:
I made the changes to qcom_usb_modem_power.c as you listed, and got the kernel to compile okay.
Starting from a fresh Ubuntu 14.10 install (inside a VM), I ended up installing these additional packages in addition to the ones you list in step 0:
Code:
libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 qemu binfmt-support qemu-user-static android-tools-adb android-tools-fastboot
To get the kernel to compile, I also needed to symlink aarch64-linux-gnu-gcc-4.9 to aarch64-linux-gnu-gcc in /usr/bin, for make to recognize the correct gcc program.
But anyway, I've gotten my N9 booted to the Ubuntu login prompt Now I just need to grab a USB keyboard so that I can actually login!
Thanks so much for the guide! Can't wait for MultiROM to be ported to our device, to make this easier to boot
Click to expand...
Click to collapse
ii cant wait
Excellent guide. Thank you very much.
It appears the "*" in this configure command below may be a typo?
sonicadvance1 said:
Code:
git clone git://git.qemu-project.org/qemu.git
cd qemu
sudo apt-get build-dep qemu
./configure --target-list=aarch64-linux-user *--static --disable-werror
make -j5
Click to expand...
Click to collapse
Anyway, I am running into a more serious issue (Problem resolved. See bottom.) executing dynamically build aarch64 binaries. On my 14.10 x86 machine, I am able to execute statically build aarch64 binaries using my new qemu-aarch64 emulator. I am not able to execute dynamically build aarch64 binaries. For instance, when I try to execute bin/bash from the mounted root filesystem directly on the host, it will complain:
/lib/ld-linux-aarch64.so.1: No such file or directory
Now this is all right, because I don't have the required aarch64 shared libs on my x86 machine. So I copied qemu-aarch64 to /usr/bin/qemu-aarch64-static on the mounted root filesystem. However, when I run chroot (executing the same /bin/bash):
sonicadvance1 said:
Code:
sudo LC_ALL=C chroot . /bin/bash
Now we are inside of the root filesystem, we can add the new user to it.
Click to expand...
Click to collapse
...I am getting this:
chroot: failed to run command ‘/bin/bash’: No such file or directory
I think this is due to the same issue as above: that qemu is looking for aarch64 shared libs (/lib/ld-linux-aarch64.so.1 is needed to run bash) on my host machine. Should it not, due to chroot, look for them in the mounted root filesystem (where they actually are)?
Other than this... my ARM64 kernel is booting fine. The only problem is, that I cannot login to it yet, because I wasn't able to add a new user.
Edit: Interestingly, the following "works":
Code:
$ sudo chroot . usr/bin/qemu-aarch64-static /bin/bash
bash: /usr/bin/groups: No such file or directory
[email protected]:/#
Now inside the chroot running the aarch64 variant of /bin/bash, I am still unable to start any aarch64 executables. But tab-completion works and I am able to find and run /usr/bin/qemu-aarch64-static (the x86 binary). Could this be a problem with any binfmts mappings inside chroot? Odd.
Edit 2: Solved. Just tried from another machine (10.04) and here, everything is working perfectly. I probably have chroot hosed on my 1st machine. Excellent guide. One last note: if you don't have qemu installed on your host machine, you may need to run the following:
Code:
sudo apt-get install qemu binfmt-support qemu-user-static
t1mur said:
Excellent guide. Thank you very much.
It appears the "*" in this configure command below may be a typo?
Anyway, I am running into a more serious issue executing dynamically build aarch64 binaries. On my 14.10 x86 machine, I am able to execute statically build aarch64 binaries using my new qemu-aarch64 emulator. I am not able to execute dynamically build aarch64 binaries. For instance, when I try to execute bin/bash from the mounted root filesystem directly on the host, it will complain:
/lib/ld-linux-aarch64.so.1: No such file or directory
Now this is all right, because I don't have the required aarch64 shared libs on my x86 machine. So I copied qemu-aarch64 to /usr/bin/qemu-aarch64-static on the mounted root filesystem. However, when I run chroot (executing the same /bin/bash):
...I am getting this:
chroot: failed to run command ‘/bin/bash’: No such file or directory
I think this is due to the same issue as above: that qemu is looking for aarch64 shared libs (/lib/ld-linux-aarch64.so.1 is needed to run bash) on my host machine. Should it not, due to chroot, look for them in the mounted root filesystem (where they actually are)?
Other than this... my ARM64 kernel is booting fine. The only problem is, that I cannot login to it yet, because I wasn't able to add a new user.
Edit: Interestingly, the following "works":
Code:
$ sudo chroot . usr/bin/qemu-aarch64-static /bin/bash
bash: /usr/bin/groups: No such file or directory
[email protected]:/#
Now inside the chroot running the aarch64 variant of /bin/bash, I am still unable to start any aarch64 executables. But tab-completion works and I am able to find and run /usr/bin/qemu-aarch64-static (the x86 binary). Could this be a problem with any binfmts mappings inside chroot? Odd.
Click to expand...
Click to collapse
I ran into these exact issues as well, and was eventually able to get the chroot working properly
Make sure you have the qemu, binfmt-support, qemu-user-static packages installed, and run 'update-binfmts --display' to ensure that aarch64 support is registered properly. Also make sure you've named the 'qemu-aarch64' binary as 'qemu-arm64-static' (not 'qemu-aarch64-static') at usr/bin on the flash drive (the Ubuntu Core image recognizes its architecture as arm64, not aarch64)
farmerbb said:
I ran into these exact issues as well, and was eventually able to get the chroot working properly
Make sure you have the qemu, binfmt-support, qemu-user-static packages installed, and run 'update-binfmts --display' to ensure that aarch64 support is registered properly. Also make sure you've named the 'qemu-aarch64' binary as 'qemu-arm64-static' (not 'qemu-aarch64-static') at usr/bin on the flash drive (the Ubuntu Core image recognizes its architecture as arm64, not aarch64)
Click to expand...
Click to collapse
Ah... it's really good to know one isn't alone. Hehe. Well, it looks like 14.10 is better suited for compiling the arm kernel (gcc-4.9-aarch64 etc.), but doing the chroot is smoother on 14.04.
But how do I get wifi and/or USB ethernet up? And why do have to look at this?
unable to stat /etc/sudoers: no such file or directory
Did you get this too?
t1mur said:
Ah... it's really good to know one isn't alone. Hehe. Well, it looks like 14.10 is better suited for compiling the arm kernel (gcc-4.9-aarch64 etc.), but doing the chroot is smoother on 14.04.
But how do I get wifi and/or USB ethernet up? And why do have to look at this?
unable to stat /etc/sudoers: no such file or directory
Did you get this too?
Click to expand...
Click to collapse
I'm still working on getting networking and X.org running myself. It will recognize my ASIX USB adapter (in the dmesg log) but eth0 doesn't show up and 'ifconfig eth0 up' doesn't work. Haven't tried Wi-Fi yet. My low-level Linux knowledge isn't all that great However, I can still chroot back into the filesystem on my PC and update/install packages, etc. in the meantime.
No I don't see the /etc/sudoers error.

[CLOSED]Android ON Linux (AoL) and not the standard other way around

@MikeChannon removed OP. please close
what? lol
Good good. Can't wait! :silly:
workdowg said:
Good good. Can't wait! :silly:
Click to expand...
Click to collapse
i'm working on an automated deploying (kind of the one for restoring the bios) and i will start with the 1050f one. automated because otherwise things can get messy
maybe you can prepare some tutorial for the X part based on your experience (tho i, as a proud windows user, didnt believed people use that stuff and i'm sure goes the other way around )
ionioni said:
i'm working on an automated deploying (kind of the one for restoring the bios) and i will start with the 1050f one. automated because otherwise things can get messy
maybe you can prepare some tutorial for the X part based on your experience (tho i, as a proud windows user, didnt believed people use that stuff and i'm sure goes the other way around )
Click to expand...
Click to collapse
Will do Master Chef! It really was simple once the base is done...
Proof of concept (Actually it just plain works...):
Arch x86_x64 - LXDE (with Pulse sound) running on Xsdl
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
If Installed, Can I steam game?
neverapple88 said:
If Installed, Can I steam game?
Click to expand...
Click to collapse
Most likely, if the linux graphics driver works with the embedded SoC graphics driver. And it seems Android also uses the same i915 driver.
update: need a 1050F owner to test the AoL deployment tool... my device is a 1380F so i cannot test thoroughly, i want to test it with a real owner. pm for details. worst case: you will have to flash kitkat rom back, best case: it keeps all the existing files in place, stealing space from data partition for the new linux. waiting...
ionioni said:
update: need a 1050F owner to test the AoL deployment tool... my device is a 1380F so i cannot test thoroughly, i want to test it with a real owner. pm for details. worst case: you will have to flash kitkat rom back, best case: it keeps all the existing files in place, stealing space from data partition for the new linux. waiting...
Click to expand...
Click to collapse
Anyone??? Everybody was so excited and no one wants to try? I'll do it if nobody else will. For me it means backing up my current Linux and Android partitions (been working hard at getting them lean and mean) partitions and going through the whole flash from kitkat ordeal again... for probably the 10th time at least...
Sent from my YOGA Tablet 2-1050F using Tapatalk
workdowg said:
Anyone??? Everybody was so excited and no one wants to try? I'll do it if nobody else will. For me it means backing up my current Linux and Android partitions (been working hard at getting them lean and mean) partitions and going through the whole flash from kitkat ordeal again... for probably the 10th time at least...
Sent from my YOGA Tablet 2-1050F using Tapatalk
Click to expand...
Click to collapse
yeah, funny thing...
upped a first version of the tutorial
and the first batch of files (for 830 and 1050)
I could not wait a few days ago. I excited.
But I can't English well. So it is difficult to test.
I wanted the first Windows. But if Linux works reliably, I would choose Linux. (I'm ubuntu user)
I think Intel graphics drivers are going to be good as the performance by Android. (for steam game!)
However, one problem occurred.
I used data parted More than 20GB. (sry my english)
This space is insufficient to install Linux and applications and steam game.
The workaround is to install a Linux partition on the sd card.
Can I install a Linux partition on the sd card? (and run)
ps. After entering the text has been changed the post. I'll go to see the Thread.
neverapple88 said:
I could not wait a few days ago. I excited.
But I can't English well. So it is difficult to test.
I wanted the first Windows. But if Linux works reliably, I would choose Linux. (I'm ubuntu user)
I think Intel graphics drivers are going to be good as the performance by Android. (for steam game!)
However, one problem occurred.
I used data parted More than 18GB. (sry my english)
This space is insufficient to install Linux and applications and steam game.
The workaround is to install a Linux partition on the sd card.
Can I install a Linux partition on the sd card? (and run)
Click to expand...
Click to collapse
this IS ONLY FOR UNCHANGED STOCK PARTITIONS LAYOUT (it will refuse to install if it detects that your data partition is not having the original configuration), it CHANGES your partitions by adding two more partitions a big one (min. 1024MB but you can make it bigger durin installation) and a small one for the original Android initramfs (read the tutorial to understand more) and that space is taken (ripped off) from the data partition. and whenever you will uninstall it will remove the two new partitions and restore the data partition to the original size
i did not did (i had a manual setup at some point) a setup to sdcard s it is too slow ( @workdowg can give you more details, as he stayed on that configuration more i went for the on the internal partition variant quickly when i've seen how much it takes to work with files when you 're having linux on sdcard)
also on the X related issues you should talk with him (i didn't used X on AoL, i only use shell tools/servers)
you should flash back your Android and check that you have the original partitions (number, size and names) before trying to install.
I have made a mistake when installing. (no insert rootfs file, uninstall, etc ...)
now. my /data partition 11.11GB (OMG,,,)
I've tried a factory reset. but no change. (GB)
how to? ...
ps. I want to work with the command.
neverapple88 said:
I have made a mistake when installing. (no rootfs file, uninstall, etc ...)
now. my /data partition 11.11GB
I've tried a factory reset. but no change.
how to? ...
Click to expand...
Click to collapse
use the corresponding tool from this post (if youre on lollipop use the lollipop one) it will open a root shell on a very early boot (without Android loading), you have to start in DnX mode then start the tool
after the shell opens, open another command window and push the extracted (attached) gdisk (it's a static IA32 version i compiled for working with GPT partitions) to your tab
adb push gdisk /tmp/gdisk, return to the root shell and input
chmod 755 /tmp/gdisk
/tmp/gdisk -p /dev/block/mmcblk0
and post the result
the partition.txt attached shows how ot should be default configurations of the partitions on a 1050 (830) device
ionioni said:
use the corresponding tool from this post (if youre on lollipop use the lollipop one) it will open a root shell on a very early boot (without Android loading), you have to start in DnX mode then start the tool
after the shell opens, open another command window and push the extracted (attached) gdisk (it's a static IA32 version i compiled for working with GPT partitions) to your tab
adb push gdisk /tmp/gdisk, return to the root shell and input
chmod 755 /tmp/gdisk
/tmp/gdisk -p /dev/block/mmcblk0
and post the result
the partition.txt attached shows how ot should be default configurations of the partitions on a 1050 (830) device
Click to expand...
Click to collapse
I first start DnX mode -> run tmp-root-1050F-lollipop -> run normal cmd
(cmd) >adb push gdisk /tmp/gdisk
adb server is out of date. killing...
* daemon started successfully *
5597 KB/s (492988 bytes in 0.086s)
after root cmd is shutdown(end)
neverapple88 said:
I first start DnX mode -> run tmp-root-1050F-lollipop -> run normal cmd
(cmd) >adb push gdisk /tmp/gdisk
adb server is out of date. killing...
* daemon started successfully *
5597 KB/s (492988 bytes in 0.086s)
after root cmd is shutdown(end)
Click to expand...
Click to collapse
but the root shell opens??? you must wait until it opens the root shell yeah, it opens otherwise you would not be able to push (i was reading too fast)
the window gets killed because the temp_root has a differnet version of adb and on your pc there is another and when you try to do the adb push you kill the adb from the tmp_root, but that is not a problem, just do a adb shell after you did the push and it will open anothe root shell and you can enter and input the other commands
also, have you seen the text file with the partitions? you seemed surprised and i don't know why, on the default configuration the data has around 11GB, do not confuse that with the whole mmc that has 16
ionioni said:
but the root shell opens??? you must wait until it opens the root shell yeah, it opens otherwise you would not be able to push (i was reading too fast)
the window gets killed because the temp_root has a differnet version of adb and on your pc there is another and when you try to do the adb push you kill the adb from the tmp_root, but that is not a problem, just do a adb shell after you did the push and it will open anothe root shell and you can enter and input the other commands
also, have you seen the text file with the partitions? you seemed surprised and i don't know why, on the default configuration the data has around 11GB, do not confuse that with the whole mmc that has 16
Click to expand...
Click to collapse
Thank you! It has been recovered.
This was a fun experience. (and risk...) XD
I'd like to know more, but do not know the English language. :silly:
So I'll use the Arch Linux.
Your articles are hard to read, But Thank you for your time.
neverapple88 said:
Thank you! It has been recovered.
This was a fun experience. (and risk...) XD
I'd like to know more, but do not know the English language. :silly:
So I'll use the Arch Linux.
Thank you for your time. : D
Click to expand...
Click to collapse
Theres an Ubuntu too now...
ionioni said:
Theres an Ubuntu too now...
Click to expand...
Click to collapse
C
===============================================
Found ready-made linux rootfs.tgz file, pushing to device...
Checking for valid deployment enviroment
Error! Invalid <failed check> data partition end sector.
Have you already deployed Linux? If so try restoring first.
ABORTING! Nothing was changed!
OMG.. (I try fix)
neverapple88 said:
C
===============================================
Found ready-made linux rootfs.tgz file, pushing to device...
Checking for valid deployment enviroment
Error! Invalid <failed check> data partition end sector.
Have you already deployed Linux? If so try restoring first.
ABORTING! Nothing was changed!
OMG..
Click to expand...
Click to collapse
nothing to be scared of, it has not changed anything, just detected that something is wrong and exited
what is your partition layout? it compares what he reads against the stock values and if they don't match he gives error.... can you run a command so that we see the EXACT layout of your partitions? (number, start_sector, end_sector, name)
you could use the commands i asked you previously to run
temp_root -> adb push gdisk... etc and you will get a print of the partitions on your device
what is your mmc capacity (16GB?) if your mmc is a 32GB one then download and use this

[LINUX][POSTMARKETOS] Native Linux on the Asus Eee Pad Transformer TF101

Instructions HERE.
TO DO:
- Other things mentioned in the wiki:
https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)
VERSION INFORMATION (CHANGELOG)
A newer MATE image is available to download. Download it here or here.
Notes about this release:
v4.0
- Please read the updated instructions.
- Vast performance improvements overall (because it's using mainline 5.12.8 grate kernel).
- It's trickier to get it working, if you cannot follow the instructions please change to v3.0.
v3.0
- Firmware has to be renamed at first boot.
Do the following command as root or using sudo:
Code:
sudo ash rename-firmware.sh
Those who are migrating from older versions or want to know what this .sh file is:
https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)
Follow the wiki, look into Wi-Fi section.
Reboot and done.
- Bluetooth is working, but only from terminal.
Code:
sudo hciconfig hci0 up
hcitool scan
hcitool pair, etc etc
- Buttons from trackpad are working, mousepad not yet.
- Updated kernel zip. Latest release here: https://github.com/antonialoytorren...rnel_zip/PostmarketOS-kernel-3.1.10-15-r2.zip
v2.0
- Changed icons (https://github.com/vinceliuice/vimix-icon-theme) and GTK (https://github.com/vinceliuice/vimix-gtk-themes) of XFCE. Now it is a modern XFCE.
- Removed second panel to save space.
- The XFCE Whiskermenu does not close when typing in onboard.
· Other things that will be included in the next release:
- Make a desktop shortcut opening a browser linking this XDA thread.
- Try to get trackpad working
v1.0
- Initial Release
Screenshots
MATE 4.0 (mainline PostmarketOS kernel)
See HERE.
https://imgur.com/a/Sf7BbFt
XFCE 2.0
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
XFCE
MATE
JWM
Dual Booting Android and PostmarketOS
You can only dual boot if you have installed postmarketOS in your microSD or SD Card. If not, you (probably) have to wipe your partition where postmarketOS is located for booting Android again.
Well, the easiest way to do dual boot is this:
In the sdcard folder or whatever folder you want, put the Android ROM zip and PostmarketOS' kernel zip.
Note: Be sure to run the TWRP version 2.8.1.1, otherwise Android won't flash.
The Android ROM (I'm using timduru's ROM: https://forum.xda-developers.com/eee-pad-transformer/development/rom-t3318496) can be downloaded here: https://downloads.timduru.org/android/tf101/K.A.T/KatKiss/6.0/dev/KatKiss-6.0_034.zip
The PostmarketOS' kernel zip can be downloaded here: https://github.com/antonialoytorrens/TF101-linux-images/raw/master/postmarketOS/kernel_zip/PostmarketOS-kernel-3.1.10-15.zip (has some issues with WiFi, flashing the blob using dd and adb is more recommended, https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101))
If you want Android, go to recovery and flash timduru's ROM.
If you want PostmarketOS, go to recovery and flash my kernel zip (please, disable signature verification when flashing)
Reserved
Reserved
aat596 said:
XFCE
MATE
Click to expand...
Click to collapse
WOW! I was in the last days researching something about it because I found this machine stopped and it has a good relative hardware to run light applications, really a waste not to have more updates.
I have a question: In this procedure, I would like to leave Linux in the internal memory, what would it be like to do this and leave it as a single system instead of Android?
And congratulations
be.sign said:
WOW! I was in the last days researching something about it because I found this machine stopped and it has a good relative hardware to run light applications, really a waste not to have more updates.
I have a question: In this procedure, I would like to leave Linux in the internal memory, what would it be like to do this and leave it as a single system instead of Android?
And congratulations
Click to expand...
Click to collapse
Having the PostmarketOS system in internal memory is harder and more difficult. You cannot install it on the bigger partition (the 30 GB one), I once tried and almost bricked my tablet because fails to boot due to media/ symlinks.
Unfortunately, you have to install it on /dev/block/mmcblk0p1 (533 MB partition).
I'm trying to make an usable small desktop image for /dev/block/mmcblk0p1 , XFCE is too big for that.
Nevertheless, you can enter recovery mode, do a Factory Reset and wipe Internal Memory to delete Android; then boot Linux from SDCard and use all available space to store your files.
If you want to make your image yourself, please look at https://wiki.postmarketos.org/wiki/Installation_guide and https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)
be.sign said:
WOW! I was in the last days researching something about it because I found this machine stopped and it has a good relative hardware to run light applications, really a waste not to have more updates.
I have a question: In this procedure, I would like to leave Linux in the internal memory, what would it be like to do this and leave it as a single system instead of Android?
And congratulations
Click to expand...
Click to collapse
EDIT: A mini JWM image is available for download. It has the size to fit in the Asus TF101 first partition (/dev/block/mmcblk0p1). Download here: https://downloads.sourceforge.net/project/tf101-linux-images/postmarketOS/minijwm-postmarketOS-TF101.zip
Then execute exactly the following commands:
Code:
$ unzip minijwm-postmarketOS-TF101.zip
$ cd minijwm-postmarketOS-TF101
$ adb push blob-asus-tf101 /cache
$ adb push minijwm-tf101.img /sdcard
$ adb shell
# dd if=/cache/blob-asus-tf101 of=/dev/block/mmcblk0p4
# dd if=/sdcard/minijwm-tf101.img of=/dev/block/mmcblk0p1
Hello, thanks a lot for your sharing
I have an error with the XFCE image. When in try to boot from an external SDCard, following message occurs : "Initramfs-extras not found".
It work's without any problem when i boot from a custom built flashed on internal storage.
Do you have an idea from the causes ?
Raphzer said:
Hello, thanks a lot for your sharing
I have an error with the XFCE image. When in try to boot from an external SDCard, following message occurs : "Initramfs-extras not found".
It work's without any problem when i boot from a custom built flashed on internal storage.
Do you have an idea from the causes ?
Click to expand...
Click to collapse
This means that initramfs-asus-tf101-extra file is missing from pmOS_boot partition. All files located in this partition are strictly required.
EDIT: Btw, now I have download the XFCE image from sourceforge, flashed it into a new SD Card and boots fine.
aat596 said:
This means that initramfs-asus-tf101-extra file is missing from pmOS_boot partition. All files located in this partition are strictly required.
EDIT: Btw, now I have download the XFCE image from sourceforge, flashed it into a new SD Card and boots fine.
Click to expand...
Click to collapse
I don't understand why it doesn't work with sdcard. I have tried to flash my working build on the sdcard and the same error occurs
No file are missing on the sdcard, very strange.
Raphzer said:
I don't understand why it doesn't work with sdcard. I have tried to flash my working build on the sdcard and the same error occurs
No file are missing on the sdcard, very strange.
Click to expand...
Click to collapse
If it's your own working build then try these steps:
Code:
$ sudo pmbootstrap init (select asus-tf101 device, select [I]none[/I] when prompting graphical interface)
$ sudo pmbootstrap install && sudo pmbootstrap export
$ sudo dd if=/tmp/postmarketOS-export/asus-tf101.img of=/path/of/sdcard status=progress
$ adb push /tmp/postmarketOS-export/blob-asus-tf101 /cache
$ adb shell
# dd if=/cache/blob-asus-tf101 of=/dev/block/mmcblk0p4
And then insert your sdcard and reboot.
Hope this helps. I have extracted it from https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101). The only difference is flashing onto internal memory or the sd card.
EDIT: Are you using a reliable SD Card (Kingston, SanDisk, ...)? It could lead to random errors or not identify it if not.
This is what i did :/
Yep,i used this sdcard on a raspberrypi before.
I think he problem come from partition label name. As i have flash everything on internal memory and sdcard, i have 2 partition named pmos_boot. In the initramfs init script, there is multiple references to label name especially for loading initramfs-extras.
I will do some tests in that way.
Raphzer said:
This is what i did :/
Yep,i used this sdcard on a raspberrypi before.
I think he problem come from partition label name. As i have flash everything on internal memory and sdcard, i have 2 partition named pmos_boot. In the initramfs init script, there is multiple references to label name especially for loading initramfs-extras.
I will do some tests in that way.
Click to expand...
Click to collapse
Yes, it could be the reason. If you run into multiple problems, try to format /system in TWRP and then try it again with only the SD Card.
Btw, what version is your TF101? SBKv1 or SBKv2? I have SBKv1, that could be another problem (but I'm not sure, as the SD Card is partition-independent, and the kernel blob file is compatible for both versions)
Very nice image !
Just tested and looks very promising.
USB mouse and keyboard gets detected but don't work.
oink666 said:
Just tested and looks very promising.
USB mouse and keyboard gets detected but don't work.
Click to expand...
Click to collapse
Yep, that's one of the things mentioned in the TODO list in my guide (look at nearly the end)
We have to compile xf86-mtrack-driver to get it working (there's no such driver in Alpine repos)
I lack a bit of C knowledge to get it working (because it fails when compiling), so help is appreciated
Awesome work.
Any chance of dual boot?
Thank you
riptide981 said:
Awesome work.
Any chance of dual boot?
Thank you
Click to expand...
Click to collapse
You can only dual boot if you have installed postmarketOS in your microSD or SD Card. If not, you (probably) have to wipe your partition where postmarketOS is located for booting Android again.
Well, the easiest way to do dual-boot is this:
In the sdcard folder or whatever folder you want, put the Android ROM zip and PostmarketOS' kernel zip.
The Android ROM (I'm using timduru's ROM: https://forum.xda-developers.com/eee-pad-transformer/development/rom-t3318496) can be downloaded here: https://downloads.timduru.org/android/tf101/K.A.T/KatKiss/6.0/dev/KatKiss-6.0_034.zip
The PostmarketOS' kernel zip can be downloaded here: https://github.com/antonialoytorrens/TF101-linux-images/raw/master/postmarketOS/kernel_zip/PostmarketOS-kernel-3.1.10-15.zip
If you want Android, go to recovery and flash timduru's ROM.
If you want PostmarketOS, go to recovery and flash my kernel zip (please, disable signature verification when flashing)
XFCE 2.0
A newer XFCE image is available to download. Download it here: https://sourceforge.net/projects/tf101-linux-images/files/postmarketOS/xfce-postmarketOS-TF101-v2.0.zip
A little screenshot:
Notes about this release:
v2.0
- Changed icons (https://github.com/vinceliuice/vimix-icon-theme) and GTK (https://github.com/vinceliuice/vimix-gtk-themes) of XFCE. Now it is a modern XFCE.
- Removed second panel to save space.
- The XFCE Whiskermenu does not close when typing in onboard.
· Other things that will be included in the next release:
- Make a desktop shortcut opening a browser linking this XDA thread.
- Try to get trackpad working
v1.0
- Initial Release
Cool stuff - i tried the latest v2.0 image but ran into some issues:
If I have the keyboard docked it won't boot - it ends up with a blinking cursor top left of the screen and a bunch of errors are shown repeatedly during bootup.
Without the keyboard it boots correctly - keyboard wont work if attaching the keyboard after the system is up.
https://photos.google.com/share/AF1...?key=UUFNdVNfZ3N6X0ZOX054eDJLYWxWd0tPYThCV1dR
Any idea on what I could try to get this going?
gh05tface said:
Cool stuff - i tried the latest v2.0 image but ran into some issues:
If I have the keyboard docked it won't boot - it ends up with a blinking cursor top left of the screen and a bunch of errors are shown repeatedly during bootup.
Without the keyboard it boots correctly - keyboard wont work if attaching the keyboard after the system is up.
https://photos.google.com/share/AF1...?key=UUFNdVNfZ3N6X0ZOX054eDJLYWxWd0tPYThCV1dR
Any idea on what I could try to get this going?
Click to expand...
Click to collapse
I have just redownloaded zip file from sourceforge and I don't have this problem, so I don't know what it could be...
But there are some questions I would like to ask you:
- Does your keyboard work on Android? You can test it by flashing Timduru's Android image (https://downloads.timduru.org/android/tf101/K.A.T/KatKiss/6.0/dev/KatKiss-6.0_034.zip).
- Have you tried to do your own XFCE from scratch? https://github.com/antonialoytorrens/TF101-linux-images#doing-xfce-from-scratch. Hope this works, otherwise a patch for this kernel is needed.
- By the way, what version is your TF101? SBKv1 or SBKv2? I have SBKv1.

Categories

Resources