Nexus 4 and Linux users - Nexus 4 General

A discussion thread for all my linux friends out there!
----
I'm using ArchLinux with my Nexus 4.

Found a new mtp mounting tool http://research.jacquette.com/jmtpfs-exchanging-files-between-android-devices-and-linux/ . Might give it a shot.
Also I would recommend checking out https://wiki.archlinux.org/index.php/Android . Has some good information relevant to all distributions.
---
jmtpfs is definitely one of the best tools for mounting the Nexus 4 to your filesystem.
Code:
mkdir /tmp/nexus && jmtpfs /tmp/nexus
# Unmount / cleanup
fusermount -u /tmp/nexus && rm -r /tmp/nexus

tim.smart said:
A discussion thread for all my linux friends out there!
----
I'm using ArchLinux with my Nexus 4.
Click to expand...
Click to collapse
Are you refering to only users that are using Linux on their Nexus 4's or any user that uses Linux also?

I'm on OpenBSD (not some Linux) but this should still be relevant. Hate using MTP, and it's terribly supported. I installed an sshd server (DropBear SSH Sever II on the play store) which I enable each time I need to transfer files, and then just use scp. This also lets me shell into the phone without relying on adb or typing in a terminal emulator on my phone.
Unfortunately, I haven't been able to install the android SDK on OpenBSD, so that means no fastboot and adb. Thankfully almost everything can be done from the recovery, but in the rare case where I do need to use fastboot, I have to boot to Windows.

Every android device runs Linux
Sent from my SPH-D710 using Tapatalk 2

donec said:
Are you refering to only users that are using Linux on their Nexus 4's or any user that uses Linux also?
Click to expand...
Click to collapse
People who use Linux computers to interact with their Nexus 4.

Does jmptfs use Java for operation? Otherwise a great tool, would be cool to automate.
Sent from my Nexus 4 using xda app-developers app

Then that's me.

Anyone know if the Nexus4 can connect to Ubuntu 12.10 out of the box via USB?

castlefox said:
Anyone know if the Nexus4 can connect to Ubuntu 12.10 out of the box via USB?
Click to expand...
Click to collapse
Yes it will.
Though on Linux Mint, I have had no luck with the 51-android.rules file
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
#Samsung - Nexus 7 & 10
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
Click to expand...
Click to collapse
I still have to use sudo for adb/fastboot

I just start a FTP server app on the phone and then transfer files with Filezilla. Easy enough.

If you use Linux you can use QtADB:
http://qtadb.wordpress.com/
Also, if you install an SSH server on your phone you can use sshfs:
sshfs -p 22 [email protected]:/ /mnt/nexus4
I believe it uses SFTP, so you need to make sure your SSH server supports SFTP. I gave up on MTP, it only gives you access to /sdcard and writing files has never worked for me.

rootdisk said:
If you use Linux you can use QtADB:
http://qtadb.wordpress.com/
Also, if you install an SSH server on your phone you can use sshfs:
sshfs -p 22 [email protected]:/ /mnt/nexus4
I believe it uses SFTP, so you need to make sure your SSH server supports SFTP. I gave up on MTP, it only gives you access to /sdcard and writing files has never worked for me.
Click to expand...
Click to collapse
sshfs has saved my ass on more than one occasion. Will have to give it a shot later on.
What kind of transfer speeds are you getting with it?

rootdisk said:
Though on Linux Mint, I have had no luck with the 51-android.rules file
Click to expand...
Click to collapse
In one of those rules you are using SYSFS not ATTR. Not sure if it makes a difference - I haven't read any of the udev documentation.
You will also need to add a user group to identify the id with. My Nexus 4 rule:
Code:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE=="0666", GROUP=="users"
Replace "users" with a user group you are in. `groups` command lets you know what groups are associated with your user.

Using Ubuntu 13.04 (I know alpha, but already far better than 12.10 for me and my graphics).
For MTP, i'm doing this: http://www.webupd8.org/2012/12/how-to-mount-android-40-ubuntu-go-mtpfs.html
Follow the steps:
Code:
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs go-mtpfs-unity
Then go into Dash Home, type in Mount Android Device. Click and drag the icon to your launcher. It's not auto-mount, but works well on any Android device i've tried so far. When you plug in your Android device (tested on Galaxy Nexus, Nexus 4, and Nexus 7), unlock it, then, right click on the Android icon, and select Mount Android Device (not the bold text, normal text). Instantly there in Nautilus. When done, make sure unlocked, then right click / unmount. Easy.
Haven't had any issues at all with adb setup either, very easy. Only things I had to do were:
Install Java;
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Then Install SDK (I extracted to /home/%user%/Android) and add in platform tools.
Then edit bashrc;
Code:
sudo gedit ~/.bashrc
Add to end of file:
Code:
# Android tools
export PATH=${PATH}:~/Android/tools
export PATH=${PATH}:~/Android/platform-tools
Save/close.
Then log out/in or just reboot;
Code:
sudo reboot
adb devices = works straight away, no udev rules required.
Haven't had to test fastboot yet, but will check that out sometime soon.
Automount MTP (source: http://www.tuxtrix.com/2012/12/how-to-automount-nexus-4-and-nexus-7-in.html):
Config fuse
Code:
sudo chmod a+r /etc/fuse.conf
sudo gedit /etc/fuse.conf
remove the hash from infront of:
#user_allow_other
to be
user_allow_other
save and close. now download/install go-mtpfs:
Code:
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs
Now setup mount directories:
Code:
sudo mkdir /media/nexus4
sudo chmod 777 /media/Nexus4
sudo mkdir /media/nexus7
sudo chmod 777 /media/Nexus7
Add udev rules:
Code:
sudo gedit /etc/udev/rules.d/99-android.rules
Add in the following (change "yourloginid" to your Ubuntu username):
Code:
# Google Nexus 7 MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/nexus7"
# Google Nexus 7 MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/nexus7"
# Google Nexus 4 MTP mode : automatic mount when plugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee1", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee1", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee2", ACTION=="add", RUN+="/usr/bin/sudo -u yourloginid /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus4"
# Google Nexus 4 MTP mode : automatic unmount when unplugged (all android versions)
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee1", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee1", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
ENV{ID_MODEL}=="Nexus_4", ENV{ID_MODEL_ID}=="4ee2", ACTION=="remove", RUN+="/bin/umount /media/Nexus4"
Restart udev:
Code:
sudo service udev restart
Add rules to fstab to allow easy mount/unmount without root:
Code:
sudo gedit /etc/fstab
Add in this to the end of the file:
Code:
DeviceFs(Nexus\0407) /media/nexus7 fuse.DeviceFs(Nexus\0407) allow_other,rw,user,noauto 0 0
DeviceFs(Nexus\0404) /media/Nexus4 fuse.DeviceFs(Nexus\0404) allow_other,rw,user,noauto 0 0
Remount all drives:
Code:
sudo mount -a
Done.
But I prefer the other method (manual mount/unmount) with the icon up top of this post, so not using this method anymore.

tim.smart said:
sshfs has saved my ass on more than one occasion. Will have to give it a shot later on.
What kind of transfer speeds are you getting with it?
Click to expand...
Click to collapse
Here is a breakdown of read & write for SSHFS, ADB & MTP. One thing to note, I gave up on MTPFS because it was very slow connecting to my Nexus 4. These tests use Simple-MTPFS:
https://github.com/phatina/simple-mtpfs
I used the source RPM found here to build an RPM for Fedora 16:
http://arm.koji.fedoraproject.org/koji/packageinfo?packageID=14698
There are also some other alternatives as described here:
https://wiki.archlinux.org/index.php/MTP
Write speed for SSHFS:
sshfs -p22000 [email protected]:/ /mnt/nexus4
[email protected]'s password:
dd of=/mnt/nexus4/sdcard/testfile if=/dev/zero bs=1024 count=100000
100000+0 records in
100000+0 records out
102400000 bytes (102 MB) copied, 85.9756 s, 1.2 MB/s
Read speed for SSHFS:
dd if=/mnt/nexus4/sdcard/testfile of=/dev/null
200000+0 records in
200000+0 records out
102400000 bytes (102 MB) copied, 81.5803 s, 1.3 MB/s
Read speed for ADB:
adb pull /sdcard/testfile /dev/null
4533 KB/s (102400000 bytes in 22.060s)
Write speed for ADB:
adb push testfile /sdcard/testfile
3755 KB/s (102400000 bytes in 26.624s)
Write speed for MTP using Simple-MTPFS:
time dd of=/mnt/nexus4/testfile if=/dev/zero bs=1024 count=100000
100000+0 records in
100000+0 records out
102400000 bytes (102 MB) copied, 3.64969 s, 28.1 MB/s
real 0m17.138s
user 0m0.074s
sys 0m1.418s
Read speed for MTP using Simple-MTPFS:
time dd if=/mnt/nexus4/testfile of=/dev/null
200000+0 records in
200000+0 records out
102400000 bytes (102 MB) copied, 0.100472 s, 1.0 GB/s
real 0m5.779s
user 0m0.019s
sys 0m0.083s
One thing to note is that when using MTP, dd returned rather fast results but didn't seem quite accurate. So using time shows a more accurate result. With SSHFS & ADB, there was no real difference between time vs dd.

Cannot mount on Ubuntu 12.10 64bit
[update]: Installed gmtp and it works... that looks like easier way to access my device..
I did all the steps described in another thread to mount my nexus 4 to ubuntu 12.10 64bit. I get the below message. Any help in pointing what's wrong will be great.
Code:
Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee2) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
Found 1 device(s):
18d1:4ee2 @ bus 1, dev 5
Attempting to connect device
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
Android device detected, assigning default bug flags
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Error 7: Found a bad handle, trying to ignore it.
Listing File Information on Device with name: (NULL)

chroot arch on the nexus 4
Hey, fellow linuxers! I've been looking around the forum and I haven't found any tutorials about how to run Arch Linux on the Nexus 4. So, I'm thinking on making my own. Any pointers to people doing something similar?
I'm going to open the thread in a minute, but I'll fill it out as I figure stuff up. Cuz, I've been messing with linux for a long time now, but this is my first project in Android. All help is welcomed.

Does Ubuntu work on Toshiba satellite laptops,?
Sent from my Nexus 4 using Tapatalk 2

I've always used the USB camera mode for transferring files to Android devices (several Nexus 4's, several Nexus 7's, a Galaxy S3 and Note 2). Always worked for me even when I was on Linux Mint Lisa (I'm now running Nadia). It limits me to the DCIM folder, which is not a problem as I use file manager and choose multi-files to move them to their proper destination.
Since only 2 Nexus 4's and 7's are mine and my wife's, I tell the other people to use file manager to move the files around and no one has had problems, either. The move function in file manager takes only a few seconds to complete even when the files are gigabytes in size. This works on non-rooted stock devices.
I do have a VMplayer WinXP that I've used for rooting and installing custom rom's our Nexus devices. MTP mode works fine inside the VM.
I use android terminal for md5sum-checking critical files (ie new ROM version).

Related

[MOD] Full Linux (Debian) inside WebTop! v0.2.7 [2012/01/18] [11.30 GMT+2:00]

[size=+4]Take back WebTop![/size]​
Use anythings you can imagine! LibreOffice, Java, Firefox 4, ecc...
[size=+2]WHAT THIS MOD DOES:[/size]
Installing WebTopMOD your awm dock will be populated with 3 new icons: leafpad, lxterminal and a penguin.
Leafpad and lxterminal works inside WebTop but clicking on the penguin you get a Debian menu chrooted http://en.wikipedia.org/wiki/Chroot in a Debian enviroment. In xterm you can use synaptic and apt-get to install anything in this new enviroment.
For example I need gimp:
Code:
# apt-get update //refresh packages list from internet
# apt-get install gimp
# gimp //
Clicking another time on the penguin open another xterm IN THE SAME ENVIROMENT so I can start another program
Code:
# oo-writer //openoffice writer
NOTE: Debian disk contain a Debian stable (squeeze) release, some software could be "outdated", if you would live on the edge change stable to unstable in /etc/apt/sources.list IN CHROOT ENVIRONMENT. DO NOT TRY TO CHANGE REPOSITORY IN ORIGINAL WEBTOP ROOT
Look here (http://www.debian.org/releases/) to understand what differ between Debian branches
For example LibreOffice is not yet in stable branch, so you can install OpenOffice or switch repo to testing or unstable
Firefox is renamed Iceweasel and the latest version in unstable is 3.5 and from experimental 4.0.
REMEMBER THAT 0.x VERSION MEAN THAT THIS SOFTWARE CAN BE BUGGED AND I CONSIDER IT IN ALPHA TESTING
[size=+2]PREREQUISITES:[/size]
- A rooted Atrix
- At least 2GB free in internal memory (could be more or less with the customized installation)
- A little bit terminal knowledge and willpower
- Brain
- Liquorice mojito
[size=+2]INSTALLATION:[/size]
[size=+1][1st way - EASY METHOD][/size]
Prerequisite for this method is:
On your phone: CWM installed
0) Download Debian disk - http://droid.makrit.net/WebTopMOD/WebTopMOD-20110707.7z
1) Unpack in your internal or external storage (path should be /sdcard(-ext)/WebTopMOD/linuxdisk)
Please don't use "adb push" it corrupt big files
2) Download easy-signed.zip - http://www.multiupload.com/C5GEIHDEM0, MIRROR
3) Install using CWM, reboot and enter in WebTop!
Uninstaller for version >=0.2.7 http://www.multiupload.com/18H5OHND90, MIRROR
Uninstaller for version <= 0.2.2 http://www.multiupload.com/W37DT6HJ7X
Uninstaller for version 0.2.1 http://www.multiupload.com/TO6W9X7CBU
Uninstaller for version >= 0.2 http://www.multiupload.com/GLKUZA2KP9
[size=+1][2nd way - CUSTOM METHOD][/size]
Temporary deprecated
Code:
Prerequisite for this method is:
On your computer: have a Debian installation or a Debian live cd or download this file ([url]http://www.multiupload.com/403F0OQEDA[/url] -> 2GB disk in 66MB), unpack it and skip to step 8
On your phone: install a "complete" busybox thought any free market apps and be connected to internet with a wireless network.
[b][On your phone][/b]
0) Start WebTop and leave it opened
[b][On your computer][/b]
1) Create a file with the dimensions that fit your needs using dd (I used this command to create the 2GB file: dd bs=1024 count=1 seek=$((1024*1024*2-1)) if=/dev/zero of=debian)
2) Format the new "disk" using ext3 (mkfs.ext3 debian)
3) Create a folder to mount the disk (mkdir temp)
4) Mount the disk (sudo mount -t ext3 -o loop debian temp)
5) Debootstrap! (sudo debootstrap --foreign --arch armel stable temp [url]http://ftp.debian.org/debian[/url])
6) Wait...
7) Unmount disk (sudo umount temp) and remove temp directory (rmdir temp)
8) Copy debian in your internal storage inside a folder called "DEBIAN" (uppercase without quotes)
[b][On your computer if you are using adb (recommended) or on your phone using terminal emulator, connectbot, ecc)][/b]
9) Open a terminal and type:
Get superuser permissions
[code]
# su
edit sudoers
Code:
# vi /etc/sudoers
You should add "%admin ALL=NOPASSWD: ALL" after the line containing "%admin ALL=(ALL) ALL". You can try typing this:
Please note that if you are using a terminal emulator on your phone escape is bad interpreted by Android using a physical keyboard, you have to send the escape key in another way.
Code:
GkyyPjwwwld3wi
NOPASSWD: [with a space]
[Escape]
:wq!
Now we enter in a more complete and privileged bash
Code:
# /usr/bin/sudo -H -u adas bash
Enable AWM to launch anything
Search→Go To… line 1317
Take this line:
use_profile 3
and turn it into:
use_profile 2
Code:
sudo leafpad /etc/tomoyo/domain_policy.conf
Now you can add any launcher to your AWM, look in easy-signed.zip (/usr/share/applications and /home/michele/easy/home/adas/.gconf/apps/avant-window-navigator)
Mount debian disk:
Code:
# cd /sdcard/DEBIAN
# mkdir root
# sudo mount -t ext3 -o loop=/dev/block/loop7 debian root
Debootstrap! (second stage)
Code:
# sudo chroot root /debootstrap/debootstrap --second-stage
Disable X ACL (in WebTop)
Code:
# export DISPLAY=:0
# xhost +
Enter in the new system
Code:
# sudo cp /etc/hosts /sdcard/DEBIAN/root/etc/hosts
# sudo cp /etc/fstab /sdcard/DEBIAN/root/etc/fstab
# sudo cp /etc/resolv.conf /sdcard/DEBIAN/root/etc/resolv.conf
# sudo mount -o bind /proc /sdcard/DEBIAN/root/proc
# sudo mount -o bind /dev /sdcard/DEBIAN/root/dev
# sudo mount -o bind /dev/pts /sdcard/DEBIAN/root/dev/pts
# sudo mount -o bind /dev/shm /sdcard/DEBIAN/root/dev/shm
# sudo mount -o bind /sys /sdcard/DEBIAN/root/sys
# sudo mount -o bind /var/run/dbus/ /sdcard/DEBIAN/root/var/run/dbus/
# sudo chroot /sdcard/DEBIAN/root /bin/bash
Export X display (in chroot)
Code:
# export DISPLAY=:0
Add Debian main repository
Code:
# echo "deb http://ftp.debian.org/debian/ stable main non-free contrib" > /etc/apt/sources.list
Finish debian installation
Code:
# apt-get update ; apt-get install dbus dialog locales
Configure your locale
Code:
# dpkg-reconfigure locales
Install xterm
Code:
# apt-get install xterm
Run xterm!
Code:
# xterm
Now you can install anything simply using "apt-get install PROGRAM_NAME" or installing synaptic
Before unplug HDMI cable you should exit form chroot environment and unmount the chroot:
Code:
# exit
# sudo umount /sdcard/DEBIAN/root/proc
# sudo umount /sdcard/DEBIAN/root/dev
# sudo umount /sdcard/DEBIAN/root/dev/pts
# sudo umount /sdcard/DEBIAN/root/dev/shm
# sudo umount /sdcard/DEBIAN/root/sys
# sudo umount /sdcard/DEBIAN/root/var/run/dbus
# sudo umount /sdcard/DEBIAN/root
[size=+2]USE:[/size] (ONLY FOR CUSTOM METHOD)
[On your computer if you are using adb or on your phone using terminal emulator, connectbot, ecc)]
9) Open a terminal and type:
Get superuser permissions
Code:
# su
Now we enter in a more complete and privileged bash
Code:
# /usr/bin/sudo -H -u adas bash
Mount debian disk:
Code:
# cd /sdcard/DEBIAN
# sudo mount -t ext3 -o loop=/dev/block/loop7 debian root
Disable X ACL (in WebTop)
Code:
# export DISPLAY=:0
# xhost +
Enter in the new system
Code:
# sudo cp /etc/hosts /sdcard/DEBIAN/root/etc/hosts
# sudo cp /etc/fstab /sdcard/DEBIAN/root/etc/fstab
# sudo cp /etc/resolv.conf /sdcard/DEBIAN/root/etc/resolv.conf
# sudo mount -o bind /proc /sdcard/DEBIAN/root/proc
# sudo mount -o bind /dev /sdcard/DEBIAN/root/dev
# sudo mount -o bind /dev/pts /sdcard/DEBIAN/root/dev/pts
# sudo mount -o bind /dev/shm /sdcard/DEBIAN/root/dev/shm
# sudo mount -o bind /sys /sdcard/DEBIAN/root/sys
# sudo chroot /sdcard/DEBIAN/root /bin/bash
Export X display (in chroot)
Code:
# export DISPLAY=:0
Run xterm!
Code:
# xterm
Before unplug HDMI cable you should exit form chroot environment and unmount the chroot:
Code:
# exit
# sudo umount /sdcard/DEBIAN/root/proc
# sudo umount /sdcard/DEBIAN/root/dev
# sudo umount /sdcard/DEBIAN/root/dev/pts
# sudo umount /sdcard/DEBIAN/root/dev/shm
# sudo umount /sdcard/DEBIAN/root/sys
# sudo umount /sdcard/DEBIAN/root
[/code]
[size=+2]THANKS TO:[/size]
Sogarth - for http://forum.xda-developers.com/showthread.php?t=983208
kennethpenn - for motoblur remove tool! many many thanks!
Chainfire - for Gingerbreak
makr8100 - for http://droid.makrit.net/ mirror
and many other users that works actively to hack this phone!
[size=+2]NOTE:[/size]
- exporting library you can start a lot of programs without starting chroot (obviously mounting the loop device), for example you can use xterm inside WebTop launching
Code:
# LD_LIBRARY_PATH=.:/sdcard/DEBIAN/root/usr/lib /sdcard/DEBIAN/root/usr/bin/xterm
- you can use sd-card replacing /sdcard/DEBIAN to /sdcard-ext/DEBIAN
If you would like to support my work click the this droid
[size=+2]MANY THANKS FOR CONTRIBUTOR:[/size]
Francisco Bravo
Robert Johnson
[size=+2]CHANGELOG:[/size]
v0.2.7 [2012/01/18] [11.30 GMT+2:00]
easy-signed: http://www.multiupload.com/C5GEIHDEM0
uninstaller: http://www.multiupload.com/18H5OHND90
EASY:
- Disabled Tomoyo (no more firefox issues between different webtop versions)
- New uninstaller
v0.2.6 [2011/07/07] [14.15 GMT+2:00]
Debian disk: http://droid.makrit.net/WebTopMOD/WebTopMOD-20110707.7z
easy-signed: http://droid.makrit.net/software/atrix/easy_v0.2.6.zip-signed.zip
EASY:
- binded in chroot tmp folders
- correct typo in missing disk message
- changed umount function (should works fine now!)
- added linuxdisk check (0 size, is a file)
- 2.3.4 compatibility
- cleaned mount function
LINUXDISK:
- added pdmenu and menu
- added device etc mountpoint in /mnt/DEVICE/etc
- dynamic change of resolv.conf (thanks to krkeegan)
- linuxdisk now is ~4gb (4095MB)
- added device etc mountpoint in /mnt/DEVICE/usr
- added plugins folder symlink to use flash player or other plugins between browser (inside and outside chroot) (FLASH DOESN'T WORK YET)
v0.2.5.1b [2011/07/07] [10.15 GMT+2:00]
Debian disk: unmodified
easy-signed: http://www.multiupload.com/ZAPZW2XX45
EASY:
- removed firmware check
- using a newer version of update-binary
v0.2.5 [2011/05/27] [9.30 GMT+2:00]
Debian disk: unmodified
easy-signed: http://www.multiupload.com/F68D73KF26
EASY:
- fixed unmount function
- removed motorola links
- fixed leafpad icon
v0.2.4 [2011/05/26] [20.30 GMT+2:00]
Debian disk: unmodified
easy-signed: http://www.multiupload.com/VI4JEFWLI6
EASY:
- corrected calls to loopdevice function (thanks Cryofix)
- check awm folders existence and fully reset permissions
- set different permissions to linux script, xmessage, lxterminal and WebTopMOD folder
v0.2.3 [2011/05/26] [15.45 GMT+2:00]
Debian disk: unmodified
easy-signed: http://www.multiupload.com/2JAO6F42Z4
EASY:
- corrected typo (remember..) in installation
- make new loop device (avoid conflict)
- renfoced unmount function
- fix permission for linux.desktop (awm launcher)
v0.2.2 [2011/05/25] [22.00 GMT+2:00]
Debian disk: http://www.multiupload.com/DVF6BJGJR3
easy-signed: http://www.multiupload.com/NKSFL81ODW
EASY:
- removed /mnt/androidroot (doesn't work)
- added /mnt/sdcard and /mnt/sdcard-ext
- code clean
- corrected lxterm policy
- replaced backup script
- corrected sudoers replace
- replaced debian with a more generic linux notation
- added check disk existence
- disk can be in sdcard or sdcard-ext
CUSTOM:
- Temporary deprecated (I've no time to update it today)
v0.2.1 [2011/05/25] [10.30]
DebianEnabler: http://www.multiupload.com/F8TMHY8VQA
Images: 2gb: http://www.multiupload.com/A1B6LG9YYF
easy-signed.zip: http://www.multiupload.com/HPA820KCKR
EASY:
- replaced xterm with native lxterminal
- introduced backup original files
- added uninstaller for version >= 0.2 http://www.multiupload.com/GLKUZA2KP9
- added uninstaller for version <= 0.2.1 http://www.multiupload.com/TO6W9X7CBU
v0.2 [2011/05/24] [17.30]
EASY:
DebianEnabler: http://www.multiupload.com/F8TMHY8VQA
Images: 2gb: http://www.multiupload.com/A1B6LG9YYF
easy-signed.zip: http://www.multiupload.com/NHJGJD7E3E
- easy method!
- symbolic link in /mnt/androidroot to real root
- added image already configured with dbus, locales and dialog
- added launcher for debian chroot and xterm in awm
CUSTOM:
- added instruction to make custom launcher in awm
- added instruction to configure locales, dbus and dialog
- corrected chroot adding /var/run/dbus
v0.1 [2011/05/24]
- initial release
Pro. This looks like the real deal (no compromises). I will be waiting for the noob version though
Sent from my MB860 using XDA Premium App
What versions does this work with? 1.8.3, 1.5.7, 1.2.6 ?
XxKILLx3RxX said:
What versions does this work with? 1.8.3, 1.5.7, 1.2.6 ?
Click to expand...
Click to collapse
I used an ATT Atrix with 1.8.3 firmware.
However this guide should be applicable to any atrix (att, bell, ecc) with any firmware...
Can i use ubuntu as the debian system on the pc to do the image, secondly how do i make a 4 or even 6 gb image, thirdly is this similar to the chroot modes?
crnkoj said:
Can i use ubuntu as the debian system on the pc to do the image, secondly how do i make a 4 or even 6 gb image, thirdly is this similar to the chroot modes?
Click to expand...
Click to collapse
6gb:
Code:
dd bs=1024 count=1 seek=$((1024*1024*6-1)) if=/dev/zero of=debian
5gb:
Code:
dd bs=1024 count=1 seek=$((1024*1024*5-1)) if=/dev/zero of=debian
4gb:
Code:
dd bs=1024 count=1 seek=$((1024*1024*4-1)) if=/dev/zero of=debian
3gb:
Code:
dd bs=1024 count=1 seek=$((1024*1024*3-1)) if=/dev/zero of=debian
1gb:
Code:
dd bs=1024 count=1 seek=$((1024*1024*1-1)) if=/dev/zero of=debian
debootstrap from ubuntu
Code:
sudo apt-get install debootstrap
sudo debootstrap --foreign --arch armel squeeze temp http://ftp.debian.org/debian
Thanks man, ill go and try it out within the next few hours. Btw i already have lxterminal working in the webtop, can i use that instead of adb/ terminal emulator to enter those commands?
crnkoj said:
Thanks man, ill go and try it out within the next few hours. Btw i already have lxterminal working in the webtop, can i use that instead of adb/ terminal emulator to enter those commands?
Click to expand...
Click to collapse
Sure! I assumed that on 1.8.3 terminal is not available...
SystemR89 said:
Sure! I assumed that on 1.8.3 terminal is not available...
Click to expand...
Click to collapse
ye thats true, i copied it over from an old /osh dump and it seems to work fine, if you want/need it i can send it to you (only the lxterminal or the whole /osh dump) just started the procedures to get it on.
SystemR89 said:
6gb:
Code:
dd if=/dev/zero of=/data/6GB.swap bs=1024 count=6144000
4gb:
Code:
dd if=/dev/zero of=/data/6GB.swap bs=1024 count=4096000
debootstrap from ubuntu
Code:
sudo apt-get install debootstrap
sudo debootstrap --foreign --arch armel squeeze temp http://ftp.debian.org/debian
Click to expand...
Click to collapse
those commands returned the error:
dd: opening '/data/6GB/swap': No such file or directory
hmm in your first post the one for dding a 2gb file is different as these two.
AWESOME!!
You beat me to it!! I just ordered a Atrix and it's enroute to me over here in Japan... I was thinking I would try to build Gentoo on the webtop somehow.
I have experience there doing the whole bootstrapping thing, but then it hit me-- "How will I compile the programs?" since everything gets made from source and not from RPMs or DEBs in that distro.
Now I am totally chomping at the bit for my Atrix to get here; I am going to experiment using it as my ONLY computer at work, and out and about. I tend to use cloud-based apps even when creating content (I'm a teacher/photographer/web developer) and I feel uneasy about taking my loaded-to-the-gills Macbook on crowded Tokyo trains with me everyday.
Now with your find, I can still manage to do some light graphics work at times in GIMP too maybe?
crnkoj said:
those commands returned the error:
dd: opening '/data/6GB/swap': No such file or directory
hmm in your first post the one for dding a 2gb file is different as these two.
Click to expand...
Click to collapse
ops.. you are right.. corrected!
starrwulfe said:
Now with your find, I can still manage to do some light graphics work at times in GIMP too maybe?
Click to expand...
Click to collapse
I've not tried gimp, but it should works, we have 1gB of ram!
I was thinking how great gentoo would be too. kholk said once he manages to get kexec and a custom kernel to work he will start work for on gentoo to replace the webtop, that ought to be awesome than
Cannot wait to give this a shot! I just need to order a blue tooth mouse and keyboard.
SystemR89 said:
ops.. you are right.. corrected!
Click to expand...
Click to collapse
ya thought so to just change to debian, btw why do you say if in ubuntu you use the squeeze tag and if just debian you use the stable tag when doing the debootstrap?
crnkoj said:
ya thought so to just change to debian, btw why do you say if in ubuntu you use the squeeze tag and if just debian you use the stable tag when doing the debootstrap?
Click to expand...
Click to collapse
I'm not sure that stable tag works with ubuntu..
Wow amazing I will try when I can, will be funny or nice if we can connect the display to a chinese tablet xD so we can get a portable display xD
.......................................................
Sent from my loved atrix ;D
update.zip, multiple size disk and terminal-less installation and usage will be ready in the next hours!
Stay tuned!

[Tutorial] How to compile a kernel

If you see mistakes please contact me. If you think something can be shorter, easier, feel free to suggest.
I have spent a lot of time figuring this out. Not to mention making this guide.
If this guide helped you feel free to donate.
There is more to come, using different toolchains, important files, adding overclocking etc.
Coming soon
- Links to useful mods: deep idle, live oc, BLN, ...
- How to compile a custom kernel: eg air kernel
- A list of useful files and folders in the downloaded kernel source
Setting up the environment & building the kernel for the first time
Ubuntu 10.04 64-Bit (recommended)
Ubuntu 12.04 64-Bit
Note that you cannot compile AOSP ROMs with Ubuntu 12.04. Ubuntu 12.04 is fine for kernels.
If you want to use virtualization software, do not use Virtualbox. You can run into networking issues and so on. I suggest using VMWare Player instead, which is available for free on http://www.vmware.com
Installing latest updates & reboot.
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo reboot
Click to expand...
Click to collapse
Now we will download and install the latest Java 6 JDK from here. Look for Java 6 SE Update 33 or a later update version. Don't download Java 7 JDK. I am downloading the file below for this guide.
Linux x64 68.69 MB jdk-6u33-linux-x64.bin
Click to expand...
Click to collapse
This guide assumes you have downloaded the file in the folder
~/Downloads
Click to expand...
Click to collapse
$ cd ~/Downloads
$ sudo chmod +x jdk-6u33-linux-x64.bin
$ ./jdk-6u33-linux-x64.bin
$ sudo mv jdk1.6.0_33 /usr/lib/jvm/jdk1.6.0_33
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_33/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_33/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_33/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_33/bin/jar 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_33/bin/javadoc 1
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config jar
$ sudo update-alternatives --config javadoc
$ java --version
$ ls -la /etc/alternatives/java*
Click to expand...
Click to collapse
Now reboot is optional but welcome. Let's play safe.
$ sudo reboot
Click to expand...
Click to collapse
Install all required packages to play with Android.
Ubuntu 10.04
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
Click to expand...
Click to collapse
Ubuntu 12.04
$ sudo apt-get update
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 git
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
$ sudo reboot
Click to expand...
Click to collapse
Configure USB ports.
$ sudo gedit /etc/udev/rules.d/51-android.rules
Click to expand...
Click to collapse
This file should get the contents:
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
Click to expand...
Click to collapse
Don't forget to replace the red marked text with your username from Ubuntu.
When building a kernel, you only need to start from here. Pick the appropriate branch from the git manually. I used the one below as an example. What I did was visiting the git repository each time and picked the appropriate branch.
https://android.googlesource.com/device/samsung/crespo
$ mkdir ~/Documents/kernel
$ cd ~/Documents/kernel
$ git clone https://android.googlesource.com/device/samsung/crespo -b ics-plus-aosp
Click to expand...
Click to collapse
Again pick the right branch from https://android.googlesource.com/kernel/samsung.git
$ cd crespo
$ git clone https://android.googlesource.com/kernel/samsung.git -b android-samsung-3.0-ics-mr1
Click to expand...
Click to collapse
Ensure the toolchain is in your path.
Default, Easy solution
$ git clone https://android.googlesource.com/platform/prebuilt -b ics-plus-aosp
$ export PATH=$(pwd)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
$(pwd) is a variable holding the current working directory.
Bandwidth-friendly solution
You can also download the toolchain to another directory. Bit first write down the directory you are working at.
mkdir ~/Documents/toolchain
cd ~/Documents/toolchain
$ git clone https://android.googlesource.com/platform/prebuilt -b ics-plus-aosp
export PATH=~/Documents/toolchain/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
Click to expand...
Click to collapse
Instead of specifying the location of the toolchain with a relative path, we must specify the absolute path here.
Now we go back to where we were working.
cd ~/Documents/kernel/crespo
Click to expand...
Click to collapse
I hope you understand why I mentioned the bandwidth-friendly solution. With little insight you could have come up with it yourself.
Now let's build the kernel
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd samsung
$ make ARCH=arm herring_defconfig (maybe ARCH=arm is unneeded here but added it to be sure)
$ make
Click to expand...
Click to collapse
[*]Now you need to put it in a flashable zip.
Possible issues, things to avoid, FAQ
- Avoid downloading the kernel sources to directories which might require root/superuser access. This is one of the reasons I downloaded all sources to '~/Documents'. This will save a lot of time messing with chmod or chown commands.
- What is 'herring', shouldn't this be crespo? No, actually not. Herring is the board name, while crespo is the codename of the Nexus S. Something you might want to remember when building kernels.
Interesting files and locations
<kernel_directory>/samsung/arch/arm/mach-s5pv210/cpu-freq.c
Overclocking
Voltages
Links to mods, source code, ...
I am making the patch files currently
Ezekeel's work https://github.com/Ezekeel/GLaDOS-nexus-s-ics
BLN
BLX
Custom Voltage
Deep Idle
Live OC
Touchwake
USB OTG
Voodoo
Samsung IDLE2 port for S5PV210 (Improved Deep Idle patch)
djjonastybe said:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd omap
$ git checkout <commit_from_first_step> What to put here???
$ make panda_defconfig
$ make
Click to expand...
Click to collapse
You should have everything now ready to compile the aosp kernel
My method is:
$cd /path/to/kernel/source
$export ARCH=arm
$export CROSS_COMPILE=arm-eabi-
$export PATH=$PATH:~/path/to/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
$make herring_defconfig
$make
Just change the '/path/to' to match yours You can also make it a script.
The checkout command I don't use (but I do have all of the aosp source and 'set the environment' first '. build/envsetup.sh && lunch full_crespo-userdebug'). You can clone from git and it will all be in the folder you cloned in. To pull the latest, just use 'git pull'.
Hope that helps.
How do you use linaro toolchain?
snandlal said:
How do you use linaro toolchain?
Click to expand...
Click to collapse
I haven't used it, but theoretically you could export the path to the linaro tool chain instead of Google's gcc.
I have heard (have not confirmed) that there could be issues that may be introduced by using a different tool chain.
Sent from my Nexus S using xda app-developers app
Now I need this:
$ make ARCH=arm CROSS_COMPILE=arm-eabi- -j4
scripts/kconfig/conf --silentoldconfig Kconfig
*** Error during update of the configuration.
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
Click to expand...
Click to collapse
boog said:
I haven't used it, but theoretically you could export the path to the linaro tool chain instead of Google's gcc.
I have heard (have not confirmed) that there could be issues that may be introduced by using a different tool chain.
Sent from my Nexus S using xda app-developers app
Click to expand...
Click to collapse
Cool, thanx
djjonastybe said:
Now I need this:
Click to expand...
Click to collapse
Interesting....Sounds like it is maybe missing the files. I went back and reread your original instructions and instead of
sudo git clone https://android.googlesource.com/device/samsung/crespo
Click to expand...
Click to collapse
try
git clone https://android.googlesource.com/kernel/samsung.git -b android-samsung-3.0-ics-mr1
Click to expand...
Click to collapse
Leave off the sudo, you don't need it for doing things in your own home directory, you'll end up with a bunch of files that belong to root.
boog said:
Interesting....Sounds like it is maybe missing the files. I went back and reread your original instructions and instead of
try
Leave off the sudo, you don't need it for doing things in your own home directory, you'll end up with a bunch of files that belong to root.
Click to expand...
Click to collapse
I think you are giving me wrong instructions? You mixed things up I think
I also noticed that gcc was not found because it had the wrong permissions. 'chmod 755 *' fixed it.
I am now trying again. I made a mistake.
guide complete. thank you boog for helping. I hope I can help some people with this. It took some time to sort out.
djjonastybe said:
I think you are giving me wrong instructions? You mixed things up I think
I also noticed that gcc was not found because it had the wrong permissions. 'chmod 755 *' fixed it.
I am now trying again. I made a mistake.
Click to expand...
Click to collapse
Ahh, ok, then it was probably due to checking out as sudo. Not trying to give wrong instructions. Just trying to help.
If you had to chmod them, it was possibly because the files might have belonged to root instead of your user, I didn't think of that.
I think the guide should help people get started tinkering with kernels
boog said:
Ahh, ok, then it was probably due to checking out as sudo. Not trying to give wrong instructions. Just trying to help.
If you had to chmod them, it was possibly because the files might have belonged to root instead of your user, I didn't think of that.
I think the guide should help people get started tinkering with kernels
Click to expand...
Click to collapse
I really hope this too. I have been willing to do this since October 2011, but never got to it because I always thought it would be too difficult. Now I spent 3-4 days figuring everything out, with your help.
I still have few things on my list like adding a tutorial here on how to rename the kernel, and links to specific mods like Ezekeel's mods.
I'm gonna try this . will trouble you a lot i guess . lol . this would be hard with my ****ty internet connection . ( i won't ever be able to compile AOSP , becuase of the large file size to be downloaded )
Now i'm @ the start of the guide .
apt-get update - done
Click to expand...
Click to collapse
apt-get dist-upgrade - returned some errors so ,
apt-get -f dist-upgrade - running ...
Click to expand...
Click to collapse
many thanks for the OP , to this tutorial . It's a must needed . & I think other experienced devs should also help out this thread .
Oodie said:
I'm gonna try this . will trouble you a lot i guess . lol . this would be hard with my ****ty internet connection . ( i won't ever be able to compile AOSP , becuase of the large file size to be downloaded )
Now i'm @ the start of the guide .
apt-get dist-upgrade - returned some errors so ,
many thanks for the OP , to this tutorial . It's a must needed . & I think other experienced devs should also help out this thread .
Click to expand...
Click to collapse
Being updated isn't a bad thing, but if your already on 12.04, it could be possible to just:
sudo apt-get update
sudo apt-get upgrade
Click to expand...
Click to collapse
That should have you updated to the latest updates for 12.04.
Doing a dist-upgrade can upgrade you to the next version of ubuntu (not released yet). But could on the next release.
boog said:
Being updated isn't a bad thing, but if your already on 12.04, it could be possible to just:
That should have you updated to the latest updates for 12.04.
Doing a dist-upgrade can upgrade you to the next version of ubuntu (not released yet). But could on the next release.
Click to expand...
Click to collapse
oops . will it do any harm if i dist-upgrade ?
Oodie said:
oops . will it do any harm if i dist-upgrade ?
Click to expand...
Click to collapse
http://techhamlet.com/2012/02/ubuntu-whats-the-difference-between-upgrade-and-dist-upgrade/
Google it: upgrade vs dist-upgrade
upgrade only updates the packages already installed.
I believe apt-get upgrade is equal to the update manager of ubuntu. If you use the GUI to update. Correct me if I am wrong
I believe dist-upgrade also handles the dependencies.
http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
I have always preferred dist-upgrade.
Oodie if you get errors during dist-upgrade try reinstalling your ubuntu. Maybe you want to start fresh. I started a clean Virtual Box virtual machine.
dist-upgrade has never given me errors.
How old is your installation ?
djjonastybe said:
http://techhamlet.com/2012/02/ubuntu-whats-the-difference-between-upgrade-and-dist-upgrade/
Google it: upgrade vs dist-upgrade
upgrade only updates the packages already installed.
I believe apt-get upgrade is equal to the update manager of ubuntu. If you use the GUI to update. Correct me if I am wrong
I believe dist-upgrade also handles the dependencies.
http://en.wikipedia.org/wiki/Advanced_Packaging_Tool
I have always preferred dist-upgrade.
Oodie if you get errors during dist-upgrade try reinstalling your ubuntu. Maybe you want to start fresh. I started a clean Virtual Box virtual machine.
dist-upgrade has never given me errors.
How old is your installation ?
Click to expand...
Click to collapse
You are correct. For some reason I had it in my head as an update to the next release.
Sent from my Nexus S using xda app-developers app
I'm stuck on kernel source downloading ( user / kernel folder ) .
Download interrupted 3 times now
Can't we share a completed kernel folder or something?
I hate my internet connection.
°°° This comment is Sent from my Nexus S °°°
Oodie said:
I'm stuck on kernel source downloading ( user / kernel folder ) .
Download interrupted 3 times now
Can't we share a completed kernel folder or something?
I hate my internet connection.
°°° This comment is Sent from my Nexus S °°°
Click to expand...
Click to collapse
Have you tried connecting it with a ethernet cable to the modem? I have a good connection but cable seems to be always 100% safe.
sudo sysctl -w net.ipv4.tcp_window_scaling=0
Click to expand...
Click to collapse
Maybe this tweak helps you. But I suggest shutting down as much programs as you can. And other computers. And if you can connect it directly to the modem/router with a ethernet cable.
Or keep trying. In the end it should be complete.
Also try a retail installation of Ubuntu instead of using a virtual machine this has helped me here.
EDIT: Updated first post with more kernel fun.
ok . the first branch finished successfully :angel: ( finally )
( Now there is files in the kernel / crespo folder )
Now running the second branch .
$ cd crespo
$ git clone https://android.googlesource.com/kernel/samsung.git -b android-samsung-3.0-ics-mr1
Click to expand...
Click to collapse
Oodie said:
ok . the first branch finished successfully :angel: ( finally )
( Now there is files in the kernel / crespo folder )
Now running the second branch .
Click to expand...
Click to collapse
Told you
Oodie I changed something in my guide.
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
Click to expand...
Click to collapse
Make sure you run these to see if you are using the right JDK. By default the OpenJDK is still used. Just discovered it.

[GUIDE CM10] How to build your own CyanogenMod 10 ROM from sources for LG P990 O2x

Make your 'own' ROM today!
Revision History:
V1.5 2013.01.07 Update to newest Java 6 version: Java SE Development Kit 6 Update 38
V1.4 2012.11.20 ParanoidAndroid ROM building guide added, minor changes
V1.3 2012.11.10 New FAQ, Updates Java section, WIFI fix
V1.2 2012.11.05 Sync part updated
V1.1 2012.11.04 Typos fixed
V1.0 2012.11.03 Initial release
Thank you note: Thank you Ricardo Cerqueira for your work on the LG P990. Without you none of this would be possible. Thank you ethansp for your feedback and your input regarding the sync matter. Thank you TrymHansen and Ferrum Master for your input in respect of the JAVA topic. And thank you p.valenta for your contribution to the WIFI build fix.
Overview
0. Preparation
I. Installation of the required packages
II. Installing JAVA
III. The sources
IV. Building the ROM
V. Rebuilding with newest sources
VI. FAQ
VII. Building ParanoidAndroid ROM
0. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all you need a running up-to-date Ubuntu/Linux system. I am using Ubuntu 12.10 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
I. Installation of the required packages (Ubuntu 12.10 64-bit)
Install packages:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386
Set the links:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
II. Installing JAVA
You need a Java Development Kit for building CM10. Recommended is the SUN JDK 6. As of writing the most recent version is SUN JDK 6 Update 38.
1. Download the jdk-6u38-linux-i586.bin from the Oracle/Sun Java Download Area. If you are on 64-bit Ubuntu as I am, you should grab jdk-6u38-linux-x64.bin.
2. Make the bin file executable:
Code:
$ chmod +x jdk-6u38-linux-x64.bin
3. Extract the bin file:
Code:
$ ./jdk-6u38-linux-x64.bin
4. Move the extracted folder to this this location:
Code:
$ sudo mv jdk1.6.0_38 /usr/lib/jvm/./jdk-6u38-linux-x64.bin
5. Install the new Java source in system:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/jar 1
6. Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
7. Check Java version:
Code:
$ java -version
8. Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
III. The sources
Install repo:
Repo is a tool that makes it quite easy to download and maintain the sources of Cyanogenmod.
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ cd ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Create working directory:
Code:
$ mkdir ~/cm10
$ cd ~/cm10
Initialize Repo:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
and enter your credentials.
Download the sources:
Code:
$ repo sync
Wait until it's finished (takes a lot of time!)
If the process hangs use Ctrl+C to break out of it and resume the download with another
Code:
$ repo sync
Tip from ethansp: If you are running into a lot of syncing errors the reason might be that the 'repo sync' command is establishing four threads automatically. This might be too much. So try to change the command to run with one thread only by using
Code:
$ repo sync -j1
Initialize the environment
Code:
$ . build/envsetup.sh
Obtain the proprietary files:
Create a file with the name local_manifest.xml in the .repo directory. To see this directory, you have to press Ctrl-H in your file manager.
Create it with
Code:
gedit ~/cm10/.repo/local_manifest.xml
Paste the following lines to the editor
Code:
<manifest>
<project name="CyanogenMod/android_device_lge_p990" path="device/lge/p990" remote="github" revision="jellybean"/>
<project name="CyanogenMod/android_device_lge_star-common" path="device/lge/star-common" remote="github" revision="jellybean"/>
<project name="CyanogenMod/lge-kernel-star" path="kernel/lge/star" remote="github" revision="jellybean"/>
<project path="vendor/lge" name="TheMuppets/proprietary_vendor_lge.git" remote="github" revision="jellybean"/>
</manifest>
Save the file.
Run
Code:
$ repo sync
again to get the files needed.
Download the necessary prebuilts from cyanogenmod by running
Code:
$ ~/cm10/vendor/cm/get-prebuilts
And you are done!
IV. Building the ROM
Now build it:
Code:
$ brunch p990
And building process starts. Now have patience. Building takes around half an hour on fast systems and a lot more on older and slower machines.
When everything worked as it should you will find your new ROM-image in ~/cm10/out/target/product/p990
It is called cm-10-DATE-UNOFFICIAL-p990-zip. You can flash it via CWM as usual.
If you are having trouble with the WIFI not working with your newly flashed ROM, check the FAQ section C below for the solution.
V. Rebuilding with newest sources
Whenever you like to update your sources and build a new version you have to run these four simple commands:
Code:
$ cd ~/cm10
$ repo sync
$ . build/envsetup.sh
$ brunch p990
Building takes less time than it took for creating it the first build because it's only rebuilding new parts and using old parts that haven't changed.
Happy building!
VI. FAQ
A. How to tell how long it takes to build the ROM?
First, it depends on your hardware, second, whether it is your first build or a daily rebuild. To get a first number, you can use the “time” command and add the “brunch” command to it.
E.g.
Code:
time brunch p990
So the system will tell you how long it took to build the ROM. Then you know next time if it will be a short or long coffee break while waiting for your build to finish.
B. Is there a way to speed up the building process?
Actually, there are a lot of ways to speed up the process. Here are some of them:
1. Hardware:
When you build the first time it takes half an hour on fast machines and up to many hours on slower machines. What counts most is raw CPU power. Multi-core computers with a lot of fast RAM are recommended. The more cores the better. Memory-wise a setup with more than 8GB with aggressive but of course also stable timings is also adding to the building speed. A fast HDD or even SSD doesn't hurt either. When resourceful, you can use a system with multiple SSDs and gain more speed than single storage systems. But in most cases the CPU will be the biggest bottleneck. Check with tools, e.g. System Monitor in Ubuntu – and watch the resources tab to find out your bottleneck.
2. System-Software:
If you are using virtual machine software then try to optimize it. Look for “virtualization support” in the BIOS. Give it as much CPU power and memory as you can from your host system. Whenever it is possible it is recommended that you install the system directly, as the virtualization solution usually comes with a performance drop compared to a system installed and booted from directly.
3. The building software:
a. Out Directory
You can use a separate output directory for your builds, e.g. on a different hard drive with a fast file system.
Append
Code:
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
to your .bashrc file.
b. Caching
You can setup Ccache, a system that acts as a compiler cache for all the parts of the building that are written in C. This is excellent if you rebuild often. But keep in mind that building the first time takes even longer when you have Ccache activated than building without it. So for first tests it is fine to build without Ccache enabled.
To enable Ccache add
Code:
export USE_CCACHE=1
to your .bashrc file
Optional: If you like to set the path, where the Ccache will be stored on your own, you have to add another line to the .bashrc
export CCACHE_DIR=<path-to-your-cache-directory>
Now run this command once to initialize the Ccache
Code:
prebuilts/misc/linux-x86/ccache/ccache -M 15G
C. I built the ROM successfully. I flashed it too, but the WiFi is not working anymore. What can I do?
The efforts of the CyanogenMod devs can be considered work in progress. And so it happens that features get broken while trying to fix others...
If you suffer from this then take the file 'wireless.ko'. You find the file below as an attachment. Push or copy it to '/system/lib/modules' and overwrite the file with the same name there. Change the rights to 644 or rw- r-- r-- It's the same as read/write by owner, read by group and read by other.
Without reboot, you can switch on the WiFi now. And you should be back in the game. Thanks to p.valenta for confirmation that it is working.
D. I checked the free space of the system partition. There isn't any. What can I do?
Without changing the size of the system partition not so much. But you can squeeze out a few MBs by removing some files from the created ROM image:
E.g. all the videos in /system/media/video can be deleted.
You can erase the /system/media/bootanimation.zip if you want.
Check /system/media/audio/, there you can delete some ringtones you are not using.
And if you know what you are doing, you can even get rid of some .apk files from '/system/app'.
For example LiveWallpapers.apk, VisualizationWallpapers.apk, CMWallpapers.apk, MagicSmokeWallpapers.apk, HoloSpiralWallpaper.apk are expendable.
E. I don't want to use Sun's/Oracle's Java Development Kit. Can I use another one instead?
Yes, you can. But using Sun's version is recommended by Google and CyanogenMod for building ROMs. So consider yourself warned. You can use the OpenJDK 6 that you will find already on your system if you installed the necessary packages as shown above. What you finally need to do is checking which Java version is active.
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
Each time choose the OpenJDK6 variant.
Verify the symlinks: Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
When everything you see says 'OpenJDK6' then you can build your ROM with the usual commands.
VII. Build your own ParanoidAndroid ROM based on CM10 for LG P990
IMPORTANT! THIS IS A FOLLOW-UP GUIDE THAT REQUIRES A WORKING BUILDING ENVIRONMENT.
Preparation
You need a tested and fully working building environment (Ubuntu 12.04/12.10, Java 6, etc.). If you do not have one already, please follow this guide throughly first and build a normal CM10 ROM from sources as a test. If everything works as it should, then you can proceed with the following lines.
ParanoidAndroid Environment
Let's start.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
Create a directory named 'paranoid' in your home folder
Code:
$ mkdir ~/paranoid
Initialize the Repo in your newly created directory:
Code:
$ cd ~/paranoid
$ repo init -u git://github.com/ParanoidAndroid/android.git -b jellybean
Before downloading the files you need to edit a file. One line leads to sync errors and has to be deleted from the file. Edit 'default.xml' in /paranoid/.repo/manifests/
(Hint if you can't see the .repo directory: it's hidden, so to make it visible press Ctrl+H) or use this line
Code:
$ gedit ~/paranoid/.repo/manifests/default.xml
Search (Ctrl+F) for 'ParanoidPreferences' and remove the whole line. Save and close the 'default.xml' file.
We need to add some LGE (P990) specific repositories as well. You can either copy the 'local_manifest.xml' file (it's the same!) from your cm10-build-environment or create a new file in /paranoid/.repo/
To create a new file use
Code:
$ gedit ~/paranoid/.repo/local_manifest.xml
Insert the following lines
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="jellybean"/>
<project name="CyanogenMod/android_device_lge_p990" path="device/lge/p990" remote="github" revision="jellybean"/>
<project name="CyanogenMod/android_device_lge_star-common" path="device/lge/star-common" remote="github" revision="jellybean"/>
<project name="CyanogenMod/lge-kernel-star" path="kernel/lge/star" remote="github" revision="jellybean"/>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="jellybean"/>
</manifest>
Save it.
Sync the repositories (takes time!)
Code:
$ repo sync
Take a looong coffee break.
A few files
After the successful sync process go to 'paranoid/vendor/pa/products/'.
Create a new file with the name 'pa_p990.mk'
Code:
$ gedit ~/paranoid/vendor/pa/products/pa_p990.mk
Insert these lines:
(lines changed, xhdpi to hdpi, thanks rugglez)
Code:
# Check for target product
ifeq (pa_p990,$(TARGET_PRODUCT))
# Define PA bootanimation size
PARANOID_BOOTANIMATION_NAME := HDPI
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi
# include ParanoidAndroid common configuration
include vendor/pa/config/pa_common.mk
# Inherit CM device configuration
$(call inherit-product, device/lge/p990/cm.mk)
PRODUCT_NAME := pa_p990
GET_VENDOR_PROPS := $(shell vendor/pa/tools/getvendorprops.py $(PRODUCT_NAME))
endif
Save it.
Open 'AndroidProducts.mk' in 'paranoid/vendor/pa/products/' with
Code:
$ gedit ~/paranoid/vendor/pa/products/AndroidProducts.mk
and add these lines to then end of the file:
Code:
ifeq (pa_p990,$(TARGET_PRODUCT))
PRODUCT_MAKEFILES += $(LOCAL_DIR)/pa_p990.mk
endif
Save it.
Create a file called 'p990.proprietaries' in 'paranoid/vendor/pa/vendorprops/'
Code:
$ gedit ~/paranoid/vendor/pa/vendorprops/p990.proprietaries
Code:
[
{
"account": "TheMuppets",
"repository": "proprietary_vendor_lge",
"target_path": "vendor/lge",
"revision": "jellybean"
}
]
Save it.
Open 'vendorsetup.sh' in 'paranoid/vendor/pa/'
Code:
$ gedit ~/paranoid/vendor/pa/vendorsetup.sh
Add this line
Code:
add_lunch_combo pa_p990-userdebug
Save it.
Get CM Prebuilts
Now go to
Code:
$ ~/paranoid/vendor/cm/get-prebuilts
Building ParanoidAndroid
Ready to go! Build your ROM now with
Code:
$ cd ~/paranoid
$ ./rom-build.sh p990
The compiling takes around the same amount of time as when building CM10. Half an hour minimum, up to a few hours on slower systems. You will find your CWM flashable zip in 'paranoid/out/target/product/p990/'. It is called 'pa_p990-version-date-time.zip'
Rebuilding
Everytime you want to rebuild or build a new version, just change to the directory, resync the sources and start building:
Code:
$ cd ~/paranoid
$ repo sync
$ ./rom-build.sh p990
If you haven't enlarged your system partition yet, you have to delete some files or the ROM probably won't fit.
Deletable files
/system/media/: delete bootanimation.zip, saves 9.4 MB
/system/media/video/: delete all files, saves 6.4 MB
/system/media/audio/ringtones/: keep one or two, delete the rest, saves up to ~8 MB
You can even delete some system apps (.apk) from '/system/app/' like LiveWallpapers.apk, VisualizationWallpapers.apk, CMWallpapers.apk, MagicSmokeWallpapers.apk, HoloSpiralWallpaper.apk
I would personally love it if people included instructions for other distros. Not everything uses apt-get. That's kind of just me being nitpicky, but I've compiled CM9 on Archlinux with substituting a few things.
Also, what happened to the month of letting RC shine?
tetrahedonism said:
I would personally love it if people included instructions for other distros. Not everything uses apt-get. That's kind of just me being nitpicky, but I've compiled CM9 on Archlinux with substituting a few things.
Also, what happened to the month of letting RC shine?
Click to expand...
Click to collapse
Google their advice is to use ubuntu if you want to use a distros if your own choices you are probably advanced enough to change the instructions to your needs
And about Ricardo his month it is only a tut to compile it yourself you don't have to share it
Sent from my Galaxy Nexus using XDA Premium HD app
owain94 said:
Google their advice is to use ubuntu if you want to use a distros if your own choices you are probably advanced enough to change the instructions to your needs
And about Ricardo his month it is only a tut to compile it yourself you don't have to share it
Sent from my Galaxy Nexus using XDA Premium HD app
Click to expand...
Click to collapse
I guess I could always post my own adapted instructions! Maybe some day. Ahah.
As funny as it may seem to u, instructions to compile CM10 on different distro than Ubuntu would be highly appreciated. Not everyone uses Ubuntu (I do actually), so u may help someone trying to set it up on their distro...
Just my 2 cents....
tetrahedonism said:
I guess I could always post my own adapted instructions! Maybe some day. Ahah.
Click to expand...
Click to collapse
I think you should, and hey, please don't tempt us, share your things
Thanks for the tread as well raum1807
Great guide. This will probably let me make my own rom and share it on xda
Is it possible to compile on 32 bits system?
Sent from my LG-P990 using Tapatalk 2
slebit said:
Is it possible to compile on 32 bits system?
Sent from my LG-P990 using Tapatalk 2
Click to expand...
Click to collapse
No, 64 bits only
Sent from my LG-P990 using xda premium
HerrKuk said:
No, 64 bits only
Sent from my LG-P990 using xda premium
Click to expand...
Click to collapse
You mean it's impossible to compile on Ubuntu 12.04 32-bit ?
Litderose said:
You mean it's impossible to compile on Ubuntu 12.04 32-bit ?
Click to expand...
Click to collapse
If i've done my homework properly, yes
ICS and older are possible with 32bits though
Sent from my LG-P990 using xda premium
Hi, i'm trying to build following your guide.
I have a little problem with step 5.
When i put the line exactly like your
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javac
I get fail, system told me they need prority in entire numeric. I get it work with this:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javac 1
Have to do the same with the other 2 commands.
Hope this help someone stucked.
Cheers,
eThAn
ethansp said:
Hi, i'm trying to build following your guide.
I have a little problem with step 5.
When i put the line exactly like your
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javac
I get fail, system told me they need prority in entire numeric. I get it work with this:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u37-linux-x64.bin/bin/javac 1
Have to do the same with the other 2 commands.
Hope this help someone stucked.
Cheers,
eThAn
Click to expand...
Click to collapse
Thank you for pointing me to that error. Somehow the priority got lost while pasting. I corrected it.
tetrahedonism said:
Also, what happened to the month of letting RC shine?
Click to expand...
Click to collapse
As owain already said, we devs have decided to wait for 3-4 weeks before using his work and releasing it as an "own" ROM.
This does only affect releasing a ROM, not building it.
I will always encourage everone to build their own ROM for their own purpose, there's nothing wrong with that. And you will learn a lot
slebit said:
Is it possible to compile on 32 bits system?
Sent from my LG-P990 using Tapatalk 2
Click to expand...
Click to collapse
HerrKuk said:
No, 64 bits only
Sent from my LG-P990 using xda premium
Click to expand...
Click to collapse
Litderose said:
You mean it's impossible to compile on Ubuntu 12.04 32-bit ?
Click to expand...
Click to collapse
HerrKuk said:
If i've done my homework properly, yes
ICS and older are possible with 32bits though
Sent from my LG-P990 using xda premium
Click to expand...
Click to collapse
HerrKuk is right. If you try to compile it on a 32-bit system you will see a lot of errors. As JBQ stated here, a 64-bit OS is mandatory.
Do any of you guys get working wi-fi on your kangs?
TrymHansen said:
Do any of you guys get working wi-fi on your kangs?
Click to expand...
Click to collapse
Is not working. I have too dead wifi. Stucks "activating WI-FI..."
I going to see logcat later and share here.
Good, thanks, was just wondering if I had to make a new build-system from scratch, I've re-used my old CM9-builder.
tonyp said:
As owain already said, we devs have decided to wait for 3-4 weeks before using his work and releasing it as an "own" ROM.
This does only affect releasing a ROM, not building it.
I will always encourage everone to build their own ROM for their own purpose, there's nothing wrong with that. And you will learn a lot
Click to expand...
Click to collapse
We all understand rest of the devs here are waiting for RC Shine, thats fine. But as these nightly builds are having too many annoying bugs liek slow battery charging, wifi-battery drain issue, screen wake issue, power button issue, which makes it impossible to even test, forget making it daily driver. In fact even some pals are not able to install it properly (4,5 builds). I dont understand why rest of the devs are not making fixes to these various issues in this nightlies. Other devs are expert who can understand this seperate issues and can make patches till a month, before actually making own custom roms.
Uptil now the fixes suggested by some members are either not working or even making it worse sometimes.
Devs, Please think again for your strong valuable expert fixes. How about a single file parmanent patch with all possible fixes? Will appreciate. Sorry if asking too much or out of protocol. I dont know much what you devs have decided long time back.
Was on the latest build from RC and on bb v20c and the ril which came with the build....wifi was working perfectly and I confirm without a big drain of battery....it was richly smooth
O2X with Magical ROM and supersonic kernels from my buddies

[GUIDE] How-To Automount Your Note 10.1 to Linux with MTP

NOTE: These instructions will work the same for the Galaxy S3 GT-I9300. You will just obviously have to adjust the ENV{ID_MODEL} parameter below as well as what you want to name the mount point.
[steps adapted from here]
So with Google's insistence on using MTP for file transfer, it's made it difficult for Linux users out there. So here are the steps I use for my Linux box to connect my Note 10.1 so that I can copy files back and forth.
INSTALL MTPFS
Download and install go-mtpfs (http://hanwen.home.xs4all.nl/public/software/go-mtpfs/). I downloaded the go-mtpfs.amd64.ca2e2c82 pre-compiled binary since I am using an AMD box with 64-bit Linux. Download your version as appropriate. The install instructions are:
1. Download the appropriate version
2. Load a terminal and navigate to the location of the download, most likely ~/Downloads
3. Type the following commands:
Code:
sudo chmod +x go-mtpfs.amd64.ca2e2c82
sudo cp go-mtpfs.amd64.ca2e2c82 /usr/local/sbin/go-mtpfs
SETUP MOUNT POINT
You need to setup a mount point for the computer to automount the tablet to. The steps are:
Code:
sudo mkdir /media/note10
MODIFY UDEV RULES
1. Type the following commands in to create a .rules file for the MTP setup
Code:
sudo nano /etc/udev/rules.d/99-android-mtp-phones.rules
2. Copy the following into the .rules file
Code:
# Samsung Galaxy Note 10.1 MTP mode
ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", ACTION=="add", ENV{ID_MODEL}="GalaxyNote10"
# Samsung Galaxy Note 10.1 PTP mode
ATTR{idVendor}=="04e8", ATTR{idProduct}=="6866", ACTION=="add", ENV{ID_MODEL}="GalaxyNote10"
# Samsung Galaxy Note 10.1 : automount when plugged in
ENV{ID_MODEL}=="GalaxyNote10", ACTION=="add", RUN+="/usr/bin/sudo -u root /usr/local/sbin/go -mtpfs -allow-other=true /media/note10"
# Samsung Galaxy SIII : umount when unplugged
ENV{ID_MODEL}=="GalaxyNote10", ACTION=="remove", RUN+="/bin/fusermount -u /media/note10"
3. CTRL-O to save (if you are in nano)
4. CTRL-X to exit (if you are in nano)
5. Type the following to reset your udev service
Code:
sudo service udev restart
That is it. Now you can plug your Note 10.1 into your computer and it will automount to the directory. You can browse to the /media/note10 folder now
Thanks mate that will be helpful .
Regards.
Somehow it does work and somehow it does not work on my ubuntu laptop ...
the good thing: mtp is working fine and i can copy paste what ever i want FROM and TO the note.
"bad" thing: it is not mounted in the media dir but when i plug it in it automounts it as "SAMSUNG_Android" in mtp://[usb:003,002]/
All in all it i dont care about it as long as its well integrated into nautilus and unity dash
thanks dude, well done!
:good:

Linux on the Nexus 7 2012 wifi rev. E1565 - grouper, 2023 edition

I created Ubuntu MATE 22.04 LTS, Ubuntu MATE 20.04.1 LTS and ArchLinux ARMv7 image kernel-6.1.0-next-postmarketos-grate for Nexus 7 2012 wifi rev. E1565. Following guides:
[Discontinued] Linux on the Acer Iconia Tab A500, 2022 edition
UPDATE: I discontinued work for this tablet model, due to the lack of NEON support for the Nvidia Tegra 2 CPU used in this model. Any existing work I uploaded will remain online, but I won't be uploading anything new. I'm also considering selling...
forum.xda-developers.com
[WIP] postmarketOS
postmarketOS is Linux operating system. This system is able to turn your phone or tablet into desktop like device with touchscreen controls. You can use GNOME application from your desktop if they're adapted to smaller screen or in some cases it...
forum.xda-developers.com
What works:
- flashing
- USB (including OTG)
- WiFi
- Bluetooth
- Sound
- LCD + Touchscreen (with rotation)
- light sensor
- NFC (should work, driver loads, initialize, no NFC device to test)
What doesn't work (yet):
- camera
- 3D support (partial working, es2gears/es2tri/glmark2-es2 run but glxgears crashed)
Dev docs:
- https://wiki.postmarketos.org/wiki/The_Mainline_Kernel
Kernel sources:
- used kernel https://github.com/grate-driver/linux/
Sample picture:
{
"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"
}
Contributors
okias, digetx,Clamor-s, Worlblender, Baonks81
Source Code: https://gitlab.com/postmarketOS/pmbootstrap/
ROM OS Version: Linux
ROM Firmware Required: shipped with ROM
Based On: Linux 6.1.0-next-postmarketos-grate
--> Recrypt Tegra GPT <--
GitHub - clamor-s/re-crypt: A tool for re-partitioning Tegra 2 and Tegra 3 based product devices.
A tool for re-partitioning Tegra 2 and Tegra 3 based product devices. - GitHub - clamor-s/re-crypt: A tool for re-partitioning Tegra 2 and Tegra 3 based product devices.
github.com
--> U-boot worked on grouper <--
GitHub - clamor-s/u-boot: "Das U-Boot" Source Tree with many Tegra 20/30 devices support
"Das U-Boot" Source Tree with many Tegra 20/30 devices support - GitHub - clamor-s/u-boot: "Das U-Boot" Source Tree with many Tegra 20/30 devices support
github.com
Version Information
Status: Testing
Download link:
[Testing]Ubuntu-23.10-Mantic-Minotaur-ttyescape+armhf-kernel-6.1.0-postmarketos-grate
Ubuntu-23.10-Mantic-Minotaur-ttyescape+asus-grouper-kermel-6.1.0-armhf - Google Drive
drive.google.com
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu 23.04 Lunar Lobster ttyescape kernel-6.1.0-postmarketos-grate
Ubuntu-23.04-Lunar-Lobster-armhf+asus-grouper-kernel-6.x.0-next-postmarketos-grate - Google Drive
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu MATE 22.10 ext4 kernel-5.19.0-next-20220728-postmarketos-grate
Ubuntu-MATE-22.10-kernel-5.19.0-rc8-next-20220728-postmarketos-grate - Google Drive
drive.google.com
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu 22.04.1/22.10 ttyescape kernel-5.19.0-rc8 grouper rev. E1565 postmarketos-grate
Ubuntu-22.04-Jammy-22.10-Kinetic-ttyescape-grouper-kernel-5.19.0-rc8 - Google Drive
drive.google.com
Default user: passwd
root: ubuntu
oem: ubuntu
Video:
Ubuntu 22.04.1 LTS MATE ext4 kernel-5.19.0-next-20220728-postmarketos-grate
https://drive.google.com/drive/u/0/folders/1uJ_VhBcWXF-9n7T0lH8vlHihjVY_gthV
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu 22.04 LTS Jammy Jellyfish MATE ext4 kernel-5.17.0-next-20220324-postmarketos-grate
Ubuntu-MATE-22.04.1LTS-kernel-5.17.0-next-20220324-postmarketos-grate - Google Drive
drive.google.com
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu 22.04 LTS Jammy Jellyfish MATE/LXQT ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate
Ubuntu 22.04 Jammy Jellyfish+asus grouper-kernel-5.15.0-rc4 - Google Drive
drive.google.com
Default user: passwd
root: ubuntu
oem: ubuntu
Ubuntu MATE 20.04.1 LTS ext4 rootfs kernel 5.15.0-rc4-next-20211011-postmarketos-grate
Ubuntu MATE 20.04.1 LTS kernel-5.15.0-rc4 - Google Drive
drive.google.com
Ubuntu MATE 20.04.1 LTS ext4 rootfs kernel 5.14.0-rc3-next-20210729-grate:
https://drive.google.com/drive/folders/1cLs1q5thzrsuHNVM08OaQ3OWASgf6t-R
Ubuntu MATE 21.10 Impish Indri ext4 kernel 5.15.0-rc4-next-20211011-postmarketos-grate:
Ubuntu MATE 21.10 Impish Indri kernel 5.15.0-rc4 - Google Drive
drive.google.com
Ubuntu 21.10 Impish Indri pre-installed server ext4 kernel 5.15.0-rc4-next-20211011-postmarketos-grate:
https://drive.google.com/folderview?id=1GC9I_hZl3H6LVd2IG_XYJLHrq6Bj-c6C
Archlinux ARMv7 latest kernel-6.0.6-next-postmarketos-grate
ArchLinux-armv7h-ext4-latest+asus-grouper - Google Drive
drive.google.com
User/passwd:
alarm: alarm
su: root
Archlinux ARMv7 latest kernel-5.19.0-rc8-next-20220728-postmarketos-grate
https://drive.google.com/drive/folders/1sHqfA-CuFpSkNcwnW5NGOKlf0a4aHmj6
User/passwd:
alarm: alarm
su: root
ArchLinux ARMv7 kernel 5.15.0-rc4-next-20211011-postmarketos-grate
Archlinux-ARM-kernel-5.15.0 - Google Drive
drive.google.com
ArchLinux ARMv7 kernel 5.14.0-rc3-next-20210729-grate f2fs: https://drive.google.com/drive/folders/13ja5utmNSyNiz4xKTG5qcoBqRNv9qVYw?usp=sharing
ArchLinux ARMv7 kernel 5.14.0-rc3-next-20210729-grate ext4: https://drive.google.com/drive/folders/1szK5trBse8-j1hSIgzZDppL3R6ySNSCP
More distros here:
F2FS:
distros - Google Drive
drive.google.com
OS - Google Drive
drive.google.com
[Testing] Fedora 36 Minimal + Xfce Rawhide armhfp ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate
Fedora 36 armhfp asus grouper kernel 5.15.0-rc4 - Google Drive
drive.google.com
Fedora Xfce 35 armhfp ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate:
Fedora 35 Xfce armhfp asus grouper kernel 5.15.0-rc4 - Google Drive
drive.google.com
Fedora Xfce 34 armhfp ext4 kernel-5.14.0-rc3-next-20210729-grate: https://drive.google.com/drive/folders/1LbffvuU2B2r6ydbaTxvK2KNX_MdLxrrn
openSUSE Leap 15.3/15.4 ARMv7 XFCE/LXQT/X11 kernel-5.15.0-rc4-next-20211011-postmarketos-grate
openSUSE Leap kernel-5.15.0-rc4 - Google Drive
drive.google.com
openSUSE Leap 15.3 ext4 kernel 5.14.0-rc3: https://drive.google.com/drive/folders/19ArXlOwX2xN8-SHjxPMzMQ-kj-Xkvbf0
Debian Bulleye ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate
Debian Bulleye armhf kernel-5.15.0-rc4 - Google Drive
drive.google.com
Debian ext4: https://drive.google.com/drive/folders/1jhq1v5ejOazDB1wSF-ZS0FxBc_QIPUFD
Install guide for Ubuntu MATE 20.04.1 LTS:
Please check your tablet is grouper or tilapia by command
TWRP (adb shell) $ grep androidboot.baseband=unknown /proc/cmdline && echo grouper || echo tilapia
Checking hardware revision of grouper(E1565 or PM269) <- this is important, because I didn't have any PM269 devices, so I only supported rev. E1565
TWRP (adb shell) $ find /sys/devices/ | grep -c max776 && echo You have E1565
TWRP (adb shell) $ find /sys/devices/ | grep -c tps6591 && echo You have PM269
Reference link here:
Google Nexus 7 2012 (asus-grouper) - postmarketOS
wiki.postmarketos.org
1. Unlock bootlader and upgrade stock Android 5.1.1 Build LMY47V
2. Install TWRP 3.3.1-0 or later
3. Connect Nexus 7 to PC/Latop. Go to bootloader and flash boot
# adb start-server
# adb reboot bootloader (or press Power button + Volume Down button to come bootloader)
# fastboot flash boot boot.img
4. TWRP -> Advance -> Terminal
# df
# umount /dev/block/mmcblk0p__ <- fill partition number (2 times)
5. Back PC/Laptop,
# unxz -v ubuntu-mate-20.04.1-desktop-armhf+asus-grouper-kernel-5.14-rc3-next-grate.img.xz
# adb push /path/to/ubuntu-mate-20.04.1-desktop-armhf+asus-grouper-kernel-5.14-rc3-next-grate.img /dev/block/mmcblk0p__ <- fill partition number
grouper has likely data on /dev/block/mmcblk0p9 but make sure!
tilapia has likely data on /dev/block/mmcblk0p10 but make sure!
6. Utilities in /opt folder such as: cpufreq, temp_throttle, clear_ram, kde-auto-rotate
7. Install preload, tlp, bleachbit compton compositor in ubuntu source
Compton:
compton --backend glx --vsync opengl-swc --glx-no-stencil --unredir-if-possible --glx-no-rebind-pixmap --glx-swap-method 3 --paint-on-overlay -b
8. Update sysctl and cpufreq
ubuntu mate 22.04/cpufreq.start · main · Baonks81 / Nexus 7 2012 grouper ubuntu mate lxqt 22.04 · GitLab
Config cpifreq vms kernel
gitlab.com
ubuntu mate 22.04/sysctl.conf · main · Baonks81 / Nexus 7 2012 grouper ubuntu mate lxqt 22.04 · GitLab
Config cpifreq vms kernel
gitlab.com
# sudo sysctl -p
# sudo chmod +x /opt/cpufreq.start
# sudo sh /opt/cpufreq.start
9. Remove rpi packages
# sudo apt-get remove --purge libraspberrypi-bin libraspberrypi0 linux-firmware-raspi2 linux-headers-raspi linux-image-raspi linux-raspi pi-bluetooth rpi-eeprom u-boot-rpi flash-kernel linux-headers-5.4.0-1015-raspi linux-image-5.4.0-1015-raspi linux-image-5.4.0-1022-raspi linux-modules-5.4.0-1015-raspi linux-modules-5.4.0-1022-raspi linux-raspi-headers-5.4.0-1022 fwupd fwupd-signed gnome-firmware
10. Install grate-driver: https://launchpad.net/~grate-driver...us_filter=published&field.series_filter=focal
# sudo add-apt-repository ppa:grate-driver/ppa
11. Update sources.list and upgrade Ubuntu MATE 20.04.4 LTS. Enjoy!
Install chromium without snap:
How to install Chromium without snap?
I just discovered that chromium will only be released as a snap package. How can I continue to get chromium, without snap? Is this possible without building from source? Notes: Please let's keep t...
askubuntu.com
$ sudo nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ bullseye contrib main non-free
# deb http://deb.debian.org/debian-debug/ bullseye-debug contrib main non-free
# deb-src http://deb.debian.org/debian/ bullseye contrib main non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
# deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
# Backports
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
$ sudo apt update && sudo apt install chromium
Accelerate chromium create
# sudo nano /etc/chromium/local.conf
unset GDK_BACKEND
Insert --use-gel=egl in /usr/share/applications/chromium.desktop at line
Exec=/bin/chromium --use-gl=egl --user-agent="Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Mobile Safari/537.36 Firefox/102.0" %U
Fix chromium authentication keyring:
# sudo apt install seahorse
$ seahorse
Create new Password keyring for application with default name was "Default keyring"
Install guide for ArchLinuxARMv7:
The same install Ubuntu MATE 20.04.1 LTS steps. OTG-USB keyboard requires
User/passwd:
alarm: alarm
su: root
Install dialog and wifi-menu, wpa_passphrase, wpa_supplicant, iwd on USB Internet(pmOS supported)
USB Internet - postmarketOS
wiki.postmarketos.org
On, Nexus 7:
Code:
# ip route add default via 172.16.42.2
# echo nameserver 1.1.1.1 > /etc/resolv.conf
On PC/Laptop connecting usb by Nexus 7:
Fisrt, enable IP forwarding:
Code:
# sysctl net.ipv4.ip_forward=1
Then follow the instructions according to the distribution or firewall you use.
iptables (Ubuntu/Arch/Alpine)​
Code:
# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -s 172.16.42.0/24 -j ACCEPT
# iptables -A POSTROUTING -t nat -j MASQUERADE -s 172.16.42.0/24
# iptables-save #Save changes
# ssh [email protected]
Passwd: alarm
# su
Passwd: root
# pacman-key --init
# pacman-key --populate
# pacman-key --refresh-keys
# pacman -Sy archlinux-keyring
# pacman -Syu
# pacman -S dialog wpa_supplicant iwd dhcpcd
Thanks to:
- grate-driver team
- postmarketOS
- Ubuntu MATE for rpi
- ArchLinux armv7h, Fedore armhfp, openSUSE Leap armv7l
Reference link:
https://tinhte.vn/thread/ubuntu-22-...-grouper-rev-e1565-kernel-5-15-0-rc4.3447577/
Zarosky said:
Greattt!!!! Could you explain better, about the utilities that are inside the /opt folder? Thank you so much for sharing this great work!
Click to expand...
Click to collapse
It's all creating a .desktop at startup applications
# sudo chmod +x /opt/clear_ram
# sudo chmod +x /opt/cpufreq.start
# sudo chmod +x /opt/temp_throttle
# sudo visudo
ALL ALL=(ALL) NOPASSWD: /opt/clear_ram, /opt/cpufreq.start, /opt/temp_throttle
Menu -> Preferences -> Startup Applications
In foreach command create one .desktop:
1. sudo /opt/clear_ram
2. sudo /opt/cpufreq.start
3. sudo /opt/temp_throttle 59 <- this is important, because over 60 degrees, n7 will poweroff
kde-auto-rotate -> readme to install for rotation with sensors
kde-auto-rotate
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
Firefox-esr v.91
# sudo add-apt-repository ppa:mozillateam/ppa
# sudo apt-get update
# sudo apt-get install firefox-esr
mobile-config-firefox
# git clone https://gitlab.com/postmarketOS/mobile-config-firefox.git
# sudo make install
# zcat /proc/config.gz | grep SWAP
CONFIG_SWAP=y
CONFIG_MEMCG_SWAP=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
# CONFIG_FRONTSWAP is not set
# CONFIG_MTD_SWAP is not set
# CONFIG_NFS_SWAP is not set
I could install dphys-swapfile package
# sudo apt install dphys-swapfile
# zcat /proc/config.gz | grep ZRAM
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_ZRAM_DEF_COMP="lz4"
# CONFIG_ZRAM_WRITEBACK is not set
CONFIG_ZRAM_MEMORY_TRACKING=y
# sudo apt install zram-config
# nano /usr/bin/init-zram-swapping
Code:
#!/bin/sh
# load dependency modules
NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0S/1/')
if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
MODPROBE_ARGS="num_devices=${NRDEVICES}"
else
exit 1
fi
modprobe zram $MODPROBE_ARGS
# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//'`
# mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024)) -> for 512MB zram
mem=$(((totalmem * 3 / 2 / ${NRDEVICES}) * 1024))
# initialize the devices
for i in $(seq ${NRDEVICES});
do
DEVNUMBER=$((i - 1))
echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
mkswap /dev/zram${DEVNUMBER}
swapon -p 1 /dev/zram${DEVNUMBER}
done
*** Fix some errors:
When libglamoregl.so fail to load, we may remove mesa from grate-driver, but keeping opentegra driver
# sudo dpkg -P --force-depends libvdpau-tegra linux-firmware libd3dadapter9-mesa libegl-mesa0 libgbm1 libgl1-mesa-dri libglapi-mesa libglx-mesa0 libosmesa6 mesa-opencl-icd mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers
# sudo add-apt-repository --remove ppa:grate-driver/ppa
# sudo apt install --fix-broken
When it had blink cursor but device not boot, it need checking for Read-only file system error
# sudo ssh [email protected]
# sudo su
# sudo blkid
We find mount of root file system, usually /dev/dm-1
# sudo fsck.ext4 -f /dev/dm-1
# sudo reboot
***Backup full filesystem boot and rootfs
Connect Nexus 7 to PC/Laptop using micro-usb cable, enter TWRP recovery mode → Advance → Terminal
# df
# umount /dev/block/mmcblk0p-- <- fill number here (grouper: 09 or tilapia: 10)
On PC/Laptop
# adb start-server
Backup boot: # sudo adb pull /dev/block/mmcblk0p2 /path/to/boot-kernel-5.14-rc3-next-grate.img
Backup rootfs for grouper(wifi): # sudo adb pull /dev/block/mmcblk0p9 /path/to/rootfs.img
Backup rootfs for tilapia(3G): # sudo adb pull /dev/block/mmcblk0p10 /path/to/rootfs.img
Backup full: # sudo adb pull /dev/block/mmcblk0 /path/to/full_backup_mmcblk0.img
Greattt!!!! Could you explain better, about the utilities that are inside the /opt folder? Thank you so much for sharing this great work!
Zarosky said:
Greattt!!!! Could you explain better, about the utilities that are inside the /opt folder? Thank you so much for sharing this great work!
Click to expand...
Click to collapse
It's all creating a .desktop at startup applications
# sudo chmod +x /opt/clear_ram
# sudo chmod +x /opt/cpufreq.start
# sudo chmod +x /opt/temp_throttle
# sudo visudo
ALL ALL=(ALL) NOPASSWD: /opt/clear_ram, /opt/cpufreq.start, /opt/temp_throttle
Menu -> Preferences -> Startup Applications
In foreach command create one .desktop:
1. sudo /opt/clear_ram
2. sudo /opt/cpufreq.start
3. sudo /opt/temp_throttle 59 <- this is important, because over 60 degrees, n7 will poweroff
kde-auto-rotate -> readme to install for rotation with sensors
kde-auto-rotate
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
Firefox-esr v.91
# sudo add-apt-repository ppa:mozillateam/ppa
# sudo apt-get update
# sudo apt-get install firefox-esr
mobile-config-firefox
# git clone https://gitlab.com/postmarketOS/mobile-config-firefox.git
# sudo make install
***Backup full filesystem boot and rootfs
Connect Nexus 7 to PC/Laptop using micro-usb cable, enter TWRP recovery mode → Advance → Terminal
# df
# umount /dev/block/mmcblk0p-- <- fill number here (grouper: 09 or tilapia: 10)
On PC/Laptop
# adb start-server
Backup boot: # sudo adb pull /dev/block/mmcblk0p2 /path/to/boot-kernel-5.14-rc3-next-grate.img
Backup rootfs for grouper(wifi): # sudo adb pull /dev/block/mmcblk0p9 /path/to/rootfs.img
Backup rootfs for tilapia(3G): # sudo adb pull /dev/block/mmcblk0p10 /path/to/rootfs.img
Backup full: # sudo adb pull /dev/block/mmcblk0 /path/to/full_backup_mmcblk0.img
That's really cool! nice work. I have to test it on my old Nexus but i have the 2013 flo edition. I don't think that this will work :/ But does Linux run well on your Nexus ? is it laggy ??
ilikemath199 said:
That's really cool! nice work. I have to test it on my old Nexus but i have the 2013 flo edition. I don't think that this will work :/ But does Linux run well on your Nexus ? is it laggy ??
Click to expand...
Click to collapse
It's running smoothly than stock Android 5.1.1 and AOSP 7.1.2/8.1
Nexus 7 2013 flo had Snapdragon S4 Pro APQ8064, it's developing by @okias . Please waiting for new news
5.15.0-rc2-postmarketos-qcom-apq8064+ w/ irq patches — paste.sr.ht
paste.sr.ht
Are there any web browsers (up-to-date) that work? Have you tried Vivaldi armhf?
dookie23 said:
Are there any web browsers (up-to-date) that work? Have you tried Vivaldi armhf?
Click to expand...
Click to collapse
No, I didn't try Vivaldi armhf. I think chromium version 94 on debian bookworm/sid. It's latest now, edit repositories to bookworm, and just install chromium v94 with some packages depend or not
Thank you very much! It works on my old nexus7,amazing!! After apt upgrade,there not enough space on nexus. my nexus is 8GB.
yuanhao said:
Thank you very much! It works on my old nexus7,amazing!! After apt upgrade,there not enough space on nexus. my nexus is 8GB.
Click to expand...
Click to collapse
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
and remove more softs, which no need. Then run upgrade again or stay at ubuntu 20.04.1, or using other images: debian, archlinux, hirsuit preinstalled, etc. Usb-otg keyboard required
Baonks81 said:
sudo apt-get remove --purge libreoffice*
sudo apt-get clean
sudo apt-get autoremove
and remove more softs, which no need. Then run upgrade again or stay at ubuntu 20.04.1, or using other images: debian, archlinux, hirsuit preinstalled, etc. Usb-otg keyboard required
Click to expand...
Click to collapse
This is my first time to use a Linux OS , I just try to learn some linux command.
after flashing Ubuntu, I download and flash Fedora. Fedora's bluetooth doesn't work well, connecting is ok, but it doesn't work well with an apple mouse and a keyboard. and there's no web brower inside.
All in all Linux is really cool. thank you!
ext4: https://drive.google.com/drive/folders/1LbffvuU2B2r6ydbaTxvK2KNX_MdLxrrn
yuanhao said:
This is my first time to use a Linux OS , I just try to learn some linux command.
after flashing Ubuntu, I download and flash Fedora. Fedora's bluetooth doesn't work well, connecting is ok, but it doesn't work well with an apple mouse and a keyboard. and there's no web brower inside.
All in all Linux is really cool. thank you!
ext4: https://drive.google.com/drive/folders/1LbffvuU2B2r6ydbaTxvK2KNX_MdLxrrn
Click to expand...
Click to collapse
Ah, well, you're the first report about fedora 34 xfce4. I just port for fun, i didn't know it working out of the box .Archlinux, openSUSE Leap was the same lol
By the way, try some packages to activate bluetooth service and neard service(NFC)
Connecting keyboard and mouse bluetooth, NFC checking:
bluez
bluez-utils
bluez-mgmt
bluez-btmon
bluez-hid2hci
bluez-alsa
neard
Command:
$ sudo bluetoothctl power on
$ sudo bluetoothctl
#<bluetoothctl>: scan on
#<bluetoothctl>: help
NFC:
$ sudo nfctool -d nfc0 -1 -p
Nice to see there is still development for Grouper! Two questions:
- how is it feel with this distros is it usable?
- which distro is preferred for speed and stability?
Bladyle said:
Nice to see there is still development for Grouper! Two questions:
- how is it feel with this distros is it usable?
- which distro is preferred for speed and stability?
Click to expand...
Click to collapse
- I think Ubuntu MATE, I'm still using MATE 20.04.3LTS/21.10 kernel 5.14/5.15 on my Nexus 7 32Gb
- It's stability and usable with fine speed even only 1Gb RAM
6. Utilities in /opt folder such as: cpufreq, temp_throttle, clear_ram, kde-auto-rotate
7. Install preload, tlp, bleachbit compton compositor in ubuntu source
Click to expand...
Click to collapse
I get to step 6 above and I don't really understand what I need to do. Any help would be appreciated. Thank you.
ncfoster said:
I get to step 6 above and I don't really understand what I need to do. Any help would be appreciated. Thank you.
Click to expand...
Click to collapse
Baonks81 said:
It's all creating a .desktop at startup applications
# sudo chmod +x /opt/clear_ram
# sudo chmod +x /opt/cpufreq.start
# sudo chmod +x /opt/temp_throttle
# sudo visudo
ALL ALL=(ALL) NOPASSWD: /opt/clear_ram, /opt/cpufreq.start, /opt/temp_throttle
Menu -> Preferences -> Startup Applications
In foreach command create one .desktop:
1. sudo /opt/clear_ram
2. sudo /opt/cpufreq.start
3. sudo /opt/temp_throttle 58 <- this is important, because over 60 degrees, n7 will poweroff
kde-auto-rotate -> readme to install for rotation with sensors
kde-auto-rotate
MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.
www.mediafire.com
Firefox-esr v.91
# sudo add-apt-repository ppa:mozillateam/ppa
# sudo apt-get update
mobile-config-firefox
# git clone https://gitlab.com/postmarketOS/mobile-config-firefox.git
# sudo make install
***Backup full filesystem boot and rootfs
Connect Nexus 7 to PC/Laptop using micro-usb cable, enter TWRP recovery mode → Advance → Terminal
# df
# umount /dev/block/mmcblk0p-- <- fill number here (grouper: 09 or tilapia: 10)
On PC/Laptop
# adb start-server
Backup boot: # sudo adb pull /dev/block/mmcblk0p2 /path/to/boot-kernel-5.14-rc3-next-grate.img
Backup rootfs for grouper(wifi): # sudo adb pull /dev/block/mmcblk0p9 /path/to/rootfs.img
Backup rootfs for tilapia(3G): # sudo adb pull /dev/block/mmcblk0p10 /path/to/rootfs.img
Backup full: # sudo adb pull /dev/block/mmcblk0 /path/to/full_backup_mmcblk0.img
Click to expand...
Click to collapse
Do I need to add something to my tablet in order to run sudo?
I get the message "sh: sudo: not found"
ncfoster said:
Do I need to add something to my tablet in order to run sudo?
I get the message "sh: sudo: not found"
Click to expand...
Click to collapse
if you had su permission, no need sudo
Baonks81 said:
if you had su permission, no need sudo
Click to expand...
Click to collapse
Thank you for your response. I'm sorry, but what I also don't seem to understand is line 6, which states:
6. Utilities in /opt folder such as: cpufreq, temp_throttle, clear_ram, kde-auto-rotate
Click to expand...
Click to collapse
Is this saying those should already be there or that we have to put them there? I do not seem to have an /opt folder at all, so I am stuck.
ncfoster said:
Thank you for your response. I'm sorry, but what I also don't seem to understand is line 6, which states:
Is this saying those should already be there or that we have to put them there? I do not seem to have an /opt folder at all, so I am stuck.
Click to expand...
Click to collapse
/opt folder in / folder
It's meaning root, change to root by cd ..
or cd /
/opt stayed long time in GNU/Linux rootfs
Yeah. I knew where to look for the opt folder. But, it is not there for me.

Categories

Resources