Related
Hi all,
I am so excited now, can't wait to tell all you guys that news
Maybe someone know that I have upgraded our kernel to the newest kernel tree from nvidia's git and waiting for it to be stable for daily use. However, I found it can't boot in the newest ACER's stock ROM yesterday. After one full day hack, it finally can boot in the stock ROM now.
However, the last function I can't confirm is HDMI support, so I want some volunteers to test HDMI support and the stability. If you use vache's Taboonay 0.9.x and are interested in it, please PM me
Thanks
I can test the stability, but not the HDMI output.
P.S : Nice to see you here roggin
I can test hdmi, only 720p, but at least I can verify that.
roggin said:
Hi all,
I am so excited now, can't wait to tell all you guys that news
Maybe someone know that I have upgraded our kernel to the newest kernel tree from nvidia's git and waiting for it to be stable for daily use. However, I found it can't boot in the newest ACER's stock ROM yesterday. After one full day hack, it finally can boot in the stock ROM now.
However, the last function I can't confirm is HDMI support, so I want some volunteers to test HDMI support and the stability. If you use vache's Taboonay 0.9.x and are interested in it, please PM me
Thanks
Click to expand...
Click to collapse
What kernel is it? If I may ask.
Can it OC?
Johnny0906 said:
What kernel is it? If I may ask.
Can it OC?
Click to expand...
Click to collapse
Nvidia's kernel is the ORIGINAL kernel, all others base their continued work on, so Acer use these updates as reference..
Can you check up on the bluetooth issue on this kernel you make..
I know tiamat/xoom kernel is really close to stock nvidia kernel too (or fully supported with drivers). so maybe something dirty needs changing..
havent had chance to fix..
problem for now, seems to be it can scan, but seems to timeout on transmitting, so it suddenly cannot see new units after some minutes. maybe worth doublechecking.
vache said:
I can test the stability, but not the HDMI output.
P.S : Nice to see you here roggin
Click to expand...
Click to collapse
Hi vache,
Coooool, it's so nice to see you here
I have pm you the link, please take it a try
Thanks for your help again
Johnny0906 said:
What kernel is it? If I may ask.
Can it OC?
Click to expand...
Click to collapse
sorry, I haven't added OC code in it, but I will add it when it stable enough
Thanks
Dexter_nlb said:
Can you check up on the bluetooth issue on this kernel you make..
I know tiamat/xoom kernel is really close to stock nvidia kernel too (or fully supported with drivers). so maybe something dirty needs changing..
havent had chance to fix..
problem for now, seems to be it can scan, but seems to timeout on transmitting, so it suddenly cannot see new units after some minutes. maybe worth doublechecking.
Click to expand...
Click to collapse
Hi Dexter_nlb:
I have tested the bluetooth function in this kernel, it works fine in my kernel
If you are interested in it, I can mail or share a link of my kernel source for you
Thanks
roggin said:
However, the last function I can't confirm is HDMI support, so I want some volunteers to test HDMI support and the stability. If you use vache's Taboonay 0.9.x and are interested in it, please PM me
Click to expand...
Click to collapse
Hi Roggin,
I play with versions and can test HDMI 1080P with Taboonay 0.9.1. Please send me the link to kernel. Do you make also modules, especialy for 3G?
roggin said:
Hi Dexter_nlb:
I have tested the bluetooth function in this kernel, it works fine in my kernel
If you are interested in it, I can mail or share a link of my kernel source for you
Thanks
Click to expand...
Click to collapse
please do i would love to play around with it "internally" and testing...
im little occupied atm, so hdmi can be tested, and regular use for now..
I can probably make you the oc add-ons and see how it turns out with your work and send you my diff back.. (don't know git commit)
I would be willing to due some stability testing with the acer stock rom.
Let me know.
Dexter_nlb said:
please do i would love to play around with it "internally" and testing...
im little occupied atm, so hdmi can be tested, and regular use for now..
I can probably make you the oc add-ons and see how it turns out with your work and send you my diff back.. (don't know git commit)
Click to expand...
Click to collapse
Hi Dexter_nlb,
It's a big big help that you can help me ,
I am not releasing kernel source is because I don't want to brick someone's tablet, but It's ok for power developer like you.
I am uploading the kernel, I will info you when uploading done
Thanks for your help
snickle said:
I would be willing to due some stability testing with the acer stock rom.
Let me know.
Click to expand...
Click to collapse
Hi snickle,
I think it's fine using Taboonay's ramdisk in stock rom, but not sure
If you can help me for test, I will pm the link for you
Thanks
roggin said:
I am not releasing kernel source is because I don't want to brick someone's tablet
Click to expand...
Click to collapse
If they know how to compile it, then I guess they can enjoy their brick
Just be careful not releasing the source code, as it is under a open licence. I'm pretty sure that's why thor2002ro's kernel thread was deleted by moderators off fo this forum. I don't want to see another Kernel development go south because it wasn't public .
roggin said:
Hi snickle,
I think it's fine using Taboonay's ramdisk in stock rom, but not sure
If you can help me for test, I will pm the link for you
Thanks
Click to expand...
Click to collapse
I think the usage of ramdisk should be optional, because it might not allow to encrypt your device, and as you hopefully know, encryption is necessary to allow exchange activesync connection for email push, except if somebody finds out a what has to be modified to use activesync without encryption.
I also join ShadowXVII concerning the kernel source, if somebody wants to brick his device, it's up to him, but be carefull not to get removed because you did not publish the source.
otherwise well done my friend.
zoubidou said:
I also join ShadowXVII concerning the kernel source, if somebody wants to brick his device, it's up to him, but be carefull not to get removed because you did not publish the source.
Click to expand...
Click to collapse
You only have to publicly release the source if you publicly release the binary - he's only obliged to give the source to the people he gave the binary to. So there's no problems
On that note: I've just flashed Taboonay and am happy to give your kernel a try. I don't have a dev environment set up these days, but if you can send me the boot.img I'll take a crack at it.
themono said:
You only have to publicly release the source if you publicly release the binary - he's only obliged to give the source to the people he gave the binary to. So there's no problems
Click to expand...
Click to collapse
Cool, thanks for the clarification. Just being cautious as I'd prefer Kernel development wasn't hindered at all. That being said, a public source may promote development as opposed to ending up with several different kernels by different developers. I'm all for collaboration, and it's great to see some within this thread
On a side note, any Kernel developers that may be able to shed some light onto this thread would be appreciated -- in particular, the kernel requirements for networking over USB; http://forum.xda-developers.com/showthread.php?p=15452414#post15452414
Hi all,
It's not I don't want to release it. It's almost 300+ patches between older and newer version, and include some regulator voltage patch. I want to sure not damage any part in all functions.
Give me one more days, when I collect all necessary response from tester, I will release it
Thanks
I did exactly the same on the tiamat kernel, waited and hoped to had time debugging the bluetooth issue, but got modarator complaints on not publicing any source
anyways, as long as no binary appear in this thread, i think you're safe from any mods attacking you on GPL issues (or do like thor200ro move it offsite, if you feel like breaking GPL)
Talk is just talk for now, no mods can argue against that for now..
The kernel has been open sourced, by CM, as any OEM should do when device hits retail. That means a great step for us, ROM developers. We may discuss findings for reference on future development here.
Link to source code: https://github.com/CyanogenMod/android_kernel_oneplus_msm8974
By the way, it's not only useful for the OnePlus One, seems that it's interesting for Find 7 as they borrow some code from it, worthy to read.
Oh Gr8 news ! Hope we could get custom kernel on OPO soon
Sent from my One using XDA Premium 4 mobile app
I am hoping we get one soon also.
Sent from my One using Tapatalk
SferaDev said:
The kernel has been open sourced, by CM, as any OEM should do when device hits retail. That means a great step for us, ROM developers. We may discuss findings for reference on future development here.
Link to source code: https://github.com/CyanogenMod/android_kernel_oneplus_msm8974
By the way, it's not only useful for the OnePlus One, seems that it's interesting for Find 7 as they borrow some code from it, worthy to read.
Click to expand...
Click to collapse
Mind putting together the flashable zip of the stock kernel so that users who go custom kernel flashing (Franco for now) can fall back to the stock kernel?
A flashable .zip would be great
@SferaDev Thanks for this, I will be using this to build a kernel for our devices
Gamma control is out:
0f98e789af8c12ce3687cbe4515b429aa1e031a3 video: mdss: Add predefined gamma selection
I'm a bit confused.
So far, I know of two kernel sources: This one and AOSP-compatible sources released by OnePlus directly (OnePlusTech on github, can't post links at my postcount).
However, there are already custom kernels that claim to only work with CM11S, and others that claim to only work with CM11. I assume the latter are based on this source. So what's the current (official) branch for CM11S?
DrDaxxy said:
I'm a bit confused.
So far, I know of two kernel sources: This one and AOSP-compatible sources released by OnePlus directly (OnePlusTech on github, can't post links at my postcount).
However, there are already custom kernels that claim to only work with CM11S, and others that claim to only work with CM11. I assume the latter are based on this source. So what's the current (official) branch for CM11S?
Click to expand...
Click to collapse
OnePlus AOSP is really new and I personally recommend CMs one. Their original intention was to keep as CM as possible...
SferaDev said:
OnePlus AOSP is really new and I personally recommend CMs one. Their original intention was to keep as CM as possible...
Click to expand...
Click to collapse
So kernels that don't work with the stock ROM are just based on a newer revision of the kernel in CM's repo, and older revisions in there would boot CM11S just fine?
DrDaxxy said:
So kernels that don't work with the stock ROM are just based on a newer revision of the kernel in CM's repo, and older revisions in there would boot CM11S just fine?
Click to expand...
Click to collapse
I haven't faced ANY kernel that doesn't work...
A flashable zip will be great! Can any expert help on this?
This is a pure AOSP 5.0 - Lollipop - build compiled from source .
I would highly recommend it to be used only by developers and advanced users.
The build just completed and am uploading the image files for you to do whatever you please.
The idea is to get it out there so others can take a look and use it to make it better.
Please give your comments and updates if you do plan to use it on your device.
ADVISORY -
First build -likely to be highly unstable.
I am not responsible for any damages caused whatsoever.
This is for test purposes only, however it should work well.
Link to Images -
https://www.mediafire.com/folder/c3mcyxash8z8y63,mx64j9929bp1zpw,nu1blqbnpu2siwe/shared
Credits - To clarify confusions
Team EOS - for device tree
Slim and Omni - for kernel.
Cyanogenmod - some common stuff.
Regards
Nice thanks can't wait to try it out much alohas
Which cm commits is it up to?
poczynek said:
Which cm commits is it up to?
Click to expand...
Click to collapse
Latest available
navendugoyal said:
Latest available
Click to expand...
Click to collapse
So its not AOSP.
keith.mcintyre26 said:
So its not AOSP.
Click to expand...
Click to collapse
Yes it is.
Just the Board changes to get everything working.
No CM source.
navendugoyal said:
I am out of town for next 24 hrs.. therefore can't provide too much hours into it as of now. Will await all of your responses.
Click to expand...
Click to collapse
have you tested it?
synergeticink said:
have you tested it?
Click to expand...
Click to collapse
testing
navendugoyal said:
testing
Click to expand...
Click to collapse
Images uploaded
navendugoyal said:
testing
Click to expand...
Click to collapse
Have you tested it? In all the builds I've worked on the hwcomposer library wasn't getting compiled, leading to display not working, although everything else is(I think). Although @Aaahh probably fixed it just now. Compiling though.
If it boots, mind telling me the things you changed?
lolzballs said:
Have you tested it? In all the builds I've worked on the hwcomposer library wasn't getting compiled, leading to display not working, although everything else is(I think). Although @Aaahh probably fixed it just now. Compiling though.
If it boots, mind telling me the things you changed?
Click to expand...
Click to collapse
Good work you guys.
I didn't have a problem with hardware composer.
The only issue i had was to get the kernel to compile inline.
so i compiled it separately and used the zimage as a prebuilt.
Not booting at the moment
Added to OnePlus One index thread:
[INDEX] OnePlus One Resources Compilation Roll-Up
Transmitted via Bacon
No boot confirmed, stays on 1+ screen, and fastboot works from that screen as well.
Can people start testing their builds to see that it actually boots before making threads and sharing it with the community?
This is the second time in one day that this has happened.
Yeah that's building 101...don't make a thread until it boots :-/ smh
All the things wrong with this thread:
makes a thread without testing it.
Runs away for a day saying out of town.
2551990 said:
All the things wrong with this thread:
makes a thread without testing it.
Runs away for a day saying out of town.
Click to expand...
Click to collapse
Ok Now
It has taken very hard work to reach here and even get the rom to compile.
There are CM based roms already available which boot and work .
The purpose of posting this thread is to share my work so far on an AOSP build. The idea is, if I am missing something, someone else can pick it up and better it.
If someone still thinks it is a wrong idea, please delete this thread.
Happy for that, no worries.
navendugoyal said:
Ok Now
It has taken very hard work to reach here and even get the rom to compile.
There are CM based roms already available which boot and work .
The purpose of posting this thread is to share my work so far on an AOSP build. The idea is, if I am missing something, someone else can pick it up and better it.
If someone still thinks it is a wrong idea, please delete this thread.
Happy for that, no worries.
Click to expand...
Click to collapse
There's certainly no need to remove the thread. It's labelled appropriately as a test build, and this is what XDA is all about the core, this is development. Keep up the good work.
Transmitted via Bacon
timmaaa said:
There's certainly no need to remove the thread. It's labelled appropriately as a test build, and this is what XDA is all about the core, this is development. Keep up the good work.
Transmitted via Bacon
Click to expand...
Click to collapse
This AOSP rom is the work of Aaaah and lolbzballs so all credit should be given to them in the first post.
https://forums.oneplus.net/threads/development-lollipop.154589/page-305#post-7446071
daleski75 said:
This AOSP rom is the work of Aaaah and lolbzballs so all credit should be given to them in the first post.
https://forums.oneplus.net/threads/development-lollipop.154589/page-305#post-7446071
Click to expand...
Click to collapse
They are working totally different from what I am working upon.
It has nothing from their project.
Regards
I'm looking at the Neptune pine to see what I can do with it.
so far I have obtained the kernel config
Configkernel3.4
This Thread is for sharing information and Q/A
My goal is to have a custom android rom compiled and then to try port different O/S's to it.
Nice! What's the status of your efforts?
How to the testing .....
JustSueMe said:
I'm looking at the Neptune pine to see what I can do with it.
so far I have obtained the kernel config
Configkernel3.4
This Thread is for sharing information and Q/A
My goal is to have a custom android rom compiled and then to try port different O/S's to it.
Click to expand...
Click to collapse
What about using the kernel source from cyanogenmod, like the dev did who released beta cyanogenmod?
F0L said:
What about using the kernel source from cyanogenmod, like the dev did who released beta cyanogenmod?
Click to expand...
Click to collapse
Ok, should have read it better. Are you able to just compile a kernel for testing. Once you have a working one, that would be a good base for updating rom.
JustSueMe said:
I'm looking at the Neptune pine to see what I can do with it.
so far I have obtained the kernel config
Configkernel3.4
This Thread is for sharing information and Q/A
My goal is to have a custom android rom compiled and then to try port different O/S's to it.
Click to expand...
Click to collapse
Any update on this?
Guess this is not going to happen. Just wish I still had the time I used to. I would have had a go my self, as the vanilla kernel is what kills this cool bit of kit.
I managed to get it to a usable state with google play installed, by installing SkyNET. Which tweaks the system on the fly when needed. Helps keep as much memory as possible.
Would the kernel source of the Nokia X help? as it uses the exact same hardware.
I have it downloaded, so if it will help, I can link.
I have given up on anyone doing anything with pine. So I tweaked stock rom as much as I could, got it running very nicely even with my 130GB storage (link2sd). I also modified the ramdisk image to support init.d on boot. Im also using kickarse kernel script.
F0L said:
I have given up on anyone doing anything with pine. So I tweaked stock rom as much as I could, got it running very nicely even with my 130GB storage (link2sd). I also modified the ramdisk image to support init.d on boot. Im also using kickarse kernel script.
Click to expand...
Click to collapse
Can you post how you did it? Thanks
@fol I would also be interested in it.
killervette said:
Can you post how you did it? Thanks
Click to expand...
Click to collapse
I used rom kichen to mess with ramdisk (it was very risky as messing with boot image can brick pine). I manually added init.d support. Then repacked it. Luckly it worked fine. I even flashed it to my sons.
I extracted stock system.zip and tweaked it the way I wanted (debloated added apps I owned), then flashed that. As I added init.d, I could use scripts on boot to alter running of pine.
Im currently using Project skynet vr4, which runs very nice.
@fol What is skynet? Do you have a link?
Hello from Moscow, Russia. I can't write in Firmware section, so I write here.
I'm and my teammate(Dblm) ported 3.10.33 kernel from Nvidia Shield. TWRP works fine with this kernel. But android don't work cuz our graphical blobs are very very old. So may be somebody can find necessary blobs and run android.
zImage: https://drive.google.com/open?id=0B2...nhPdlJkWkdYQjg
TWRP recovery with this kernel: https://drive.google.com/open?id=0B2...FhQTHJIa2xVems
reserved
Artemka2008 said:
Hello from Moscow, Russia. I can't write in Firmware section, so I write here.
I'm and my teammate(Dblm) ported 3.10.33 kernel from Nvidia Shield. TWRP works fine with this kernel. But android don't work cuz our graphical blobs are very very old. So may be somebody can find necessary blobs and run android.
zImage: https://drive.google.com/open?id=0B2ALf4H-2aBrZnhPdlJkWkdYQjg
TWRP recovery with this kernel: https://drive.google.com/open?id=0B2ALf4H-2aBrZFhQTHJIa2xVems
Click to expand...
Click to collapse
Thanks a lot for posting this. It would be more helpful if you could post your source code for the port and the source (the original shield kernel).
drakonizer said:
Thanks a lot for posting this. It would be more helpful if you could post your source code for the port and the source (the original shield kernel).
Click to expand...
Click to collapse
At the moment my teammate does not want to publish the source code.
CPU fixed in this build(all 4 cores work)
Artemka2008 said:
At the moment my teammate does not want to publish the source code.
CPU fixed in this build(all 4 cores work)
Click to expand...
Click to collapse
I really appreciate your work. Don't get me wrong. But Linux is licensed under GPL. The law requires you to open source your work, and so does XDA. This is why we didn't have a Mi Pad forum till now. To avoid problems and to prevent XDA from banning you or closing this thread, I suggest you either publish your source or remove the link.
None of the devs can help you if you don't release the source code. Please co operate with the open source community.
Thanks for understanding.
drakonizer said:
I really appreciate your work. Don't get me wrong. But Linux is licensed under GPL. The law requires you to open source your work, and so does XDA. This is why we didn't have a Mi Pad forum till now. To avoid problems and to prevent XDA from banning you or closing this thread, I suggest you either publish your source or remove the link.
None of the devs can help you if you don't release the source code. Please co operate with the open source community.
Thanks for understanding.
Click to expand...
Click to collapse
ok, I will delete this thread.
Artemka2008 said:
ok, I will delete this thread.
Click to expand...
Click to collapse
You don't have to delete the thread. It can be used for discussions. You can upload your kernel whenever you feel its appropriate to release your source code.
On a more helpful note: I can't say much without seeing the source code, but if you have ported the kernel drivers as well from shield, you can try using the blobs from Shield itself. You'll probably need to use blobs that match the version of the kernel you are trying to port.
so does that mean that there is a chance for cm12+?
Jahhhhhhh said:
so does that mean that there is a chance for cm12+?
Click to expand...
Click to collapse
Without camera and sound now. I tried to run Android 5.1.1 with our kernel. But I can't find working graphical blobs. I need help with it.
This is my last logcat https://drive.google.com/open?id=0B2ALf4H-2aBrX3dCRkthR21wM1U
This is going nowhere until you share the source code with the community as per GPL. How long does your teammate want to drag the process? Release the source code today and start getting feedback from other devs - what's the hold up?
Palm Trees said:
This is going nowhere until you share the source code with the community as per GPL. How long does your teammate want to drag the process? Release the source code today and start getting feedback from other devs - what's the hold up?
Click to expand...
Click to collapse
God, the source code will not help here. You just need to pick up the blobs to run android. With the kernel of today there are no problems.
Artemka2008 said:
God, the source code will not help here. You just need to pick up the blobs to run android. With the kernel of today there are no problems.
Click to expand...
Click to collapse
Blobs are heavily linked to the kernel drivers. Without even knowing what kernel you have used as a source for the port (the one for Shield), how can we randomly test blobs and somehow magically fix this? I really don't want to piss you guys off, but the reason why you can do the work you do is because the Linux kernel is open source. And it's stayed that way because people have followed the GPL (with only a few exceptions like Xiaomi). I do not understand why you don't want to release the source code. Nobody is trying or will try to steal your work and claim credits. In the end we all want the same thing - stable Android 5/6/7 on the Mi Pad. Let other people help too.
drakonizer said:
Blobs are heavily linked to the kernel drivers. Without even knowing what kernel you have used as a source for the port (the one for Shield), how can we randomly test blobs and somehow magically fix this? I really don't want to piss you guys off, but the reason why you can do the work you do is because the Linux kernel is open source. And it's stayed that way because people have followed the GPL (with only a few exceptions like Xiaomi). I do not understand why you don't want to release the source code. Nobody is trying or will try to steal your work and claim credits. In the end we all want the same thing - stable Android 5/6/7 on the Mi Pad. Let other people help too.
Click to expand...
Click to collapse
That's my point exactly. Have you tried asking in the Nvidia Shield xda thread: http://forum.xda-developers.com/shield-tablet/development. There's plenty of development going on, you might be able to get some tips and tricks.
Palm Trees said:
That's my point exactly. Have you tried asking in the Nvidia Shield xda thread: http://forum.xda-developers.com/shield-tablet/development. There's plenty of development going on, you might be able to get some tips and tricks.
Click to expand...
Click to collapse
Not the point. The shield developers will not be able to help us. Things will become very easy if this shield kernel port works. We will probably be able to use the newer blobs meant for the Shield, which makes development very easy, if this becomes bootable/stable. I really hope the OP manages to get it working. We either need newer blobs from Xiaomi or we need to write wrappers to use the current kitkat blobs (not easy, since Nvidia documentation is nowhere near as detailed as say, Qualcomm) or we need to get this port working well, which would enable us to use most of the blobs from the Shield (provided Xiaomi hasn't gone out of their way to screw with their blobs). The first two ways are practically impossible, which leads me to rest all my hope on this port. Unfortunately without the source code, we will just have to be silent spectators, waiting for some news.
Here's my effort for asking sheild developer- http://forum.xda-developers.com/shield-tablet/help/help-support-xiaomi-mipad-custom-rom-t3512695
I also posted a xiaomi forum link where Sheild Lollipop kernel is accessible for developers. It's available in Xiaomi forum.
Here's the link - http://en.miui.com/thread-439620-1-1.html
I have just shared the information available. Not taking any credit away from developer from 4pda.ru.
Thanks
rocky869 said:
Here's my effort for asking sheild developer- http://forum.xda-developers.com/shield-tablet/help/help-support-xiaomi-mipad-custom-rom-t3512695
I also posted a xiaomi forum link where Sheild Lollipop kernel is accessible for developers. It's available in Xiaomi forum.
Here's the link - http://en.miui.com/thread-439620-1-1.html
I have just shared the information available. Not taking any credit away from developer from 4pda.ru.
Thanks
Click to expand...
Click to collapse
I asked LuckyMeAgain to publish on the official website, so it's the same thing. I am ArtemkaVZM on 4pda and arttt on en.miui.com MiuiSmokeRom dev team.
Presumably the easiest way is to go through TheMuppets repo and testing them at different points in time by checking commit history.
https://github.com/TheMuppets/proprietary_vendor_nvidia
Harrynowl said:
Presumably the easiest way is to go through TheMuppets repo and testing them at different points in time by checking commit history.
https://github.com/TheMuppets/proprietary_vendor_nvidia
Click to expand...
Click to collapse
I think that we have to make a new build. Current builds are useless for us now. I mean available android 5 roms.
This is my last logcat with 5.1.1 Vartom's SlimRom: https://drive.google.com/open?id=0B2ALf4H-2aBrX3dCRkthR21wM1U
Artemka2008 said:
I think that we have to make a new build. Current builds are useless for us now. I mean available android 5 roms.
This is my last logcat with 5.1.1 Vartom's SlimRom: https://drive.google.com/open?id=0B2ALf4H-2aBrX3dCRkthR21wM1U
Click to expand...
Click to collapse
looks like hwcomposer is the broken blob. Have you tried using the hwcomposer.tegra.so from a Sheild ROM to boot it?
drakonizer said:
looks like hwcomposer is the broken blob. Have you tried using the hwcomposer.tegra.so from a Sheild ROM to boot it?
Click to expand...
Click to collapse
All the necessary blobs were taken from Shield. More no such files, which could be replaced.