Porting Arch Linux to Redmi Note 4 - Xiaomi Redmi Note 4 Questions & Answers

Hello everyone, I am new here, please excuse me if I am posting it in the wrong place.
I am planning to port Arch Linux to Redmi Note 4(mido). Am I doing something pointless?
And my current picture about this:
1)Try to use existing kernel
2)Create an initramfs and replace the default ramdisk in the boot.img
The initramfs contains necessary drivers for sdhci, display... I think udev hooks can be placed for loading on startup
Now, the FSTAB..., I am going to configure fstab to mount the system partition as rootfs.
I am going to make the system image file and flash it through fast boot
3)Kernel, as usual executes init from ramfs, which loads drivers, mounts /system as / as and executes systemd
I am a noob, please forgive me if it is stupid, I need opinion on how to proceed(or not), I am currently studying in grade 11, so no plenty of time. Help would be appreciated.
Thanks!

generex441 said:
Hello everyone, I am new here, please excuse me if I am posting it in the wrong place.
I am planning to port Arch Linux to Redmi Note 4(mido). Am I doing something pointless?
And my current picture about this:
1)Try to use existing kernel
2)Create an initramfs and replace the default ramdisk in the boot.img
The initramfs contains necessary drivers for sdhci, display... I think udev hooks can be placed for loading on startup
Now, the FSTAB..., I am going to configure fstab to mount the system partition as rootfs.
I am going to make the system image file and flash it through fast boot
3)Kernel, as usual executes init from ramfs, which loads drivers, mounts /system as / as and executes systemd
I am a noob, please forgive me if it is stupid, I need opinion on how to proceed(or not), I am currently studying in grade 11, so no plenty of time. Help would be appreciated.
Thanks!
Click to expand...
Click to collapse
en.miui.com/thread-724324-1-1.html i have already made a thread since i also want to port nethunter and lets see if can see some response

Related

Compiling AOSP from source

Hiya I am interested in compiling my own version of the android project from the latest sources for Hero but I am having a little bit of trouble, I have been attempting to follow this guide android.modaco.com/index.php?showtopic=301857&view=findpost&p=1179830 but it does not seem to make a lot of sense to me. For instance there is no .repo/local_manifest.xml file only a .repo/manifest.xml file and editing this as outlined gives me an error. Could somebody point me in the direction of a fairly noob friendly guide for this kind of stuff, thanks a lot.
Conb123
P.S Sorry about the dodgy link, newbie restrictions prevented me from formatting it properly
this should be in Q&A Section not development really. But im looking for this too! installed ubuntu using Wubi set up JDK,SDK testsign etc and repo but god knows how to do it all! I only want to port cyanogenROM
follow this: http://source.android.com/download
when you got everything synced you can basically type "make" and watch it compile for a while. i managed to do it with just above zero knowledge about compiling.
if you want the cyanogen sources try it with the according repo. i have zero idea about vendor overlays, as i needed to compile only the recovery (watched two hours of eclair compiling, then was told i need cupcake sources and can compile the recovery only...)
Yes I am aware of how to get sources and how to compile them, I am fairly well versed in linux. But I do not know how I can compile it into a usable rom for hero.
the result of the compiling are image files that can be flashed to the phone: system.img etc. you can extract them using unyaffs.
I ran the make command, but i really have no idea what to do from there. What is the end result of doing the first make command? Im fairly sure that it is not a single .img file you can flash onto your phone. You need to make a kernal if i am correct(anyone know how to do this?)
the result of the compiling is at least a system.img. if you compiled it correctly you can flash that to /system partition. further you need a boot.img, which also contains the kernel. the the rom-cooking howto in dev section how to create one, or just get one from a working rom.
fwiw, the .img files are in out/target/product/generic/ (although there probably is a device specific directory in there if you handled the vendor overlay correctly. <- this is just a guess, i have actually no idea).
Wanna link us to that how to thread? I cant seem to find a complete one with working links.
http://forum.xda-developers.com/showthread.php?t=551711

[Q] Ntfs-3g, rw, fstab and mount options and daemons

This is extremeley far away from howto implementing ntfs read write support in rooted archos gen9 devices.
Everybodey is welcomed to bring on ideas and modifications.
my linux know how is not too much.
Somebody interested to help implement ntfs-3g rw for rooted archos gen9?
First - is it possible?
a) It could be possible with ntfs-3g from tuxera, on their website they say its for android, too.
b) When kernel side ntfs (the read only one) is set - can one use ntfs-3g with fuse instead or does it conflict?
Dont know if ntfs in kernel is set as yes or module. Can somebody confirm something?
Second - Which files are to be transported in which directory and which are to be modificated?
What mechanism (auto)mounts blockdevices (also sticks, flash cards, etc ...)
Is it archos specific or something related to android?
Does somebody know which daemon does this job especially on g9 and what config files it has?
Is it /etc/fstab (only) ?
Downloaded the source code from ntfs-3g and have to look.
attached ntfs-3g latest stable release as source from Tuxeras Website.
had a look in running kernel modules with
adb shell lsmod
Fuse is loaded as kernel module and active.
Therefore, i assume, one could push an arm version of ntfs-3g and ntfsprogs in the directorys in a dirty way and edit some fstab entrys or other config files?
Apropos arm version. Is there somebody who was able to (cross)compile ntfs-3g for arm and attach neccessary files?
NTFS read fine on my kingston 16 GB flash.
Write on flash dont work. How fix dont know, but i'll try to search info =)
Yes, ntfs CAN be read, but we need Write-Support.
On linux no problem, and Android IS Linux. On Arm instead of x86 or a64
Everey x86-linux has Write Support.
Thanks.
gegabit said:
NTFS read fine on my kingston 16 GB flash.
Write on flash dont work. How fix dont know, but i'll try to search info =)
Click to expand...
Click to collapse
However, thank you for your report
Found It
Hi svennimann
I was going to take up this challenge and have a go at compiling it, however this post In the galaxy S2 forum has it covered.
You don't need the worry about the fuse.ko as the archos kernel already has it and It wouldn't have the right magic anyway.
I'll probably have a poke around with integrating it more into the kernel, get it to use ntfs-3g by default.
I'll post an update, if I find anything interesting out.
Wow!
Hadnt found it but who searches on galaxy thread for archos things?
And That should be on general android thread.
We are lucky now.
Okay.
Now it is possible that there are issues with mount points, scripts, and so on, and perhaps one had to change ntfs-3g permissions to 755.
for the case that something doesnt work, i think this could be do the trick if neccesary.
http://forum.xda-developers.com/showpost.php?p=15490573&postcount=49
Apropos what do you mean with right magic of the fuse module?
Yes maybe. I only did a quick root shell test to make sure it mounted and wrote. I'll play around more with it later when I get in.
With regards to magic:
.ko files are compiled against a specific version of the kernel. They contain a vermagicapp string which is checked against the installed kernel when insmod is run. If they don't match the Kernel module won't install.
That's how I understand it.
Sent from my HTC Sensation XE with Beats Audio using xda premium

New kernel with dual boot

Old method, read post 2
Date 05-11-2012 Huawei s7-105 dual boot kernel
by hal_2000
Hi all, first i like to thank irfanbagus without is help this cound not be possible, look at the
original post: http://forum.xda-developers.com/showthread.php?t=1598803
This is stock kernel 2.6.32-9-ideos plus dual boot features
kernel 2.6.32.9-ideos == android 2.2.2 == froyo
Warnings:
If your kernel different from 2.6.32.9 it will not work
If you dont know what you are doing stop, I'm not responsible if you brick your device
the rom2 must be compatible with kernel 2.6.32
Works on:
my huawei s7-105
huawei s7-10x – possible if kernel = 2.6.32-9
huawei s7-slim – possibly not, because different hardware
How to install:
Follow this steps, if not sure, stop do not go on
1.1-back up your rom, just in case
1.2-must be root, huawei must be rooted to work properly, if not stop
1.3-must have cwm install, if not stop
1.4-in external sdcard make 3 partitions, format it in ext2, in stock kernel ext3 does not work
1st fat32 for your data
2nd ext2 for system
3rd ext2 for cache
4th ext2 for data
if you have already an scard in fat32, resize is a good option
I use a 2gb sdcard, 1gb for fat and 300mb for other partitions, i'm a linux user so I use gparted
to create partitions, windows tools are also available, google for it
1.5-unzip the file in a directory
1.6-connect huawei s7-105 to pc
1.7-boot huawei in fastboot mode, exec “c:\directory\adb reboot bootloader”
1.8-wait, until it blanks the screen, on top in says --fastboot mode--
1.9-exec “c:\directory\fastboot flash boot boot-dual.img”, it will take 20 to 30s
1.10-exec “c:\directory\fastboot reboot”
1.11-thats it, you just install the stock kernel with dual boot
How to test it:
2.1-read the how to install, and install the kernel with dual boot
2.2-back up your rom, if not done in 1.1
2.3-you must have rooted the huawei, if not stop
2.4-you must have cwm install
2.5-boot huawei in cwm = recovery exec “c:\directory\adb shell”, then “#su”, and finally type
“#reboot recovery”
2.6-you have rebooted in cwm, choose install zip from sdcard, then choose apply zip, chose file
stock-test-rom2.zip
this will install the custom rom “stock-test-rom2” to sdcard partions 2,3,4
it will take 4 to 6 minutes, it depends on speed of sdcard
2.7-after install, it will return to menu, click power = get back to menu
2.8-reboot
2.9-huawei will boot in rom1, the one you have already,
2.10-go to file explorer, create a empty file in external sdcard = 1st fat partitions, name it
“bootsdcard”
2.11-reboot
2.12-it will boot the rom2, it will take 4 to 6 minutes, the 1st time, depends on speed of external
sdcard
2.13-to boot the rom1 again, simply delete the file “bootsdcard” in 1st fat partitions
Why have dual boot ???
I have done it just to prove it is possible
No, I did it to improve my huawei s7-105, the people at huawei stop development for this fine
little tablet a long time ago and I want to have gingerbread on it or android 4.01, got tired of waiting, so
this way is easier to test custom rom, and less provable to brick the tablet when in development.
The rom2 must be compatible with kernel 2.6.32, you can not install android 2.1 in rom1 and
android 2.2 in rom2, is not possible
To do next:
– compile better kernel, with ext3 or battery saving options
– compile a better custom rom, maybe gingerbread or ics or cm9
file list in zip:
boot-dual.img = kernel 2.6.32-9 with dual boot
stock-test-rom2.zip = simply custom rom = stock rom test = android 2.2.2
fastboot = fastboot for linux
fastboot-windows = fastboot for windows
adb = adb for linux
adb-windows = adb for windows
problems in install, post it, I will try to help you
link to the zip file: https://www.dropbox.com/s/6x5pcymooopb4z6/s7-105-kernel.zip
Sentence of the week... “,,,dont ask for it, do it...”
multi-boot kernel
New method, multi-boot n roms
With this method we can test new roms faster then the dual-boot, no need to create the partitions, and we can have many rom, as long we have space in external sdcard, for now only 3 rom available, if you need more ask, i will extend to 20
you will need about 500mb of space for each rom
How it work:
Begin by creating the following directories in external sdcard:
/sdcrad2/multiboot/rom2
/sdcrad2/multiboot/rom3
/sdcrad2/multiboot/rom4
inside of rom(x) must be 3 files, system.img, data.img and cache.img
to create files, in linux do:
dd if=/dev/zero of=system.img bs=1000000 count=200
mkfs.ext2 system.img
make it a ext2 file type, the 2.6.32 kernel only accepts ext2 files, for me is better I think because ext3 and ext4 have journaling that implies a lot of reads and writes, reducing the life of the sdcard
then mount the system.img file in linux
mount -t ext2 -o loop system.img /some_dir
copy the files of the rom to /some_dir, adjust the files permissions like you see in updater-script
unmount /some_dir
and copy the 3 files to “/sdcrad2/multiboot/rom2”
create a empty file in external sd card like “/sdcard2/rom2”
install the multi-boot kernel, boot in fastboot (vol up+home+power) then execute in command line
fastboot flash boot boot-multi.img
fastboot reboot
that it,
in the case the rom doesn't boot, remove battery and sdcard, power on and it will boot from rom1 (phone internal memory)
roms that work with this kernel, tested in one S7-105
-- stock rom, Indonesia 2.2.2
-- froyofusion rom, by joelian good rom
-- trizet v03, by tri-zet
to do next:
--maybe port cm7 to S7
questions:
ask, I will reply.
https://www.dropbox.com/s/697ye5exf6386nw/multi-boot.zip
hal_2000
Hi,
do you know if CM9 oder CM10 will function? Which kernel is used by CM9 or CM10?
Hi, i'm not sure but all the cm9 and cm10 roms i have lookup use kernel at least 2.6.35 or 2.6.38, this dual-boot kernel is 2.6.32 so probally will not work, but if you have a more recent kernel for huawei s7, give it to me and i will add that function and see it it works.
Note: i was wrong, last night found a cm10 version in a russian forum that uses kernel 2.6.32-ideos with some add on.
I also want in the future to compile a more recent kernel, but write now i'm learning how i can port roms
Hal_2000
hal_2000 said:
Hi, i'm not sure but all the cm9 and cm10 roms i have lookup use kernel at least 2.6.35 or 2.6.38, this dual-boot kernel is 2.6.32 so probally will not work, but if you have a more recent kernel for huawei s7, give it to me and i will add that function and see it it works.
Note: i was wrong, last night found a cm10 version in a russian forum that uses kernel 2.6.32-ideos with some add on.
I also want in the future to compile a more recent kernel, but write now i'm learning how i can port roms
Hal_2000
Click to expand...
Click to collapse
Hello hal_2000
Would u share ur initramfs source?
Im try to port to my p1000 from original thread (irfanbagus) but not luck.. exec command not running when i add to init.rc
Ps. Thats irfanbagus too give me info that u try to port to tab so i ask to u..
Thanks before
savie
Hi Savie, your kernel for galaxy y works great, thanks for that.
My initram source is the same as irfanbagus (dual-boot) , the multiboot its the same with a few more lines , you can extrat from the boot img file, here is the link
https://www.dropbox.com/s/0cxj05isqvswucp/boot-multi.img
If you need more help, ask.
p.s.
One question about arm toolchain, do you know wicht toolchain comes gcc version 4.4.0 ?
My S7-105 kernel is compile with that version, i have version 4.5.2 when i compile the kernel it boots but then reboot, i guess the modules are not compatible, i need to test with arm toolchain with gcc 4.4.0.
hal_2000
hal_2000 said:
Hi Savie, your kernel for galaxy y works great, thanks for that.
My initram source is the same as irfanbagus (dual-boot) , the multiboot its the same with a few more lines , you can extrat from the boot img file, here is the link
https://www.dropbox.com/s/0cxj05isqvswucp/boot-multi.img
If you need more help, ask.
p.s.
One question about arm toolchain, do you know wicht toolchain comes gcc version 4.4.0 ?
My S7-105 kernel is compile with that version, i have version 4.5.2 when i compile the kernel it boots but then reboot, i guess the modules are not compatible, i need to test with arm toolchain with gcc 4.4.0.
hal_2000
Click to expand...
Click to collapse
Thank you hal_2000 will check later im on phone mode this week..
Thats make me confuse in young only follow irfanbagus and working but when try to gtab p1000 with same procedure its nothing happen..
Still follow samsung source recomended use arm-2009q3-none-linux-gnueabi gcc4.4.1 coz so far only that can make my kernel booting..
I think something not good in my initamfs coz cant execution 'exec' command and i dont know why..
Hi Savie, lets see if i can help you, if exec dont run, check if you have busybox in /sbin, check the version and permission, also check type of cpu, best bet is copy busybox that is working on device, irfanbagus dual-boot as busybox for a arm v6 cpu, my mutlboot as busybox for arm v7 cpu, diferent types of devices uses diferent type of cpu, busybox need to be compatible with type of cpu.
Hope it helps, try to connect to device with adb as soon it boot up, and check what is executed.
good luck, need more help ask.
hal_2000
hal_2000 said:
Hi Savie, lets see if i can help you, if exec dont run, check if you have busybox in /sbin, check the version and permission, also check type of cpu, best bet is copy busybox that is working on device, irfanbagus dual-boot as busybox for a arm v6 cpu, my mutlboot as busybox for arm v7 cpu, diferent types of devices uses diferent type of cpu, busybox need to be compatible with type of cpu.
Hope it helps, try to connect to device with adb as soon it boot up, and check what is executed.
good luck, need more help ask.
hal_2000
Click to expand...
Click to collapse
Mmm i see i use irfanbagus busybox,., thats maybe the problem,., i will try next week coz my laptop still repair,., thank you for ur advice friend,.,

[Q] Making android kernel compatible with ubuntu?

Hello.
I noticed that kernels for ubuntu seem a bit old. I was thinking that maybe someone could modify cm10(or 3.0.21) kernel to support ubuntu/teach me how to add ubuntu support to android kernel. I did a bit googling, but results were filled with those loop ubuntus, not native.
I am also thankful if someone can point me to right direction.
(Trevd, i am counting on you )
Sent from my GT-I9100 using xda app-developers app
julle131 said:
Hello.
I noticed that kernels for ubuntu seem a bit old. I was thinking that maybe someone could modify cm10(or 3.0.21) kernel to support ubuntu/teach me how to add ubuntu support to android kernel. I did a bit googling, but results were filled with those loop ubuntus, not native.
I am also thankful if someone can point me to right direction.
(Trevd, i am counting on you )
Sent from my GT-I9100 using xda app-developers app
Click to expand...
Click to collapse
Well as seeing as you ask so nicely, I'm far from an expert however especially in the ways of ubuntu kernels, A1Pha got the original ubuntu image going but ubuntu have done an official arm release now so that changes things ( probably ) I can only point you in the direction of more, hopefully better resources.
The Blaze Tablet seems to have have been the Development Platform for the G9 so you'll probably get some purchase from following that route.
Here's some links for you.
http://omappedia.org/wiki/Source_Trees
http://omappedia.org/wiki/OMAP_Ubuntu_Main
My days on the G9 could well be numbered, I foolishly overwrote the bootlloader in one of my more Laissez-faire moments. meh! That's what I get for having a caliver approach to consumer electronics.
trevd said:
Well as seeing as you ask so nicely, I'm far from an expert however especially in the ways of ubuntu kernels, A1Pha got the original ubuntu image going but ubuntu have done an official arm release now so that changes things ( probably ) I can only point you in the direction of more, hopefully better resources.
The Blaze Tablet seems to have have been the Development Platform for the G9 so you'll probably get some purchase from following that route.
Here's some links for you.
http://omappedia.org/wiki/Source_Trees
http://omappedia.org/wiki/OMAP_Ubuntu_Main
My days on the G9 could well be numbered, I foolishly overwrote the bootlloader in one of my more Laissez-faire moments. meh! That's what I get for having a caliver approach to consumer electronics.
Click to expand...
Click to collapse
Thanks for answering. I'm out of thanks for today, so i press that button when i have more.
Now to business.
After doing some research, and asking few questions on #ubuntu-arm, this seems a bit hard project because there are no sources. There is no source for CM10 kernel(Or i can't read the github) nor Ubuntu kernel, so i can't just apply tweaks of them both to archos 3.0.8+ kernel. A way to unpack the zimage from ubuntu kernel and cm10 kernel would help, but atleast the script i tried couldn't unpack the zimage of ubuntu. Lets see what i figure out next.
julle131 said:
After doing some research, and asking few questions on #ubuntu-arm, this seems a bit hard project because there are no sources. There is no source for CM10 kernel(Or i can't read the github) nor Ubuntu kernel, so i can't just apply tweaks of them both to archos 3.0.8+ kernel. A way to unpack the zimage from ubuntu kernel and cm10 kernel would help, but atleast the script i tried couldn't unpack the zimage of ubuntu. Lets see what i figure out next.
Click to expand...
Click to collapse
Not sure what you mean by the CM10 Kernel, I don't think CM have any different settings from what is required by JellyBean itself. Plus the Kernel we originally used for the Archos CM10 is an ICS kernel with IPV6 Mangling adding, we got away with that because the Init.rc used to boot the Rom is a mashed up ICS Version. After thinking about it let me add the bit of knowledge I think I do know.
The kernels on arm platforms, to paraphrase Linus Tovalds was a complete mess, something which Linaro are working hard to fix, and are unique to the SOC vendor.
You need to get the Archos specific sources which are located on GItorious @ git://gitorious.org/archos/archos-gpl-gen9-kernel-ics.git, clone the 3.0.21 branch, in the directory there's a file called linux.config.g9 ( or something similar ). that's the config file. I just copy that to .config, change the settings I need to (if any) compile. That should setup an archos kernel which should run android
Code:
git clone git://gitorious.org/archos/archos-gpl-gen9-kernel-ics.git -b linux-icc-3.0.21
cp linux.config.g9 .config
make menuconfig
make -j8
Like I say I was thinking about it and the main difference between a standard kernel and android kernels is the binder, the switch class support and the log driver ( this is things I've noticed when building an android x86 Kernel )
When doing menuconfig the Android Driver settings are found in devices/staging/android, I suppose a place to start is to turn them off then switch on SYSV IPC ( i think that's in genral kernel settings ), from what I understand this is the sysv binder and should create a node at /dev/binder, standard kernel switch class support is set in Device Drivers ( Switch Class Support ).
I'm not sure about logging , It basically breaks down like this. The Android Kernel has a specific logging driver this creates device node at /dev/log/main /dev/log/system etc , Ubunutu ( on x86 at least ) has a single log device node which is created at /dev/log, I don't know weather this is something created by the kernel or something created in userspace by syslogd or something similar. I also don't know whether the Android Logs are compatible with ubuntu, or the android binder for that matter. I'll try and boot my x86 ubuntu with my Android Kernel later on , I suspect It won't work but speculation is one thing, knowing for sure is better
With regards to unpacking the zImage, I'll say this , Not all zImages are created equal , I notice you are using a samsung mobile ( galaxy s, if I'm not mistaken ) , so you're probably using the samsung zImage as a frame of reference... How I understand it Samsung pack the initramfs into the zImage, similar, but not same to the way android AOSP pack a boot.img. Samsung however do this in kernel itself, this is why Samsung zImage a) can be unpacked and b) require different tools than the standard tools used for unpacking boot images which work on just about every other device ( expect Archos of course ) . So you generally don't unpack zImage because It's just a binary blob that contains all the kernel functions, this is in the assembly language of whatever architecture you built your kernel for.
Given all that info you should now be able to build a working archos android kernel ( I assume you using linux etc and your not stupid ) , You now need the Ubuntu side of things..... Have you asked in the Archos G9 Ubuntu Development thread, they may be able to shed light on the changes to the config you need to make or alternativaly you could download the Ubuntu for Arm OMAP Image from https://wiki.ubuntu.com/ARM/OMAP , unpack/mount it and see if there is the kernel .config file, It is normally packaged somehow with the distro for example x86 lubuntu has .configs in /lib/modules/3.5.0-19-generic/build/.config, the arm distro may have something similar. Then it's a case of see what configuration options are different, You can't just copy the config whole sale however because there are Archos Specific board settings in the Archos Kernel. Failing that the kernel sources will be somewhere as it is a legal requirement under the GPL and Cannonical are compliant, at least I've not read anywhere to the contrary.
This is just really how I understand it at the minute, Some of it could be inaccurate or just plain BS but hopefully should give you something to run with, there is a bit of a barrier to entry on the whole subject kernels/android kernels as the information is in little pieces all over the internet, when I was first getting to grips with it, it did feel like a bit a of treasure hunt for knowledge. Also knowing the Keywords to search for in the first place can be difficult It sounds quite an interesting challenge, shame about my brick!!
If you want to understand more about the kernel generally ( and lets face it, who doesn't ) then Linux Kernel in a nutshell ( http://www.kroah.com/lkn/ ) is a free e-book written by one of the kernel maintainers a should be a useful reference.
JUST IN CASE: Don't forget prefixing a filename with a fullstop (.) makes that file hidden and won't display in normal file listings, using ls -a to display all file in a directory
The CM10 kernel i was refering to is the CM10 in dev section. I thought there were other "hacks" than just a IPv6 addon, and that's why i counsidered it as a totally diferent kernel.
I think i need to download the kernel source as soons as i get to my laptop then. I have some experience on it, because i have made a few builds of B2G, but that was mainly just: download source, choose the device and build.
For the differences, that is what i consider as the hardest part. Merging them and then getting the kernel to build might take some time. Luckily I have plenty of time.
For the zImage, I was trying to unpack the ubuntu zImage one, because I'm working on archos device . Unpacking Galaxy S2 kernel wouldn't make any sense. atleast to me . I was trying to use a general unpacker, but it didn't work, just as you wrote.
For the OS & Knowledge, i am using linux indeed. Backbox, which is based on ubuntu 11.04 to be precise. I didn't even think about unpacking the IMG file... Maybe i am stupid . I think i am able to mount it to folder, so it is easy to explore.
I think I know the basics, and folders starting with . is part of them
Lets see what happens the next time i pick my laptop, boot it and start fooling around :good:.
Edit: Well, after the menuconfig, i can't fand anything related to ipv6 mangling. There was a file on the root of cloned folder called linux.config, but it was the default config for kernel, not archos specific.
julle131 said:
The CM10 kernel i was refering to is the CM10 in dev section. I thought there were other "hacks" than just a IPv6 addon, and that's why i counsidered it as a totally diferent kernel.
I think i need to download the kernel source as soons as i get to my laptop then. I have some experience on it, because i have made a few builds of B2G, but that was mainly just: download source, choose the device and build.
For the differences, that is what i consider as the hardest part. Merging them and then getting the kernel to build might take some time. Luckily I have plenty of time.
For the zImage, I was trying to unpack the ubuntu zImage one, because I'm working on archos device . Unpacking Galaxy S2 kernel wouldn't make any sense. atleast to me . I was trying to use a general unpacker, but it didn't work, just as you wrote.
For the OS & Knowledge, i am using linux indeed. Backbox, which is based on ubuntu 11.04 to be precise. I didn't even think about unpacking the IMG file... Maybe i am stupid . I think i am able to mount it to folder, so it is easy to explore.
I think I know the basics, and folders starting with . is part of them
Lets see what happens the next time i pick my laptop, boot it and start fooling around :good:.
Click to expand...
Click to collapse
The 3.0.31 Kernel started by Quallenauge in the dev section is an Highly Expirimental effort. this was started before Archos released the 3.0.21 Kernel with their 4.0.2x roms which covered what was trying to be achieved by this development, It's best left alone unless you really want to get you're hands dirty with device bring up code, There's a version on my github which I think boots the G9A101's as well as the 80's......... anyway
You shouldn't have to do any merging of code, more a case of selecting the right options in the config, Thinking back, I've have booted Ubuntu using mainline kernel sources from kernel.org that I built myself so that kinda of suggests there's nothing special about ubuntu's kernels per se' .
Your main problem won't be with building , more booting, It should compile fine but I wouldn't be surprised to be looking at a blank screen then your problem is monitoring the output....There's an option in the archos config to get early debug output over USB, I think there's some modification you need to make to the USB Cable, Quallenauge knows about that, he did it , I was ghetto and used adb for my debugging. which can be probably made to work when booting ubuntu but I'd go the correct route , I just have my wierd ways of doing things.
Another thing that spring to mind with android "specialisms". Android runs /init in the root directory ubuntu normally likes /sbin/init. This is something that is specified again in the kernel config using the kernel cmdline option , just something to be aware of... If anything else springs to mind I'll let you know.
So I suppose as you say, Just fool around and see what happens. :good:
I think I know the basics, and folders starting with . is part of them
Click to expand...
Click to collapse
Just Checking LOL.
trevd said:
The 3.0.31 Kernel started by Quallenauge in the dev section is an Highly Expirimental effort. this was started before Archos released the 3.0.21 Kernel with their 4.0.2x roms which covered what was trying to be achieved by this development, It's best left alone unless you really want to get you're hands dirty with device bring up code, There's a version on my github which I think boots the G9A101's as well as the 80's......... anyway
You shouldn't have to do any merging of code, more a case of selecting the right options in the config, Thinking back, I've have booted Ubuntu using mainline kernel sources from kernel.org that I built myself so that kinda of suggests there's nothing special about ubuntu's kernels per se' .
Your main problem won't be with building , more booting, It should compile fine but I wouldn't be surprised to be looking at a blank screen then your problem is monitoring the output....There's an option in the archos config to get early debug output over USB, I think there's some modification you need to make to the USB Cable, Quallenauge knows about that, he did it , I was ghetto and used adb for my debugging. which can be probably made to work when booting ubuntu but I'd go the correct route , I just have my wierd ways of doing things.
Another thing that spring to mind with android "specialisms". Android runs /init in the root directory ubuntu normally likes /sbin/init. This is something that is specified again in the kernel config using the kernel cmdline option , just something to be aware of... If anything else springs to mind I'll let you know.
So I suppose as you say, Just fool around and see what happens. :good:
Just Checking LOL.
Click to expand...
Click to collapse
At the moment i'm trying to find the archos config file. there is a defcon file, which looks like a config file in arch/arm/configs called android_archos_defcon. It sounds correct. Next thing for me to do is to find the right place to put it. I guess the root of the project is correct, and rename it to .config and linux.config. After building I need to test it. [email protected] or 4.0.26 root will suffice, right? I also need to figure out if there is a way to force adb on through kernel. And the IPv6 Mangling is nowhere to be found
julle131 said:
At the moment i'm trying to find the archos config file. there is a defcon file, which looks like a config file in arch/arm/configs called android_archos_defcon. It sounds correct. Next thing for me to do is to find the right place to put it. I guess the root of the project is correct, and rename it to .config and linux.config. After building I need to test it. [email protected] or 4.0.26 root will suffice, right? I also need to figure out if there is a way to force adb on through kernel. And the IPv6 Mangling is nowhere to be found
Click to expand...
Click to collapse
The config file " linux.config.g9" should be in the root kernel directory, if it's not there then your on the wrong branch and you need to checkout the 3.0.21 branch explicitly using
Code:
git checkout linux-ics-3.0.21
If your using ICS builds to check with, which I probably recommend then don't worry about IPV6 managling , I don't think It's named that exactly but something like that!, For reference , I've just had a check the option is "Networking support/Networking options/Network packet filtering framework (Netfilter)/IPv6: Netfilter Configuration /Packet Managling"
You have to look pretty deep on some of these settings
As a test. Boot with a normal kernel configure your android debug options , then swap the kernels out , that should give you adb while booting, when I've tried to force adb on an uncofigured rom it got a bit confused with itself
If your struggling a bit with git, http://gitimmersion.com/ has a great tutorial you can step through in about 10 minutes to get the basics and get it configured a bit better
---------- Post added at 09:31 PM ---------- Previous post was at 09:20 PM ----------
EDIT: Make sure you building for arm as well
Code:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
Reference: http://source.android.com/source/building-kernels.html
Huuuh i'm late... most had been pointed out already.
Just to add this...
As you might know Android is put on top of a Linux base system more or less.
In most cases a kernel built for Android will suit most linux distributions as well.
Trevd already highlighted the main aspects.
The other way round is more evil... unmodified linux kernel (or a kernel set up to run well with Ubuntu) will refuse to boot up an Android system.
Some addon's on the default config may be nice though, depends on how the whole rootfs stuff is arranged in the end and if your system heavily depends on udev and stuff.
Keep track of the startup scripts at /etc/init.d.
It's good to have an extensive look at the /etc directory of your distribution image... to much to point at here.
The kernel may handle to boot into a lot of different scenarios.
On the Archos tablets initramfs plays an important role.
You may even tweak this jumpboard and locate your final rootfs on an USB stick if you like.
It's all about handling mounts, chroot and similar during start up.
There are limits on the Archos with stock loader though, because you might need to influence the kernel command line at a certain point.
I'm aware that this is not very specific but there are so many ways to set things up.
Just follow the useful links trevd gave already... these are good starting points :fingers-crossed:
...and just to add this:
I don't speak of fine tune the system in the end. This is another story and sometimes very hard stuff, where you may need to reverse engineer some proprietary libs or executables.
Best regards,
scholbert
Well, I have now built my first kernel... And it was 3.0.8+... I think I downloaded wrong source . I have ipv6 mangling enabled on it, so I should try it with CM10 now. I think I should search the 3.0.21 source, and download it.
Edit: Well, my 3.0.8+ Kernel image can boot CM10, AOKP and 4.0.7 roms... Now i have to figure out why i downloaded 3.0.8+ kernel and not 3.0.21 kernel. Maybe i had wrong branch.
Edit:Yep, wrong branch. I did realize when i downloaded the srce that it informed that the branch does not exists. i had icc instead of ics
Do you have any tips where i can find info about kernel modifications, like adding governors? I tried adding few, but all i got was bunch of errors. I propably forgot something.
Sent from my GT-I9100 using xda app-developers app
mer
Still working on this? I have been using Mer kernels with Ubuntu and they seem to be working fine.
Archos Gen9 Mer Adaptation Kernel --> http://gitorious.org/archos-gen9-mer-adaptation-kernel/
Archos Gen9 Mer Adaptation Kernel ICS --> https://gitorious.org/archos-gen9-mer-adaptation-kernel/archos-gen9-mer-adaptation-kernel-ics
I am using the 3.08 kernel from a Plasma Active distribution. --> http://share.basyskom.com/plasma-active/archos_gen9.html
Just mount the data partion in linux and convert it to ext4, write the linux image to it. Then cp the files from mer /boot /lib/modules to new rom, modules file in etc to load your modules, modify fstab, cp mtev.so to /usr/lib/xorg/modules/input, change or add a few other files.
/etc
modules
Code:
cypress_tma340
tr16c0_i2c
hso
compat
cfg80211
mac80211
wl12xx
wl12xx_sdio
cpt_i2c_tsp
pixcir_i2c_tsp
hci_uart
fstab
Code:
/swap none swap sw 0 0
/dev/mmcblk0p2 /media/system ext4 ro,noauto,users,uid=1000,gid=0,noatime 0 0
/dev/mmcblk0p4 /media/data ext4 ro,noauto,users,uid=1000,gid=0,noatime 0 0
none /proc proc rw,relatime,noexec,nosuid,nodev 0 0
none /sys sysfs rw,relatime,noexec,nosuid,nodev 0 0
none /dev devtmpfs rw,mode=0755 0 0
none /dev/pts devpts rw,relatime,gid=5,mode=0620,ptmxmode=0666 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
binfmt_misc /proc/sys/fs/binfmt_misc rw,noexec,nosuid,nodev 0 0
none /sys/fs/fuse/connections fusectl rw 0 0
none /sys/kernel/debug debugfs rw 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
none /dev/bus/usb usbdevfs defaults 0 0
none /sys/kernel/security securityfs (rw) 0 0
/etc/udev/rules.d
70-persistent-net.rules
Code:
# net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:28:90:64:31", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
# USB device 0x9710:0x7830 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:3b:04:02:6c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
70-touchscreen.rules
Code:
KERNEL=="event*", SUBSYSTEM=="input", SUBSYSTEMS=="input", ATTRS{name}=="cypress-tma340", SYMLINK="input/touchscreen"
/usr/share/X11/xorg.conf.d
Add to the end of 10-evdev.conf, cypress-tma340 is the touchscreen on my G9.
Code:
Section "InputClass"
Identifier "Archos Touchscreen"
MatchProduct "cypress-tma340"
Option "Ignore" "off"
Option "CorePointer" "on"
Driver "mtev""
EndSection
openSUSE --> http://en.opensuse.org/openSUSE:eek:penSUSE_on_your_ARM_board
Ubuntu --> https://wiki.ubuntu.com/ARM/OMAP
Kubuntu 12.10 --> http://cdimage.ubuntu.com/kubuntu/releases/12.10/release/kubuntu-12.10-desktop-armhf+omap4.img
Please i am using Backbox Linux Distribution (Dual booted ) wit my windows 7....... now i wish to use a dail up connection on my modem !! PLEASE HOW DO I GO ABOUT IT ...
Sent from my L3 using XDA Free mobile app

[Q] How does android boot and how to change the init proccess?

I really want to run pure linux on my android based device (please, no chroot, etc. suggestions) and I want to fully understand how my device boots. I'm trying to dig into the recovery and boot partition, without success (I figured out boot.img, but I can't open recovery.img) What do you suggest me to read?
Also, I saw that there is a second kernel inside recovery.img. is that right? If yes, what happens? When the real kernel is loaded? I want to make the android init to mount an img from the sdcard and execute /bin/init in it, in order to boot my linux system. Should I alter the ramdisk (hence the boot partition) or the recovery?
I also posted this to stackexchange [1] but got no helpful response.
Thank you.
bump

Categories

Resources