[Q] About kernal ? - Samsung Galaxy Ace Plus S7500

Hello XDA folks,
I request you to give me complete explaination regarding KERNAL.. Hope u all will help me. Thank you.

Muzaffar_muttayib said:
Hello XDA folks,
I request you to give me complete explaination regarding KERNAL.. Hope u all will help me. Thank you.
Click to expand...
Click to collapse
its kernel not kernal
Think of the kernel as an interface layer between the hardware and software on your device. The kernel decides when things happen, such as the LED indicator gets lit. An application sends a request to the operating system to blink the LED. The operating system then sends the request to the kernel, which makes the light flash for the amount of time requested by the OS.
What sounds like a round-about way to get things done is also what makes the system so scalable and robust. Application developers only have to code in a way the operating system understands and the kernel makes it work on the hardware. This also keeps the application running in it’s own user-space and separate from the kernel. That means when you run the latest uber-cool app that wasn’t designed for your particular OS version, or is still very beta and it crashes, the kernel gives you the option to Force Close the application and the kernel can run untouched.
In a standard Android ROM (we will leave developer images and the like for another discussion) the kernel is bundled along with a set of instructions that tell the device how to load the kernel and the OS during boot. This is the boot.img that you see inside a zipped ROM that you're not able to easily open. The device knows to extract this image to internal memory (the ramdisk) and follow a series of scripts (init scripts) to load the kernel and then the other portions of the OS.
source

Related

[Q] ROM's, Kernals, Recovery's and ROOTING?

Hi Fellow old and New Devs,
The title suggests it all. I have four questions that I think ALL newbies want to understand. I would try and explain them, but as I am just coming out of the newbie stage, I'm sure people would prefer an answer from a experianced Dev.
When answering a question please put the Question Number. Feel free to answer only one or two of the questions, I'm sure other people will cover your missing fields of knowledge.
Here they are:
1. What is rooting? Can I root my device (HTC Buzz Wildfire) and keep the stock interface? Will I loose my data?
2. What do all these Dev's mean by Recovery? What are they, why are they needed?
3. What is a ROM? Do I need to be rooted for a custom ROM? How can you trust them? Will I loose my data when installing a custom ROM?
4. What is a Kernal? How are they Different to ROM's? Should I change from the stock Kernal?
I know this is a tall order and you could write a book on the topic, but please could you write a short (a couple of sentaces will do) paragraph on each question you choose to do.
When we get enough understandable answers I will edit this post publish the Final answers for other newbies in the future.
Also feel free to enter the poll! As this is a Dev site I presume one of the options will have the most votes but we will see....
Cheers for any contribution in advanced.
th3ant
th3ant said:
Hi Fellow old and New Devs,
The title suggests it all. I have four questions that I think ALL newbies want to understand. I would try and explain them, but as I am just coming out of the newbie stage, I'm sure people would prefer an answer from a experianced Dev.
When answering a question please put the Question Number. Feel free to answer only one or two of the questions, I'm sure other people will cover your missing fields of knowledge.
Here they are:
1. What is rooting? Can I root my device (HTC Buzz Wildfire) and keep the stock interface? Will I loose my data?
2. What do all these Dev's mean by Recovery? What are they, why are they needed?
3. What is a ROM? Do I need to be rooted for a custom ROM? How can you trust them? Will I loose my data when installing a custom ROM?
4. What is a Kernal? How are they Different to ROM's? Should I change from the stock Kernal?
I know this is a tall order and you could write a book on the topic, but please could you write a short (a couple of sentaces will do) paragraph on each question you choose to do.
When we get enough understandable answers I will edit this post publish the Final answers for other newbies in the future.
Also feel free to enter the poll! As this is a Dev site I presume one of the options will have the most votes but we will see....
Cheers for any contribution in advanced.
th3ant
Click to expand...
Click to collapse
Okay, from the best of my understanding, here we go:
1: Rooting. To understand this, we must consider a computer, running linux, windows, or mac. In windows, the "Administrator" account is similar to the root account in linux and mac. Basically if you have root privileges in a system, you can modify every part of the filesystem, as well as perform any tasks the system is equipped to handle. Basically achieving root on an android device means that you can unlock the ability to flash roms, mod, and otherwise hack your device any which way you like. Nearly every model of android device has been rooted, so in most cases, yes you can root XXXXX phone. Also, since you're just gaining privileges, you can root without losing any data, apps, or settings.
2: Recovery. This is a long standing concept in SoC/Embedded device hacking. Basically it is a minimal operating system that performs some very basic, but very important tasks. The reason for it is so that you can write to the necessary areas on the NAND, which would be "busy" while android is booted. This offers a way to access the necessary partitions and write data to them while the data is not being accessed. It's also useful for backing up your NAND. Hence the name "nandroid."
3: ROM. By definition, it means "Read Only Memory." This is a chip on the board. ROM has evolved over the years. It started out as a chip that was sensitive to UV light. The earliest ROMs were "flashed" to a device by stenciling out the pathways and exposing the chip to UV radiation. Nowadays, we have fancy EEPROMs instead, which stands for Electronically Erasable Programmable Read Only Memory. This means that you can "flash" the chip by means of software, namely via Recovery mode in our case. Different ROMs have different features. They are all variations on source code made available by AOSP, or the android open source project. Some projects have their own code tracking, such as CyanogenMod. In most devices, you must be rooted to be able to install a ROM, however it is not explicitly necessary. A bit vague, I suppose. Specifically the tablet I own, the WITS a81e, you can flash a ROM to it just by putting the correct files on the TF card. This is not very common with phones, however. Flashing any rom that is not just a newer version of your current ROM will require a full format. For instance, if you have cyanogenmod and switch to a Sense or Blur ROM, you must format, but if you update from CM6 to CM6.1 you will not need to wipe. How can you trust ROM's? Well the best way to know is to either roll your own, or go with CyanogenMod, as their source is freely and easily available for scrutiny and improvement, along with a nice changelog tracker.
4. Kernels. A kernel is basically the most low level part of an operating system. It interfaces directly with the processor and provides all instruction for operation. Linux is technically not an operating system, it's a Kernel. The different distributions have the Linux kernel, and use their own different User Interfaces. Different kernels in android devices can allow you to overclock. There are many choices in kernels, and the features they offer. Some features are BFS/CFS which is the priority scheduling of processes. Some kernels allow you to charge your battery differently and conserve life. These are often called battery kernels. Also, some kernels unlock extra multitouch points in certain devices. There are different versions of the linux kernel, with many improvements with each iteration. Currently, the latest kernel available that I know of for android devices is 2.6.37. The froyo default kernel was a 2.6.32. I wish I knew a bit more about kernels, however this is about all I know. Perhaps someone could help us out and expand on this a bit?
Brilliant answer not too complicated... let's see what others say....
Sent from my HTC Wildfire using XDA App
What he said...
Pyroboy1080 well said...
That pretty much covers it.
thx for the infos..
Agreed. Thanks for using the poll!
nothing to add on that, as we used to say "merci beaucoup"
Can't ROM
Gotta be something stupid......
Can't install 2.2 or 2.3. Tried two different ODIN flashers. When I do the reset I do not get the triangel with downloading in the center. I'm rooted, Have ROM Manager, Superuser, Root Explorer, Super Manager, I'm unlocked.
I have Android SDK, Congnitive 4.1, NPS, Samsung Kies,SGH I897 USB Drivers, What else? I think I have it covered. In any case I never get the download . Even if I do a "ROM Manager Install fron SD Card, the result is a screen, blue at top and yellow at bottom with the last line saying "Installing Multi- CSC. I can let it run all night, no change in ROM. Does the Captivate sold by ATT have some kind of block or filter keeping me from updating?
Current firmware is 2.1 update 1, baseband I897UCJH7, Kernel 2.6.29 [email protected] #2, Build ECLAIR.UCJH7
Thanks
To better answer your question, I first need to know what type of device you're using...
fxstsb said:
Gotta be something stupid......
Can't install 2.2 or 2.3. Tried two different ODIN flashers. When I do the reset I do not get the triangel with downloading in the center. I'm rooted, Have ROM Manager, Superuser, Root Explorer, Super Manager, I'm unlocked.
I have Android SDK, Congnitive 4.1, NPS, Samsung Kies,SGH I897 USB Drivers, What else? I think I have it covered. In any case I never get the download . Even if I do a "ROM Manager Install fron SD Card, the result is a screen, blue at top and yellow at bottom with the last line saying "Installing Multi- CSC. I can let it run all night, no change in ROM. Does the Captivate sold by ATT have some kind of block or filter keeping me from updating?
Current firmware is 2.1 update 1, baseband I897UCJH7, Kernel 2.6.29 [email protected] #2, Build ECLAIR.UCJH7
Thanks
Click to expand...
Click to collapse
didn't know where to ask this?
hello, everyone..
i have some questions, i'm hoping some of you can anwser.
I used unrevoked to root my htc desire. after that, I used alpharev to gain s-off.
everything went fine, i got the joker, the white screen that lets me pick different options..
now Í tried all those options, nothing works.
I've been searching all night for a solution, and it seems my recovery boot and rom are missing? and what I came across is installing ANDROID SDK tools, and then run fastboot to recover an image. So I installed SDK tools, but fastboot doesn't run, it says some .dll driver is missing. in the platform-tools map is that .dll driver, should i move it?
Can someone get me a step by step tutorial on how to make my desire work again? Im kind of a noob, all I needed was to make a screenshot..
Thanks in advance, it would be appreciated so much..
Pyroboy, I'm using a Samsung Captivate. In another thread someone lead me to "All in One Toolbox". The other stuff is just stuff. That allowed me to install my ROM.

[Q] Why is it so much work to enable a rom for a device?

When I look at the architecture of Android I would expect that the updated Android version lives in all the layers exept for the Linux Kernal. This would mean that upgrading would be as easy as overwriting the layers with the new ones.
Only when the way the drivers are called is changed would a rom require an update on the Linux Kernal.
As it takes a long time to enable updated roms for devices either the architecture picture is incorrect (or the ideal picture that can't always apply due to technical restrictions) or my understanding of it is incorrect.
Could someone please explain?

[GT-P6210][KERNEL][UV/OC]garyd9's GT-P6210 kernel (updated 2012-01-23)

USE THIS AT YOUR OWN RISK. ​
I am not installing this kernel on your device. I've even gone out of my way to not give clear directions on how to install it yourself. If you decide to install this kernel, you are assuming all risks involved with it.
WARNING: THIS KERNEL IS NOT FULLY COMPATIBLE WITH THE LA3 FIRMWARE UPDATE. USING THIS KERNEL WITH THE UPDATED VERSION WILL RESULT IN WIRELESS ETHERNET BEING DISABLED.
Welcome to my custom compiled kernel for the Samsung Galaxy Tab 7.0 (wifi only.) This kernel will ONLY work for the GT-P6210 model.
The kernel should be compatible with any stock firmware or anything custom that's derived from the stock firmware. (I refuse to call it a ROM. It's not Read Only.)
First, proper credit should go to Entropy512 and his SGH-i777 kernels. It's from that work I was inspired to do this, and from that work where I'm pulling ideas and changes (when compatible.) I'd give some credit to Samsung, but they only bothered to post partial source code, and didn't even bother to post it with the proper config flags.
The idea behind this kernel is and will be to make the device more efficient. Longer battery life while running more smoothly is a Good Thing. I don't care about benchmark scores. In case someone missed that, I DO NOT CARE ABOUT BENCHMARK SCORES. Anyone can tweak a system to get a better benchmark, but that doesn't mean it'll actually work better. Concern #1 is and should always be stability. While some tweaks will be added that allow a user to make the system unstable, they won't be the default.
Differences from stock currently include:
Very slight speed increase in bootup, possibly in other areas
Support for init.d script parsing on bootup
A real busybox (with proper links) installed to /sbin (and therefore available to the system)
Undervolting and minor overclocking support (via SetCPU)
android ram_console support (useful for post-mortem of crashes.)
standard boot animation support
quicker charging with iphone chargers
Voltage and Clock Adjustments:
If you choose to tinker with the processor voltages and/or clock speeds, there will be no support in this thread. None. Yes, I'm using it myself, but I won't even support myself if I screw things up. If you find an issue with this kernel, BEFORE you post about it here, re-test after reverting all the voltage and clock speeds back to default. If it works with the default clocks/voltages, then don't waste your time or mine by posting about it to this thread. It's not supported. You can destroy your tablet by messing with the voltages and clocks.
You'll need a separate tool for voltage and clock adjustments. The one I see most frequently used is "SetCPU" (http://forum.xda-developers.com/showthread.php?t=505419.) I'm in no way affiliated with the author of that tool. You should be warned that SetCPU does not seem to be fully compatible with our tablets: There seems to be no way to bring up the menu in the program. If the program is "honeycomb compatible", this is likely due to the author making assumptions about screen dimensions on tablet devices (fairly common error.) Don't tell me about it. It's not my program.
ToDo:
Find source for the ethernet module and replace it (which will also allow adding more generic optimizations to the kernel.)
ethernet adhoc support (not really kernel specific, but not possible without the ethernet module...)
Figure out what samsung changed in the LA3 kernel (and didn't publish) so I can get the kernel working with the firmware update.
Known Issues:
Probably not compatible with stock firmware updates. (won't fix.)
NOT COMPATIBLE WITH LA3 FIRMWARE UPDATE!!
Flashing Instructions:
This is being released as an installable "update.zip" style installer. Stick the .zip file on your device, reboot into recovery, and install it from there. If this isn't enough information, please search and read the forums before changing your device kernel. (Flashing a .zip in recovery is a very basic skill that should be mastered early.)
Firmware Developers:
If you want to use it, please link to this thread and give clear indication of which version of the kernel you are including.
Legal:
This is based on the linux kernel, and therefore I'm including links to the modified source for the kernel (https://github.com/garyd9/linux_kernel_GT-P6210) and contents of initramfs (https://github.com/garyd9/initramfs_normal_GT-P6210)
PLEASE DO NOT MIRROR THE DOWNLOADS. IF YOU WANT TO REFERENCE THE KERNELS, PLEASE ONLY LINK TO THIS THREAD.
Change Log
20120128:
Support for iphone charger detection - pull up to 750mA from detected iphone chargers (1500mA from the samsung charger, and 500mA from everything else including a computer USB port.)
Testing USB "high current" charging. This is currently not enabled by default (and until I'm happy that it's stable and safe, I won't be documenting it.)
20120123: (actually posted on the 24th)
Minor adjustments related to the MMC and SD card interfaces (which includes the wifi interface)
Starting to pull in mainline kernel fixes (including fixes for some kernel panics/reboots.)
20120107:
disable mali state tracking. Doesn't seem to have any actual impact, but should reduce a small amount of overhead
add support for "reboot bootloader." Actually, the support was already there if the command sent to reboot was "download", but several android tools (such as "Quick Boot") want to send the command as "bootloader." This is only useful if you have a desire to reboot your device into "Download Mode" (aka "ODIN mode")
Replaced samsung j4fs.ko binary module with one built from sources. No impact other than easier to maintain.
20120105:
added standard bootanimation support (if bootanimation.zip is found in /system/media, it's used. Otherwise, the default samsung animation is used. Standard samsung music is played either way.)
It's now possible to tweak the conservative governor sampling rate down to 50,000 (default is still 100,000.) If done, this may make the tablet more responsive in some situations (however, there may also be a negative impact to battery life - everything is a trade-off.)
20120102:
added android ram_console support. After installing this kernel, if you reboot/crash, it should leave a file in /proc called "last_kmsg" that will show the last several kernel messages from before the reboot/crash.
20120101:
undervolting and overclocking support (only up to 1.4GHz)
If you decide that you want to overclock or undervolt your tablet, you are 100% on your own. You can easily fry your tablet's processor by messing with voltages and clock speeds. If you have issues with this kernel, remove all overclocking and voltage adjustments before you even bother posting on this thread.
Use "SetCPU" to change voltages, clocks, and governors. SetCPU can be found on the market and on XDA at the following link: http://forum.xda-developers.com/showthread.php?t=505419 (I am in no way affiliated with the author of that program.)
20111231 (initial release):
build compatible with stock ar6000.ko module
init.d script support
busybox in /sbin
cleanup of kernel config to remove excess debugging (when possible)
Frequently Asked and Anticipated Questions
Q: Will this work with the GT-P6200, GT-P6200L, or SGH-T869?
A: No
Q: Can you make a kernel for the GT-P6200, GT-P6200L, or SGH-T869?
A: I probably could if I had the hardware to test with. Without a sample of hardware, I can't even begin to guess if what I've done already will work, or what it might take to make it work. If you really want me to do one of those devices, please feel free to send me one. (Making a recovery kernel is quite a bit easier as it doesn't have to work with the ethernet, sound, modem or any other drivers.)
Q: Why doesn't this kernel include CWM Recovery?
A: On the GT7+ devices, the recovery boots from a completely seperate partition than the normal boot. When the device boots recovery, the normal boot kernel isn't ever loaded (and vice versa.) Therefore, it doesn't make sense to package them together.
Q: Why is the sky blue?
A: Please refer to: http://www.sciencemadesimple.com/sky_blue.html
reserved for even more future use
Nice.... I installed just fine. Will Play around and let you know. Thanks further kernel....
Sent from my GT-P6210 using xda premium
Nice to see! Now have a good reason to install clockwork recovery! Thanks Gary!
PLEASE IGNORE THE SIGNATURE!
BEST DAMN PHONE BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
mike216 said:
PLEASE IGNORE THE SIGNATURE!
Click to expand...
Click to collapse
Wow, that actually made me laugh out loud. (My wife just ran in to ask if I was alright.) Thank you.
I've got a new and improved signature modified especially for you! Glad to have made you laugh! Happy New year Gary and fellow community members! I wish you and your families happiness and good health!
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
I know kernels can have an effect on colors. Gary does your kernel improve color and if not could you possible hack that part of the kernel to improve in future releases, thanks
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
I'm updating my tab in kies rite now before I flash this kernel. Your kernel should work fine? I know we can't update in kies once clockwork recovery is installed but I was wondering if kies will still recognize that I have a firmware update? I know that we have to odin back before we can update in kies but not sure about the other two questions, any help would be appreciated, thanks
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
mike216 said:
I'm updating my tab in kies rite now before I flash this kernel. Your kernel should work fine? I know we can't update in kies once clockwork recovery is installed but I was wondering if kies will still recognize that I have a firmware update?
Click to expand...
Click to collapse
Probably, but I didn't try it. Let us know how it works out.
Thanks Gary! Recovery is up and running and even made a nandroid. I located it to make sure everything worked (took a really long time). I see your framework zip wipes the dalvik cache and I was wondering if we have to wipe both caches before flashing the kernel? Thanks for your development! Much appreciated
Sent from my GT-P6210 using xda premium
Just flashed and it feels very smooth so far thanks!
Sent from my GT-P6210 using xda premium
mike216 said:
I see your framework zip wipes the dalvik cache and I was wondering if we have to wipe both caches before flashing the kernel?
Click to expand...
Click to collapse
What framework are you referring to? I try very hard to make the stuff I do "self contained", so if a cache should be wiped, it either gets wiped automatically, or there's a message displayed telling you to do it manually.
In context of this thread, there's no need to wipe any caches before installing this kernel.
Perhaps your question is in reference to something in another thread?
It was always a big suggested instruction on wiping both the cache and dalvik cache when installing roms and other things on my nexus s and vibrant so just thought it would be the same on my tablet
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
The framework zip I was talking about was the flashable zip you put together for the theme here in the development section.
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
mike216 said:
It was always a big suggested instruction on wiping both the cache and dalvik cache when installing roms and other things on my nexus s and vibrant so just thought it would be the same on my tablet
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!
Click to expand...
Click to collapse
A kernel is not a ROM, two totally different things and you don't need to wipe to install one. An easy explanation of the difference is a kernel is what runs the hardware (cpu, memory, etc.) and a ROM is just a UI (user interface).
With ROMs the general concensus on wiping is you need to do a full system wipe as well as wipe the dalvik cache if you are switching between ROMs, say from ROM A to ROM B but do not need to wipe if it's just an incremental update say ROM A to ROM A.1 unless advised to do so by the dev.
Awesome work Gary. If I had the knowledge to do this I would. Tab feels great.
Just glad to see some little development finally kicking off.
Sent from my ICS'd themed Galaxy Tab 7+
Glad you finally got things working.
Closed-source modules piss me off... Module versioning enforcement can get even some of the best devs (netarchy and I kept missing each other on IRC, it took a week before we figured out why his Infuse kernels wouldn't boot.)
Samsung is good about releasing kernel source in a timely fashion, but they SUCK at fixing broken source releases.
(Edit: WTF? They included BCM4330 source code in your release but NOT the Atheros 6k drivers?)
Edit: This might be useful, not sure - http://linuxwireless.org/en/users/Drivers/ath6kl
After lots of testing I do find its a little quicker! Don't know if its placebo but it sure feels fast. Nice work Gary. Recovery working great but the only odd thing I noticed was how long it took to do a nandroid backup. For a minute there I thought it froze up. All is good thought
BEST DAMN PHONE/TABLET BECAUSE WE HAVE THE BEST DAMN DEVELOPERS!

[DEV] Lenovo Ideapad A1 Kernel Development/Testing

Warning/disclaimer: This thread is intended for those who already know how to compile a kernel and have a working knowledge of Linux and its derivatives. There shouldn't be a great deal of risk involved, but you are responsible for what happens if you decide to follow these instructions.
Polite request: Please don't post replies to this thread that aren't of a technical nature directly related to compiling, modifying, or testing the kernel.
Introduction:
It appears as if Lenovo have released a buildable and bootable kernel source. I've done some preliminary testing with it. However, it would be better if we could get lots of people building and running the kernel, so that we can spot any remaining problems. This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Kernel source:
Get it from the Github repository at: https://github.com/gmarkall/lenovo_a1_07_kernel
Toolchain:
The Makefile seems to suggest that Codesourcery 2010q1 has been used by Lenovo to compile the kernel. Get it from https://sourcery.mentor.com/sgpp/lite/arm/portal/release1293, and make sure that the arm-none-linux-gnueabi-* binaries are on your path.
Building the source:
You may wish to edit the Makefile around line 192 to set CROSS_COMPILE=arm-none-linux-gnueabi- instead of the hardcoded path that is the default.
Then, to build the kernel:
Code:
make distclean
make a1_07_defconfig
make uImage
Booting the kernel
Normally, Android devices have two boot images that consist of a kernel and a ramdisk. One boot image is for the recovery, and the other is for the Android system. This makes it safe to flash a new boot image containing an untested kernel for the Android system, since the recovery can always boot up using the other boot image. However, the A1, by some bad design decision, only has one kernel - the bootloader always loads the same kernel, and just loads a different ramdisk depending whether it is to boot into recovery or system. As a result, it is not safe to flash a kernel to your A1 unless it's already been tested, since a bad kernel will make it impossible to boot from the internal memory, and you'll need a bootable SD card.
The solution to this problem is to make a bootable SD card for loading the kernel and ramdisk from. A bootable SD card consists of two partitions:
* A small bootable VFAT partition, that holds the X-Loader (MLO), U-Boot (u-boot.bin) and the kernel (uImage).
* An ext2 partition that holds the root filesystem.
In order to create a bootable SD card, use the omap3-mkcard.sh script that is attached below. To invoke it for making /dev/mmcblk0 a bootable SD card:
Code:
sudo omap3-mkcard.sh /dev/mmcblk0
You may need to hack the script if your SD card device isn't a /dev/mmcblk* one, since the script searches for partitions denoted "p1" and "p2" - this may need changing to just "1" and "2" respectively (thanks Xbdesign and Brancaleone for this).
This will create the necessary partitions, set the bootable flag, and format them. You will then need to mount the first partition (e.g. /dev/mmcblk0p1), and copy MLO and u-boot.bin to it (also linked below). Then, copy the uImage that you built from your kernel tree, which will be located in /arch/arm/boot. You can now unmount this partition.
Next, mount the second partition (e.g. /dev/mmcblk0p2). This will need to contain the same set of files that the initial ramdisk contains. There are two different ramdisks that you might want to use - one is from the Cyanogenmod 7 build, and the other one is from the stock system. Download links for these are also below. To extract the ramdisk, copy it onto the SD card second partition, then run the following commands (assuming the ramdisk is called ramdisk.ub):
Code:
dd if=ramdisk.ub of=ramdisk.img.gz bs=64 skip=1 # Strip off the U-Boot header
gunzip ramdisk.img.gz # Unzip
sudo cpio -idmv < ramdisk.img # Extract the cpio archive
Then, unmount the second partition of the SD card.
You should now be able to remove the SD card and insert it into your A1. Power down the A1 and power up again, and it should hopefully boot from the SD card and load your kernel. If it's booted from the SD card and loaded your kernel, you should be able to see that it was compiled on your host by looking in Settings -> About Phone -> Kernel Version.
Troubleshooting:
This is not a comprehensive guide, just a few pointers to where a problem might be - please post replies to the thread to get troubleshooting suggestions.
System boots up, but is not running my kernel - it didn't boot from the SD card. If the A1 is plugged into the charger/USB, you sometimes need to reboot multiple times before it boots off the SD card (I think it doesn't always turn off fully when the charger is plugged in).
The static Lenovo logo flashes up over and over again - it's booted from the SD card, but didn't manage to load your kernel
The static Lenovo logo comes up and stays there/goes to a black screen - it's probably loaded your kernel and mounted the root file system, but failed to mount /system. Try running adb shell to see what happens. If you get something like
Code:
/system/bin/sh: no such file or directory
then your kernel is running but /system isn't mounted.
IRC Channel
Join #ideapad-a1 on irc.freenode.net to discuss the kernel and other A1 development-related topics!
Download Links:
MLO
u-boot.bin
omap3-mkcard.sh
Ramdisk for Cyanogenmod 7
Ramdisk for ROW 2643 stock release
I've added the two ramdisks that I suspect will be most common - if you need another ramdisk, you'll have to extract it from an OTA.
Also, I compiled a tun.ko - www.doc.ic.ac.uk/~grm08/ideapad/tun.ko
Here's a cifs.ko - http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
EDIT: AutobahnA1 and infraredevans have confirmed that tun.ko works on ROW_2643.
EDIT 2/3: Please test out cifs.ko! (It doesn't work - it needs slow-work.ko. Will get that done when I can. Thanks to Ilikecokethree on the Lenovo forums for pointing that one out).
你懂中文吗,大神!
我是中国人 关注你的帖子很久了,我不懂英文,用翻译软件看的大概,我们这里很多人支持你,都在用你的rom 很棒!比联想官方的好多了,谢谢!
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong? Thank you very much.
PS: I'm a chinese too, and my English is not good either
gmarkall said:
This is also an opportunity to start hacking it to add/fix features such as USB OTG, etc.
Click to expand...
Click to collapse
Please do not forget to try the WiFi-based geolocation, which is also missing!
I wish I had the knowledge to work on it myself but I am far from taking over such tasks...do not have the slightest idea about how these things work.
Good luck and please keep us informed!
geoponer said:
Please do not forget to try the WiFi-based geolocation, which is also missing!
Click to expand...
Click to collapse
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Also, it's working in CM7.
hohoxu_hao115 said:
I think I did exactly the steps as you told, but it still boots the original kernel, may something be wrong?
Click to expand...
Click to collapse
Sounds like it's booting from eMMC instead.
Can you post the partition table of the SD card as listed by fdisk, and also a directory listing of each of the two partitions? I ask this to confirm what's happened - seems like you're the first person to follow these instructions, and it's quite possible I made a mistake somewhere.
betabox said:
Geolocation bug has nothing to do with kenerl. It's a missing entry in framework-res.apk in ROM from Lenovo
see : forums.lenovo.com/t5/IdeaPad-Slate-Tablets/A1-Geocode-Bug-in-Firmware-Solution/td-p/709701
Click to expand...
Click to collapse
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
@Graham: I plan to install the CM7 that you have been working on (with the feedback from other users - I keep an eye on that thread!) but since I use my A1 for professional purposes as well, I would like to make sure that everything is working fine before moving to CM7. Apologies for not being able to contribute to the beta testing of CM7 but I am really looking forward to seeing a version based on the source code provided by Lenovo, which I think will lead to a more stable version of your CM7. I cannot thank you enough for taking the time to work on this, really!
geoponer said:
Apologies for the off-topic, but I think that we are discussing two different things here: I am referring to the Geolocation bug, which prevents me from e.g. checking in with Foursquare by using only WiFi location information (active GPS signal is needed) while you have solved the Geocoding bug, which has nothing to do with the Geolocation one...
Please correct me if I am wrong.
Click to expand...
Click to collapse
I think that whether it works in CM7 or not, it almost certainly isn't a kernel issue. I'll test it by signing up for Foursquare and give it a try out on CM7 to see if it works later on. Will post my findings in the CM7 thread.
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
dusko_m said:
Hi Graham,
just gonna pile up several questions/thinkings and feel free to comment them the or answer on your liking
We do have few hickups on CM7 but I am more excited about idea of having proper recovery then ironing current CM rom that works more than satisfactory right now. Do we have enough code (I assume that target here is u-boot) on our hands that someone can implement necessary changes to internal partitions and boot procedures?
what is your opinion on replacement of u-boot with something else? for example LK loader or to be more precise with its current HD2 implementation known as cLK. it allready has some neat features like HBOOT like GUI, ability to change partition sizes on device itself (without computer), ability to boot from different partitions (would be nice to have android and ubuntu side by side loaded on our devices) and last but not least it has fastboot support enabled...or is it better way fill up u-boot with desired features if possible?
so...just my wishful thinking...not enough knowledge on my side to do anything regarding all this just hoping that some of you, more capable guys gets interested in this
Click to expand...
Click to collapse
I do want to implement something that's pretty much as you describe. My biggest motivation is that it's currently not safe to flash a kernel since you can break both system and recovery that way in one go - I really want to make the boot process more robust.
gmarkall said:
Also, I compiled a tun.ko - tun.ko
I haven't tested it yet - is anyone able to try it please?
Click to expand...
Click to collapse
The module loaded without a problem on my 2643_ROW Kernel. Installed "Rooted AnyConnect" from the "Play Place". Now I can connect to my company VPN.
gmarkall: YOU ROCK! THANK YOU!!!
tun.ko
Graham
The tun.ko module works perfectly with openvpn on 2643_ROW.
I can now access my Amahi home server,awsome.
Thanks a lot you are doing a great job.
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Cheers
Infraredevans said:
Dont want to sound presumptuous but any chance of a cifs.ko to go with it .
Click to expand...
Click to collapse
I'll give it a whirl... give me a few minutes.
gmarkall said:
I'll give it a whirl... give me a few minutes.
Click to expand...
Click to collapse
Here it is: http://www.doc.ic.ac.uk/~grm08/ideapad/cifs.ko
To compile it I had to copy md5.h from another kernel source to fs/cifs in the kernel tree. I also had to edit init/Kconfig so that CONFIG_SLOW_WORK defaulted to yes. I configured the module with the options:
Support Legacy LANMAN servers which use weaker security
CIFS Extended attributes
CIFS POSIX attributes
and without statistics, debugging, or experimental features. Let me know if this is a suitable config - I could always tweak it and build another one.
arm-2010q1-202-arm-none-linux-gnueabi.bin
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
xbdesign said:
Did someone manage to install arm-2010q1-202-arm-none-linux-gnueabi.bin on 64bit system?
Click to expand...
Click to collapse
I did - I didn't have any problems, but my random guess about how to solve it could be to install ia32-libs. If installing that doesn't solve it, can you post a bit more detail about the problem?
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
xbdesign said:
I am using ubuntu 10.04 LTS and just cant install / find Getlibs to install a 32-bit version of xulrunner :-(
Click to expand...
Click to collapse
Do you need that to run the installer? I just downloaded the tar version instead and extracted it. I saw there was an installer as well, but I thought it would be more hassle than using the tarball so I just ignored it.

[ROM][Development] NEC Terrain custom ROM

Hello!
This is a development thread for those who is ready to contribute to the creation of a custom ROM for NEC Terrain.
The prior steps, which are bootloader unlock, rooting and even repartitioning have found their solutions and can be found in:
http://forum.xda-developers.com/showthread.php?t=2515602 for the discussion
https://github.com/x29a/nec_terrain_root for an apk which opens for you an ability to have the system area of the phone writeable
https://github.com/alex-kas/nec_terrain for the last ideas on how recovery and boot images should look like and the repartitioning
So, all questions regarding all the above should be asked in that thread as they are off-topic here.
For more general questions regarding the present rom, programs to disable, features and current bugs/oddities, please, see
http://forum.xda-developers.com/general/help/q-nec-terrain-discussion-t3162070
Thanks for understanding the thread aim and welcome to development!
Found this CWM recovery creator online. Apparently you can just upload the recovery img that comes with a phone and it will generate/build a recovery based on that. Worth a try?
EDIT: Here's the link. Apparently it is necessary for some phones to upload additional files to get the recovery to work properly. I'll look into it when I start to build this thing
https://builder.clockworkmod.com/
Sent from my LG-D415 using XDA Forums
alright......so ADW launcher is very very unstable with this ROM. Basically spontaneous reboot every 30min or so.
I need 5 panels, and the stock launcher can add them, but it always make the second panel default, which is very annoying.
So which launcher do you guys prefer?
Have I found?
Unfortunately this builder does not spit output ...
I got a strong impression the Terrain is reduced CasioCommando with qwerty. @MrMEEE, I suggest to investigate this direction. The later phone is reported to have both: custom roms and custom kernel. xda has developments on this.
This guess is NOT because NEC is Casio, this is because I found that both phones use for some unknown device the so called ktrc_driver.ko kernel module and the only device apart from Terrain which I could spot by google is CasioCommando. Then, of course, accounting that NEC is Casio I make this conclusion.
Also the boot of Terrain contains commands and even kernel modules references that do not exist. I have a gut feeling that devs were in rush and just were porting some system from another phone.
EDIT: I found a binary custom recovery for commando and so far it is the ONLY recovery which comes to some graphical image! I learned that graphics is device-dependent and presence of some colored points suggests that the graphics driver is correct. One just need to adjust the resolution ... This supports my theory that commando may be the prototype for the kernel.
Will try also to look into all of that.
alex-kas said:
Unfortunately this builder does not spit output ...
I got a strong impression the Terrain is reduced CasioCommando with qwerty. @MrMEEE, I suggest to investigate this direction. The later phone is reported to have both: custom roms and custom kernel. xda has developments on this.
This guess is NOT because NEC is Casio, this is because I found that both phones use for some unknown device the so called ktrc_driver.ko kernel module and the only device apart from Terrain which I could spot by google is CasioCommando. Then, of course, accounting that NEC is Casio I make this conclusion.
Also the boot of Terrain contains commands and even kernel modules references that do not exist. I have a gut feeling that devs were in rush and just were porting some system from another phone.
EDIT: I found a binary custom recovery for commando and so far it is the ONLY recovery which comes to some graphical image! I learned that graphics is device-dependent and presence of some colored points suggests that the graphics driver is correct. One just need to adjust the resolution ... This supports my theory that commando may be the prototype for the kernel.
Will try also to look into all of that.
Click to expand...
Click to collapse
Probably explains why we have an HDMI selector in the build.prop, huh...
But wow, that's an astounding discovery! Never would have guessed NEC = Casio. I believe there are 2 Casio Commandos, I assume you are referencing the newer one?
Sent from my LG-D415 using XDA
alex-kas said:
Unfortunately this builder does not spit output ...
I got a strong impression the Terrain is reduced CasioCommando with qwerty. @MrMEEE, I suggest to investigate this direction. The later phone is reported to have both: custom roms and custom kernel. xda has developments on this.
This guess is NOT because NEC is Casio, this is because I found that both phones use for some unknown device the so called ktrc_driver.ko kernel module and the only device apart from Terrain which I could spot by google is CasioCommando. Then, of course, accounting that NEC is Casio I make this conclusion.
Also the boot of Terrain contains commands and even kernel modules references that do not exist. I have a gut feeling that devs were in rush and just were porting some system from another phone.
EDIT: I found a binary custom recovery for commando and so far it is the ONLY recovery which comes to some graphical image! I learned that graphics is device-dependent and presence of some colored points suggests that the graphics driver is correct. One just need to adjust the resolution ... This supports my theory that commando may be the prototype for the kernel.
Will try also to look into all of that.
Click to expand...
Click to collapse
If you are correct, then the kernel source is available here:
http://www.casiogzone.com/us/download/index.html
I'll look into it..
GPL or not GPL?
Citation from http://wiki.cyanogenmod.org/w/Doc:_porting_intro:
"The manufacturer or vender of any device using Android will minimally need to make the source code available for all GPL components upon request, including (and especially) the kernel. You definitely want to request a copy of the kernel source and keep it handy."
Can anyone clarify the tedious question in the subject? I mean, does running android implies gpl on kernel? Can anyone (NEC, ATT, Qualcom) hide the source and what the conditions should be then? Can they have proprietary blobs in the kernel?
Weird
alex-kas said:
Citation from http://wiki.cyanogenmod.org/w/Doc:_porting_intro:
"The manufacturer or vender of any device using Android will minimally need to make the source code available for all GPL components upon request, including (and especially) the kernel. You definitely want to request a copy of the kernel source and keep it handy."
Can anyone clarify the tedious question in the subject? I mean, does running android implies gpl on kernel? Can anyone (NEC, ATT, Qualcom) hide the source and what the conditions should be then? Can they have proprietary blobs in the kernel?
Weird
Click to expand...
Click to collapse
Android runs on a standard Linux kernel which is GPL covered. Android is really just a Java VM inside of a Linux kernel I believe. So yes, Android kernel IS Linux kernel so therefore it would be GPL covered (thanks for the explanation @Nardholio )
They understand GPL. Anything based on the Linux Kernel must have the source released, so AFAIK there is no "proprietary" in a Linux Kernel... however that is just my understanding and if I am wrong someone please correct me. If they put "proprietary" code in the kernel and try to use that as an excuse to not release it, I say "Too bad, that's not an excuse, since you understood GPL when you built the kernel but are refusing to follow it. Guess what, now you have to release the kernel AND your "proprietary" software! LOL!!!"
Sent from my LG-D415 using XDA
I posted this in the wrong thread. Long story short I found someone interested in helping enforce the GPL for the Terrain but I don't own one. I need someone who owns a Terrain (preferably directly bought from AT&T or NEC) and who has already requested kernel source and either received no response or a refusal (I used the feedback form on NEC's website and got a polite refusal a few days later but I don't own one)
Nardholio said:
I posted this in the wrong thread. Long story short I found someone interested in helping enforce the GPL for the Terrain but I don't own one. I need someone who owns a Terrain (preferably directly bought from AT&T or NEC) and who has already requested kernel source and either received no response or a refusal (I used the feedback form on NEC's website and got a polite refusal a few days later but I don't own one)
Click to expand...
Click to collapse
I own a Terrain, and have gotten a refusal from NEC support...
What do you have in mind???
---------- Post added at 12:21 PM ---------- Previous post was at 12:19 PM ----------
Dear Mr. Martin Juhl,
Thank you for contacting NEC.
This is in regards to your email about the kernel of the NEC Terrain phone. You may check the kernel version and build number of the device on the phone itself. We do not have the source code of the device nor release them.
Please feel free to email us at [email protected] or call our toll free Customer Service number (1-800-637-5917) if you have any additional questions.
Your reference number for this inquiry is: 150727-000011
Thank you again for taking the time to write.
Sincerely,
NEC Customer Support
MrMEEE said:
I own a Terrain, and have gotten a refusal from NEC support...
What do you have in mind???
---------- Post added at 12:21 PM ---------- Previous post was at 12:19 PM ----------
Dear Mr. Martin Juhl,
Thank you for contacting NEC.
This is in regards to your email about the kernel of the NEC Terrain phone. You may check the kernel version and build number of the device on the phone itself. We do not have the source code of the device nor release them.
Please feel free to email us at [email protected] or call our toll free Customer Service number (1-800-637-5917) if you have any additional questions.
Your reference number for this inquiry is: 150727-000011
Thank you again for taking the time to write.
Sincerely,
NEC Customer Support
Click to expand...
Click to collapse
Sweet. PM me your email address and I will hand off my communication with the SF Conservancy to you. Just saying you can go to kernel.org and download the Linux kernel is NOT a sufficient response. They need to provide full source to boot the device (including board files, device drivers, any in kernel firmware, and build scripts)
YOU WILL NOT BELIEVE!
http://nec-mobilecom.co.jp/gpl/w/list/NEC_TERRAIN.html
I pressed NEC to deliver it. Have no time to check right away the integrity. Also, I have some problem downloading from CAF (I'm in a place where git is blocked). Maybe will ask someone to help (re-download to an http store).
alex-kas said:
YOU WILL NOT BELIEVE!
http://nec-mobilecom.co.jp/gpl/w/list/NEC_TERRAIN.html
I pressed NEC to deliver it. Have no time to check right away the integrity. Also, I have some problem downloading from CAF (I'm in a place where git is blocked). Maybe will ask someone to help (re-download to an http store).
Click to expand...
Click to collapse
Well sh*t... Never thought this would happen in a bazillion years.
Yet if you read their terms and conditions, it states you aren't allowed to reversed engineer their software to a "human readable form". Is this nullified by GPL, or can we be in trouble for using their kernel source for a ROM?
EDIT: Just downloaded myself a copy of the kernel.
Sent from my SAMSUNG-SGH-I747 using XDA Free mobile app
I do not care. I asked, nec gave the source publicly. no reverse engineering. Now we all gpl. My point.
Sent on the go
I don't think they would care as long as you are not reselling it...... you aren't, right?
Sent from my SGH-I547C using XDA Free mobile app
Darn, I was gonna set up a booth in front of my house and be one of those loud, obnoxious salesmen
hey mister.... I'mer gonna take two them kernel if ye can cut me a deal....
jasonmerc said:
Darn, I was gonna set up a booth in front of my house and be one of those loud, obnoxious salesmen
"GEEEETTT'CHA KERNEL SOURCE HEEEEEEAAA! TERRAIN KERNEL SOURCE, ONLY FIIIIIVE DOLLAHS! MAKE YOURSELF A ROM! CUSTOM RECOVERY! FIIIIIIVE DOLLAHS!"
Click to expand...
Click to collapse
First experiments
Results for the moment are like this:
1. The kernel does compile with the modified files with no compilation issues at all.
2. The kernel is smaller then the stock one.
3. The recovery.img produced by full caf build does boot but halts at the android image with the red triangle. Or perhaps does not halt but I did not come with a key combination to proceed.
PROS: graphics works
4. The kernel being stuffed into original boot image does boot, shows boot animation WITHOUT boot sound and then not surprisingly goes to a bootloop flashing the home screen
CONS: seems that sound is not here yet
5. The bootloop was broken using
adb reboot recovery
which means that adb does function
6. I did not try to flash the whole image to check whether bootloops are due to somewhat above the kernel (aka this kernel doesn't work with the stock soft).
Overall, we have a messy kernel source which however at least boots to init, communicates with adb and has graphics.
I'm free for a team project: who is in?
Technically, to make this particular caf manifest I had to install a virtual ubuntu 10.04 x64. My native machine failed to compile. I have gcc 4.9. Even the downgrade to 4.4.7 did not do the job. And for some reason I failed to compile gcc 4.4.3 for my machine. ubuntu 10.04 has gcc 4.4.3. But there you need to install some stuff and update the present there python (it is just 6.5 there but still some update exists still inside 6.5 and it fixes somewhat causing a peculiar error during the build). Also, be aware: you cannot compile on a virtualbox share: mmap does not work for security reasons. You must arrange ALL inside the virtual machine. After the build it is about 53GiB. So, the vm-drive should be at least 60 giga.
alex-kas said:
Results for the moment are like this:
1. The kernel does compile with the modified files with no compilation issues at all.
2. The kernel is smaller then the stock one.
3. The recovery.img produced by full caf build does boot but halts at the android image with the red triangle. Or perhaps does not halt but I did not come with a key combination to proceed.
PROS: graphics works
4. The kernel being stuffed into original boot image does boot, shows boot animation WITHOUT boot sound and then not surprisingly goes to a bootloop flashing the home screen
CONS: seems that sound is not here yet
5. The bootloop was broken using
adb reboot recovery
which means that adb does function
6. I did not try to flash the whole image to check whether bootloops are due to somewhat above the kernel (aka this kernel doesn't work with the stock soft).
Overall, we have a messy kernel source which however at least boots to init, communicates with adb and has graphics.
I'm free for a team project: who is in?
Technically, to make this particular caf manifest I had to install a virtual ubuntu 10.04 x64. My native machine failed to compile. I have gcc 4.9. Even the downgrade to 4.4.7 did not do the job. And for some reason I failed to compile gcc 4.4.3 for my machine. ubuntu 10.04 has gcc 4.4.3. But there you need to install some stuff and update the present there python (it is just 6.5 there but still some update exists still inside 6.5 and it fixes somewhat causing a peculiar error during the build). Also, be aware: you cannot compile on a virtualbox share: mmap does not work for security reasons. You must arrange ALL inside the virtual machine. After the build it is about 53GiB. So, the vm-drive should be at least 60 giga.
Click to expand...
Click to collapse
I haven't code in years, but I want to help out. I am ok with scripting and also able to load stuff to my terrain for testing. Let me know.
Progress Inquiry
Happy New Year!
Just wondering if any progress has been made for this particular device. I understand we all have lives and things get in the way, or interests wither away, its just an inquiry. I'd love to see an update to this device, even up to kitkat if that was possible. Any suggestions on how to recruit developers whom may be interested in the challenge of custom rom development for this device?

Categories

Resources