Related
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.
Notice: Now that PengDroid has been rolled into BotBrew, this installation method is now deprecated. You'd get all this, and a package manager GUI, by installing BotBrew "basil".
Click to expand...
Click to collapse
I love Debian, and I think it's nice to have a chroot environment full of useful tools. However, there's always a barrier keeping Android and Linux from talking to each other. This is why BotBrew is designed to not rely on a chroot system.
PengDroid is an experimental chimera of Android and Linux that gives you access to a chrooted Linux userland while preserving access to the Android system.
If this sounds dangerous, let me explain why this is safe. Have a look at the root directory of a Linux system and the root directory of an Android system; notice how they don't overlap much. This means that we could safely map some of the most useful Android directories into the Linux namespace; there's no need to modify the Android side. Let's see the code.
I made a prebuilt archive to demonstrate this method. In exchange for trying, you get a nice Debian chroot. What's not to love?!
download pengdroid.tgz to your Android device
unpack it to /data (or /sd-ext): tar zxvf path/to/pengdroid.tgz -C /data
run it: /data/pengdroid/init
For a quick sanity check, run: getprop ro.product.model (whoa, Android inside Linux)
Then, for some more fun: apt-get
By default, no repositories are enabled.
Note: Before we start installing packages from Debian, we should actually install Debian. Wait, what? Right, PengDroid is so small because it packs just enough for us to use dpkg/apt; but many Debian packages assume that we have a complete setup. To bootstrap a minimal Debian installation, run /debian.sh (which makes the final installed size a whopping 58mb). If that's too much, keep reading.
Advanced Usage
Installing a minimal Debian gives us a fairly complete, but still small, *nix system. If we wanted to go even lighter, but still have a reasonably robust setup, we could run the alternative installer: /debian.sh apt -- which installs a complete dpkg/apt system.
It's a hassle to run /data/pengdroid/init all the time, but we could fix that by making a shortcut:
Code:
busybox mount -o remount,rw /system
echo '/data/pengdroid/init -- "[email protected]"' > /system/bin/pengdroid
chmod 0755 /system/bin/pengdroid
Now, we could just prefix everything with pengdroid, like so: pengdroid python
Or, if we just want a shell: pengdroid
Awesome! Although you can probably do better on the name assignment, this is another great step transforming Android into a real Unix Distribution
Yeah, the name's awkward. But I figured I'd roll this into BotBrew some day, when we slim it down enough. It's already pretty tiny for a Linux distro, but it could be even smaller if all we want is a package manager.
PengDroid is now on a diet. It installs to some 7.7mb, with a 3.5mb download size. This is good enough to support package management, and we're one command away from a minimally-functional Debian setup (instructions in OP).
/edit:
I just fixed a potential privilege escalation vulnerability in init.c, and added some new PATH-handling code. Instead of overriding the PATH, it now prepends to it. In addition, if PATH contains a double-colon ( :: ), it inserts its additions between the colons instead of prepending. To install the new init executable without reinstalling, do (outside of PengDroid):
Code:
wget http://dl.inportb.com/pengdroid.init
cp pengdroid.init /data/pengdroid/init
umount /data/pengdroid
rm pengdroid.init
/edit:
It seems that Debian Squeeze is a bit too old for our needs. Specifically, for reliable package management across many types of Android devices, we need multiarch support. So now, I'm tracking Debian Sid.
Excited to see the debian runit scripts and how they operate. I am too noob to know the difference between the Debian distros, but I have learned to trust you in such decisions.
How about adding the pengdroid symlinks to bbsh when it makes it to +1?
I'm sure it or something like it is already firmly in the testing phase. Sounds like SOP now that I write it. I just always forget and try to get a pengdroid shell between flashes.
Watch, he's gonna tell me an easier way I should know already...
Sweet, Finally, Debian & Android rolled up together in a neat little package. Il test this out later,
& do you hail from West or South London by any Chance, where i come from "Peng" is a slang term for "Sexy"
Oh snap, I lost track of this thread
You might have noticed a pengdroid.zip archive in my files. That's a self-extracting package for those who don't have a working tar utility. You could extract it using unzip, or just run the file like a program:
Code:
chmod 0755 pengdroid.zip
./pengdroid.zip
mateorod said:
Excited to see the debian runit scripts and how they operate. I am too noob to know the difference between the Debian distros, but I have learned to trust you in such decisions.
How about adding the pengdroid symlinks to bbsh when it makes it to +1?
I'm sure it or something like it is already firmly in the testing phase. Sounds like SOP now that I write it. I just always forget and try to get a pengdroid shell between flashes.
Watch, he's gonna tell me an easier way I should know already...
Click to expand...
Click to collapse
We'll essentially be killing the existing sysvinit system and offering additional packages containing runit scripts. sysvinit is pretty good, but not enough to keep track of services.
I'd like to have [almost] perfect compatibility with the current BotBrew. BotBrew works by attaching its own filesystem (which conveniently lives under /botbrew) to the existing Android tree. Pengdroid turns this relationship on its head: it attaches crucial parts of the Android filesystem to the Debian tree, and then chroots into Debian. Technically, the chroot/reversal is not required, but it simplifies cleanup.
In BotBrew+1, /botbrew lives within the Debian filesystem tree already. After chrooting into Debian, we have automatic access to /botbrew as before. But what about direct access without chrooting? That's easy... just selectively attach the debian/botbrew directory the same way we've always been doing. So we'll need a couple of changes:
bbsh needs to detect if it's called from within the chroot and handle that special case
the init program (for starting the chroot) should add /botbrew/bin to the PATH
Multiarch is another fun thing to play with. Debian recently (officially) gained the ability to install libraries for multiple architectures at the same time. For example, this lets you have both i386 and amd64 software installed on your 64-bit system. In BotBrew, we'll take advantage of this to install both Debian packages and Android-native packages.
Why are we still planning to distribute the old stuff (repacked from Opkg) if we could get all of that and more from Debian? Simply put, these Android-native packages tend to be more efficient in terms of execution speed and space usage. But during the testing phase, I'd like to use Debian software primarily because we get those for free
Der_Panzerfaust said:
Sweet, Finally, Debian & Android rolled up together in a neat little package. Il test this out later,
& do you hail from West or South London by any Chance, where i come from "Peng" is a slang term for "Sexy"
Click to expand...
Click to collapse
Just a coincidence, I assure you, since I'm on the other side of the great pond I thought this might be an appropriate name for a penguin cyborg, that's all.
Roger that
Sent from my E15 using xda premium
I have a C++ Application that work on Ubuntu/any Distro via Terminal, And all what i want is to run it on my Android.
I have a Compressed file of the source code, So if i Followed these:
HTML:
cd /src
make
it will work on Ubuntu like a charm, now the thing i Copied this to my Droid, i had some problems with noexec, so i moved it to /data/tmp and now i don't have this issue anymore, now i get an "Magic 7F bla bla.." Error, I Think this because the source code has been compiled for Intel Architecture, so how can i Compile it for ARM?:crying:
Hey XDA!
For those of us that use Arch linux, compiling Android projects can be a little more challenging than on Ubuntu due to the fact the Arch is a rolling release distro. To solve this, I made a tool that allows YOU to choose whether you want to run Arch or Ubuntu in the command line without dual booting. This isn't anything new, just a simplified implementation of an existing method.
What it does:
When you open a terminal, you will be prompted with "Would you like to connect to Arch linux or Ubuntu?". You can enter A for Arch or U for Ubuntu. If you choose Arch, you will be put into your stock environment, but your bash prompt will look like
Code:
[[COLOR="red"]user[/COLOR]@[COLOR="cyan"]Arch[/COLOR] ~]:
If you choose Ubuntu, you will be entered into your Ubuntu chroot, and your bash prompt will look like
Code:
[[COLOR="red"]user[/COLOR]@[COLOR="magenta"]Ubuntu[/COLOR] ~]:
DISCLAIMER
Because Arch linux is aimed at enthusiast and experienced linux users, replies about simple or lack-of-experience issues will not be given priority. Use the following with caution.
How to setup an Ubuntu chroot:
1. Install schroot and debootstrap
2. Follow the steps given here https://bbs.archlinux.org/viewtopic.php?id=100039, or run create-chroot.sh in the OSConnect git repo.
How to install OSConnect:
1. Clone https://github.com/frap129/OSConnect
2. Run the given install.sh
3. If you use terminal mostly locally, respond "Local" to the prompt. If you mostly connect via ssh, respond "SSH" to the prompt.
4. If you connect via SSH, connect as root from now on, not your user. OSConnect will switch to your user for you.
Done! Restart to use.
XDA:DevDB Information
OSConnect, Tool/Utility for the Chef Central
Contributors
frap129
Source Code: https://github.com/frap129/OSConnect
Version Information
Status: Stable
Created 2016-05-15
Last Updated 2016-05-15
How it works:
Ubuntu chroot:
This work by downloading the Ubuntu system files to /var/chroot/ubuntu. The schroot tool then executes bash from ubuntu, and tricks the system into believing that /var/chroot/ubuntu is actually the system root directory.
OSConnect:
OSConnect is contained in its own file, .osconnectrc. This file is executed when shell is reached via your .bashrc. The .osconnectrc is a bash script that asks what operating system you would like to use, then either dumps you into normal shell, or starts the Ubuntu chroot. It also modifies the PS1 (bash prompt) to look cleaner and better distinguish between Arch and Ubuntu.
What is the difference between local and ssh?
The only difference between the local and ssh versions is whether or not youre prompted for your password (when chroot is started) because schroot must be run as root. On the local version, you are simply prompted for your password when necessary. On the ssh version, you are expected to connect as root, and therefore will not be prompted for your password.
HALP I CANT LOG IN AS ROOT
If you are having trouble connecting via SSH as root, follow https://askubuntu.com/questions/511833/cant-ssh-in-as-root
Resource wise is this lighter than running ubuntu as a docker image?
HaoZeke said:
Resource wise is this lighter than running ubuntu as a docker image?
Click to expand...
Click to collapse
I'm way to late for this to matter, but yes, its much lighter than running at as a docker image
frap129 said:
I'm way to late for this to matter, but yes, its much lighter than running at as a docker image
Click to expand...
Click to collapse
Better late than never! ? neat stuff ?
Mainly to challenge myself, is it possible through chroot Linux or by some other method through a rooted AOSP based arm64 Android environment, to create a build environment suitable to build a Linux kernel, boot image, etc... And if so what are the caveats? Would a cross-compiling toolchain be necessary at this point? I would be building for other devices just like it... arm64. Also I would be interested in building halium for the K20
Ok so to start off I've used Linux deploy to create an Ubuntu chroot environment. I wrote init.d script to mount bind my external SD card which is formatted in ext4 for my cloned repositories to my chroot home folder. I also have my downloads folder or my internal SD card mounted to the home folder in the chroot environment. I've installed a bunch of recommended compilers and development packages in Ubuntu and I'm about to clone the halium source.
I'm basically here either waiting for some advice or suggestions or for someone to tell me I'm **ssing in the wind