Hello, not sure if im posting in the right section or not apologies if im not. Ive been playing with ubuntu on my nexus 7 and want to start porting some x86 programs over. I recently installed crosstools-ng on my linux box. I've coded in the past but never tried cross compiling software. If anyone has used this software you know it allows you to be VERY exacting as far as architecture goes. I know nexus 7 is armhf but beyond that im lost. If anybody uses the software and has a config file i could use I would be very grateful. Thanx
Edit: I am aware I can choose a list of "pre-made" cpu choices but as I said my knowledge of the nitty gritty of the 7 arch is beyond me. If any of the premade choices will do please let me know.
Thanx alot guys
Yep!
This post was one of the very few results that I found anywhere on the web regarding cross compiling for the Ubuntu Nexus 7 platform. Leave it to Ubuntu to have no documentation whatsoever on doing this. I spent two solid nights trying to get crosstool-ng to build binaries for my Nexus 7, and all that I could get to work was compilation with -static. I spent hours trying to figure out what was going on.
gcc -dumpmachine
returns
arm-linux-gnueabihf
Through Google/Bing searches, I again found nothing about this "hf" build other than it means hardware floating point, but I was building for the NEON/vfpv3-d16 FPU. After a bunch more searching, I found that this is a Debian-specific ABI, so no wonder I wasn't getting anywhere!
http wiki.debian.org/ArmHardFloatPort
From there, I decided to try to get a canned cross compiler, but nothing worked. I then ran across this.
http gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf
Note that I have three Ubuntu VMs and spent several hours trying to get ANY unstable or "backport" version of dpkg to work. For one of my distros, dpkg is new enough, and running dpkg --add-architecture armhf worked, but when I ran apt-get update, I got a bunch of errors that the armhf-related repositories couldn't be found (404s...) which I have seen before amounts to the Ubuntu release that you're using not being supported.
So this is why I have always avoided Ubuntu development especially for cross compiling. But since they're the ones doing a heck of a lot of work on this port, I'm not about to roll my own distro.
In case you are still looking for a cross compiler, look no further than Linaro. Download their 2012.12 binary package from this page.
https launchpad.net/linaro-toolchain-binaries/+download
I used this particular one.
https launchpad.net/linaro-toolchain-binaries/trunk/2012.12/+download/gcc-linaro-arm-linux-gnueabihf-4.7-2012.12-20121214_linux.tar.bz2
Extract with
tar xfvj gcc-linaro-arm-linux-gnueabihf-4.7-2012.12-20121214_linux.tar.bz2
and export the bin directory to your shell's PATH variable for convenience.
These binaries are apparently compiled for 32-bit i686 Linux oddly enough, so if you execute them on an amd64 system, you will likely get the "No such file or directory" error. To get 32-bit binary compatibility in Ubuntu, run
apt-get install ia32-libs
Correct me if I am wrong on any of this. I hope that this helps someone out there!
I have new instructions here that are much better, but require some amount of software compiling (mainly with the kernel): https://forum.xda-developers.com/iconia-a500/linux-acer-iconia-tab-a500-2020-edition-t4136023
I'm a latecomer to the scene of seeing GNU/Linux userland distros run on this tablet, as I only acquired mine from a friend since last year, and couldn't use it until I replaced the ac adapter and battery. I was this lucky as Android devices capable of running GNU/Linux distros natively are hard to come by, and moreso for getting it for free. But first, the tablet needed to be fixed up by software:
I upgraded the stock Android OS from 3.?.? to 4.0.3 by downloading Acer-provided updates to a microSD card.
Now I could retrieve the tablet's serial number and generate the SBK from it in order to flash Skrillax_CZ's custom bootloader with nvflash.
I flashed CWM 6.0.4.5 custom recovery first (to AKB partition), then OmniROM based on Android 4.4.4 (to LNX partition). I flashed an Open GApps package at first, but I had to remove it as those apps try to utilize the NEON extensions that this tablet's CPU lacks, causing them to crash. (4.4 is the minimum version the Open GApps supports anyways) Instead, I used F-Droid for an app store replacement, which sufficed for most of my needs.
Then I got to flashing a kernel that enables booting native Linux distros (to SOS partition). While I tried both sp3dev's 2.6.38 kernel and rogro82's 3.1.10 kernel (a modded version that loads the distro from the 2nd partition of a microSD card), I stuck with the 3.1.10 kernel, as it included the ASIX AX8817X USB 2.0 Ethernet driver which allows me an alternate method of internet connection in case I couldn't use wi-fi (both boot images are attached for preservation and convenience, renamed).
Now I was ready to experience running Linux distros natively on a mobile device for the first time. :fingers-crossed: From this point on, I would be using rootfs images to reach this dream of mine. With the new instructions posted above, I may have finally realized this dream! While I have more stuff working smoothly (Wi-Fi and Bluetooth, 2D software acceleration), other minor things are still not, including the camera and 3D acceleration (due to such support not existing in mainline kernel).
Some notes I made for this time period:
I have found out that glibc versions 2.24 and later have removed support for Linux kernel versions < 3.2, which limits the choice of distros I can select from without additional work.
The minimum Linux kernel version that this version of the GNU C Library can be used with is 3.2, except on i[4567]86 and x86_64, where Linux kernel version 2.6.32 or later suffices (on architectures that already required kernel versions more recent than 3.2, those requirements remain unchanged). Linux 3.2 or later kernel headers are required on all architectures.
Click to expand...
Click to collapse
The workarounds to this are to use an alternate C library, or use older versions of glibc (Version 2.23 is used in Ubuntu 16.04, but it is compiled to only run with Linux 3.2 or later, so it must be recompiled by lowering the minimum kernel version to 2.6.32).
The file bcm4329-fullmac-4.bin can be found in packages of linux-firmware, but bcm4329-fullmac-4.txt needs to be obtained from the stock Android OSes, as the file "/system/etc/wifi/bcmdhd.cal" (original file attached for convenience, renamed).
Linux kernel version 3.1.10 is the latest one provided by NVIDIA, and new versions are unlikely to be ported to this tablet's CPU, according to https://developer.nvidia.com/linux-tegra-rel-16.
Other than the above three points, Linux distros will work almost flawlessly, but if the screen is turned back on, an external keyboard is needed to switch to one of six virtual terminals by using Ctrl+Alt+[1-6], and then switching back to Ctrl+Alt+7, where 7 may be replaced if the GUI is running in another virtual terminal location. This process is not needed if the NVIDIA proprietary drivers are being used, which can be found on this page: https://launchpad.net/ubuntu/+source/nvidia-graphics-drivers-tegra/16.3-0ubuntu2/+build/4804631 (Beware that X11 ABI versions > 14 are not supported, so downgrade the xorg version somehow to the 1.14.x series to use this driver).
[Version 16.3] is the final release supporting Ventana. T20 support will not be included in future releases.
Click to expand...
Click to collapse
The internal storage is also detected by the kernel, but its contents cannot be normally accessed, as it has a special partitioning scheme that cannot be recognized. It is possible to format it, and partition it to hold accessible data, but I recommend not doing any partitioning for it, as it may require a longer restoration process that will not be explained here for now. However, using TestDisk to search for partitions using the GPT partitioning scheme allows four of them to be accessible. I recommend only copying data from those partitions; writing the detected partitioning scheme is risky for now.
Putting the tablet to sleep by use of pm-utils works, and the tablet will even power back up after the power button is pressed, but it may cause the BCM4329 SDIO card to stop working until the next reboot.
Any programs that utilize OpenGL during their operations are very likely to have poor performance, and will remain so, as this tablet model's GPU only supports OpenGL ES and EGL :crying: , unless those programs are altered by source code to include support one of these two APIs. Additionally, some colors may appear to be off during any OpenGL rendering (e.g. orange is rendered blue) However, the proprietary drivers may help with faster OpenGL ES and EGL rendering, but still, most programs are unable to utilize them.
I guess I can be blamed for sticking with too old hardware; people are moving onto newer hardware so quickly! However, there's still hope for having some sort of Linux tablet, but the road to getting there is not easy.
NEW: I have successfully cross-compiled this Linux 3.17.0-rc7 kernel, using the picasso config from rogro82's kernel source. When compiling this kernel, do not switch to any other branches, or prompts like this will appear upon invoking make:
Code:
Patch physical to virtual translations at runtime (ARM_PATCH_PHYS_VIRT) [N/y/?] n
Physical address of main memory (PHYS_OFFSET) [] (NEW)
I also created a boot image for it, but after flashing it, attempting to boot results in the bootloader being stuck at the loading screen, without hope for anymore activity unless powered off by force. Even inserting an initrd will not change anything but the size of the boot image (Max size for the SOS partition is ~5MB). :crying: This also seems to have happened a version of the 2.6.38 kernel from sp3dev that I have self-compiled, but that one was without an initrd. Either I'm not using the correct toolchain (I'm using the ones provided from the Ubuntu repositories), or non-manufacturer-provided kernels don't have the special code to support this tablet model. However, I really want to get this kernel to boot successfully, so that newer distro versions can be used (my results will appear in another post).
Supported Distros
Almost any distro will work out-of-the-box (OOTB), but some require software-level modifications that can only be done on a real armv7-based device or emulation, so here is a list of distros whose latest stable versions have an arm build, can successfully boot up, use glibc <= 2.23, and their image locations (all of them can at least boot to a terminal login screen, if a graphical desktop environment is not preinstalled, but this will require use of an external USB keyboard):
Devuan 1 Jessie (Mirrors for this distro are located in the directory "devuan_jessie/embedded/")
Slackware ARM 14.2 | http://ftp.arm.slackware.com/slackwarearm/slackwarearm-devtools/minirootfs/roots/
CentOS 7 | http://mirror.centos.org/altarch/7/isos/armhfp/
openSUSE Leap 42.3 | http://download.opensuse.org/ports/armv7hl/distribution/leap/42.3/appliances/
Unfortunately, for some reason, the BCM4329 wi-fi works OOTB only with older versions of some distros, including these:
Devuan 1 Jessie (already listed above)
Debian 8 Jessie and older (supported until May 2020)
Ubuntu 14.04 Trusty Tahr and older (supported until April 2019)
On newer versions of these distros, if I was able to boot them successfully, they will work, but when running
Code:
iwconfig wlan0 txpower auto
it results in input/output errors that are meaningless, and the kernel messages do not really help that much, even when using the supplied nvram file (do I need to get a different one, or support had been dropped entirely for this card?) For these cases, USB ethernet adapters are the only way to get an internet connection to this tablet model. I have never been able to get Bluetooth to work, unless I missed some other task that I have not yet heard of.
NOTE: To remove the root password, use this command on a Linux/BSD/other Unix OS:
Code:
sed -i 's/root:x:/root::/' /etc/passwd
"/etc/passwd" can be replaced with another location if needed. "/etc/fstab" may also need to edited to reflect the partition layout of the microSD card that a selected distro is installed to.
OOTB distro support for this tablet model is very limited at this time; support for it seems to be being dropped implicitly , unless I can compile and successfully get a newer kernel version to boot up. DistroWatch.com lists many more, but older versions of most distros will most likely have to be used. It's better to use the versions that are still supported, for that they will still receive software and security updates occasionally.
booted up slackware rootfs using thor2002ro installer successfully
Potential new kernel source
See the bottom of the first post for more information about this.
I'm working on trying to get us a newer kernel version than the NVIDIA-provided 3.1.10 one, located at https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git/. This one is at 3.17.0-rc7. It's better in that comes straight from kernel.org, the official source of Linux kernel releases. However, its last update was from 09/28/2014, so while it is considerably newer than manufacturer-provided sources, it's not as new as the 4.x series (I'm not sure if I'm even willing to try compiling this series due to the age of this tablet model's hardware), but at least this will allow the tablet to successfully boot up newer distro versions. The issues with the BCM4239 card are likely to carry over here, but I can compile more drivers, either built-in to the image, or as modules that need to be added to a rootfs. Doing this will open up more alternate methods of getting an internet connection, such as by USB wi-fi/cellular adapters, or by USB RNDIS tethering. For reference, here are the current two 3.x release series, both of which are receiving updates as long-term support series:
3.16.x, supported until April 2020.
3.2.x, supported until May 2018.
That means in about two more years, this tablet model will effectively reach its end-of-life.
Do not flash the boot image attached here; it does not work yet. All of the attachments are provided for analysis, as they need more work before becoming usable. I try to learn most things on my own, but some things are not obvious to me as to what I should, so I need all the help I can get so that we can load new distro versions and give life to the remaining of these tablets for a few more years. At most, CentOS 7 is supported until June 2024 (enterprise-oriented distros tend to be supported for unusually longer amounts of time), if older kernels versions must be used or I fail to get this new kernel working at all, so this will be our only supported option if we can't get a new solution by the 1st half of 2020.
i found a thread with step how to install wifi drivers on deb-based distros
https://forum.xda-developers.com/showthread.php?t=1782549
we need packages: broadcom-sta-common broadcom-sta-source firmware-b43-installer firmware-b43legacy-installer b43-fwcutter
(i never tried it, idk if it even works)
still pursuing this project?
not sure if you are still pursuing this but if you are i would like to help
Aaron
adconway said:
not sure if you are still pursuing this but if you are i would like to help
Aaron
Click to expand...
Click to collapse
Yes, I'm still looking for people to help me with this; it will happen for as long as I own this tablet model; I haven't made much progress as I haven't found enough people to help me. It's good that you would like to help me.
Hi!
Sorry for the noob question folks...
I really would like to try some linux distros on this tablet, I have the Skrillax_CZ's custom bootloader installed, also the latest OmniROM but how can I install / boot a linux distro?
Thank you!
Ladislav
The kernel that I used expects the root file system to be on
Code:
/dev/mmcblk1p2
. Images for the Raspberry Pi are usually formatted with two partitions: one containing the boot files; the other containing the actual filesystem. The latter is what the kernel expects to read.
I've been hoping for a thread like this since I wasn't getting anywhere with my own old A500. With Google support flaky as ever on my tablet, I've been itching to remove it entirely for a Linux distro. When I get time, I would love to tinker with the materials you've shared, Worldblender.
Do someone have headers for kernel 3.8.13.20-digetx-thor-01232-gfe12f92?
2019 Status
Finally, I've decided to try again to get something a little more recent onto here. Ubuntu 16.04 and one flavor, Ubuntu MATE 15.04, can currently be run. Ubuntu Mate is an Ubuntu flavor shipping with the MATE desktop environment, and the only flavor to produce images for the Raspberry Pi, hence their partition layout is compatible with the 3.1.10 kernel image.
Here's what I went through today (all versions require editing /etc/fstab to disable mounting of the first partition for them to complete booting. To get Wi-Fi working, use the text file from the very first post of this topic, and place it in the same location (/lib/firmware/brcm); no need to copy the BIN file as it will already be present on the images):
Ubuntu MATE:
15.04: Only version that successfully boots out-of-the-box. Unsupported version. Use this image for now, as all others listed here don't work out-of-the-box.
15.10: Crashes with a kernel panic. Unsupported version.
16.04: Crashes with a kernel panic. Requires replacing the libc6 package and everything that directly depends on it with the ones from 15.10. Supported until April 2021. Glibc version 2.23 is in 16.04, while 2.21 is in 15.04 and 15.10.
Ubuntu:
16.04: Preinstalled images for Raspberry Pi 2/3 available at http://cdimage.ubuntu.com/releases/16.04/release/. Username and password is "ubuntu", and will prompt to change password upon logging in. Requires replacing the libc6 package and everything that directly depends on it with the ones from 15.10. Glibc version 2.23 is in 16.04, while 2.21 is in 15.04 and 15.10.
For Ubuntu 16.04, the following packages must be replaced prior to first boot with a chroot running on either an ARM virtual machine (the instructions at https://wiki.debian.org/QemuUserEmulation will also work), or another ARM computer (Android smartphones and tablets can be used here, as long as they have a microSD slot or support USB-OTG, where a USB SD card reader has to be used instead):
libc-bin
libc6
locales
perl
perl-base
perl-modules
After that, I recommend pinning/locking the packages "libc6" and "perl-base" to prevent the OS from becoming unbootable after an upgrade.
For all unsupported versions of Ubuntu, change the package repository URLs to point to http://old-releases.ubuntu.com/ubuntu/ so that more packages can be installed.
To download any of the Ubuntu MATE image versions listed above, use the torrents attached below (should still work at the time of writing this post). The Internet Archive has saved copies of these torrents, as they can no longer be accessed from the current Ubuntu MATE download page. They can be found at https://web.archive.org/web/*/https://ubuntu-mate.org/raspberry-pi/*
This is the best that I can offer; either use Ubuntu 15.04 right away (and access some newer program versions, but have no access to the latest security updates), or tweak Ubuntu 16.04 post-install with the package names listed above (and access even newer program versions plus security updates until April 2021). It may be the last time we can get newer software on an aging tablet from 2011 [!], unless new ones are compiled from source.
digetx repository
TeTriNol said:
Do someone have headers for kernel 3.8.13.20-digetx-thor-01232-gfe12f92?
Click to expand...
Click to collapse
digetx has a repository on bitbucket, might be there
Upgrade from 14.04 lubuntu by digetx
Thanks for posting the upgrade info, trying for a while but never found out the fix, until now.
After installing and upgrading 14.04 install as originally described on tegraowners I locked all the packages you mentioned eg:
libc-bin
libc6
locales
perl
perl-base
perl-modules
Then did a distrbution upgrade and presto, v16.04. Now I can install the latest versions of some programs I use.
Many thanks for sharing and kudos for finding issue. One day I hope to get back into linux seriously, changed a lot since the 14 floppy disk distributions. :good:
18.04 upgrade works so far
After the v16.04 upgrade I thought "go for broke" and try another dist upgrade and after a few warnings it worked.
Havent tried everything yet but Chromium works to get this typed, and system profiler but I can't upload image here.
Kicad 5 installed but eeschema crashed in 16.04 but it runs on 18.04 albeit a little slower than an i5
https://drive.google.com/file/d/1X3yEyWYsCWyF6RXxgd4GpBkyIHBmIPlw/view?usp=sharing
beaka said:
After the v16.04 upgrade I thought "go for broke" and try another dist upgrade and after a few warnings it worked.
Havent tried everything yet but Chromium works to get this typed, and system profiler but I can't upload image here.
Kicad 5 installed but eeschema crashed in 16.04 but it runs on 18.04 albeit a little slower than an i5
Click to expand...
Click to collapse
Hi beaka, can you share rootfs and install files from tegraowners lubuntu 14.04 ? I'm looking for it but tegraowners is gone now.
rootfs and installer from tegraowners
pheex79 said:
Hi beaka, can you share rootfs and install files from tegraowners lubuntu 14.04 ? I'm looking for it but tegraowners is gone now.
Click to expand...
Click to collapse
Hi pheex,
Here are links to the files I used to install lubuntu 14.04 then do the distupgrades to 18.04
installer:
https://drive.google.com/file/d/13Gg7Xhyx_C1Ra7_rkD4G_3yoPbf-qvC5/view?usp=sharing
rootfs:
https://drive.google.com/file/d/14YZ-_o2c-3afqD0PbppWod12p3xB5fs2/view?usp=sharing
I have skrilax v8 loader and install to sd card.
Hope that helps. :good:
thanks a lot !
Now wifi work, i can't figure it out with ubuntu debootstrap root fs
beaka said:
Hi pheex,
Here are links to the files I used to install lubuntu 14.04 then do the distupgrades to 18.04
I have skrilax v8 loader and install to sd card.
Hope that helps. :good:
Click to expand...
Click to collapse
Dist upgrade don't work for me, something broke dependencies, maybe the packages i freeze (libc...)
Do you remember how do you proceed ?
pheex79 said:
Dist upgrade don't work for me, something broke dependencies, maybe the packages i freeze (libc...)
Do you remember how do you proceed ?
Click to expand...
Click to collapse
I did a new install to card.
apt update
apt upgrade
reboot
open synaptic package manager and lock the versions of:
libc-bin
libc6
locales
perl
perl-base
perl-modules​by selecting then Package/Lock version from menu
reboot and make sure it works
open software updater and update (use gui version as apt doesnt seem to lock version)
reboot and make sure it works
open software updater and do dist upgrade to 16.04 (go to bed as slow dl on 3g)
reboot to see if it worked
then I did a dd of the sd as the upgrade takes hours over 3g
software updater to upgrade 16.04 security
after that I again used software updater to go to 18.04
dd sd card so never have to do it again
using apt from 18.04 doesnt seem to break anything so far that I use.
brief summary but hope it helps. once you get it to 16.04 it seems a bit more stable and on 18.04 it works and is a bit more responsive but I havent tried every feature, just web(chromium and ff v55, had to find old pre-neon vers) , samba, kicad, freerdp (works well) and I can even print to epson wifi x420 (just found it on network, almost thought I was in windows )
good luck let us know how you go
Hello!
As you may know, win10 arm has already been ported to lumia 950 - sd820 device.
The challenge is to make, hack, port the UEFI to install it on our Sony devices.
As I'm a noob I wantto know if this is achieveble to be able to multi boot android and win10 arm. Maybe from there we can do intresting things like root, drm back-up etc.
Waiting your comments on this.
I don't know what is need for UEFI but I think whole new bootloader is reguired for that, but getting it on our sony device which have trim area partition at the start of emmc I think whole thing is very nonportable.... here is some initial work https://forum.xda-developers.com/showthread.php?t=2507665 by Cottula (xda legend on legendary HTC HD2 multi os phone). First reguirement is getting LK (litle kernel bootloader) bootable but I think thats useles because you need to replace sony bootloader which is not replaceable. Even if you somehow get a way to replace bootloader there would be nightmare porting LK to our devices. Sony is not very development friendly device I can say that with 99 percent sure at least for two models which I owned, not blaming it but just my experience with them, third phone no thanks, I'm waiting this one https://puri.sm/shop/librem-5/ for the next phone, hope I get finally my and only my own phone and hope it get runing what I want and not what somebody want. Win 10 on xperia? Good luck!
With all respect for you, Munjeni, but:
1. Win 10 ARM can be installed in QEMU virtual machine
https://winaero.com/blog/install-windows-10-arm-qemu/
2. QEMU is available for android
https://github.com/subho007/qemu-android/blob/master/INSTALL
3. Can you install QEMU then Windows 10 ARM then boot win10 from QEMU and see if it has acces to the storage?
My bet is that from there we can make a full backup, bit by bit of all partitions, regarding that the data will be encrypted, it does not afect us. It can be restored later encrypted as it was
Are you willing to try?
Z2 tablet has a windows 10 arm on it however due to legal issues it wasn't released https://plus.google.com/+kholk/posts/ayf2C2saF4Y
Inerent said:
With all respect for you, Munjeni, but:
1. Win 10 ARM can be installed in QEMU virtual machine
https://winaero.com/blog/install-windows-10-arm-qemu/
2. QEMU is available for android
https://github.com/subho007/qemu-android/blob/master/INSTALL
3. Can you install QEMU then Windows 10 ARM then boot win10 from QEMU and see if it has acces to the storage?
My bet is that from there we can make a full backup, bit by bit of all partitions, regarding that the data will be encrypted, it does not afect us. It can be restored later encrypted as it was
Are you willing to try?
Click to expand...
Click to collapse
Not going to try that have no free time right now for anything phones, pc...etc related but thats interesting I must admit. In the same time I don't own 64bit device so I can't try even if I get any idea
Sdio emmc 5.1 controller... Win driver ?