BBQLinux - An Arch based Linux distribution *NOT* just for Android developers - Android

Updates Announcement here
------------------------------------------------------------------------------
Updates
Refer to oF2pks post regarding latest UEFI on BBQLinux
------------------------------------------------------------------------------
I am very surprise that BBQLinux has almost no reviews or publicity at all & a quick google search returns only a maximum of 10 pages only...
After all it is a Linux Distro specifically made for Android Development... It is maintained by Senior Recognized Developer codeworkx mentioned by himself... :laugh:
It has everything you ever needed & you should have started development long ago & not cracking your head to setting up the Build Environment, downloading this & that dependencies packages...
{
"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"
}
Intro from wiki
BBQLinux is a user-friendly Linux distribution made for Android developers and everyone who prefers a ready-to-use system. It has everything on board to build AOSP or AOSP-based Distributions like OmniROM or CyanogenMod. The default desktop environment is MATE. It is using vanilla Arch repos, the AUR and a BBQLinux specific repo. BBQLinux can be installed by booting the Live DVD and using the graphical Installer called BBQLinux Installer.
Homepage: http://www.bbqlinux.org
Screenshots: http://bbqlinux.org/screenshots
Google+: https://plus.google.com/u/0/communities/106642342159578225975
IRC: #bbqlinux on freenode
Added on Mar 27, 2014 - Miscellaneous Tips
Terminal Shortcut Key How-to
System -> Preferences -> Keyboard Shortcuts
Vbox Shared Folder
Drag&Drop works from Win Host to BBQLinux but not the other way round. To enable Win Host to access BBQLinux folder, for this Eg: create a new folder name BBQLinux at Win Host & put a check mark at Auto-mount. At BBQLinux Terminal,
Code:
[COLOR=blue]mkdir -p ~/BBQLinux
sudo mount -t vboxsf BBQLinux ~/BBQLinux[/COLOR]
After that, both can access the folder BBQLinux. At BBQLinux, there will be a new BBQLinux folder at your [Home]
To enable Shared Folder to work after reboot, use below command at Terminal & pluma to check. Change it accordingly to your setup if you use other folder name.
Code:
[COLOR=blue]echo BBQLinux ~/BBQLinux vboxsf uid=1000,gid=1000 0 0 [B]>>[/B] /etc/fstab
pluma /etc/fstab[/COLOR]
At my fstab it is BBQLinux /home/yuweng/BBQLinux vboxsf uid=1000,gid=1000 0 0
WARNING : Take note of the double greater-than sign >> a single > will over write everything at fstab & it won't boot after that so make sure there is no typo mistake ! And remember to put a check mark at Auto-mount or it will not boot !
The new Shared Folder BBQLinux can be access from the Desktop after a reboot.
Source
Installation How-to
There are already tons of guides on the web, more or less the same so refer to the below...
Virtualbox
Dual-Boot & Boot Menu
Native Boot
USB bootable how-to tips by Master Shifu himself... :good:
Found the one & only installation walk-thru in Russian !
i guess only the Russian appreciates such a master piece... Google Translated version here...
Still couldn't boot up BBQLinux then head over here tons of infos so make sure you have gone thru all that first & if still you couldn't figured it out then ask Master Shifu codeworkx AKA Daniel Hillenbrand or try asking here . . . :good:
Added on Apr 11, 2014
Confirmed BBQLinux can successfully built cm & omni . . .
Successfully built i9500 on BBQLinux & it tooks more than 7 hours on top of the initial 7 hours for syncing cm11 FULL source...
Commands to build on my PC...
Code:
[U]First part[/U]
mkdir -p ~/cm11
cd ~/cm11
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
repo sync -f -j4
cd ~/cm11/vendor/cm
./get-prebuilts
cd ~/cm11
source build/envsetup.sh
lunch
To select [COLOR=Blue]cm_i9500-userdebug[/COLOR] by typing its listed number-> Eg: [B][COLOR=Blue]50[/COLOR][/B] -> Enter ->
Wait & it'll resume syncing but there will be some errors & it'll stop
[U]2nd Part[/U]
export USE_CCACHE=1
prebuilts/misc/linux-x86/ccache/ccache -M 25G
brunch i9500
Source
Built successfully on Omni too...
Commands to build on my PC...
Code:
[U]First part[/U]
mkdir -p ~/omni
cd ~/omni
repo init -u https://github.com/omnirom/android.git -b android-4.4
repo sync -f -j4
Then follow remaining steps here...
Miscellaneous tips
What is ccache ?
Use below command to add it to .bashrc then you don't need to type it on every build & geany to check
WARNING : Take note of the double greater-than sign >> a single > will over write everything !
Code:
echo -e "\nexport USE_CCACHE=1" >> ~/.bashrc
geany ~/.bashrc
Source
Added on Apr 22, 2014
Philz Touch CWM Advanced Edition
Updates
Refer to here for more info . . .
Added on Sept 07, 2014
How to update your BBQLinux Distro
i've bad experience with Windows Update at work so i never did try updating BBQLinux until now Thanks to Santhosh M for sharing his experience . . .
Just follow the commands & updating works like a charm !
You can find all updated packages downloaded to /var/cache/pacman/pkg so make a backup & in case of OS corruption then you can use it, no need to download all over again . . .
Added on Oct 04, 2014
Native UEFI booting BBQLinux
What is UEFI. What is the benefit ? Got mine booted to login screen in just 9 seconds & i'm not even using SSD !
Been using Vbox for quite awhile now, did install Native-Boot but only now free to look into UEFI booting for my mobo & found out all those steps are not needed for BBQLinux except modified UEFI Shell v2 binary ( scroll further down & you'll see it )
For reference only, BBQLinux now support auto UEFI installation.
Steps
Download Rufus or on Linux & create a UEFI bootable USB drive from BBQLinux iso
Boot to Bios or press F8 for Boot Menu on Asus mobo & select the BBQLinux UEFI USB drive to boot to install BBQLinux
Assign 100MB for /boot/efi, swap, root, home as per your preferences. Upon finishing, installer will tell you EFI variables are not supported, just ignore it & reboot.
Boot the BBQLinux Installer again, use caja to mount the 100Mb partition, download, extract UEFI Shell v2 to the root of this partition & rename it to shell.efi
Reboot to Bios, pull out BBQLinux Installer USB drive, boot to launch UEFI shell & follow below command.
Code:
bcfg add 0 fs0:\EFI\BBQLinux\grubx64.efi "BBQLinux"
exit
Navigate to Bios Boot section, select BBQLinux, boot to this entry and enjoy.
Accessing EFI Shell on most mobo more or less the same so hunt for it if yours is not a Asus mobo . . .
ScreenShot
View attachment 2958722
Updates
Latest bbqlinux-2014.10.03-x86_64
Complete detail Walk-Through for setting up UEFI BBQLinux with photos
They say A picture is worth a thousand words hopefully newbies will be able to DIY after going thru all these. This Walk-Through setup details my Build Box that uses Asus mobo however it should be more or less similar for most mobo available on the market.
After you have booted up the UEFI BBQLinux Installer USB drive, you'll be greeted with the above. Press N
Press Enter
This screen will ask you to enroll the BBQLinux Installer USB drive loader.efi
This error details that you need to enroll \bbqlinux\boot\x86_64\vmlinuz too
Repeat the above process, look for vmlinuz & enroll it.
After this you should be able to boot the UEFI BBQLinux Installer USB drive
Now that you have finally booted up the UEFI BBQLinux Installer USB drive, you'll be greeted with above Welcome Screen, you can either choose Install BBQLinux or Try BBQLinux
After you choose Install BBQLinux, above notification will pop-up.
Go-thru each of the simple BBQLinux Installer menu & you'll get it installed. Generic calamares installation video. Below is obsolete info for reference, BBQLinux now support auto UEFI installation.
The newly installed BBQLinux won't boot b'cos you need additional steps to setup UEFI
Reboot BBQLinux Installer again & follow command above.
Code:
sudo efibootmgr -c -l "EFI\BBQLinux\grubx64.efi" -L "BBQLinux" [COLOR=red]<- This command assume you only have one Hard Disk Drive[/COLOR]
sudo efibootmgr [COLOR=Red]<- This command will list out the boot order[/COLOR]
Your BBQLinux HDD has the UEFI label & now you shall be able to boot up UEFI BBQLinux
My BBQLinux Build Box
Misc Tips
Updates
As mentioned, UEFI BBQLinux Native-Boot on normal HDD on SATA 6 boots up & shutdown faster than Win8.1(non UEFI) on SSD SATA 6, try it yourself then you'll know !
As you've seen all other guides elsewhere, same advice, familiarize yourself with UEFI on Virtualbox first then only try it on real HDD. System -> Put a check mark at Enable EFI (special OSes only).
If you're trying it on actual HDD then better to disconnect other HDD as you wouldn't want bad things to happen in case of a single mistake.
--------------------------------------
You can skip a few more hassle if you don't use UEFI Windows. More info here, here & here
If you already have other UEFI linux distro, you can use efibootmgr to setup two different UEFI boot label. Below example details two BBQLinux installation on two different HDD. Change accordingly to you Distro.
Code:
sudo efibootmgr -c -d /dev/sd[SIZE=4][COLOR=blue]d[/COLOR][/SIZE] -p 1 -L "[COLOR=blue]BBQLinux[/COLOR]" -l "EFI\[COLOR=blue]BBQLinux[/COLOR]\grubx64.efi"
sudo efibootmgr -c -d /dev/sd[SIZE=4][COLOR=blue]c[/COLOR][/SIZE] -p 1 -L "[COLOR=Blue]BBQLinux 1[/COLOR]" -l "EFI\[COLOR=blue]BBQLinux[/COLOR]\grubx64.efi"
sudo efibootmgr
Now both the UEFI BBQLinux & BBQLinux 1 is at the Boot Menu
Added on Mar 30, 2015
Jenkins on BBQLinux
Added on Apr 13, 2015
Tried fresh bbqlinux-2015.03.22-x86_64.iso UEFI installation on my OCZ SSD & it auto-detect & auto added UEFI boot menu by itself so just let BBQLinux installer do its job instead of manual partitioning . . . Refer to attachment -> View attachment 3236670
Time taken for building from source is also cut by half when using SSD . . .
Added on May 05, 2015
BBQLinux on non-Android Development laptop
Installed UEFI BBQLinux on my non-android-developer friend's Samsung Laptop with Celeron Processor & he is super happy that it boots & shutdown super lightning fast compared to the bundle OS . . . Below are the packages that i had to remove since sudo pacman -Syu will update it as well
Code:
sudo pacman -R [URL="http://en.wikipedia.org/wiki/Android_Studio"]android-studio[/URL]
sudo pacman -R android-support
sudo pacman -R [URL="http://en.wikipedia.org/wiki/Android_software_development"]android-sdk[/URL]
sudo pacman -R monodevelop-debugger-gdb
sudo pacman -R [URL="http://en.wikipedia.org/wiki/MonoDevelop"]monodevelop[/URL]
sudo pacman -R [URL="http://en.wikipedia.org/wiki/Meld_(software)"]meld[/URL]
sudo pacman -R [URL="http://forum.xda-developers.com/showthread.php?t=755265"]heimdall[/URL]
sudo pacman -R [URL="http://en.wikipedia.org/wiki/FileZilla"]filezilla[/URL]
sudo pacman -R [URL="http://wiki.inkscape.org/wiki/index.php/Inkscape"]inkscape[/URL]
sudo pacman -R gimp-dbp
sudo pacman -R gimp-plugin-fblur
sudo pacman -R gimp-plugin-gmic
sudo pacman -R gimp-plugin-lqr
sudo pacman -R gimp-plugin-mathmap
sudo pacman -R gimp-plugin-wavelet-decompose
sudo pacman -R gimp-plugin-wavelet-denoise
sudo pacman -R gimp-refocus
sudo pacman -R [URL="http://en.wikipedia.org/wiki/GIMP"]gimp[/URL]
sudo pacman -R [URL="http://en.wikipedia.org/wiki/LibreOffice"]libreoffice[/URL]-fresh
Since he is not using it for android development & he is more familiar with openoffice, i install it for him & told him to help himself with whatever apps that he may needs . . . :good:
Code:
yaourt -S openoffice
Updates
Tried building recovery & it says not enough memory as it comes with only 2GB Ram, tried with swap file & that solved the problem ! In spite of removing quite a few apps, there are still alot of Android binary stuff in it !
Swap my Desktop PC SSD for testing purpose & expected to re-installing everything but it boots up without doing anything !
This time only allocated 256MB swap & that too builds without problems, Conclusion : You don't need 16GB RAM for building from source as advice by many other guides, just invest in a SSD & use swapfile ! BBQLinux OS on a 60GB SSD should be enough for building ROMs too, either get an external HDD for data storage or use back the existing laptop HDD as an external HDD.
Completed building recovery on Celeron laptop, it only use up 67.8% of the newly allocated 256MB swap.
Only now realize that my Desktop 16GB RAM was hardly used, wasted my money upgrading RAM, same amount of money should've got me a bigger SSD !
Updates
How to confirmed that you have really boot into UEFI OS
Code:
[COLOR="Blue"]bootctl status[/COLOR]
System:
Machine ID: be56bf48b7444091ba1c651c91e2c45f
Boot ID: 68d69ecf4cb9470b88754b968f4e6b22
Secure Boot: disabled
Setup Mode: setup
Selected Firmware Entry:
Title: UEFI OS
Partition: /dev/disk/by-partuuid/bb6adf13-4b2b-4745-9b22-ec0ef5bdf56a
File: └─[COLOR="blue"]EFI/BBQLinux/grubx64.efi[/COLOR]
Source
Added on May 23, 2015
i've created a barebone BBQLinux xfce4 with BBQLinux Media Generator for installation on my friends PCs & laptops, full credits to Master Shifu codeworkx
Removed all development stuff so now its about 800MB with installed size at just 4.2GB ! Though you'll have to install apps that you want with a simple sudo pacman -S 'name of apps'
So go ahead & install it to your old PCs/ Laptops, family & friends PCs & Laptops, let them experience the goodies of BBQLinux & they'll be amaze of how well it performs, super fast, like brand new !
Will work on any PCs/ Laptops after the year 2006.(64bit CPU either AMD or Intel)
Added on May 27, 2015
Got my old Canon MP140 scanner working as simple as Plug & Play !
Code:
sudo pacman -S xsane gocr
Source
Added on Oct 09, 2015
Got bored with mate desktop then switch to xfce4 then to cinnamon easily without reinstalling everything...
Code:
sudo [URL="https://wiki.archlinux.org/index.php/Pacman#Upgrading_packages"]pacman -Syu[/URL]
sudo pacman -S bbqlinux-desktop-xfce4
sudo pacman -[STRIKE]Rsc[/STRIKE] bbqlinux-desktop-mate
[URL="https://wiki.archlinux.org/index.php/Allow_users_to_shutdown"]systemctl reboot[/URL]
Code:
sudo pacman -S bbqlinux-desktop-cinnamon
sudo pacman -[STRIKE]Rsc[/STRIKE] bbqlinux-desktop-xfce4
systemctl reboot
Enjoy the new desktop environment & i believe the same can be apply to all the other desktop too. Updates - 13-Oct-2015 Tested & confirmed all five bbqlinux desktop works using above techniques without re-installation...
Updates => Just did a new installation for a friend's laptop & it doesn't work, use pacman -Rs & it worked, however on my BBQLinux Desktop( Month of May iso ), pacman -Rsc works...
Updates 29-Feb-2016
Need to search a certain string on the source code but its like taking forever then use... :good:
Code:
sudo pacman -S [URL="https://github.com/ggreer/the_silver_searcher"]the_silver_searcher[/URL]
The code
How Linux is Built

Were you able to get OmniRom to work for your unsupported device? If so can you detail step by step how you added your device files?

As mentioned, cm & Omni doesn't boot on MTK as most MTK vendors doesn't include kernel source...
However, i did check out with Master Shifu Dee_Troy when i hang out here & he told me there is no mkvendor.sh on Omni source & ask me to refer to one & only MTK device tree here & it did built TWRP 2.7 on 4.4 branch...
So i suggest the same that you do some research, look at various device tree example here, use the one closest siblings to your device, manually edit all those files & i'm sure it'll built or try hang out here or here... :good:

Thanks for this usefull thread my Friend
Just tested on Virtual Machine (ubuntu). Compile philz touch 6 using cm-11 source for qualcomm device works very fine .
Like you said just getting android source and device tree, and the build process could be launched!!!
Nice one. ....
Greetz
Gesendet von meinem ME173X mit Tapatalk

Thanks for this @yuweng.:good:

Awesome! Thanks for share!

There are a few tools I had to install before I could compile Kit Kat. I thought I would share because Arch is so differrent than Ubuntu or Linux Mint so it was a pain to install these. Other than that I really like this distro. Nice UI

Hmm, i never had to install anything, may be its device specific, idk . . .
But Hey, you should share the how-to here, everyone know its pain in the ass to install arch packages . . . :laugh:
Never knew this thread got featured at the XDA Portal thanks to WILL VERDUZCO & JIMMY MCGEE . . . :highfive:
Updates : Totally forgotten to mentioned Jordan Keyes doing the BBQLinux coverage at XDA TV . . .
Since this question was asked at the portal for app development, BBQLinux includes Android SDK, Android Studio, Geany & Meld.
Someone even mentioned that he has to install JDK8 then only it'll work for his app development but i can't find that link, either it was the keyword BBQLinux, Archlinux, JDK8 or something else i can't recall . . .

Yeah, I've never heard of having to use Java 8 before. But Java6 is version 1.6. This is not device specific but it's common with all ROMs. See here: https://github.com/Octo-Kat/platfor...8a96053cc2fe520fdc136594878/core/main.mk#L163
So if you want you can check some of the other main stream ROMs like AOKP, CM, etc and confirm this to be true. Also the Compression tool iz4c is a must otherwise the build errors out when it starts compiling the kernel.

yuweng said:
But Hey, you should share the how-to here, everyone know its pain in the ass to install arch packages . . . :laugh:
/QUOTE]
I've never heard about any 'pain' with Archlinux's packages in the last 3 years! And Archlinux is my main system since then.
From LG G Pad 8.3 with the original Kitkat by LG
Click to expand...
Click to collapse

speedyx2000 said:
yuweng said:
But Hey, you should share the how-to here, everyone know its pain in the ass to install arch packages . . . :laugh:
/QUOTE]
I've never heard about any 'pain' with Archlinux's packages in the last 3 years! And Archlinux is my main system since then.
From LG G Pad 8.3 with the original Kitkat by LG
Click to expand...
Click to collapse
Certain packages aren't available in aur. You can convert them but that's more advanced.
Click to expand...
Click to collapse

Updated the BBQLINUX to may 1st version
but cant get the welcome screen
The lightdm.conf in the HDD has already lightdm-gtk-greeter
But still the same error pops up
Failed to Start Light Display Manager

The correct command is sudo geany etc/lightdm/lightdm.conf (without the slash) . . .
GUI method is actually much simpler . . .
Double-click at bbqlinux's Home -> 34GB HDD(your HDD) -> password bbqlinux
Applications -> System Tools -> Mate Terminal -> sudo caja -> password bbqlinux
File System -> run -> media -> bbqlinux -> HDD UUID -> etc -> lightdm -> lightdm.conf
Change greeter-session=lightdm-bbqlinux-greeter to greeter-session=lightdm-gtk-greeter

Yeah !! GUI method worked ...Thanks to @yuweng

I've this.
Inviato dal mio Galaxy Nexus con Tapatalk 2

It seems that your problem is something to do with the DVD/ USB disk label, link mentioned at the OP too . . .
But the corrupted low memory thingy is a whole totally different problem, i think . . .

Install, Setup and Update problems...
Hay, great job on making BBQLinux!
I have been having problems with the last two iso's you have done however,
My system is a MacBook Air 2012 (i5, 8GB RAM, 60GB SSD) and I am installing BBQLinux on to a USB3 or ThunderBolt HDD. Both of the iso's tried needed some monkeying with to get them to boot on a Mac - messing about with "/boot/efi" to make it boot...
The first one - bbqlinux-2014.03.16-x86_64.iso, installs great, boots with no problems (after monkeying) has a working desktop and tools but will not update! Every time i try to update, either using packman or the GUI it errors. GUI say "Unknown Error" and pacman gives errors about "invalid or corrupted package (PGP signature)" or "error: failed to commit transaction (conflicting files) terminus-font: /etc/fonts/conf.d/75-yes-terminus.conf exists in filesystem" - have tried many fixes but can't get past those errors!
The second one - bbqlinux-2014.05.01-x86_64.iso, installs great, boots with no problem (after monkeying) but the desktop does not work - just keeps opening caja at the bottom of the screen, hundreds and thousands of them!!!
Help please, thank you

On my Vbox, upon startup before it could finished loading everything, i double-click the Home icon at Desktop then four or five of them will pop-up after that but not hundreds and thousands of them . . . :laugh:
i have experience that on the Mar version but not May . . . Hmm, did you try other VMs such as parallels or vmware that could at least narrow down the problem, idk . . .
Hmm, may be you should report it directly to Master Shifu here as his XDA profile shows that he hasn't post anything since Jan 2014 . . .
May be Master Shifu @codeworkx is not even aware of this thread is here too . . . :laugh:

Wassup?
Who t f is Master Shifu?
Sent from my Nexus 5 using XDA Free mobile app

Master Shifu is a Charakter in the movie Kung Fu Panda
Gesendet von meinem Nexus 4 mit Tapatalk

Related

[ROM][WIP] Fedora for Nook Color

Just saw some interest for Fedora install on Nook in another thread to my surprise. I thought I am the only pervert interested.
Anyway this is pretty raw at the moment. You need to know your way around Linux and have a Linux box (naturally).
Just not to disappoint you later on, here's what not working:
Only based on Fedora13 from upstream (F14 work is ongoing by Fedora-Arm team and I am just tracking them).
Wifi (still did not get to look into it)
BT (same)
accelerated graphics
Don't know of any touch-friendly WM, so defaults to Gnome.
Multitouch (disabled in driver at the moment since no userspace support anyway).
backlight control does not work, need to rewrite the kernel driver
Xorg does not know what to do with accelerometer input.
Probably tons of other things I forgot about.
You must be out of your mind if you want to try it on a tablet at this stage. Or just super curious.
You will need a microSD (at least 2G) card that you can dedicate to this.
Instructions:
Get "base" fedora sdcard image: http://nook.handhelds.ru/fedora/fedora-sdcard-v0.1.img.gz
Get base Fedora 13 beta3 rootfs: http://lists.fedoraproject.org/pipermail/arm/2011-May/001271.html
Get kernel modules for the kernel: http://nook.handhelds.ru/fedora/modules-2.6.32.9-fc13.tar.bz2
Unzip the base sdcard image and write it to your sdcard with dd.
run fdisk on the sdcard and add another partition covering the rest of sdcard in addition to the one already there. Write changes
do mkfs.ext4 /dev/yoursdcard2 (basically format the second partition you just created as ext4)
mount the /dev/yoursdcard2 somewhere as root (/mnt/somewhere later on)
untar the F13-beta3 rootfs to the /mnt/somewhere
Now you are almost ready, just need to fill some configs.
Edit /mnt/somewhere/etc/sysconfig/network-scripts/ifcfg-usb0 and add this there:
Code:
DEVICE=usb0
#BOOTPROTO=dhcp
BROADCAST=192.168.2.255
IPADDR=192.168.2.2
NETMASK=192.168.2.0
NETWORK=192.168.2.0
GATEWAY=192.168.2.1
ONBOOT=yes
Edit /mnt/somewhere/etc/resolv.conf and change "nameserver" there to 8.8.8.8
Add multitouch config in /mnt/somewhere/etc/X11/xorg.conf.d/touchscreen.conf
Code:
Section "InputClass"
Identifier "touchscreen"
MatchIsTouchScreen "on"
MatchProduct "cyttsp-i2c"
Driver "mtev"
Option "SendCoreEvents" "On"
Option "SwapAxes" "true"
Option "InvertY" "true"
EndSection
cd /mnt/somewhere/lib/modules and untar the modules file there.
umount /mnt/somewhere
Ok, now you are ready to do some stuff on the nook.
Insert your sdcard into the nook and boot it. You'll see Fedora text console. The installation is pretty basic.
Plug the nook into your Linux PC usb port. It should see a new network device
On the linux PC as root execute: ifconfig usb0 192.168.2.1 netmask 255.255.255.0
Enable ip forwarding on your host if you have it disabled (typically in /etc/sysctl.conf, the setting is ...ip_forward, make it =1. Run sysctl -p for the changes to make effect.
Enable internet access to internet for your nook via IP masquerading: iptables -t nat -I POSTROUTING -s 192.168.2.2 -j MASQUERADE ; iptables -I FORWARD -s 192.168.2.2 -j ACCEPT ; iptables -I FORWARD -d 192.168.2.2 -j ACCEPT
Now use ssh to login to your Nook: slogin [email protected] the root password is "fedoraarm" (no quotes)
Once logged into the nook, time to install some packages.
rpm -Uvh http://hongkong.proximity.on.ca/yum/base/12/arm/fake-kernel-provides-1.0.0-0.fc12.armv5tel.rpm
update the system: yum update ; yum install tar openssh-clients
Install the gnome environment: yum groupinstall 'GNOME Desktop Environment' --skip-broken
The gnome installation will take a while and will download everything from the net.
Now install the multitouch Xorg driver, get it at http://nook.handhelds.ru./fedora/xf86-input-mtev-0.1.12-1.armv5tel.rpm
Ok. Now you are ready to go. Run "startx &" and the Gnome will start on the nook. You can play with it a bit, use your finger as the mouse pointer.
You can add startx & at the end of e.g. /etc/init.d/rc.local to make it start on system startup or you can do it in a more pretty way.
There are some virtual keyboards in the repo. I tried gko and it sucks.
the "onboard" seems to be the one working best for me. "xvkbd" is a bit hard to operate.
The best one of them all is fvkbd, but it needs libfakekey missing from the repo, grab it at http://arm.koji.fedoraproject.org/p...3/armv5tel/libfakekey-0.1-6.fc13.armv5tel.rpm
Enjoy.
Fedora-arm homepage: http://fedoraproject.org/wiki/Architectures/ARM
I intend to include all the missing pieces into the fedora repo so that you don't need to install all those extra things. Also eventually I plan to add more hardware support and then hopefully migrate to a much newer kernel.
Ha, cool. Glad to see that not everyone thinks that only Ubootoo should be thrown on devices. I'll give this a twiddle for fun.
13 had Moblin, I wonder if that's any better for touch input..
Now i don't feel near as silly for working on my gentoo install for the nook!
Nice, I am still waiting on OpenSuSe
Why not try using Gnome 3? I just poked around in Fedora 15 today and saw the new UI, and I loved it. Bigger buttons, launcher dock, etc. Give it a look!
pts69666 said:
Why not try using Gnome 3? I just poked around in Fedora 15 today and saw the new UI, and I loved it. Bigger buttons, launcher dock, etc. Give it a look!
Click to expand...
Click to collapse
Fedora15 is not available for arm arch yet. But there is some work in that direction. So sure, once it's available I'd give it a try.
Great stuff here. I knows its early development, but fun none the less to see what our nooks can do.
And thanks verygreen for all your developments lately
Sent from my NookColor using Tapatalk
verygreen said:
Fedora15 is not available for arm arch yet. But there is some work in that direction. So sure, once it's available I'd give it a try.
Click to expand...
Click to collapse
in fedora 13,
Code:
su
yum install gnome-shell
...
============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Installing:
gnome-shell i686 2.28.0-3.fc12 fedora 301 k
Installing for dependencies:
gjs i686 0.4-1.fc12 fedora 126 k
mutter i686 2.28.0-2.fc12 fedora 1.2 M
Transaction Summary
============================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
...
gnome-shell -replace
I haven't tested it myself; however, it is something I found. My linux hard drive had hard drive failure. So, I am on windows in the meantime. Will report back later after testing it myself.
pts69666 said:
in fedora 13,
Code:
su
yum install gnome-shell
...
============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Installing:
gnome-shell i686 2.28.0-3.fc12 fedora 301 k
Installing for dependencies:
gjs i686 0.4-1.fc12 fedora 126 k
mutter i686 2.28.0-2.fc12 fedora 1.2 M
Transaction Summary
============================================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
...
gnome-shell -replace
I haven't tested it myself; however, it is something I found. My linux hard drive had hard drive failure. So, I am on windows in the meantime. Will report back later after testing it myself.
Click to expand...
Click to collapse
No "gnome-shell" package in Fedora-arm repo at this moment,
Quite excited to see some work in bringing Fedora to the Nook Color! I <3 Fedora.
I just wish ARM had the same support as the full Fedora. Or that they would skip releases for Fedora ARM and go yearly... aka, skip to 15 next, then 17.
Could this be used to help port Ubuntu Touch?
moocow1452 said:
Could this be used to help port Ubuntu Touch?
Click to expand...
Click to collapse
No, Ubuntu Touch is based on CM and has very little in common with a full Linux port.

[ROM]Samsung S3 Intl Sailfishos

Hi there!
Following the hadk pdf from jolla porting guide.
I've got the sailfishos working on terminal android running. Booting on top attempting since monday tonight.
I'll explain more and I'll give more shots on working.
My issue now is to build the boot, recovery image to flash and boot it. The jolla sailfishos as a GUI operating system on Galaxy S3 I9300 model.
FIY : filename = sfa-i9300-ea-1.0.8.19-my1.tar.bz2
Instructions for chroot co,pilation on ubuntu amd64 x86_64 bit:
Code:
sudo mkdir -p /srv/mer/
mkdir -p $HOME/mer/
nano .bashrc
export $MER_ROOT=/srv/mer/
export $MER_ROOT=$HOME/mer/
ctrl +x to save and y
but type sudo apt-get install -y curl
for do the downloading file.
next do the following commands on terminal:
export $MER_ROOT=/srv/mer/
cd $HOME; curl -k -O https://img.merproject.org/images/mer-sdk/mer-i486-latest-sdk-rolling-chroot-armv7hl-sb2.tar.bz2 ;
sudo mkdir -p $MER_ROOT/sdks/sdk ;
cd $MER_ROOT/sdks/sdk ;
sudo tar --numeric-owner -p -xjf $HOME/mer-i486-latest-sdk-rolling-chroot-armv7hl-sb2.tar.bz2 ;
echo "export MER_ROOT=$MER_ROOT" >> ~/.bashrc
echo 'alias sdk=$MER_ROOT/sdks/sdk/mer-sdk-chroot' >> ~/.bashrc ; exec bash ;
echo 'PS1="MerSDK $PS1"' >> ~/.mersdk.profile ;
sdk
Now, do the following instructions:
$HOST>
nano $HOME/.hadk.env
export MER_ROOT="[/home/$user]"
export ANDROID_ROOT="$MER_ROOT/android/droid"
export VENDOR="[samsung]"
export DEVICE="[i9300]"
ctrl +x and y for save it.
nano $HOME/.mersdkubu.profile
function hadk() { source $HOME/.hadk.env${1:+.$1}; echo "Env setup for $DEVICE"; }
export PS1="HABUILD_SDK [\${DEVICE}] $PS1"
hadk
save it again
nano $HOME/.mersdk.profile
function hadk() { source $HOME/.hadk.env${1:+.$1}; echo "Env setup for $DEVICE"; }
hadk
now save this file.
Now in ctrl + alt + x, it will show a terminal:
type this:
sdk
type your password
hadk
TARBALL=ubuntu-quantal-android-rootfs.tar.bz2
curl -O http://img.merproject.org/images/mer-hybris/ubu/$TARBALL
UBUNTU_CHROOT=/parentroot/$MER_ROOT/sdks/ubuntu
sudo mkdir -p $UBUNTU_CHROOT
sudo tar --numeric-owner -xvjf $TARBALL -C $UBUNTU_CHROOT
hadk
ubu-chroot -r /parentroot/$MER_ROOT/sdks/ubuntu
exit
git config --global user.name "Your Name"
git config --global user.email "Your email"
back again for
hadk
cd $HOME
mkdir -p $HOME/mer/android/droid
repo init -u git://github.com/mer-hybris/android.git -b hybris-10.1
repo sync
after this, you will have HABUILD_SDK
DEVICE=i9300
export $DEVICE
source build/envsetup.sh
breakfast $DEVICE
now type
make hybris-hal
But now as a ota file for flashing on i9300, in this last 2 days in my laptop core2Duo Extreme I'm facing overheating.
So, everyone can test it.
Code:
A little change on mount fixups.
Go to the directory hybris/hybris-boot
nano mount-fixups on i9305| encore)
put the "i9305" | "encore" | "i9300")
Script for booting sailfishingos on an android terminal. This script is to mount the binds folders and for fixing for preventing the /dev/null issue when we all boot the chroot sailfishos.
name of the script : sailfishos.sh - made it on the /extsdCard/ folder.
1) nano /extSdCard/sailfishos.sh and copy the following code
2) ctrl +x to save it
3) bash sailfishos.sh
Code:
su
mount -o bind /dev /data/.stowaways/sailfishos/dev
mount -o bind /proc /data/.stowaways/sailfishos/proc
mount -o bind /sys/ /data/.stowaways/sailfishos/sys
chroot /data/.stowaways/sailfishos/ /bin/su -
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Code:
Procedures:
1) get cm 10.1 flash it.
2) recovery mode to flash it.
3) download my sailfish i9300 tar.bz2 from d-h.st
4) Copy it for your /extSdCard
Code:
Procedures inside adb:
1) sudo adb kill-server
2) sudo adb start-server
3) adb devices
4) adb shell
5) su
6) cd /extSdCard/
8) mkdir -p /data/.stowaways/sailfishos
8) tar --numeric-owner -xvf filename -C /data/.stowaways/sailfishos
9) mount -o bind /dev /data/.stowaways/sailfishos/dev
10) mount -o bind /proc /data/.stowaways/sailfishos/proc
11) mount -o bind /sys /data/.stowaways/sailfishos/sys
finally:
chroot /data/.stawaways/sailfishos/ /bin/su-
you'll see sailfish os version something 15
try this on it:
cd /
ls
[LINK] http://d-h.st/gX5 [/LINK]
See folders on it.
PS: I'll give more shots also more instructions very soon. Thanx.
Another PS: I'll give more news about Jolla sailfish os very soon.
But I need to tell this, I've got i9300 defconfig kernel for Jolla sailfishos very similar to defconfig i9305 kernel and I got it compiled with very success on hadk Ubuntu chroot on mine Ubuntu 14.04 LTS version.
astronfestmon said:
Hi there!
Following the hadk pdf from jolla porting guide.
I've got the sailfishos working on terminal android running. Booting on top attemptinh since yesterday tonight.
Code:
Procedures:
1) get cm 10.1 flash it.
2) recovery mode to flash it.
3) download my sailfish i9300 tar.bz2 from d-h.st
4) Copy it for your /extSdCard
Code:
Procedures inside adb:
1) sudo adb kill-server
2) sudo adb start-server
3) adb devices
4) adb shell
5) su
6) cd /extSdCard/
8) mkdir -p /data/.stowaways/sailfishos
8) tar --numeric-owner -xvf filename -C /data/.stowaways/sailfishos
9) mount -o bind /dev /data/.stowaways/sailfishos/dev
10) mount -o bind /proc /data/.stowaways/sailfishos/proc
11) mount -o bind /sys /data/.stowaways/sailfishos/sys
finally:
chroot /data/.stawaways/sailfishos/ /bin/su-
you'll see sailfish os version something 15
try this on it:
cd /
ls
[LINK] http://d-h.st/gX5 [/LINK]
sees folders on it.
Click to expand...
Click to collapse
Screenshots?
Sent from my SM-G900F using XDA Free mobile app
Fantastic... I'll give a try. Plz provide some more details, screenshots & new features from your currently running sailfish os. Thanx for sharing
i fed with adb commands & not able to flash
Uhm ... I gonna wait for this ...
Sent from my SM-G900F using XDA Free mobile app
how to install ?
When I had the rom for flashing in recovery. I'll explain it.
For now, it can be installed through the adb, to work it inside the android terminal.
astronfestmon said:
When I had the rom for flashing in recovery. I'll explain it.
For now, it can be installed through the adb, to work it inside the android terminal.
Click to expand...
Click to collapse
any update on this?
I followed the above procedure and I can see the Sailfish version and the files list from adb. What next?
EDIT: Just saw your PS in OP
In the end of the week probably I'll release the boot kernel working on.
astronfestmon said:
In the end of the week probably I'll release the boot kernel working on.
Click to expand...
Click to collapse
I've successfully built boot and recovery images, packed the zip for flashing in recovery but there is a problem with the boot.img.
I'm trying to find out why it doesn't boot (the phone stays at the galaxy logo)
The actual guide for porting misses some stuff and there are errors here and there. Besides, there is a problem with the trusty chroot, quantal is working.
Aye. I've notice that.
I'm fixing some issues in quantal chroot.
E.g. inside the sources.list I add the 12.04 lts mirrors. Made by a website with the sources.list for 12.04 lts mirrors.
Yeah. I've done the boot kernel image and it made the same as you.
But with meld diff I've compared the i9305 defconfig with mine i9300 defconfig.
I'm going to test it with the changes meld diff made with a comparison with i9305 defconfig.
Now I made a make systemtarball and I'll try a make bootimage or a make factory_image for it.
astronfestmon said:
Aye. I've notice that.
I'm fixing some issues in quantal chroot.
E.g. inside the sources.list I add the 12.04 lts mirrors. Made by a website with the sources.list for 12.04 lts mirrors.
Yeah. I've done the boot kernel image and it made the same as you.
But with meld diff I've compared the i9305 defconfig with mine i9300 defconfig.
I'm going to test it with the changes meld diff made with a comparison with i9305 defconfig.
Now I made a make systemtarball and I'll try a make bootimage or a make factory_image for it.
Click to expand...
Click to collapse
It would be great if you could make it to boot.
I will try to compile the kernel with CONFIG_CMDLINE="console=tty0" . I'm hoping that would direct kernel panic message to the screen so we could idenfity what the problem is with booting hybris-boot.img
So... Any development?
Sent from my Nexus 5 using XDA Premium 4 mobile app
Hi! All of you! I'm doing efforts between these days. In these vacation days. I'll report more when I got home back.
astronfestmon said:
Hi! All of you! I'm doing efforts between these days. In these vacation days. I'll report more when I got home back.
Click to expand...
Click to collapse
Hi, I've also been trying to port sailfish os to i9300. I've been successful in creating an image that works, i.e. got it to boot into sailfish but there are some issues that I haven't been able to fix, like for instances, the wlan is detected but fails to establish a connection with any network, GSM is also not working. A full list with details can be found here https://wiki.merproject.org/wiki/Adaptations/libhybris
Maybe we should try to work together to get a fully functional sailfish os image
Cheers
---------- Post added 19th August 2014 at 12:01 AM ---------- Previous post was 18th August 2014 at 11:12 PM ----------
redrum781 said:
I've successfully built boot and recovery images, packed the zip for flashing in recovery but there is a problem with the boot.img.
I'm trying to find out why it doesn't boot (the phone stays at the galaxy logo)
The actual guide for porting misses some stuff and there are errors here and there. Besides, there is a problem with the trusty chroot, quantal is working.
Click to expand...
Click to collapse
The phone may be stuck at the galaxy logo, but there's a way to debug to find out what's wrong, follow this steps (only tested on linux):
1) connect your phone with the computer, the initramfs in boot.img will create a network interface (phone's ip is: 192.168.2.15) and enable a telnet deamon (default port: 23) and also a udhcp server, so luckily the computer will ask for an ip that everything will be set up automatically. If not try configuring static ip (192.168.2.20 and adding a route to 192.168.2.0)
2) telnet 192.168.2.15
3) when you're in the telnet session, you can check /diagnostic.log (i think) it will show why the boot failed. It is possible to execute commands into the init, by writing to (/init-ctl/stdin)
When logged into the telnet session it will dump a bit of information, be sure to read it as is useful .
Also check HADK 9.2 Operating Blind on an Existing Device
PS: the files may contain mistakes as I wrote this post without checking for the correct names (I don't have sailfish flashed at the moment).
Also consider visiting the IRC channel (#sailfishos-porters), if you're not doing it already
Hope it helps
rusty88 said:
Hi, I've also been trying to port sailfish os to i9300. I've been successful in creating an image that works, i.e. got it to boot into sailfish but there are some issues that I haven't been able to fix, like for instances, the wlan is detected but fails to establish a connection with any network, GSM is also not working. A full list with details can be found here https://wiki.merproject.org/wiki/Adaptations/libhybris
Maybe we should try to work together to get a fully functional sailfish os image
Cheers
---------- Post added 19th August 2014 at 12:01 AM ---------- Previous post was 18th August 2014 at 11:12 PM ----------
The phone may be stuck at the galaxy logo, but there's a way to debug to find out what's wrong, follow this steps (only tested on linux):
1) connect your phone with the computer, the initramfs in boot.img will create a network interface (phone's ip is: 192.168.2.15) and enable a telnet deamon (default port: 23) and also a udhcp server, so luckily the computer will ask for an ip that everything will be set up automatically. If not try configuring static ip (192.168.2.20 and adding a route to 192.168.2.0)
2) telnet 192.168.2.15
3) when you're in the telnet session, you can check /diagnostic.log (i think) it will show why the boot failed. It is possible to execute commands into the init, by writing to (/init-ctl/stdin)
When logged into the telnet session it will dump a bit of information, be sure to read it as is useful .
Also check HADK 9.2 Operating Blind on an Existing Device
PS: the files may contain mistakes as I wrote this post without checking for the correct names (I don't have sailfish flashed at the moment).
Also consider visiting the IRC channel (#sailfishos-porters), if you're not doing it already
Hope it helps
Click to expand...
Click to collapse
Will this os improve our device? Whats the pro and the con for a change (if it works finaly)?[emoji4]
MaxAndroided said:
Will this os improve our device? Whats the pro and the con for a change (if it works finaly)?[emoji4]
Click to expand...
Click to collapse
well maxAndroided all I can say at the moment is that the OS looks very promising... the UI is very smooth. Is another approach to mobile interaction based on gestures. I'm really loving it, sadly I can used it for day to day activities yet.
The jolla phone at the moment is able to run android apps and hopefully soon that will be available for any image built for android phones. So what that means is that if you don't find a suitable native app for sailfish os, you can always run your favorite android app in sailfish os
Anyone that wants to help bring sailfish os to i9300 is welcome to help, so if you have any idea on how to debug and fix the issues let me know
PS: if any one would like to try it, take a look at my previous post here
rusty88 said:
well maxAndroided all I can say at the moment is that the OS looks very promising... the UI is very smooth. Is another approach to mobile interaction based on gestures. I'm really loving it, sadly I can used it for day to day activities yet.
The jolla phone at the moment is able to run android apps and hopefully soon that will be available for any image built for android phones. So what that means is that if you don't find a suitable native app for sailfish os, you can always run your favorite android app in sailfish os
Anyone that wants to help bring sailfish os to i9300 is welcome to help, so if you have any idea on how to debug and fix the issues let me know
PS: if any one would like to try it, take a look at my previous post here
Click to expand...
Click to collapse
@rusty88, I am no developer/expert, but is there any way we can try and use I9300 native libraries or binaries to make GSM (or some other functionality for that matter) work? maybe RIL libs/binaries for GSM?
msri3here said:
@rusty88, I am no developer/expert, but is there any way we can try and use I9300 native libraries or binaries to make GSM (or some other functionality for that matter) work? maybe RIL libs/binaries for GSM?
Click to expand...
Click to collapse
yes @msri3here technically that is what i'm doing, its using RIL lib based on cm10.1.3 that was working fine before I flash sailfish, but on sailfish the log that RIL daemon dumps is really a mess and haven't figure out why is failing. One thing that I've notice is that RILD (one of its child process) creates the socket at /dev/socket/rild but it's killed afterwards, the sockets disappear and the process restarts all over again
Stracing RILD is not helping either as it seems that everything is Ok.
I'm trying to buy a new smartphone for day to day use so I can dedicate more time to debug on my i9300.
rusty88 said:
well maxAndroided all I can say at the moment is that the OS looks very promising... the UI is very smooth. Is another approach to mobile interaction based on gestures. I'm really loving it, sadly I can used it for day to day activities yet.
The jolla phone at the moment is able to run android apps and hopefully soon that will be available for any image built for android phones. So what that means is that if you don't find a suitable native app for sailfish os, you can always run your favorite android app in sailfish os
Anyone that wants to help bring sailfish os to i9300 is welcome to help, so if you have any idea on how to debug and fix the issues let me know
PS: if any one would like to try it, take a look at my previous post here
Click to expand...
Click to collapse
tried your rom but stuck on "samsung galaxy s 3 gt-i9300" screen nothing is happening plus if i touch the screen i get a response from the capacitive buttons but thats all

[Linux] Porting native Linux to Galaxy Note9

This thread is about starting native Linux on Samsung Galaxy Note9. This isn't my first attempt to do such thing. The history looks like Galaxy Spica -> Galaxy J1 (2016) -> Galaxy Note9. So I know what I'm doing
Later I'll post instructions how to install and run it.
Note9 isn't my main device, so I won't work on dualboot. If some wants to make it, feel free to build dualboot (kexec) recovery and post it here.
Source code.
Kernel: https://github.com/LONELY-WOLF/crownlte-linux-os
First success
So, here is a first result.
With minor modifications to DECON (framebuffer) my Note9 is able to run Arch Linux form SD card.
So far it has no serial or USB console. I can't find a way to make UART JIG for Type-C Samsungs. USB gadgets are hardcoded and can't be easy changed to CDC ACM. This is not good and makes development harder.
Arch Linux says it started GUI but I don't know what happened to Xorg. It can be on back buffer or on another display (since Note9 has it via Type-C).
This would be awesome for me during pen testing?!
Def following!
Could install it on dualboot?
giorgior.r said:
Could install it on dualboot?
Click to expand...
Click to collapse
Yes, it's possible. As for now kernel is inside phone memory and root FS is on SD card.
There are two ways to install it alongside Android:
Flash Linux kernel as recovery. So when you try to enter recovery it'll boot into Linux. You lose recovery in this case.
Install special dualboot/kexec recovery and start Linux from recovery menu. (If someone will make such recovery for Note9)
All Linux files (except kernel) are on SD card. SD has following partition scheme:
Storage. That's what your Android sees as SD card. FAT32 or exFAT
Apps2SD. Is someone still using it? However this partition can be 1MB in size.
Linux rootfs. That's where Linux "ROM" lives.
So SD is also ready for daily use.
nice, have similar thing based on exynos-linux-stable and debian stretch wifi work but sound and usb not yet for me. how you enabled boot console? also need to swap red and blue channel because they are flipped on 24/32 bit colours
Sisah said:
nice, have similar thing based on exynos-linux-stable and debian stretch wifi work but sound and usb not yet for me. how you enabled boot console? also need to swap red and blue channel because they are flipped on 24/32 bit colours
Click to expand...
Click to collapse
For fbcon you need to patch decon driver. Take a look at my commits on GitHub.
Yes, RGB<->BGR is a common issue. I have it on J120F too. This hack work for J1. But it would be nice to find a source of the problem. I believe decon reports wrong color order.
WARNING! I had to disable fbcon on J1 because it messed up with Xorg.
Still no luck with USB. I try to configure it with configfs, but got error
Code:
Config c/1 of g1 needs at least one function
Looks like Samsung hardcoded something inside USB drivers.
Found out that USB configfs is heavily modified. That's the reason why Linux can't configure USB gadgets properly. Bring back compatibility seems to be a hard task.
ho ho ho... so long time im not play dualboot
sorry i have diferent question, i see on youtube, normal windows 10 work on lumia 950 and 950xl, what its that ?
Ce Doresti said:
ho ho ho... so long time im not play dualboot
sorry i have diferent question, i see on youtube, normal windows 10 work on lumia 950 and 950xl, what its that ?
Click to expand...
Click to collapse
Since I'm a Windows Phone hacker, I can answer your question
That project is very similar to what I do here. Starting from Windows Phone 8, phone OS and desktop one have one (NT) kernel. Just like Android and desktop Linux do. Windows you see on NL950 on YouTube is "Windows for ARM". It looks like desktop but it can't run normal Windows EXEs because of different processor architecture. Maybe it can run desktop .NET applications (I've made proof-of-concept EXE that worked on both Windows Mobile 5.0 and Windows XP) but I'm not sure.
Linux is a better way to get desktop OS on mobile device. Open source nature of most Linux software makes it possible to use almost any program on any processor architecture. Take a look at single board computers (like Raspberry Pi) if you want to see what Linux can do on ARM architecture.
I think win 10 for arm have integrated x86 emulator, so it probably launch nearly anything.
If i can have one more question. How you refreshing screen? Refresh rate is set to 0 and my every attempt to configure screen with fbset result in black screen and hard reset, so i must use infinite loop that send "1" to /sys/class/graphics/fb0/rotate to refresh my screen
-W_O_L_F- said:
Since I'm a Windows Phone hacker, I can answer your question
That project is very similar to what I do here. Starting from Windows Phone 8, phone OS and desktop one have one (NT) kernel. Just like Android and desktop Linux do. Windows you see on NL950 on YouTube is "Windows for ARM". It looks like desktop but it can't run normal Windows EXEs because of different processor architecture. Maybe it can run desktop .NET applications (I've made proof-of-concept EXE that worked on both Windows Mobile 5.0 and Windows XP) but I'm not sure.
Linux is a better way to get desktop OS on mobile device. Open source nature of most Linux software makes it possible to use almost any program on any processor architecture. Take a look at single board computers (like Raspberry Pi) if you want to see what Linux can do on ARM architecture.
Click to expand...
Click to collapse
thank you !
I can see the potential of this project if things go according to your vision.. I will for sure donate you for your amazing effort
Interesting, is it more for the challenge itself or what's your goal?
Linux on Dex works great for me, it's missing a gui if you don't connect it to a display but you could probably trick it to believe that the phone screen is an external display.
Sisah said:
I think win 10 for arm have integrated x86 emulator, so it probably launch nearly anything.
If i can have one more question. How you refreshing screen? Refresh rate is set to 0 and my every attempt to configure screen with fbset result in black screen and hard reset, so i must use infinite loop that send "1" to /sys/class/graphics/fb0/rotate to refresh my screen
Click to expand...
Click to collapse
Since we use the same kernel can you share your work on GitHub too? Also I need all your current work on OS. What image you use? What modifications you made? It's a good idea for me to migrate to the same distro. This can speed up our work.
-W_O_L_F- said:
Since we use the same kernel can you share your work on GitHub too? Also I need all your current work on OS. What image you use? What modifications you made? It's a good idea for me to migrate to the same distro. This can speed up our work.
Click to expand...
Click to collapse
Here is my config files for debian.
https://www.mediafire.com/file/ccziy42yj2bn28x/LINUX.zip
(Include precompiled mtev driver from meefik https://github.com/meefik/xorg-input-mtev
Also it set wacom driver for spen to work
)
kernel .config
https://www.mediafire.com/file/czrct62638xpkhz/.config
And debian install cdrom
https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/
installation was little tricky, need to install linuxdeploy compile kernel with atleast isofs, systemv-ipc, vt console, kernel automounter-v4, fanotify and raid-dm support and put it to recovery.img, then dd it to BOOT partition.
Now download debian-installer.iso, extract ramdisk.gz from him and reboot to modified recovery.
Here mount system, go to terminal, type linuxdeploy shell.
Now we must unpack ramdisk.gz from installer with abootimg or mkbootimg, mount debian-installer.iso to unpacked-ramdisk/cdrom and then we can chroot to installer ramdisk with chroot /unpacked-ramdisk /bin/ash
After that just type
./init
debian-installer-startup
debian-installer
Use sdcard as root partition and install.
After installing base system it probably fail to setup apt, so we must open terminal in setup program then
mount --bind /cdrom /target/media/cdrom (need to create that dir first)
then
chroot /target /bin/bash
apt-cdrom add
apt-get update
Now you can run tasksel and install desktop (kde xfce and gnome work but need lightdm for virtual keyboard on login)
(Here is nice place to copy those config files i posted and run install.sh, but also be sure to install lightdm and onboard keyboard, its not in my pack)
after that type exit few times until you get back to installer where you can finish installation.
Then need to compile kernel make initrd and create boot.img (can be done in linuxdeploy on android)
Also copy /vendor from phone to installed system then wifi start working and we can install from netinst-cd with little less trouble, or install to .img maybe even folder from internal_sdcard, its much faster than booting from memory card
Here is my fresh install of debian stretch and kde, only modification is in lightdm-gtk-greeter.conf, 40-libinput.conf, xorg.conf (not needed much), /usr/share/initramfs-tools/scripts/local (hardcoded root partition and loop .img for boot) and added framebuffer_refresh systemd service. To install just unpack .zip to root of /data (sda25) and flash linux-boot.img to boot partition.
Sound, USB, and 24bit colors are still broken, but maybe still better than linux on dex with some hardware graphics acceleration like panfrost driver it may be better than my pc
Root - 16GB .img after unpack
https://mega.nz/#!zeAA3KzY!vK5g2HtI0H3CD654wx40w14VstT6ktLX6tzNsUMWNoU
Boot.img
https://mega.nz/#!LCQB0QJK!YKTflwPsAJosaxr0Bqlu_9XtfgCFxkgNCmrbyNNaBvM
Login as sisah with password 123456, root password 123456, kde wallet password is set to 123456 too. Made on n960f dual sim.
Sisah said:
Here is my fresh install of debian stretch and kde, only modification is in lightdm-gtk-greeter.conf, 40-libinput.conf, xorg.conf (not needed much), /usr/share/initramfs-tools/scripts/local (hardcoded root partition and loop .img for boot) and added framebuffer_refresh systemd service. To install just unpack .zip to root of /data (sda25) and flash linux-boot.img to boot partition.
Sound, USB, and 24bit colors are still broken, but maybe still better than linux on dex with some hardware graphics acceleration like panfrost driver it may be better than my pc
Root - 16GB .img after unpack
https://mega.nz/#!zeAA3KzY!vK5g2HtI0H3CD654wx40w14VstT6ktLX6tzNsUMWNoU
Boot.img
https://mega.nz/#!LCQB0QJK!YKTflwPsAJosaxr0Bqlu_9XtfgCFxkgNCmrbyNNaBvM
Login as sisah with password 123456, root password 123456, kde wallet password is set to 123456 too. Made on n960f dual sim.
Click to expand...
Click to collapse
Good work
@Sisah
I've managed to get USB to work. Here, take the code:
Code:
#!/bin/bash
mkdir -p /sys/kernel/config/usb_gadget/g1
cd /sys/kernel/config/usb_gadget/g1
echo 0xabcd > idVendor
echo 0x1234 > idProduct
mkdir -p strings/0x409
echo SM-960F > strings/0x409/serialnumber
echo Samsung > strings/0x409/manufacturer
echo Note9 > strings/0x409/product
# Config 1
mkdir -p configs/c.1
echo 120 > configs/c.1/MaxPower
mkdir -p configs/c.1/strings/0x409
echo "ACM" > configs/c.1/strings/0x409/configuration
mkdir functions/acm.GS0
ln -s functions/acm.GS0 configs/c.1
# Config 2
#mkdir -p configs/c.2
#echo 120 > configs/c.2/MaxPower
#mkdir -p configs/c.2/strings/0x409
#echo "RNDIS" > configs/c.2/strings/0x409/configuration
mkdir functions/rndis.usb0 # use default parameters
ln -s functions/rndis.usb0 configs/c.1
echo "acm,rndis" > /sys/class/android_usb/android0/functions
echo 10c00000.dwc3 > UDC
echo 1 > /sys/class/android_usb/android0/enable
# to unbind it: echo "" UDC; sleep 1; rm -rf /sys/kernel/config/usb_gadget/g1
/sbin/agetty -w -L 115200 ttyGS0 linux
exit 0
-W_O_L_F- said:
@Sisah
I've managed to get USB to work. Here, take the code:
Code:
#!/bin/bash
mkdir -p /sys/kernel/config/usb_gadget/g1
cd /sys/kernel/config/usb_gadget/g1
echo 0xabcd > idVendor
echo 0x1234 > idProduct
mkdir -p strings/0x409
echo SM-960F > strings/0x409/serialnumber
echo Samsung > strings/0x409/manufacturer
echo Note9 > strings/0x409/product
# Config 1
mkdir -p configs/c.1
echo 120 > configs/c.1/MaxPower
mkdir -p configs/c.1/strings/0x409
echo "ACM" > configs/c.1/strings/0x409/configuration
mkdir functions/acm.GS0
ln -s functions/acm.GS0 configs/c.1
# Config 2
#mkdir -p configs/c.2
#echo 120 > configs/c.2/MaxPower
#mkdir -p configs/c.2/strings/0x409
#echo "RNDIS" > configs/c.2/strings/0x409/configuration
mkdir functions/rndis.usb0 # use default parameters
ln -s functions/rndis.usb0 configs/c.1
echo "acm,rndis" > /sys/class/android_usb/android0/functions
echo 10c00000.dwc3 > UDC
echo 1 > /sys/class/android_usb/android0/enable
# to unbind it: echo "" UDC; sleep 1; rm -rf /sys/kernel/config/usb_gadget/g1
/sbin/agetty -w -L 115200 ttyGS0 linux
exit 0
Click to expand...
Click to collapse
Nice it enable usb, but still getting errors when i plug otg, and phone reboot if i connect it to pc, its strenge because i installed linux on more phones and otg alwais worked without any configuration.

Noob's guide to building AOSP from scratch.

So, I have been an Android developer since 2009 (HTC dream), and have been actively "consuming" XDA, custom ROMs and other tweaks. Surprisingly, never tried to build my own ROM from scratch.
Recently, something made me want to build the ROM, so that I can make some changes to the way SystemUI behaves (specifically putting some app shortcuts to my Pixel phone(s), like camera etc. which are now removed in Android 10). So, after a week's struggle I got to where I wanted to reach. (90% time spent in getting the first successful flash. 1% feature development. 9% feature polishing).
Here is my guide to all beginners. (It is pretty simple, if you know the steps).
System setup
I have always been a Windows user (and I love my Surface(s)), but you cannot build Android on Windows machines (as clearly called out in source.android.com). I still tried to install Ubuntu shell from Microsoft store, and build (Spoiler alert: Does not work).
Next is Mac. Android can be built in Mac, I got it build in Mac. But, it is not easy. Especially with setting up the environment, having the right version of MacOS (doesn't work on Catalina yet). And also, challenges with filesystem format (Android building only works on case sensitive file system, so you have to create such a partition). Android building needs at least 160GB of disk space (so unless you are super rich and have 512GB+ Macbook with top specs, it is going to be hard).
My choice machine hence became, my two desktops (i7 4 core, 16GB, 1TB SSD, Ubuntu 18.04 and Xeon 12 core, 32GB, 512GB disk, with Ubuntu 18.04).
There is a reason why I specifically talk about these two machines. To build Android fast (cold clean build in less than 4 hours), you need
Fast processors, and more cores
Lots of RAM
A SSD disk (with 200GB space)
If you are missing any of the above 3, you will build times will go up. I have found for hot build, both machines did a decent job (2-3 mins if you are working on single module), but SSD was more important than cores, and RAM.
Setting up your Ubuntu machine. {ETA 30 mins}
Android has official (and clearly laid out) steps here.
But for Ubuntu these are pretty much the steps.
Code:
$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
And the guide doesn't mention this, but you need Python2.7, so get this.
Code:
# refreshing the repositories
sudo apt update
# its wise to keep the system up to date!
# you can skip the following line if you not
# want to update all your software
sudo apt upgrade
# installing python 2.7 and pip for it
sudo apt install python2.7 python-pip
# installing python-pip for 3.6
sudo apt install python3-pip
Also install adb.
Code:
sudo apt install android-tools-adb android-tools-fastboot
If you have come till here, you're ready to build for different devices.
Getting the code ready to build {ETA 5 hours - 1 day}
Most of this is also mentioned in the AOSP official website, but some stuff are tricky, I will try to highlight those steps here.
We are going to build the ROM for Pixel 3 (Android 10 - QP1A.191105.003 )
Download and explode the code {ETA 2-3 hours, depending on internet speed}
Here we are talking about downloading at least 20GB of code (text heavy content) over the internet. Going to be excruciatingly slow.
Also, we will be downloading code for specific device model, so if you want to do it for a newer model, you will have to go through the grind again.
Although, technically it might be possible to have the same folder contain code for multiple devices, it is too risky IMO, something goes wrong, you lose everything.
Recommended folder structure would be
aosp --> device 1
aosp --> device 2
......
aosp --> device n
Click to expand...
Click to collapse
With each folder containing over 150GB of contents (after downloading, building etc), so in practical sense, n could be only 3-4 at max.
Setting up repo.
Repo is a tool that Google uses to checkout and manage the AOSP code in your local machine. Once you download the codebase, you can use the command to resync, update, code base.
Code:
mkdir ~/bin
PATH=~/bin:$PATH
You should persist this folder in your PATH variable all the times.
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
This sets up repo in your machine.
One final step before you actually start the long download, setup your git details.
Code:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Now download the code. Like I previously suggested I would do this.
Code:
mkdir ~/aosp
cd ~/aosp
mkdir pixel3
cd pixel3
Now, let's start getting the code home.
Code:
repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r10 --depth=1
Here we have done a bunch of things.
We have chosen a particular Android build tag to download (branch). You can follow the link to choose which branch you want to checkout, based on your test phone and Android version you want to build.
We have asked to only download the latest version of the branch and not all of the branch (--depth), this considerably reduces our download time.
Now that we have decided what to download, let's download the code with this command.
Code:
repo sync -qc -j4
This command is going to take a while to download over 20GB of code. In the meanwhile, let's see what we did here.
-q Asks the download to be silent (which means it will show just overall progress)
-c Makes sure we are only downloading current branch
-j[x] This the tricky one. Let's talk about this.
With -j we are asking repo to spawn multiple downloads (parallelly), to speed up the process. We will see this flag going forward in other places also. We should keep the value of x to number of cores we have in our machine. To find how many cores you have run
Code:
nproc --all
. Note that I have had situations where I put a very high value for n (higher than my cores as well), and eventually ran my JVM out of RAM to run the command (in parallel). So, the trade off here is to restrict it to the core number.
***Key step: Download radio drivers.***
Most tutorials miss this or mention it very subtly. But, without this step the ROM you flash won't boot to the home screen (you will be in the boot loop).
Go to the driver binaries page, and download the right zip files for the Android build version (android-10.0.0_r10) and device (Pixel 3) you chose earlier in the repo command.
You will be downloading two zip files (one vendor image zip and one radio drivers zip), both zips will have on shell script file each (.sh), just put those two files in your repo folder (~aosp/pixel3) and run the scripts. It will download the required proprietary files (after asking you to accept the terms). Do not miss this step.. I lost 3 days trying to find the reason for my ROM not booting up, this was it.
Let's build our code
Now things are more definitive.
Code:
source build/envsetup.sh
This command basically sets up your environment, adding necessary commands to path etc.
Code:
lunch aosp_blueline-userdebug
You can read more about this command here.
Basically this sets up the right parameters to build for your specific model. The param can derived based on aosp_[device code]-[userdebug | eng | user].
Once you have run the above two commands, you can *finally* build your codebase.
Code:
m droid -j4
m basically makes and builds the whole codebase.
Code:
droid
refers to the defaults target configuration (optional). -jN is to specify parallelism (equal to number of cores you have).
This command could take anywhere between 4-12 hours for the first run. But, if you followed all steps above, you should have a green message in the end saying this
Code:
[COLOR="SeaGreen"]#### build completed successfully (2:03:04 (hh:mm:ss)) ####[/COLOR]
Flashing your phone
Now, you're 50% safe when your build has finished successfully. Now, next 50% depends if you're able to flash it and get the phone booting.
This part most of you should know, so I am keeping it brief.
Enter fastboot
Code:
adb reboot bootloader
Unlock your bootloader
Code:
fastboot flashing unlock
Flash your Build
From the root folder of your repository (~/aosp/pixel3)
Code:
fastboot flashall -w
In a few minutes your device should be booting to the freshing baked ROM that you made.
What next?
You can just repeat
Code:
m droid -j4
to repeat builds
You can also go to a specific module folder and execute
Code:
mm
to only build that module
You can use adb sync to update specific modules without flashing again (this never worked for me, always bricked my device)
Use *fastboot flashall* without [-w] flag to flash over existing ROM without losing user data.
You can clean up the whole builds and rebuild everything from scratch. Run
Code:
make clobber
to clean your build, and use
Code:
m
to build again
You could face adb issues (device not detected) in Ubuntu. I am not going into details of how to fix that
This has been pretty much my journey so far with AOSP. I am comfortable making changes to modules and building them again.
Aw man, thanks for posting this. Never thought building rom itself would take this much effort & resources. Rom devs are serioulsy awesome ppl. :good:
Thx a lot ,I just want to learn it,it is vevy clear and help me a lot
Thanks very much for creating this. I didn't try flashing the result yet, but the build finished without any problems.
thank you very much for your post, I also want to modify little bit in code aosp and test this changes. Could you plaese provide advice about how I can open code (Android studio?), do some changes and test it by emulator?
thanks for the great guide
but following it gapps will not be included in the build, correct?
do you guys know how to include open gapps?
tia!
hi everything worked in this guide in terms of the build. While flashing the device all steps succeed but during boot the pixel is stuck at the google loading screen. Any suggestions. I have been stuck on the screen for > 30 minutes.
rorlig said:
hi everything worked in this guide in terms of the build. While flashing the device all steps succeed but during boot the pixel is stuck at the google loading screen. Any suggestions. I have been stuck on the screen for > 30 minutes.
Click to expand...
Click to collapse
Maybe you did not download appropriate .sh scripts for your device or didn't run them successfully before building the code. These scripts additionally download files and without them you could have these problems which you mentioned.
I built and loaded AOSP Andorid 9 for PIxel 2 using the eng build vs the userdebug and its works however, when I start installing and granting Google services and such it works but i get a lot of crashes. do you have Google working and not crashing all the time?
```
$ adb root
$ adb remount
$ adb shell
$ cd /system/priv-app
$ mkdir GoogleServicesFramework
$ mkdir Phonesky
$ mkdir PrebuiltGmsCorePi
$ cp /sdcard/GoogleServicesFramework.apk GoogleServicesFramework/GoogleServicesFramework.apk
$ cp /sdcard/Phonesky.apk Phonesky/Phonesky.apk
$ cp /sdcard/PrebuiltGmsCorePi.apk PrebuiltGmsCorePi/PrebuiltGmsCorePi.apk
$ chmod 755 GoogleServicesFramework
$ chmod 755 Phonesky
$ chmod 755 PrebuiltGmsCorePi
$ chmod 644 GoogleServicesFramework/GoogleServicesFramework.apk
$ chmod 644 Phonesky/Phonesky.apk
$ chmod 644 PrebuiltGmsCorePi/PrebuiltGmsCorePi.apk
:: Need to add permissions for the three apps above
::If a device fails to boot, you need to logcat and grep for " - not in privapp-permissions whitelist" and add any missing items in the xml
$ adb push C:\Users\username\Desktop\PIxel2_9.0.0_eng_build\privapp-permissions-platform.xml /etc/permissions/privapp-permissions-platform.xml
```
Hello, I'm interested on the Mac os part. I've been building pixel experience on Ubuntu form am external HDD but because it's a 2011 iMac I have USB 2.0 and r/w speeds are really low slowering the whole process. On the internal drive I have a 500gb SSD that I'd like to use for compiling but partitioning is not an option, could you help me setting up enviroment?
PD: I tried setting it up with brew but I am missing dependencies I can't (don't know how) install them with brew, all guides are for Ubuntu or for Mac is but old.
Thank you in advance!
This guide inspired me to setup a Dockerized build and flash environment for the Pixel 5.
Leaving it here as Pixel 3 owners might find it useful: https://github.com/nvllsvm/pixel5-aosp-builder
Draje0 said:
This guide inspired me to setup a Dockerized build and flash environment for the Pixel 5.
Leaving it here as Pixel 3 owners might find it useful: https://github.com/nvllsvm/pixel5-aosp-builder
Click to expand...
Click to collapse
Thanks, this is very helpful! Have you tested the built image on a pixel 5?
ammarr said:
Thanks, this is very helpful! Have you tested the built image on a pixel 5?
Click to expand...
Click to collapse
Yup - it boots and seems to work except for phone call audio (T-Mobile US).
I am having issue, I did this and got:
#### build completed successfully (17:26:44 (hh:mm:ss)) ####
Click to expand...
Click to collapse
flashing claims to have succeeded but when the phone reboots it just goes back to fastboot mode and says "no valid slot too boot to"
The last few lines of output when doing "fastboot flashall -w" are:
Erase successful, but not automatically formatting.
File system type raw not supported.
Erasing 'metadata' OKAY [ 0.007s]
Erase successful, but not automatically formatting.
File system type raw not supported.
Rebooting OKAY [ 0.000s]
Finished. Total time: 82.933s
Click to expand...
Click to collapse
Is the filesystem raw not supported normal? Other than that I am really not sure why this isn't working.
very very handy post, appreciate it, even though i would probably be not building on my own. 20GB smh.. phew!
Anyone know or figure out how to get gapps on this once built (or built-in) without having to have TWRP?
Great guide. I am working on creating a custom rom myself. I've been wondering if it's possible to prevent system apps from being included in the build. There are a few apps that I use f-droid apps in their place (example K9 mail for stock email app) and don't want to see them re-appear when the ROM is updated. If this is not possible, can they be removed from the build before flashing?
Edit ..
Figured it out.
Hi.. I'm Building AOSP 10 for POCO F1(beryllium). i dont know which command should i choose in lunch cause my device isnt listed.. They have only for Pixel Devices.. Pls guide through it
***Key step: Download radio drivers.***
Most tutorials miss this or mention it very subtly. But, without this step the ROM you flash won't boot to the home screen (you will be in the boot loop).
Go to the driver binaries page, and download the right zip files for the Android build version (android-10.0.0_r10) and device (Pixel 3) you chose earlier in the repo command.
You will be downloading two zip files (one vendor image zip and one radio drivers zip), both zips will have on shell script file each (.sh), just put those two files in your repo folder (~aosp/pixel3) and run the scripts. It will download the required proprietary files (after asking you to accept the terms). Do not miss this step.. I lost 3 days trying to find the reason for my ROM not booting up, this was it.***
How can I get this 2 zip files for my Samsung device (SM-A715F). Thank you

[GUIDE]Dual boot ChromeOS with Linux or Windows on almost any device

Dual Boot ChromeOS with Linux or Windows!
Update 1: This thread has been fully rewritten for Windows too!
Update 2: Added Steps for Arch Based Distros!
This guide will tell you how you can dual boot ChromeOS with Linux or Windows! This guide is based on the official GitHub page!
Update2: Added troubleshoot section: Added ChromeOS not detecting fix​
INDEX
• About
• Requierments
• Downloads
• Intel CPUs
• Types of recoveries
• AMD CPUs
• Linux Installation
• Preparing environment
• Installation
◦ Gparted
◦ Secureboot
• Windows Installation
• Preparing Linux Environment
◦ Preparing Environment
◦ Installation
◦ Secureboot
• Troubleshoot
• Fix ChromeOS not detecing
• Credits
About​ChromeOS, is an Operating system based on Gentoo Linux and designed by Google based on the ChromiumOS an open source project but unlike that ChromeOS is not open source, ChromeOS uses Google API and has intergrated Google Apps and Google Chrome as its interface! It also supports android apps!
Why chromeOS ? ChromeOS is a very smooth OS unlike other Android-x86 projects it is a fully functional and powerful OS, though it is not an ideal choice for gaming because it does not support the keymapping function. But if it ever gets Key Mapping there is no better option for running android for your PC other than chromeOS
Brunch, To keep it short and simple brunch is a framework which can help you to run ChromeOS on your Device even if its not a chromebook!
Requierments
​
• qs-x86_64 based computer with UEFI boot support (you can check that just search on google if you don’t know)
◦ With MBR patch your MBR/Legacy device might be supported
• Administrator Permissions
• Should have an Intel CPU (check conditions for that too)
◦ Intel 1st gen Core are supported only till ChromeOS 81 (This release may not be available anymore)
◦ Atom, Celeron and Pentium processors are supported since Baytrail and later versions!
• AMD Ryzen and AMD Stoney Ridge are supported, but it is limited
• Nvidia GPUs are not supported (if you have one then its ok, but ChromeOS won’t detect it)
• No Virtual Machines (VMs) are supported
• ARM CPUs are not supported at all, No luck guys
• Intel Core 2 Duo and older CPUs are not supported
Now if you are supported then Great! Lets move on!
DOWNLOADS
NOTE: you can even download the eve image which is the best as its the official Pixelbook recovery, but remember the boot chances are less with that so If you don't have time/data download from the below images
Intel CPUs​
• If your CPU is 10th and 11th gen open this Link note the versions and proceed to download from HERE but before read below
◦ 11th gen and some 10th gen CPUs may need kernel 5.10
• If your CPU is 1st gen to 9th gen then after opening this Link, note the versions and proceed to download from HERE and before downloading read below,
Stable Builds​
For daily and frequent use [Recommeneded for average users],
these builds are reliable and are pretty stable for day-to-day use and are recommended.
Beta Builds​
Good for daily use and more Beta features [Recommended],
these builds are pretty stable and relaible with a few more Beta features and just a few bugs. These are recommended and also if the stable build is not availible.
Dev Builds​
Buggy and more features [Power users only, Not Recommended],
these builds are not very stable and are buggy but have more features! Not recommended for daily use. These builds are ideal for developers who want to test out some features (Liveboot)
Canary Builds​
Unstable! Experimental feaatures! [NOT Recommended][DEVs ONLY],
These builds have a lot of bugs but the most of the features! These builds are not intended for average users and are only for testing.
AMD CPUs​
• For Stoney Ridge and Bristol Ridge Click Here but before read the above info carefully
and proceed to download from HERE
• For Ryzen Click here but read above before downloading then carefully
and proceed to download from HERE
• for Ryzen 4xxx devices you need kernel 5.10
As of I am writing this I have an Intel 10th gen CPU and the Stable builds are unavailable so I will be downloading the BETA Build which are quite stable too!
Now we have to also download Brunch, download the latest stable version from HERE
LINUX​
Prerequisites,
• You should be on a Linux Distro
• Root access
• Atleast 16gb storage you can give to the OS
• Your PC should support Brunch
• Some basics of linux terminal (if not I recommend to learn because this helps in troubleshooting problems)
• Grub2 Bootloader
Preparing the Environment​
Now open Terminal by Ctrl+Alt+T
and run,
Lets enable super user permissions using the following command
Bash:
sudo su
Enter password if it asks and hit enter
Debian based Distros:
Its a good thing to update and upgrade the packages by running this command,
Bash:
sudo apt update && upgrade
Lets install the required packages the command below will install pv, tar, unzip, cgpt and gparted,
Bash:
sudo apt install pv tar unzip cgpt gparted
Arch Based Distros:
Bash:
sudo pacman -Syu pv tar unzip gparted && yay -S cgpt
Side Notes
____________________________________________________________________________________
pv,
Pipe Viewer, known as pv is a package which allows the user for the monitering of data being sent through pipe, it helps the user by giving them a visual display
Tar,
tape archive. Known as tar is used to create and extract archive files in the format of .tar, .tar.gz etc...
Cgpt,
Cgpt is a tool to manipulate GUID Partition Table from command line. It also supports ChromiumOS extentions
Gparted,
Gparted is an Advanced disk manager, its simple yet powerful UI makes it easier to create, delete or modify any partition!
Unzip
unzip command simply extracts zip files!
_____________________________________________________________________________________
Now lets go into Documents using the cd command cd simply means change directory
Bash:
cd Documents
Now lets create a new folder and open that to keep things clean and tidy
mkdir command means make directory (make folder) and cd is change to directory
Bash:
mkdir ChromeOS && cd ChromeOS
now cut/move the downloaded files to documents/ChromeOS from your file manager
Installation​
Now we will extract the tar.gz archive using tar we previously downloaded! Tar calles the command to run tar and zxvf is to extract the file in format of tar.gz
Bash:
tar zxvf brunch_ filename.tar.gz
Replace the brunch_filename.tar.gz from your actual bruch file’s name
now we also want to extract the chromeos zip file this file can be extracted by using the unzip command!
Bash:
unzip chromeos_ filename.bin.zip
Replace the chromeos_filename.bin.zip from your actual chromeOS file’s name
once done
if you already have an empty disk and are deciding to use that for installation then just check these things:
the partition should be ext4 or ntfs (ext4 recommended)
if not or if you don’t know what partition is it then
1. open Gparted and if under the file system your partion shows ext4 then close Gparted and if not then
2. right click the patition then
3. select format to and
4. select ext4 after that
5. click the ✓ logo and proceed after that
6. close Gparted.
If you don’t have a free partition or you want to create a different partition then,
minimize terminal and open Gparted (if you ran the first command it is automatically installed).
1. Now open Gparted and
2. Resize your storage and free up 16-100 gb of storage, to do that right click the partition you want to give storage from,
3. Click on the resize/move and
4. In the Free space following (MiB) text box enter the amount of storage you want to give to chromeOS in MB and click resize,
5. now you will notice a new space created called unallocated right click on it then click on new.
6. Now select Create as Primary Partion and File System: ext4 and click add! Now again click the ✓ Icon and proceed.
Also in Gparted note the name of your ChromeOS partition below the “Partition” table
for eg: /dev/sda11, /dev/mmcblk0p5 or /dev/nvme0n1p4
now open terminal,
now we will create a new mountpoint for that we will create a new directory using mkdir. The ~ is a symbol of your home directory so ~/tmpmount actually means home/tmpmount!
Bash:
mkdir -p ~/tmpmount
Now its time to mount the partition at the mountpoint
now this command will mount your partition named dev/partion to tmpmount!
Bash:
sudo mount /dev/partition ~/tmpmount
here replace the ‘partition’ to your partition name you saw in Gparted
Now
as we did before replace the chromeos_filename.bin to your actual file’s name and also replace the size from the amount of storage you want to give to chromeOS, minimum 16gb maximum your choice.
This command runs the chromeos-install.sh file in bash this file runs the installer! With the source (-src) being chromeos.bin file and the destination (-dst) being ~/tmpmount/chromeos.img and the size (-s) is what you desire
Bash:
sudo bash chromeos-install.sh -src chromeos_filename.bin -dst ~/tmpmount/chromeos.img -s size
Now if it asks for confirmation then type yes in the prompt
Now after it is over you should see something like this:
**************************************************************
menuentry "ChromeOS" --class "brunch" {
rmmod tpm
search --no-floppy --set=root --file /chromeos.img
loopback loop /chromeos.img
source (loop,12)/efi/boot/settings.cfg
if [ -z $verbose ] -o [ $verbose -eq 0 ]; then
linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img \
console= vt.global_cursor_default=0 brunch_bootsplash=$brunch_bootsplash quiet
else
linux (loop,7)$kernel boot=local noresume noswap loglevel=7 options=$options chromeos_bootsplash=$chromeos_bootsplash $cmdline_params \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
fi
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}
menuentry "ChromeOS (settings)" --class "brunch-settings" {
rmmod tpm
search --no-floppy --set=root --file /chromeos.img
loopback loop /chromeos.img
source (loop,12)/efi/boot/settings.cfg
linux (loop,7)/kernel boot=local noresume noswap loglevel=7 options= chromeos_bootsplash= edit_brunch_config=1 \
cros_secure cros_debug loop.max_part=16 img_uuid=8191adfb-ab27-4e4d-a12e-b9e49aa1b466 img_path=/chromeos.img
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
*******************************************************************
Now copy the text similar to this from your terminal and paste it in a notes app or save it somewhere.
Now the end is near!
Now run this command which will copy the given
Bash:
sudo cp /etc/grub.d/40_custom /etc/grub.d/99_brunch
Running this command will open the nano text editor to edit these files,
Bash:
sudo nano /etc/grub.d/99_brunch
Now a file will open,
1. Now paste the text you copied before in a new line
2. then press Ctrl+X then type y to save it and hit enter
Now lastly run,
Debian:
Bash:
sudo update-grub
and
Bash:
sudo update-grub2
Arch:
Bash:
sudo pacman -Syu
this will update your grub configuration!
Now for those who have secure boot enabled you will have to follow some extra steps.
Now there are 2 ways:
• Way 1 [run if Way 2 does not work]: Go to BIOS Setup and simply disable SecureBoot and boot into ChromeOS
• Way 2 [Recomended]: Download the file from this link and paste the file in the ChromeOS folder
open terminal and run:
Bash:
cd Documents/ChromeOS
Bash:
sudo mokutil --import brunch.der
and thats it!
Windows​
Prerequesites,
• Administrator access
• you have to give atleast 16gb to ChromeOS minimum, the disk should be
bitlocker disabled, and the format should be NTFS
• Windows Subsystem for Linux 2 (WSL2) or use Cygwin
• pv, tar, unzip and cgpt should be installed
• Basic Linux command knowledge
Preparing the Linux Environment​
• For windows 10 and 11 users
Open Powershell and run
Code:
wsl –install
thats it
NOTE: You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11.
• for Windows 7 & 8/8.1 (works for windows 10 and 11 too)
Download and install Cygwin from HERE
after this run the CygWin terminal (for CygWin users) and for WSL2 users launch it!
Preparing Environment​
And run this
Bash:
sudo apt update && sudo apt -y install pv cgpt tar unzip
If the process ends with errors then run this:
Bash:
sudo add-apt-repository universe
and run
Bash:
sudo apt update && sudo apt -y install pv cgpt tar unzip
Installation​
Bash:
cd /mnt/c/Users/username/Downloads
Here replace the username by your actual username
Now run,
Bash:
tar zxvf brunch_filename.tar.gz
replace the brunch_filename.tar.gz from the real filename
Now run,
Bash:
unzip chromeos_filename.bin.zip
Here replace chromeos_filename.bin.zip from the actual filename (cmon you know the drill)
Now run,
Bash:
mkdir /mnt/c/Users/username/brunch
Again replace the username from the real username (if you want to install it in C disk)
Run,
Bash:
mkdir /mnt/d/brunch
(if you want to install in Disk D)
Now run,
Bash:
sudo bash chromeos-install.sh -src chromeos_filename.bin -dst /mnt/c/Users/username/brunch/chromeos.img -s size
Here replace chromeos_filename.bin from the real one, and replace size from the storage you want to provide (give atleast 16 gb)
Now Install Grub2Win from HERE
and run it
then click on the Manage Boot Menu and then add a new entry
Select the create user section from the type section.
Now open chromeos.grub.txt saved earlier, it will be in the same directory and copy the grub boot entries saved in that file and copy them to Grub2win
then click Ok and Apply to save the entries into Grub2win
To prevent windows from locking the NTFS partition I recommend you to switch off secureboot!
Troubleshoot​
ChromeOS boot fix
this fix includes:
• Grub bootloader does not show up
• PC/Laptop directly boots into the MainOS
• the menu boot time is too short
• etc
Now there is a common issue where you have installed ChromeOS but the grub menu does not show up and your PC directly boots into the MainOS (Windows/Linux) these steps will help you fix it!
open terminal and run
Bash:
sudo apt install gedit
this will install Gedit
Gedit
is a simple text editor which is commonly used to edit system files
next run,
Bash:
sudo gedit /etc/default/grub
This will open a text document in gedit
If it asks for password then type it
Now the usual default format of the text document is like this:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
Now you will see GRUB_TIMEOUT_STYLE=hidden
here replace the hidden from menu
next
in GRUB_TIMEOUT=0 change 0 from any number this is for how many seconds the grub menu should be visible, I recommend replacing 0 from 30.
thats it! save the file and run the command:
Bash:
sudo update-grub
and
Bash:
sudo update-grub2
Reboot now you should be able to see chromeOS in your menu!
Credits,
• Google
• Android
• ChromeOS Devs
• GitHub
• XDA
• Brunch
• Project Croissant
• Me
-Manav Harsana
possible windows 11?
ismatovvsanjarbek said:
possible windows 11?
Click to expand...
Click to collapse
This thread is for linux, I will add for windows
ismatovvsanjarbek said:
possible windows 11?
Click to expand...
Click to collapse
Added tutorial for windows!
Cygwin uses less data (and storage space) than the WSL route, right?
Also from what I understand there's no need to setup a dedicated partition for brunch? I had used Puppy Linux earlier where the file system could be located in a folder.
Edit: Cygwin does indeed use very little data no more than 30MB downloaded in the default config.
Edit2: Couldn't run the commands in Cygwin. Some error about sudo not being found. WSL2 was easy to install and didn't take more than 500MB data.
amn1987 said:
Cygwin uses less data (and storage space) than the WSL route, right?
Also from what I understand there's no need to setup a dedicated partition for brunch? I had used Puppy Linux earlier where the file system could be located in a folder.
Edit: Cygwin does indeed use very little data no more than 30MB downloaded in the default config.
Edit2: Couldn't run the commands in Cygwin. Some error about sudo not being found. WSL2 was easy to install and didn't take more than 500MB data.
Click to expand...
Click to collapse
I mean we can install it but 1. Its better to keep it clean ig 2. I am lazy im not gonna add another method for sometime atleaset. For that Cygwin thing idk I use Arch btw so idk about cygwin and stuff
I cant find the way to download beta or dev image, https://chromiumdash.appspot.com/serving-builds?deviceCategory=Chrome OS only allow download stable version
oldman20 said:
I cant find the way to download beta or dev image, https://chromiumdash.appspot.com/serving-builds?deviceCategory=Chrome OS only allow download stable version
Click to expand...
Click to collapse
Thats because the dev or beta build for the model may not be their, wait it out or try someother image

Categories

Resources