Android x86 - Lenovo S10e

1,072 views
Skip to first unread message

valmar

unread,
Nov 30, 2009, 8:36:51 PM11/30/09
to Android-x86
Dear Android Developers,

I tried to install and use Android on a Lenovo IdeaPad S10e. The
graphical interface starts in VESA mode. The sound seems to work fine.
Ethernet works as expected. Touchpad works, even tapping is supported.

So, almost everything is working. I would like now to adapt Android to
the Lenovo by tweaking the few remaining things.

I will now check out the image and start to build it. However, I might
need some help.

The first thing is the graphic card. The 10e uses the GMA 950, which
is the same as the eepc, so I think it is currently not turned on
because the hardware is not recognized during boot

Could you please point me into the right direction on how to build
Android so that it skips the check and starts with the GMA 950 anyway?

The second not working thing is wireless. The Lenovo uses Broadcom
802.11 b/g Wi-Fi. On other Linux distros the "wl" driver is used. I
saw in the archive some discussion going on about this. I guess the
advice you gave to the person is still valid, right? Download the
driver sources, patch the kernel and recompile, right?

Thanks for all the help

Valerio

Yi Sun

unread,
Nov 30, 2009, 11:33:47 PM11/30/09
to andro...@googlegroups.com
On Mon, Nov 30, 2009 at 5:36 PM, valmar <valerio...@gmail.com> wrote:
> Dear Android Developers,
>
>      I tried to install and use Android on a Lenovo IdeaPad S10e. The
> graphical interface starts in VESA mode. The sound seems to work fine.
> Ethernet works as expected. Touchpad works, even tapping is supported.
>
> So, almost everything is working. I would like now to adapt Android to
> the Lenovo by tweaking the few remaining things.
>
Nice to know. Thanks

> I will now check out the image and start to build it. However, I might
> need some help.
>
> The first thing is the graphic card. The 10e uses the GMA 950, which
> is the same as the eepc, so I think it is currently not turned on
> because the hardware is not recognized during boot
>
> Could you please point me into the right direction on how to build
> Android so that it skips the check and starts with the GMA 950 anyway?
>
look at 0-auto-detect in bootable/newinstaller/initrd/scripts, it is
very simple and you should be able to get it.

> The second not working thing is wireless. The Lenovo uses Broadcom
> 802.11 b/g Wi-Fi. On other Linux distros the "wl" driver is used. I
> saw in the archive some discussion going on about this. I guess the
> advice you gave to the person is still valid, right? Download the
> driver sources, patch the kernel and recompile, right?
>
Yes, you are correct. And if you can commit all your works back to us,
we will be deeply appreciated
> Thanks for all the help
>
>    Valerio
>
> --
>
> You received this message because you are subscribed to the Google Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.
>
>
>



--
Android-x86
http://www.android-x86.org

Valerio Mariani

unread,
Dec 1, 2009, 11:06:07 AM12/1/09
to andro...@googlegroups.com
Dear All,
 
> look at 0-auto-detect in bootable/newinstaller/initrd/scripts, it is
very simple and you should be able to get it.

Thanks. I hacked the code to insert a new lenovo_info entry. I am compiling right now. I will let you know soon if it worked.

Just one question. In the wiki you say:

"If you have a workable prebuilt kernel binary for your hardware, you can generate the iso with it"

Does this mean that I could use a precompiled kernel from another Linux distribution that I know works on my machine and use it to build the iso? In that case, can I also use the modules from that kernel? The thing is: I have a working module for the wireless in my OpenSUSE installation on the s10e. If I can use that then it will be very quick.

However, hacking the kernel will allow you to add support for the s10e, so I will probably go for it. 

> The second not working thing is wireless. The Lenovo uses Broadcom
> 802.11 b/g Wi-Fi. On other Linux distros the "wl" driver is used. I
> saw in the archive some discussion going on about this. I guess the
> advice you gave to the person is still valid, right? Download the
> driver sources, patch the kernel and recompile, right?
>
Yes, you are correct. And if you can commit all your works back to us,
we will be deeply appreciated


Of course! But I am not a very experienced programmer. You might have to clean up what I wrote. 
   
        Valerio

PS: Are my emails still going through the approval process. I subscribed to the group so they should be automatically posted, right? 

Valerio Mariani

unread,
Dec 1, 2009, 12:15:57 PM12/1/09
to andro...@googlegroups.com
Dear All,

  when compiling the code I checked out today, I get the error that I paste below. Is there a revision that is known to compile. The one used to crete the 1.6 iso would be fine for me.

Thank you for all the help

  Valerio

target R.java/Manifest.java: Settings (out/target/common/obj/APPS/Settings_intermediates/src/R.stamp)
target Java: Settings (out/target/common/obj/APPS/Settings_intermediates/classes)
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:14: package android.net.ethernet does not exist
import android.net.ethernet.EthernetManager;
                           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:15: package android.net.ethernet does not exist
import android.net.ethernet.EthernetDevInfo;
                           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:4: package android.net.ethernet does not exist
import static android.net.ethernet.EthernetManager.ETH_STATE_DISABLED;
                                  ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:4: static import only from classes and interfaces
import static android.net.ethernet.EthernetManager.ETH_STATE_DISABLED;
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:5: package android.net.ethernet does not exist
import static android.net.ethernet.EthernetManager.ETH_STATE_ENABLED;
                                  ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:5: static import only from classes and interfaces
import static android.net.ethernet.EthernetManager.ETH_STATE_ENABLED;
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:6: package android.net.ethernet does not exist
import static android.net.ethernet.EthernetManager.ETH_STATE_UNKNOWN;
                                  ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:6: static import only from classes and interfaces
import static android.net.ethernet.EthernetManager.ETH_STATE_UNKNOWN;
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:15: package android.net.ethernet does not exist
import android.net.ethernet.EthernetManager;
                           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetLayer.java:3: package android.net.ethernet does not exist
import static android.net.ethernet.EthernetManager.ETH_DEVICE_SCAN_RESULT_READY;
                                  ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetLayer.java:3: static import only from classes and interfaces
import static android.net.ethernet.EthernetManager.ETH_DEVICE_SCAN_RESULT_READY;
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetLayer.java:13: package android.net.ethernet does not exist
import android.net.ethernet.EthernetManager;
                           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:44: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.ethernet.EthernetConfigDialog
private EthernetManager mEthManager;
       ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:45: cannot find symbol
symbol  : class EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
private EthernetDevInfo mEthInfo;
       ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:27: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.ethernet.EthernetEnabler
   private EthernetManager mEthManager;
           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:55: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.ethernet.EthernetEnabler
EthernetManager ethernetManager,
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:75: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.ethernet.EthernetEnabler
public EthernetManager getManager() {
      ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetLayer.java:28: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.ethernet.EthernetLayer
private EthernetManager mEthManager;
       ^
packages/apps/Settings/src/com/android/settings/EthernetSettings.java:7: package android.net.ethernet does not exist
import android.net.ethernet.EthernetManager;
                           ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:112: cannot find symbol
symbol  : variable EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
if (mEthInfo.getConnectMode().equals(EthernetDevInfo.ETH_CONN_MODE_DHCP))
                                    ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:135: cannot find symbol
symbol  : class EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
EthernetDevInfo info = new EthernetDevInfo();
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:135: cannot find symbol
symbol  : class EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
EthernetDevInfo info = new EthernetDevInfo();
                          ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:140: cannot find symbol
symbol  : variable EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
info.setConnectMode(EthernetDevInfo.ETH_CONN_MODE_DHCP);
                   ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetConfigDialog.java:147: cannot find symbol
symbol  : variable EthernetDevInfo
location: class com.android.settings.ethernet.EthernetConfigDialog
info.setConnectMode(EthernetDevInfo.ETH_CONN_MODE_MANUAL);
                   ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:37: cannot find symbol
symbol: variable EthernetManager
           if (intent.getAction().equals(EthernetManager.ETH_STATE_CHANGED_ACTION)) {
                                         ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:39: cannot find symbol
symbol: variable EthernetManager
                       intent.getIntExtra(EthernetManager.EXTRA_ETH_STATE,
                                          ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:40: cannot find symbol
symbol: variable EthernetManager
EthernetManager.ETH_STATE_UNKNOWN),
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:41: cannot find symbol
symbol: variable EthernetManager
                       intent.getIntExtra(EthernetManager.EXTRA_PREVIOUS_ETH_STATE,
                                          ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:42: cannot find symbol
symbol: variable EthernetManager
EthernetManager.ETH_STATE_UNKNOWN));
^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:43: cannot find symbol
symbol: variable EthernetManager
           } else if (intent.getAction().equals(EthernetManager.NETWORK_STATE_CHANGED_ACTION)) {
                                                ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:45: cannot find symbol
symbol: variable EthernetManager
                       (NetworkInfo) intent.getParcelableExtra(EthernetManager.EXTRA_NETWORK_INFO));
                                                               ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:63: cannot find symbol
symbol  : variable ETH_STATE_ENABLED
location: class com.android.settings.ethernet.EthernetEnabler
       if (mEthManager.getEthState() == ETH_STATE_ENABLED)
                                        ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:102: cannot find symbol
symbol  : variable ETH_STATE_ENABLED
location: class com.android.settings.ethernet.EthernetEnabler
       if (state != ETH_STATE_ENABLED && enable) {
                    ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:159: cannot find symbol
symbol  : variable ETH_STATE_DISABLED
location: class com.android.settings.ethernet.EthernetEnabler
           case ETH_STATE_DISABLED:
                ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:161: cannot find symbol
symbol  : variable ETH_STATE_ENABLED
location: class com.android.settings.ethernet.EthernetEnabler
           case ETH_STATE_ENABLED:
                ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetEnabler.java:163: cannot find symbol
symbol  : variable ETH_STATE_UNKNOWN
location: class com.android.settings.ethernet.EthernetEnabler
           case ETH_STATE_UNKNOWN:
                ^
packages/apps/Settings/src/com/android/settings/ethernet/EthernetLayer.java:40: cannot find symbol
symbol: variable EthernetManager
            if (action.equals(EthernetManager.ETH_DEVICE_SCAN_RESULT_READY)) {
                              ^
packages/apps/Settings/src/com/android/settings/EthernetSettings.java:61: cannot find symbol
symbol  : class EthernetManager
location: class com.android.settings.EthernetSettings
                (EthernetManager) getSystemService(ETH_SERVICE),
                 ^
packages/apps/Settings/src/com/android/settings/EthernetSettings.java:61: cannot find symbol
symbol  : variable ETH_SERVICE
location: class com.android.settings.EthernetSettings
                (EthernetManager) getSystemService(ETH_SERVICE),
                                                   ^
packages/apps/Settings/src/com/android/settings/PhysicalKeyboardSettings.java:41: cannot find symbol
symbol  : variable SOFTKEYBOARD
location: class android.provider.Settings.System
            System.SOFTKEYBOARD,
                  ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Yi Sun

unread,
Dec 1, 2009, 12:41:23 PM12/1/09
to andro...@googlegroups.com
Let me do a check out and try, are you using donut-x86 branch?
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.


--
Android-x86
www.android-x86.org

Yi Sun

unread,
Dec 1, 2009, 12:42:57 PM12/1/09
to andro...@googlegroups.com
On Tue, 2009-12-01 at 17:06 +0100, Valerio Mariani wrote:
> Dear All,
>
> > look at 0-auto-detect in
> bootable/newinstaller/initrd/scripts, it is
> very simple and you should be able to get it.
>
>
> Thanks. I hacked the code to insert a new lenovo_info entry. I am
> compiling right now. I will let you know soon if it worked.
>
>
> Just one question. In the wiki you say:
>
>
> "If you have a workable prebuilt kernel binary for your hardware, you
> can generate the iso with it"
>
>
> Does this mean that I could use a precompiled kernel from another
> Linux distribution that I know works on my machine and use it to build
> the iso? In that case, can I also use the modules from that kernel?
> The thing is: I have a working module for the wireless in my OpenSUSE
> installation on the s10e. If I can use that then it will be very
> quick.
>
No, it only means that you can compile a kernel by yourself, but it does
not mean that you can take any kernel you want since there are Android
kernel patches that are not in other kernels.
>
> However, hacking the kernel will allow you to add support for the
> s10e, so I will probably go for it.
>
You can add whatever you want into the kernel come with android-x86 and
rebuild it.
>
> > The second not working thing is wireless. The Lenovo uses
> Broadcom
> > 802.11 b/g Wi-Fi. On other Linux distros the "wl" driver is
> used. I
> > saw in the archive some discussion going on about this. I
> guess the
> > advice you gave to the person is still valid, right?
> Download the
> > driver sources, patch the kernel and recompile, right?
> >
>
> Yes, you are correct. And if you can commit all your works
> back to us,
> we will be deeply appreciated
>
>
>
>
> Of course! But I am not a very experienced programmer. You might have
> to clean up what I wrote.
>
> Valerio
>
>
> PS: Are my emails still going through the approval process. I
> subscribed to the group so they should be automatically posted,
> right?
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.


--
Android-x86
www.android-x86.org

Valerio Mariani

unread,
Dec 1, 2009, 12:46:29 PM12/1/09
to andro...@googlegroups.com
Ahh no! Sorry, I just noticed now. I thought I was using donut-x86

bryanhundven

unread,
Dec 1, 2009, 1:35:23 PM12/1/09
to Android-x86
Valerio,

I am also working on getting android-x86 on a lenovo x61 tablet, and
have created a lenovo_info() function. I haven't commited these
changes yet... If you want, you can post the patches here on this
thread, and either myself or Yi Sun will review/commit your changes.

I would suggest the following to submit patches:

1) git add .
# if you created new files...
2) git commit -a
# enter your comments...
3) git format-patch remotes/x86/donut-x86
# send the resulting patch named 0001-your-comments.patch

Valerio Mariani

unread,
Dec 1, 2009, 2:39:46 PM12/1/09
to andro...@googlegroups.com
Interesting. Is the wireless card, if the tablet has one, the same as
s10e?

One more question (forgive my lack of expertise). Should the Lenovo
info show all needed modules (sound, LAN, etc. ) or only the ones that
differ from the default ( in my case the framebuffer one only, for now)?

Valerio
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86...@googlegroups.com

Bryan Hundven

unread,
Dec 1, 2009, 9:07:17 PM12/1/09
to andro...@googlegroups.com
Valerio,

I'm sure the wireless cards will be different. My lenovo has the intel 4965.

If you want to just send what you have to make your board work, we will probably go the same route that the asus boards are discovered by product_name.

something like:

lenovo_info()
{
        # common for all lenovo models
        [ -c /dev/fb0 ] || FB0DEV=i915
        EXTMOD=thinkpad-acpi
        PREDEV=snd-hda-codec-analog
        SNDDEV=snd-hda-intel
        CAMDEV=

        board=`cat /sys/class/dmi/id/product_name`
        # assume Eee PC models
        case "$board" in
             *7764CTO*)
                 load my specific modules
             *your_s10e_product_name*)
                 load your specific modules
        esac
--
Bryan Hundven
bryanh...@gmail.com

Bryan Hundven

unread,
Dec 1, 2009, 9:07:57 PM12/1/09
to andro...@googlegroups.com
heh, replace eeepc with lenovo ;)
--
Bryan Hundven
bryanh...@gmail.com

Valerio Mariani

unread,
Dec 2, 2009, 8:45:20 AM12/2/09
to andro...@googlegroups.com
Dear All,

     I created an iso with support for the s10e hardware and burned it to a usb key. When I launch it, the GUI seems subjectively more responsive, but is there a certain way to tell if the system started in VESA or using the graphic card?

Another thing: the resulting iso image is much bigger than the original Android iso (~400MB vs. ~ 200MB). Is there a reason for this?

Thank you for all your help

     Valerio


journeyer

unread,
Dec 2, 2009, 10:53:10 AM12/2/09
to Android-x86
Hello Valerio

I am now trying to install x86-donut on an Intel G31 based PC and some
other x86 PCs.

I think your case is somewhat similar with mine. So I'd like to learn
from your experiences and share mine if possible.

I installed x86-donut on an Intel G31 chipset based PC. G31 has
GMA3100 as its HW accelerator.

Then, I played some MP4 file via android default movie player.
The movie plays well but the speed of frames doesn't seem constant. I
doubt the bit rate of the file maybe too high. But playing of movie is
not bad.

I checked lsmod output and found i915 (linux driver) is loaded.
I guess you should be same with me. Was i915 (linux driver) loaded
when your system booted?

> The first thing is the graphic card. The 10e uses the GMA 950, which
> is the same as the eepc, so I think it is currently not turned on
> because the hardware is not recognized during boot

I guess this would be the same with my case.

> Could you please point me into the right direction on how to build
> Android so that it skips the check and starts with the GMA 950 anyway?

Can I do the same work you did/are doing?
Is this the right approach for your and my case?


Thank you very much in advance.
Hope you have a good day today.

Best regards
Hum
Seoul

Yi Sun

unread,
Dec 2, 2009, 12:22:38 PM12/2/09
to andro...@googlegroups.com
On Wed, 2009-12-02 at 14:45 +0100, Valerio Mariani wrote:
> Dear All,
>
>
> I created an iso with support for the s10e hardware and burned it
> to a usb key. When I launch it, the GUI seems subjectively more
> responsive, but is there a certain way to tell if the system started
> in VESA or using the graphic card?
>
check /proc/fb to see what is in it.
>
> Another thing: the resulting iso image is much bigger than the
> original Android iso (~400MB vs. ~ 200MB). Is there a reason for this?
>
Yes, the released iso has compress FS-- SquashFS (not sure if I spell
correctly)
>
> Thank you for all your help
>
>
> Valerio
>
>
>
>
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.


--
Android-x86
www.android-x86.org

Valerio Mariani

unread,
Dec 2, 2009, 12:31:25 PM12/2/09
to andro...@googlegroups.com
Dear All,

 Yooo! lsmod shows that i915 is loaded and cat /prof/fb shows 0 inteldrmfb


To unsubscribe from this group, send email to android-x86...@googlegroups.com.

Valerio Mariani

unread,
Dec 2, 2009, 1:33:18 PM12/2/09
to andro...@googlegroups.com
Dear All,
          
           I also got the camera working. Very good. I am making a lot of progress. I hope I can contribute soon!

    Valerio

Yi Sun

unread,
Dec 2, 2009, 2:12:15 PM12/2/09
to andro...@googlegroups.com
BTW-- the camecorder fix will be committed soon

Valerio Mariani

unread,
Dec 2, 2009, 8:28:30 PM12/2/09
to andro...@googlegroups.com
Dear All,

     I read some documentation on how to write a kconfig file. :)

Hey, sorry if I don't have too much expertise :) I am making it up as I go! :)

Anyway, what do you think the wireless module should I depend on? Is there another wireless module I can examine to take as an example?

Thank you for all your help! We are slowly getting there!

  Valerio

Yi Sun

unread,
Dec 3, 2009, 12:32:05 AM12/3/09
to andro...@googlegroups.com
take a look at the kconfig files in the driver/net/wireless
> --
>
> You received this message because you are subscribed to the Google Groups
> "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to
> android-x86...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.
>



--
Android-x86
http://www.android-x86.org

Valerio Mariani

unread,
Dec 3, 2009, 11:12:15 AM12/3/09
to andro...@googlegroups.com
Dear All,

      it seems that on some linux distribution the Lenovo S10e works with the b43 module, which you already have available in Android. 

However, if I add the line : WIFDEV=b32 to the relevant section of the 0-auto-detect script, the module is not loaded at boot (it doesn't show in lsmod). 

Am I doing something wrong?

Thanks again for all the help

     Valerio

Yi Sun

unread,
Dec 3, 2009, 1:19:21 PM12/3/09
to andro...@googlegroups.com, andro...@googlegroups.com
Can you send us what you have changed? And you may also check dmesg to
see if you have any warnings or errors
Yi



On 2009-12-3, at 8:12, Valerio Mariani <valerio...@gmail.com>
wrote:

Valerio Mariani

unread,
Dec 3, 2009, 1:29:09 PM12/3/09
to andro...@googlegroups.com
Dear all, 

   sure! 

The following is my 0-auto-detect. Thanks for the help

--START SCRIPT--
#
# By Chih-Wei Huang <cwh...@linux.org.tw>
# Last updated 2009/08/14
#
# License: GNU Public License
# We explicitely grant the right to use the scripts
# with Android-x86 project.
#

# An auto detect function provided by kinneko
auto_detect()
{
tmp=/tmp/dev2mod
echo 'dev2mod() { while read dev; do case $dev in' > $tmp
sort -r /lib/modules/`uname -r`/modules.alias | \
sed -n 's/^alias  *\([^ ]*\)  *\(.*\)/\1)modprobe \2;;/p' >> $tmp
echo 'esac; done; }' >> $tmp
source $tmp
cat /sys/bus/*/devices/*/modalias | dev2mod
}

# FB0DEV: framebuffer driver
# LANDEV: lan driver
# WIFDEV: wifi driver
# SNDDEV: sound driver
# CAMDEV: camera driver
# PREDEV: any module the drivers depend on but can't be loaded automatically
# EXTMOD: any other module

asus_info()
{
# common for all Eee PC models
[ -c /dev/fb0 ] || FB0DEV=i915
EXTMOD=eeepc-laptop
PREDEV=snd-hda-codec-realtek
SNDDEV=snd-hda-intel
CAMDEV=uvcvideo

board=`cat /sys/class/dmi/id/product_name`
# assume Eee PC models
case "$board" in
700|701|702|900)
LANDEV=atl2
WIFDEV=ath5k
;;
701SD|900SD)
LANDEV=atl1e
WIFDEV=rtl8187se
;;
900A|904HD|1000HD)
LANDEV=atl1e
WIFDEV=ath5k
;;
901|1000|1000H)
LANDEV=atl1e
WIFDEV=rt2860sta
;;
ET1602*)
FB0DEV=
UVESA_MODE=${UVESA_MODE:-1366x768}
LANDEV=r8169
WIFDEV=rt2860sta
;;
T91)
FB0DEV=
UVESA_MODE=${UVESA_MODE:-1024x600}
LANDEV=atl1e
WIFDEV=ath9k
;;
A6VM*)
EXTMOD=asus-laptop
LANDEV=skge
WIFDEV=ipw2200
;;
*)
LANDEV=atl1e
WIFDEV=ath9k
;;
esac
}

lenovo_info()
{
        # common for all lenovo models
        [ -c /dev/fb0 ] || FB0DEV=i915
        EXTMOD=thinkpad-acpi
        PREDEV=snd-hda-codec-analog
        SNDDEV=snd-hda-intel

        board=`cat /sys/class/dmi/id/product_name`
        # assume Eee PC models
        case "$board" in
                *41875PG*)
                       CAMDEV=uvcvideo
                       WIFDEV=b43
        esac
}


vbox_info()
{
LANDEV=pcnet32
SNDDEV="snd-sb16 isapnp=0 irq=5"
VESA=1
}

qemu_info()
{
LANDEV=8139cp
SNDDEV=snd-ens1370
}

vmware_info()
{
LANDEV=pcnet32
SNDDEV=snd-ens1371
}

detect_hardware()
{
[ "$AUTO" = "1" ] && return
case "`cat /sys/class/dmi/id/uevent`" in
*ASUSTeK*)
get_info=asus_info
;;
*Acer*AO*)
get_info=ao_info
;;
*VirtualBox*)
get_info=vbox_info
;;
*QEMU*)
get_info=qemu_info
;;
*VMware*)
get_info=vmware_info
;;
*Lenovo*)
                        get_info=lenovo_info
                        ;;
*)
;;
esac
[ -n "$get_info" ] && $get_info && FOUND=1
}

find_network_dev_name()
{
wififound=0
rmline=`grep -n "#REMOVE FROM HERE" init.rc|cut -d':' -f1`
rmline=`expr $rmline + 1`
sed -i -e "$rmline,\$d" init.rc
for netdev in `ls /sys/class/net`; do
if [ $netdev = "lo" -o $netdev = "wmaster0" ]; then
continue
fi
w=/sys/class/net/$netdev
if [ -d $w/wireless -o -d $w/phy80211 ]; then
if [ $wififound -eq 0 ]; then
sed -i "s|\(^ *service wpa_supplicant .*\)\(-i.*\)\( -c.*$\)|\1-i $netdev\3|g" init.rc
wififound=1
fi
fi
echo "service dhcpcd$netdev /system/bin/dhcpcd $netdev" >> init.rc
echo "   group system dhcp" >> init.rc
echo "   disabled" >>init.rc
echo "   oneshot" >> init.rc
done
}

load_modules()
{
if [ -n "$FOUND" ]; then
BTDEV="bnep rfcomm sco btusb"
for m in $PREDEV $EXTMOD $BTDEV; do
modprobe $m
done
[ -n "$FB0DEV" -a -z "$UVESA_MODE" ] && modprobe $FB0DEV
[ -n "$LANDEV" ] && modprobe $LANDEV
[ -n "$WIFDEV" ] && modprobe $WIFDEV
[ -n "$SNDDEV" ] && modprobe $SNDDEV
[ -n "$CAMDEV" ] && modprobe $CAMDEV
else
auto_detect
fi

mdev -s
[ -c /dev/video0 ] || modprobe vivi
[ -d /proc/asound/card0 ] || modprobe snd-dummy
[ -c /dev/fb0 ] || modprobe uvesafb mode_option=${UVESA_MODE:-800x600}-16 ${UVESA_OPTION:-mtrr=3 scroll=ywrap}
find_network_dev_name
# find_wifi_dev_name
}
--STOP SCRIPT--


Yi Sun

unread,
Dec 3, 2009, 1:33:41 PM12/3/09
to andro...@googlegroups.com, andro...@googlegroups.com
Do u know if u script is really called? And if you run modprobe on b43 what happen? Is there any error message in the dmesg?

Yi Sun

unread,
Dec 3, 2009, 1:35:15 PM12/3/09
to andro...@googlegroups.com, andro...@googlegroups.com
BTW- I remember that B43 has some issues as well. Please chk the debian wifi page for detail to make sure it is ok for you



On 2009-12-3, at 10:29, Valerio Mariani <valerio...@gmail.com> wrote:

Valerio Mariani

unread,
Dec 3, 2009, 1:45:22 PM12/3/09
to andro...@googlegroups.com
Dear Yi,

        I am quite sure that the script is called, as I can see that the other modules (i915 and ucvvideo) are loaded. I can see that b43 has not been loaded. I will now check dmesg. If I try to modprobe it from the terminal emulator, it tells me that modprobe is not found. Maybe it is not in the path. I will look for it.

I don't exactly understand what you mean by checking the debian package. In any case, I have received a report from a user using Linux Mint (a Ubuntu derivative, hence a Debian derivative) that uses the driver.
Plus Sidux (another Debian derivatives) has some thread on its forums about it. So, I think it is fine.

Thanks very much for your help

     Valerio

Yi Sun

unread,
Dec 3, 2009, 1:58:26 PM12/3/09
to andro...@googlegroups.com, andro...@googlegroups.com




On 2009-12-3, at 10:45, Valerio Mariani <valerio...@gmail.com> wrote:

Dear Yi,

        I am quite sure that the script is called, as I can see that the other modules (i915 and ucvvideo) are loaded. I can see that b43 has not been loaded. I will now check
I would add some messages in the script to make sure it is u func did it

dmesg. If I try to modprobe it from the terminal emulator, it tells me that modprobe is not found. Maybe it is not in the path. I will look for it.

Do it in busybox in debug mode

I don't exactly understand what you mean by checking the debian package. In any case, I have received a report from a user using Linux Mint (a Ubuntu derivative, hence a Debian derivative) that uses the driver.
Plus Sidux (another Debian derivatives) has some thread on its forums about it. So, I think it is fine.

Well, I don't count on that. People chg things and you may not know
Thanks very much for your help

     Valerio




On Thu, Dec 3, 2009 at 7:35 PM, Yi Sun <bey...@gmail.com> wrote:
BTW- I remember that B43 has some issues as well. Please chk the debian wifi page for detail to make sure it is ok for you

--

Valerio Mariani

unread,
Dec 3, 2009, 2:07:18 PM12/3/09
to andro...@googlegroups.com
Dear Yi,

     if I navigate to the driver directory and try to insmod it, I get an "operation not permitted error" and a lot of Unknown symbols in the dmesg. Does this mean that some dependencies have not been satisfied?

Sorry again for my lack of skills


     Valerio

Valerio Mariani

unread,
Dec 3, 2009, 2:16:06 PM12/3/09
to andro...@googlegroups.com

Valerio Mariani

unread,
Dec 3, 2009, 2:18:19 PM12/3/09
to andro...@googlegroups.com
Ok, I managed to load the b43 driver. The dependency needed was ssb. Once I manually insmodded that I could insmod also b43 and I get

Broadcom 43xx diver loaded [ Features PL, Firmware-ISL FW13]

If I understand correctly, I have to force the kernel to load ssb first, but how do I do it?

     Valerio

Yi Sun

unread,
Dec 3, 2009, 2:46:48 PM12/3/09
to andro...@googlegroups.com
DUring the boot up, select debug mode to boot up the machine, after you
type the exit second time, do modprobe to your driver and you should be
able to see something showing on the screen
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.


--
Android-x86
www.android-x86.org

Yi Sun

unread,
Dec 3, 2009, 2:48:12 PM12/3/09
to andro...@googlegroups.com
On Thu, 2009-12-03 at 20:18 +0100, Valerio Mariani wrote:
> Ok, I managed to load the b43 driver. The dependency needed was ssb.
> Once I manually insmodded that I could insmod also b43 and I get
>
>
> Broadcom 43xx diver loaded [ Features PL, Firmware-ISL FW13]
>
>
> If I understand correctly, I have to force the kernel to load ssb
> first, but how do I do it?
>
modprob will solve the dependency for you. That is why I think your
script may not be run correctly. Or there are some else went wrong.
>
> Valerio
>
> On Thu, Dec 3, 2009 at 8:16 PM, Valerio Mariani
> <valerio...@gmail.com> wrote:
>
>
>
> On Thu, Dec 3, 2009 at 8:07 PM, Valerio Mariani
> <valerio...@gmail.com> wrote:
> Dear Yi,
>
>
> if I navigate to the driver directory and try to
> insmod it, I get an "operation not permitted error"
> and a lot of Unknown symbols in the dmesg. Does this
> mean that some dependencies have not been satisfied?
>
>
> Sorry again for my lack of skills
>
>
>
>
> Valerio
>
>
>
>
>
> --
>
> You received this message because you are subscribed to the Google
> Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86
> +unsub...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/android-x86?hl=en.


--
Android-x86
www.android-x86.org

Valerio Mariani

unread,
Dec 3, 2009, 2:55:14 PM12/3/09
to andro...@googlegroups.com
Dear All,

   I can modprobe the b43 driver correctly. Unfortunately it turns out that the wireless is not working.

Ok, I think I am stuck. I have to use the wl STA driver,  and I realized that writing a Kconfig file is beyond my skills (you have to really know how the driver woks). So, I have two questions:

1) Is there a way to compile and add the driver to the kernel like an external module, without making it part of the kernel configuration and building?

2) If the answer to 1 is no, is there a wifi-dongle that you are sure works with android and you know I can buy?

PS: The script I sent you has pretty much anything working (including camera and bluetooth) for the s10e, except wireless. If you still want to keep it as my contribution to the project I would be very happy (not that I did a lot of contribution, but anyway...)

Thank you

   Valerio 

bryanhundven

unread,
Dec 3, 2009, 7:37:07 PM12/3/09
to Android-x86
Valerio,

You need to get the b43 firmware installed for this device to work.

See: http://wireless.kernel.org/en/users/Drivers/b43#device_firmware

This will need to be installed into vendor/asus/eeepc/firmware, if you
are building the eeepc target product.
If you have made your own target product, it should go in it's
firmware directory.

On the page listed above, you will need to get the one for firmware
4.150.10.5, until we upgrade to 2.6.31/2.6.32.

I'm not sure we can distribute the resulting cut firmware. Yi, can you
look into this?

Yi Sun

unread,
Dec 3, 2009, 7:44:56 PM12/3/09
to andro...@googlegroups.com
need to check, it seems that we can not redistribute it.
> --
>
> You received this message because you are subscribed to the Google Groups "Android-x86" group.
> To post to this group, send email to andro...@googlegroups.com.
> To unsubscribe from this group, send email to android-x86...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-x86?hl=en.
>
>


--
Android-x86
www.android-x86.org

bryanhundven

unread,
Dec 3, 2009, 7:54:14 PM12/3/09
to Android-x86
Looks like I will need to start working on that sdcard firmware hack
we were talking about.

Time...

Valerio Mariani

unread,
Dec 3, 2009, 8:20:32 PM12/3/09
to andro...@googlegroups.com
Dear All,

yes the b43 driver needs the firmware to work. However, the wl drivers:

http://www.broadcom.com/support/802.11/linux_sta.phporriere.it/

Seem not to.

The big problem is that I am not skilled enough to integrate the module into the kernel. Tomorrow I plan to try to compile it separately and manually copy it into the correct folder on the live cd, then try to insmod it.

If this is confirmed to work then some of you more skilled can integrate it into the kernel.

Do you think this is a good idea? It is really a pity because I got everything working except for wifi.

Valerio

valmar

unread,
Dec 8, 2009, 11:25:26 AM12/8/09
to Android-x86
Dear All,

Sorry for not getting back in touch over the weekend. I
extracted the firmware as bryanhundven suggested and put it into the
relevant directory. I then recreated the iso. When I boot, I see with
lsmod that the b43 driver is loaded (and its dependency ssb is loaded
also). However, when I try to start wifi it tells me that it is not
able to do it.If I try to scan for a network, Android restarts.

Can I do it from the command line, to see the error that I get. Also,
is there a way to see if the driver is really working and I have a
wifi interface?

Also, is there anyone who, using the driver and the firmware, got wifi
running on a machine like mine?


Finally, I would like to try and build the STA drivers (wl). I can't
add them to the kernel as I don't know how to write a Kconfig file. If
I want to build them as an external module, how can I build it against
the Android kernel and not the host kernel? Where should the CFLAGS
point to?

Valerio

PS: I am seriously thinking of giving up. Even though you are helping
me as hard as you can, I think I just don't have the necessary kernel
knowledge to make Android work with this stupid wifi card

saeen

unread,
Dec 9, 2009, 2:47:15 AM12/9/09
to Android-x86
just a quick question, after making changes to 0-auto-detect, do i
need to make the usb image again ?
I have a driver wl.ko that i need to include into /drivers/net/
wireless, how should i go by doing that ?


On Dec 3, 11:29 pm, Valerio Mariani <valerio.mari...@gmail.com> wrote:
> Dear all,
>
>    sure!
>
> The following is my 0-auto-detect. Thanks for the help
>
> --START SCRIPT--
> #
> # By Chih-Wei Huang <cwhu...@linux.org.tw>

Valerio Mariani

unread,
Dec 9, 2009, 3:27:44 AM12/9/09
to andro...@googlegroups.com


Sent from my iPhone

Valerio Mariani

unread,
Dec 9, 2009, 3:29:35 AM12/9/09
to andro...@googlegroups.com
Dear Saeen,

Did you compile the driver together with the Android kermel? If
yes, can you please send me your kconfig file?

And yes, you need to rebuild the iso


Sent from my iPhone

On Dec 9, 2009, at 8:47 AM, saeen <abdul...@gmail.com> wrote:

saeen

unread,
Dec 9, 2009, 5:05:10 AM12/9/09
to Android-x86
nope, i just compiled the wl drivers alone and trying to include them
in the system.img. Just wanted to see their behavior.

Abdul Aziz

On Dec 9, 1:29 pm, Valerio Mariani <valerio.mari...@gmail.com> wrote:
> Dear Saeen,
>
>     Did you compile the driver together with the Android kermel? If  
> yes, can you please send me your kconfig file?
>
> And yes, you need to rebuild the iso
>
> Sent from my iPhone
>

valmar

unread,
Dec 9, 2009, 5:37:43 AM12/9/09
to Android-x86
Dear Saeen,

hmm, I think this is not possible. I think you have to compile
them specifically against the android kernel.

I am trying to do it right now.

Valerio
Reply all
Reply to author
Forward
0 new messages