• If you are experiencing issues logging in, we moved to a new and more secure software and older account passwords were not able to be migrated. We recommend trying to reset your password, then contacting us if there are issues.
  • Nearly done! Migration cleanup is mostly done. There are a small number of issues left that we continue to work on, but all the heavy lifting is done. We still would love to hear feedback over at this thread and also check out the new XDA app! Thanks and we hope you enjoy the new forums, and thanks for your support of XDA <3

[MultiROM] Debian for the Moto G

dvdkon

Member
Nov 21, 2014
19
36
0
After a lot of work, I've been able to create a functioning MultiROM installer for a GNU/Linux distribution. Currently most things, such as WiFi, bluetooth, the display or the GSM modem, don't work. The only way to interface with the ROM while it's running is by connecting the phone to a computer, and then using ssh. My goal is getting all the phone-specific things working (WiFi first), and making GNU/Linux a viable primary OS for the Moto G.

Why GNU/Linux, when Android is already Linux-based?

While it is true that what is possible with GNU/Linux is also possible with Android with a little bit of work, I don't like that Android is, at heart, an embedded system. This has some negative implications for hackers (not crackers) that would like to use it as a normal UNIX. For example, the whole system is treated as one big blob and many things can't be changed without recompiling., which is why there are so many ROMs available, and why they are not compatible between devices.

Guide

Install the debian.mrom file as a normal MultiROM ROM via TWRP and select the ROM at bootup. Connect a USB cable from your computer to the phone. After around a minute, a new interface should appear on your computer (usb0 for most Linux distros, enp* for those using udev's "persistent" naming). Set its IP address to 10.0.10.1/24. Optionally, you can also set up internet access on that interface. The phone's IP address is 10.0.10.2. You can also use my script to setup the network (setup_net.sh) after changing wlp2s0 to your computer's internet-facing interface. You can then connect to the phone via SSH or a netcat shell on port 2323. The root password is root.

What I've learned about WiFi

The WiFi setup procedure is complicated. First, the wcnss compound driver needs to be activated. Android does this by running wcnss_service, whose modified version (I basically just altered the paths and replaced Android logging with printf) I've included in the ROM (/sbin/wcnss_service). Wcnss_service does many things, but the only important one (AFAIK) is open()ing /dev/wcnss_wlan. After activating wcnss, the WiFi driver needs to be activated. Recent versions of Cyanogenmod have the driver built-in and activate it via WifiHAL (I have no idea how...), I've decided to instead build the driver as a kernel module (/wlan.ko). Insmoding the LKM does something, but the initialization fails, and I don't know why.

Dowloads
debian.mrom
setup_net.sh
The kernel is Optimus kernel by Flashhhh with a custom config
.

XDA:DevDB Information
Debian for the Moto G, ROM for the Moto G

Contributors
dvdkon
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.4.x
Based On: Debian

Version Information
Status: Testing

Created 2015-08-21
Last Updated 2015-08-29
 

navaneethkom

Senior Member
Jun 12, 2014
183
51
0
Kerala
Can you consider mirroring it to androidfilehost??
Is that Ubuntu touch ???
Please give us more explanations and screenshots... Consider a video too :)
 
Last edited:

pierosimo

Member
Jul 7, 2013
10
1
3
Can you consider mirroring it to androidfilehost??
Is that Ubuntu touch ???
Please give us more explanations and screenshots... Consider a video too :)
If I understand is a complete pc system , not a touch optimize system.Very useful for numerical computation, testing or something of similar.

The Ubuntu touch forum is this http://forum.xda-developers.com/moto-g/development/ubuntu-touch-utopic-ubuntu-touch-falcon-t2820359

I don't now if it is working on MultiRom.
(Sorry for my bad english)
 
  • Like
Reactions: navaneethkom

sub77

Elite Member
Nov 2, 2010
1,740
2,652
113
After a lot of work, I've been able to create a functioning MultiROM installer for a GNU/Linux distribution. Currently most things, such as WiFi, bluetooth, the display or the GSM modem, don't work. The only way to interface with the ROM while it's running is by connecting the phone to a computer, and then using ssh. My goal is getting all the phone-specific things working (WiFi first), and making GNU/Linux a viable primary OS for the Moto G.

Why GNU/Linux, when Android is already Linux-based?

While it is true that what is possible with GNU/Linux is also possible with Android with a little bit of work, I don't like that Android is, at heart, an embedded system. This has some negative implications for hackers (not crackers) that would like to use it as a normal UNIX. For example, the whole system is treated as one big blob and many things can't be changed without recompiling., which is why there are so many ROMs available, and why they are not compatible between devices.

Guide

Install the debian.mrom file as a normal MultiROM ROM via TWRP and select the ROM at bootup. Connect a USB cable from your computer to the phone. After around a minute, a new interface should appear on your computer (usb0 for most Linux distros, enp* for those using udev's "persistent" naming). Set its IP address to 10.0.10.1/24. Optionally, you can also set up internet access on that interface. The phone's IP address is 10.0.10.2. You can also use my script to setup the network (setup_net.sh) after changing wlp2s0 to your computer's internet-facing interface. You can then connect to the phone via SSH or a netcat shell on port 2323. The root password is root.

What I've learned about WiFi

The WiFi setup procedure is complicated. First, the wcnss compound driver needs to be activated. Android does this by running wcnss_service, whose modified version (I basically just altered the paths and replaced Android logging with printf) I've included in the ROM (/sbin/wcnss_service). Wcnss_service does many things, but the only important one (AFAIK) is open()ing /dev/wcnss_wlan. After activating wcnss, the WiFi driver needs to be activated. Recent versions of Cyanogenmod have the driver built-in and activate it via WifiHAL (I have no idea how...), I've decided to instead build the driver as a kernel module (/wlan.ko). Insmoding the LKM does something, but the initialization fails, and I don't know why.
hi. from time to time iam working on the same, a native linux booted with multirom.

it could fail because of missing firmware and dont getting the mac.

please pm me for support.
 

dvdkon

Member
Nov 21, 2014
19
36
0
hi. from time to time iam working on the same, a native linux booted with multirom.

it could fail because of missing firmware and dont getting the mac.

please pm me for support.
Sorry for the late reply.

I have made sure that the firmware gets loaded properly, though that was a problem at first. I'm not so sure about the MAC address, though. If you get any further information, please post it in this thread. Development is currently its only purpose.